[kde-doc-english] [trojita] src: GUI: improve the attachments widget
Jan Kundrát
jkt at flaska.net
Tue Mar 12 12:37:54 UTC 2013
Git commit a07a1dcb7e284d98e809c3723aa0ba462bd3ed62 by Jan Kundrát.
Committed on 12/03/2013 at 12:33.
Pushed by jkt into branch 'master'.
GUI: improve the attachments widget
- Add a nice icon from the Oxygen theme
- Make it multiline to conserve space on loooooong MIME types like the
application/vnd.openxmlformats-officedocument.*
- Make it possible to select the attachment filename by mouse for copy-paste
M +24 -4 src/Gui/AttachmentView.cpp
M +1 -0 src/icons.qrc
A +- -- src/icons/mail-attachment.png
http://commits.kde.org/trojita/a07a1dcb7e284d98e809c3723aa0ba462bd3ed62
diff --git a/src/Gui/AttachmentView.cpp b/src/Gui/AttachmentView.cpp
index 38325ad..e8bfd0f 100644
--- a/src/Gui/AttachmentView.cpp
+++ b/src/Gui/AttachmentView.cpp
@@ -20,6 +20,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "AttachmentView.h"
+#include "IconLoader.h"
#include "Common/DeleteAfter.h"
#include "Imap/Network/FileDownloadManager.h"
#include "Imap/Model/MailboxTree.h"
@@ -49,11 +50,30 @@ AttachmentView::AttachmentView(QWidget *parent, Imap::Network::MsgPartNetAccessM
{
m_fileDownloadManager = new Imap::Network::FileDownloadManager(this, manager, partIndex);
QHBoxLayout *layout = new QHBoxLayout(this);
- QLabel *lbl = new QLabel(tr("Attachment %1 (%2, %3)").arg(partIndex.data(Imap::Mailbox::RolePartFileName).toString(),
- partIndex.data(Imap::Mailbox::RolePartMimeType).toString(),
- Imap::Mailbox::PrettySize::prettySize(partIndex.data(Imap::Mailbox::RolePartOctets).toUInt(),
- Imap::Mailbox::PrettySize::WITH_BYTES_SUFFIX)));
+ // Icon on the left
+ QLabel *lbl = new QLabel();
+ lbl->setPixmap(loadIcon(QLatin1String("mail-attachment")).pixmap(22, 22));
layout->addWidget(lbl);
+ QWidget *labelArea = new QWidget();
+ QVBoxLayout *subLayout = new QVBoxLayout(labelArea);
+ // The file name shall be mouse-selectable
+ lbl = new QLabel();
+ lbl->setTextFormat(Qt::PlainText);
+ lbl->setText(partIndex.data(Imap::Mailbox::RolePartFileName).toString());
+ lbl->setTextInteractionFlags(Qt::TextSelectableByMouse);
+ subLayout->addWidget(lbl);
+ // Some metainformation -- the MIME type and the file size
+ lbl = new QLabel(tr("%2, %3").arg(partIndex.data(Imap::Mailbox::RolePartMimeType).toString(),
+ Imap::Mailbox::PrettySize::prettySize(partIndex.data(Imap::Mailbox::RolePartOctets).toUInt(),
+ Imap::Mailbox::PrettySize::WITH_BYTES_SUFFIX)));
+ QFont f = lbl->font();
+ f.setItalic(true);
+ f.setPointSizeF(f.pointSizeF() * 0.8);
+ lbl->setFont(f);
+ subLayout->addWidget(lbl);
+ layout->addWidget(labelArea);
+ layout->addStretch();
+ // Download/Open buttons
m_downloadButton = new QToolButton();
m_downloadButton->setPopupMode(QToolButton::MenuButtonPopup);
m_downloadButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
diff --git a/src/icons.qrc b/src/icons.qrc
index 2ee1beb..f7ba028 100644
--- a/src/icons.qrc
+++ b/src/icons.qrc
@@ -9,6 +9,7 @@
<file>icons/mail-replied-forw.png</file>
<file>icons/mail-replied.png</file>
<file>icons/mail-unread.png</file>
+ <file>icons/mail-attachment.png</file>
<file>icons/folder.png</file>
<file>icons/transparent.png</file>
<file>icons/trojita.png</file>
diff --git a/src/icons/mail-attachment.png b/src/icons/mail-attachment.png
new file mode 100644
index 0000000..60c2f87
Binary files /dev/null and b/src/icons/mail-attachment.png differ
More information about the kde-doc-english
mailing list