From f96f1cf8b12f71c1c4e6cdfa6769b631d565333e Mon Sep 17 00:00:00 2001 From: defnax Date: Wed, 20 May 2020 02:03:18 +0200 Subject: [PATCH] Quick view for Messages with Attachments --- retroshare-gui/src/gui/icons.qrc | 1 + .../src/gui/icons/mail/attach16.png | Bin 0 -> 628 bytes retroshare-gui/src/gui/msgs/MessageModel.cpp | 3 +- retroshare-gui/src/gui/msgs/MessageModel.h | 1 + .../src/gui/msgs/MessagesDialog.cpp | 31 +++++++++++++++--- 5 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 retroshare-gui/src/gui/icons/mail/attach16.png diff --git a/retroshare-gui/src/gui/icons.qrc b/retroshare-gui/src/gui/icons.qrc index a2d5b89d2..311530b03 100644 --- a/retroshare-gui/src/gui/icons.qrc +++ b/retroshare-gui/src/gui/icons.qrc @@ -311,6 +311,7 @@ icons/mail/foward.png icons/mail/reply.png icons/mail/reply-all.png + icons/mail/attach16.png icons/mail/attach24.png icons/mail/write-mail.png icons/textedit/align.png diff --git a/retroshare-gui/src/gui/icons/mail/attach16.png b/retroshare-gui/src/gui/icons/mail/attach16.png new file mode 100644 index 0000000000000000000000000000000000000000..3d983309a2887ed4ff5e345679ee209dc75b3677 GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>ng*N+YGZWg4naKG0(XQL=3Ypv&_BQ#oBXP9SQ0qX(^0?}pW zIaiqGTxFUCH0LtQOrQxM#4_g!&=98CR~c6QX96mlb(LlAb)Y!I^y>_>Z?Mk3#xx6T z=4`M=pg7QQpl4RK{RdJ8B|(0{41zJyd@_&MZoDr(v9+&bhc^#v@P?gULCbS;eQe&m zww_Fdh=gjHCaiMdjm=?73K!_&nvMB;LC0t2I)TACP}%7IhI&K*42s&e4$;R6Rw zx2qh`SI|(=QBvU$7Z80cApTrHca(z9mH9uxZ*2giwyo}G@7ta=Mp zEjxE$!NO&o1-qwh>+9R5x2gW>*Dqfbbr>FWamH?6B()f5r)r67L`h0wNvc(HQ7VvP zFfuSQ&^0jCHM9&dGPW`>vNAB%HZZU08-nxG qO3D+9QW?t2%k?tzvWt@w3sUv+i_&MmvylQSV(@hJb6Mw<&;$So?%5*% literal 0 HcmV?d00001 diff --git a/retroshare-gui/src/gui/msgs/MessageModel.cpp b/retroshare-gui/src/gui/msgs/MessageModel.cpp index 74f4c2579..5ddef2283 100644 --- a/retroshare-gui/src/gui/msgs/MessageModel.cpp +++ b/retroshare-gui/src/gui/msgs/MessageModel.cpp @@ -342,7 +342,8 @@ bool RsMessageModel::passesFilter(const Rs::Msgs::MsgInfoSummary& fmpe,int colum || (std::find(fmpe.msgtags.begin(),fmpe.msgtags.end(),mQuickViewFilter) != fmpe.msgtags.end()) || (mQuickViewFilter==QUICK_VIEW_STARRED && (fmpe.msgflags & RS_MSG_STAR)) || (mQuickViewFilter==QUICK_VIEW_SYSTEM && (fmpe.msgflags & RS_MSG_SYSTEM)) - || (mQuickViewFilter==QUICK_VIEW_SPAM && (fmpe.msgflags & RS_MSG_SPAM)); + || (mQuickViewFilter==QUICK_VIEW_SPAM && (fmpe.msgflags & RS_MSG_SPAM)) + || (mQuickViewFilter==QUICK_VIEW_ATTACHMENT && (fmpe.count >= 1)); #ifdef DEBUG_MESSAGE_MODEL std::cerr << "Passes filter: type=" << mFilterType << " s=\"" << s.toStdString() << "MsgFlags=" << fmpe.msgflags << " msgtags=" ; foreach(uint32_t i,fmpe.msgtags) std::cerr << i << " " ; diff --git a/retroshare-gui/src/gui/msgs/MessageModel.h b/retroshare-gui/src/gui/msgs/MessageModel.h index 51912db8b..8a74ed4b3 100644 --- a/retroshare-gui/src/gui/msgs/MessageModel.h +++ b/retroshare-gui/src/gui/msgs/MessageModel.h @@ -76,6 +76,7 @@ public: QUICK_VIEW_STARRED = 0x06, QUICK_VIEW_SYSTEM = 0x07, QUICK_VIEW_SPAM = 0x08, + QUICK_VIEW_ATTACHMENT = 0x09, QUICK_VIEW_USER = 100 }; diff --git a/retroshare-gui/src/gui/msgs/MessagesDialog.cpp b/retroshare-gui/src/gui/msgs/MessagesDialog.cpp index 68553e95d..cbe2172f2 100644 --- a/retroshare-gui/src/gui/msgs/MessagesDialog.cpp +++ b/retroshare-gui/src/gui/msgs/MessagesDialog.cpp @@ -63,6 +63,8 @@ #define IMAGE_NOTFICATION ":/icons/notification.png" #define IMAGE_SPAM_ON ":/images/junk_on.png" #define IMAGE_SPAM_OFF ":/images/junk_off.png" +#define IMAGE_ATTACHMENTS ":/icons/mail/attach24.png" +#define IMAGE_ATTACHMENT ":/icons/mail/attach16.png" #define IMAGE_INBOX ":/images/folder-inbox.png" #define IMAGE_OUTBOX ":/images/folder-outbox.png" @@ -82,6 +84,7 @@ #define QUICKVIEW_STATIC_ID_STARRED 1 #define QUICKVIEW_STATIC_ID_SYSTEM 2 #define QUICKVIEW_STATIC_ID_SPAM 3 +#define QUICKVIEW_STATIC_ID_ATTACHMENT 4 #define ROW_INBOX 0 #define ROW_OUTBOX 1 @@ -446,6 +449,16 @@ void MessagesDialog::fillQuickView() itemToSelect = item; } + item = new QListWidgetItem(tr("Attachment"), ui.quickViewWidget); + item->setIcon(QIcon(IMAGE_ATTACHMENT)); + item->setData(ROLE_QUICKVIEW_TYPE, QUICKVIEW_TYPE_STATIC); + item->setData(ROLE_QUICKVIEW_ID, QUICKVIEW_STATIC_ID_ATTACHMENT); + item->setData(ROLE_QUICKVIEW_TEXT, item->text()); // for updateMessageSummaryList + + if (selectedType == QUICKVIEW_TYPE_STATIC && selectedId == QUICKVIEW_STATIC_ID_ATTACHMENT) { + itemToSelect = item; + } + for (tag = tags.types.begin(); tag != tags.types.end(); ++tag) { text = TagDefs::name(tag->first, tag->second.first); @@ -835,23 +848,27 @@ void MessagesDialog::changeQuickView(int newrow) ui.tabWidget->setTabText(0, tr("Spam")); ui.tabWidget->setTabIcon(0, QIcon(IMAGE_SPAM_ON)); break; - case 0x03: f = RsMessageModel::QUICK_VIEW_IMPORTANT; + case 0x03: f = RsMessageModel::QUICK_VIEW_ATTACHMENT ; + ui.tabWidget->setTabText(0, tr("Attachment")); + ui.tabWidget->setTabIcon(0, QIcon(IMAGE_ATTACHMENT)); + break; + case 0x04: f = RsMessageModel::QUICK_VIEW_IMPORTANT; ui.tabWidget->setTabText(0, tr("Important")); ui.tabWidget->setTabIcon(0, QIcon(IMAGE_FOLDER)); break; - case 0x04: f = RsMessageModel::QUICK_VIEW_WORK ; + case 0x05: f = RsMessageModel::QUICK_VIEW_WORK ; ui.tabWidget->setTabText(0, tr("Work")); ui.tabWidget->setTabIcon(0, QIcon(IMAGE_FOLDER)); break; - case 0x05: f = RsMessageModel::QUICK_VIEW_PERSONAL ; + case 0x06: f = RsMessageModel::QUICK_VIEW_PERSONAL ; ui.tabWidget->setTabText(0, tr("Personal")); ui.tabWidget->setTabIcon(0, QIcon(IMAGE_FOLDER)); break; - case 0x06: f = RsMessageModel::QUICK_VIEW_TODO ; + case 0x07: f = RsMessageModel::QUICK_VIEW_TODO ; ui.tabWidget->setTabText(0, tr("Todo")); ui.tabWidget->setTabIcon(0, QIcon(IMAGE_FOLDER)); break; - case 0x07: f = RsMessageModel::QUICK_VIEW_LATER ; + case 0x08: f = RsMessageModel::QUICK_VIEW_LATER ; ui.tabWidget->setTabText(0, tr("Later")); ui.tabWidget->setTabIcon(0, QIcon(IMAGE_FOLDER)); break; @@ -1160,6 +1177,7 @@ void MessagesDialog::updateMessageSummaryList() unsigned int starredCount = 0; unsigned int systemCount = 0; unsigned int spamCount = 0; + unsigned int attachmentCount = 0; /* calculating the new messages */ @@ -1354,6 +1372,9 @@ void MessagesDialog::updateMessageSummaryList() case QUICKVIEW_STATIC_ID_SPAM: text += " (" + QString::number(spamCount) + ")"; break; + case QUICKVIEW_STATIC_ID_ATTACHMENT: + text += " (" + QString::number(attachmentCount) + ")"; + break; } item->setText(text);