Some fixes for parsing.
This commit is contained in:
parent
f712ae1cf7
commit
42b88b8db7
@ -73,7 +73,7 @@ QList<Message> 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));
|
||||
|
@ -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<QAction*> 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());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -34,7 +34,6 @@ TtRssServiceRoot::~TtRssServiceRoot() {
|
||||
}
|
||||
|
||||
bool TtRssServiceRoot::editViaGui() {
|
||||
// TODO: zobrazit custom edit dialog pro ttrss
|
||||
return false;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user