diff --git a/src/core/parsingfactory.cpp b/src/core/parsingfactory.cpp index fc8a96145..af0ccd3ac 100755 --- a/src/core/parsingfactory.cpp +++ b/src/core/parsingfactory.cpp @@ -73,7 +73,7 @@ QList ParsingFactory::parseAsATOM10(const QString &data) { for (int i = 0; i < elem_links.size(); i++) { QDomElement link = elem_links.at(i).toElement(); - if (link.attribute(QSL("rel")) == QL1S("enclosure")) { + if (link.attribute(QSL("rel")) == QSL("enclosure")) { new_message.m_enclosures.append(Enclosure(link.attribute(QSL("href")), link.attribute(QSL("type")))); qDebug("Adding enclosure '%s' for the message.", qPrintable(new_message.m_enclosures.last().m_url)); diff --git a/src/gui/feedsview.cpp b/src/gui/feedsview.cpp index 25abe83f6..654f54014 100755 --- a/src/gui/feedsview.cpp +++ b/src/gui/feedsview.cpp @@ -45,7 +45,8 @@ FeedsView::FeedsView(QWidget *parent) : QTreeView(parent), m_contextMenuCategories(NULL), m_contextMenuFeeds(NULL), - m_contextMenuEmptySpace(NULL) { + m_contextMenuEmptySpace(NULL), + m_contextMenuOtherItems(NULL) { setObjectName(QSL("FeedsView")); // Allocate models. @@ -460,7 +461,7 @@ void FeedsView::selectPreviousItem() { } } -void FeedsView::initializeContextMenuCategories(RootItem *clicked_item) { +QMenu *FeedsView::initializeContextMenuCategories(RootItem *clicked_item) { if (m_contextMenuCategories == NULL) { m_contextMenuCategories = new QMenu(tr("Context menu for categories"), this); } @@ -482,9 +483,11 @@ void FeedsView::initializeContextMenuCategories(RootItem *clicked_item) { m_contextMenuCategories->addSeparator(); m_contextMenuCategories->addActions(specific_actions); } + + return m_contextMenuCategories; } -void FeedsView::initializeContextMenuFeeds(RootItem *clicked_item) { +QMenu *FeedsView::initializeContextMenuFeeds(RootItem *clicked_item) { if (m_contextMenuFeeds == NULL) { m_contextMenuFeeds = new QMenu(tr("Context menu for categories"), this); } @@ -506,12 +509,39 @@ void FeedsView::initializeContextMenuFeeds(RootItem *clicked_item) { m_contextMenuFeeds->addSeparator(); m_contextMenuFeeds->addActions(specific_actions); } + + return m_contextMenuFeeds; } -void FeedsView::initializeContextMenuEmptySpace() { - m_contextMenuEmptySpace = new QMenu(tr("Context menu for empty space"), this); - m_contextMenuEmptySpace->addAction(qApp->mainForm()->m_ui->m_actionUpdateAllItems); - m_contextMenuEmptySpace->addSeparator(); +QMenu *FeedsView::initializeContextMenuEmptySpace() { + if (m_contextMenuEmptySpace == NULL) { + m_contextMenuEmptySpace = new QMenu(tr("Context menu for empty space"), this); + m_contextMenuEmptySpace->addAction(qApp->mainForm()->m_ui->m_actionUpdateAllItems); + m_contextMenuEmptySpace->addSeparator(); + } + + return m_contextMenuEmptySpace; +} + +QMenu *FeedsView::initializeContextMenuOtherItem(RootItem *clicked_item) { + if (m_contextMenuOtherItems == NULL) { + m_contextMenuOtherItems = new QMenu(tr("Context menu for other items"), this); + } + else { + m_contextMenuOtherItems->clear(); + } + + QList specific_actions = clicked_item->contextMenuActions(); + + if (!specific_actions.isEmpty()) { + m_contextMenuOtherItems->addSeparator(); + m_contextMenuOtherItems->addActions(specific_actions); + } + else { + m_contextMenuOtherItems->addAction(qApp->mainForm()->m_ui->m_actionNoActions); + } + + return m_contextMenuOtherItems; } void FeedsView::setupAppearance() { @@ -573,27 +603,21 @@ void FeedsView::contextMenuEvent(QContextMenuEvent *event) { if (clicked_item->kind() == RootItemKind::Category) { // Display context menu for categories. - initializeContextMenuCategories(clicked_item); - m_contextMenuCategories->exec(event->globalPos()); + initializeContextMenuCategories(clicked_item)->exec(event->globalPos()); } else if (clicked_item->kind() == RootItemKind::Feed) { // Display context menu for feeds. - initializeContextMenuFeeds(clicked_item); - m_contextMenuFeeds->exec(event->globalPos()); + initializeContextMenuFeeds(clicked_item)->exec(event->globalPos()); } else { // TODO: volaz specificke menu polozky? zobrazovat menu pro dalsi typy // polozek jako odpadkovy kos atp. + initializeContextMenuOtherItem(clicked_item)->exec(event->globalPos()); } } else { // Display menu for empty space. - if (m_contextMenuEmptySpace == NULL) { - // Context menu is not initialized, initialize. - initializeContextMenuEmptySpace(); - } - - m_contextMenuEmptySpace->exec(event->globalPos()); + initializeContextMenuEmptySpace()->exec(event->globalPos()); } } diff --git a/src/gui/feedsview.h b/src/gui/feedsview.h index 34950f403..0d357c6a5 100755 --- a/src/gui/feedsview.h +++ b/src/gui/feedsview.h @@ -130,9 +130,10 @@ class FeedsView : public QTreeView { private: // Initializes context menus. - void initializeContextMenuCategories(RootItem *clicked_item); - void initializeContextMenuFeeds(RootItem *clicked_item); - void initializeContextMenuEmptySpace(); + QMenu *initializeContextMenuCategories(RootItem *clicked_item); + QMenu *initializeContextMenuFeeds(RootItem *clicked_item); + QMenu *initializeContextMenuEmptySpace(); + QMenu *initializeContextMenuOtherItem(RootItem *clicked_item); // Sets up appearance of this widget. void setupAppearance(); @@ -163,6 +164,7 @@ class FeedsView : public QTreeView { QMenu *m_contextMenuCategories; QMenu *m_contextMenuFeeds; QMenu *m_contextMenuEmptySpace; + QMenu *m_contextMenuOtherItems; FeedsModel *m_sourceModel; FeedsProxyModel *m_proxyModel; diff --git a/src/services/tt-rss/ttrssserviceroot.cpp b/src/services/tt-rss/ttrssserviceroot.cpp index 406512724..e5a9b51a1 100755 --- a/src/services/tt-rss/ttrssserviceroot.cpp +++ b/src/services/tt-rss/ttrssserviceroot.cpp @@ -34,7 +34,6 @@ TtRssServiceRoot::~TtRssServiceRoot() { } bool TtRssServiceRoot::editViaGui() { - // TODO: zobrazit custom edit dialog pro ttrss return false; }