From eee6cd06373fad1ab36625113b71dd5622861a81 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 7 Apr 2015 07:08:31 +0200 Subject: [PATCH] Many fixes around, some advancements in podcasting. --- src/core/messagesmodel.cpp | 7 ++++++- src/core/messagesmodel.h | 28 ++++++++++++++++++++++++++++ src/definitions/definitions.h.in | 2 ++ src/gui/messagesview.cpp | 8 ++++++++ 4 files changed, 44 insertions(+), 1 deletion(-) mode change 100644 => 100755 src/core/messagesmodel.h diff --git a/src/core/messagesmodel.cpp b/src/core/messagesmodel.cpp index 9b3009ba1..6813844e9 100755 --- a/src/core/messagesmodel.cpp +++ b/src/core/messagesmodel.cpp @@ -55,6 +55,10 @@ void MessagesModel::setupIcons() { m_unreadIcon = qApp->icons()->fromTheme("mail-mark-unread"); } +MessagesModel::MessageMode MessagesModel::messageMode() const { + return m_messageMode; +} + void MessagesModel::fetchAll() { while (canFetchMore()) { fetchMore(); @@ -154,7 +158,8 @@ void MessagesModel::setupHeaderData() { tr("Id of feed which this message belongs to.") << tr("Title of the message.") << tr("Url of the message.") << tr("Author of the message.") << tr("Creation date of the message.") << - tr("Contents of the message.") << tr("Is message permanently deleted from recycle bin?"); + tr("Contents of the message.") << tr("Is message permanently deleted from recycle bin?") << + tr("List of attachments."); } Qt::ItemFlags MessagesModel::flags(const QModelIndex &index) const { diff --git a/src/core/messagesmodel.h b/src/core/messagesmodel.h old mode 100644 new mode 100755 index 2812ce5cb..e5ac9357c --- a/src/core/messagesmodel.h +++ b/src/core/messagesmodel.h @@ -26,11 +26,36 @@ #include +// Represents single enclosure. +class Enclosure { + public: + explicit Enclosure() { + m_url = m_title = ""; + } + + static QList decodeEnclosuresFromString(const QString &enclosures_data) { + QList enclosures; + + foreach (const QString &single_enclosure, enclosures_data.split(ENCLOSURES_OUTER_SEPARATOR, QString::SkipEmptyParts)) { + Enclosure final_enclosure; + final_enclosure.m_url = QByteArray::fromBase64(single_enclosure.toUtf8()); + + enclosures.append(final_enclosure); + } + + return enclosures; + } + + QString m_url; + QString m_title; +}; + // Represents single message. class Message { public: explicit Message() { m_title = m_url = m_author = m_contents = ""; + m_enclosures = QList(); } QString m_title; @@ -39,6 +64,8 @@ class Message { QString m_contents; QDateTime m_created; + QList m_enclosures; + // Is true if "created" date was obtained directly // from the feed, otherwise is false bool m_createdFromFeed; @@ -81,6 +108,7 @@ class MessagesModel : public QSqlTableModel { } void updateDateFormat(); + MessageMode messageMode() const; public slots: // To disable persistent changes submissions. diff --git a/src/definitions/definitions.h.in b/src/definitions/definitions.h.in index 768746cff..9839d42a7 100755 --- a/src/definitions/definitions.h.in +++ b/src/definitions/definitions.h.in @@ -38,6 +38,8 @@ #define APP_USERAGENT QString("@APP_NAME@/@APP_VERSION@ (@APP_URL@) on @CMAKE_SYSTEM@") #define APP_DONATE_URL "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=XMWPLPK893VH4" +#define ENCLOSURES_OUTER_SEPARATOR '#' + #define URI_SCHEME_FEED "feed://" #define URI_SCHEME_HTTP "http://" #define RELEASES_LIST "https://bitbucket.org/skunkos/rssguard/raw/master/resources/text/UPDATES?at=master" diff --git a/src/gui/messagesview.cpp b/src/gui/messagesview.cpp index 442cf9e18..eabd52090 100755 --- a/src/gui/messagesview.cpp +++ b/src/gui/messagesview.cpp @@ -148,6 +148,13 @@ void MessagesView::contextMenuEvent(QContextMenuEvent *event) { initializeContextMenu(); } + if (sourceModel()->messageMode() != MessagesModel::MessagesFromRecycleBin) { + m_contextMenu->removeAction(qApp->mainForm()->m_ui->m_actionRestoreSelectedMessagesFromRecycleBin); + } + else { + m_contextMenu->addAction(qApp->mainForm()->m_ui->m_actionRestoreSelectedMessagesFromRecycleBin); + } + m_contextMenu->exec(event->globalPos()); } @@ -494,6 +501,7 @@ void MessagesView::adjustColumns() { hideColumn(MSG_DB_URL_INDEX); hideColumn(MSG_DB_CONTENTS_INDEX); hideColumn(MSG_DB_PDELETED_INDEX); + hideColumn(MSG_DB_ENCLOSURES_INDEX); qDebug("Adjusting column resize modes for MessagesView."); }