Work and adding/editing feeds.

This commit is contained in:
Martin Rotter 2014-01-30 14:37:28 +01:00
parent 75ea2a6e38
commit 45414e9949
9 changed files with 72 additions and 39 deletions

View File

@ -263,6 +263,16 @@ bool FeedsModel::editStandardCategory(FeedsModelStandardCategory *original_categ
return true; return true;
} }
bool FeedsModel::addStandardFeed(FeedsModelStandardFeed *feed,
FeedsModelRootItem *parent) {
return false;
}
bool FeedsModel::editStandardFeed(FeedsModelStandardFeed *original_feed,
FeedsModelStandardFeed *new_feed) {
return false;
}
QList<Message> FeedsModel::messagesForFeeds(const QList<FeedsModelFeed*> &feeds) { QList<Message> FeedsModel::messagesForFeeds(const QList<FeedsModelFeed*> &feeds) {
QList<Message> messages; QList<Message> messages;

View File

@ -57,11 +57,10 @@ class FeedsModel : public QAbstractItemModel {
FeedsModelStandardCategory *new_category); FeedsModelStandardCategory *new_category);
// Standard feed manipulators. // Standard feed manipulators.
/*
bool addStandardFeed(FeedsModelStandardFeed *feed, bool addStandardFeed(FeedsModelStandardFeed *feed,
FeedsModelRootItem *parent); FeedsModelRootItem *parent);
bool removeStandardFeed(FeedsModelStandardFeed *feed); bool editStandardFeed(FeedsModelStandardFeed *original_feed,
*/ FeedsModelStandardFeed *new_feed);
// Returns (undeleted) messages for given feeds. // Returns (undeleted) messages for given feeds.
QList<Message> messagesForFeeds(const QList<FeedsModelFeed*> &feeds); QList<Message> messagesForFeeds(const QList<FeedsModelFeed*> &feeds);

View File

@ -207,9 +207,9 @@ void FeedMessageViewer::createConnections() {
SIGNAL(triggered()), m_messagesView, SLOT(openSelectedMessagesInternally())); SIGNAL(triggered()), m_messagesView, SLOT(openSelectedMessagesInternally()));
connect(FormMain::instance()->m_ui->m_actionMarkAllFeedsRead, connect(FormMain::instance()->m_ui->m_actionMarkAllFeedsRead,
SIGNAL(triggered()), m_feedsView, SLOT(markAllFeedsRead())); SIGNAL(triggered()), m_feedsView, SLOT(markAllFeedsRead()));
connect(FormMain::instance()->m_ui->m_actionMarkFeedsAsRead, connect(FormMain::instance()->m_ui->m_actionMarkSelectedFeedsAsRead,
SIGNAL(triggered()), m_feedsView, SLOT(markSelectedFeedsRead())); SIGNAL(triggered()), m_feedsView, SLOT(markSelectedFeedsRead()));
connect(FormMain::instance()->m_ui->m_actionMarkFeedsAsUnread, connect(FormMain::instance()->m_ui->m_actionMarkSelectedFeedsAsUnread,
SIGNAL(triggered()), m_feedsView, SLOT(markSelectedFeedsUnread())); SIGNAL(triggered()), m_feedsView, SLOT(markSelectedFeedsUnread()));
connect(FormMain::instance()->m_ui->m_actionClearFeeds, connect(FormMain::instance()->m_ui->m_actionClearFeeds,
SIGNAL(triggered()), m_feedsView, SLOT(clearSelectedFeeds())); SIGNAL(triggered()), m_feedsView, SLOT(clearSelectedFeeds()));
@ -244,8 +244,8 @@ void FeedMessageViewer::initialize() {
m_toolBar->addAction(FormMain::instance()->m_ui->m_actionEditSelectedFeedCategory); m_toolBar->addAction(FormMain::instance()->m_ui->m_actionEditSelectedFeedCategory);
m_toolBar->addAction(FormMain::instance()->m_ui->m_actionDeleteSelectedFeedCategory); m_toolBar->addAction(FormMain::instance()->m_ui->m_actionDeleteSelectedFeedCategory);
m_toolBar->addSeparator(); m_toolBar->addSeparator();
m_toolBar->addAction(FormMain::instance()->m_ui->m_actionMarkFeedsAsRead); m_toolBar->addAction(FormMain::instance()->m_ui->m_actionMarkSelectedFeedsAsRead);
m_toolBar->addAction(FormMain::instance()->m_ui->m_actionMarkFeedsAsUnread); m_toolBar->addAction(FormMain::instance()->m_ui->m_actionMarkSelectedFeedsAsUnread);
m_toolBar->addAction(FormMain::instance()->m_ui->m_actionClearFeeds); m_toolBar->addAction(FormMain::instance()->m_ui->m_actionClearFeeds);
// Finish web/message browser setup. // Finish web/message browser setup.

View File

@ -360,8 +360,8 @@ void FeedsView::initializeContextMenuCategoriesFeeds() {
m_contextMenuCategoriesFeeds->addActions(QList<QAction*>() << m_contextMenuCategoriesFeeds->addActions(QList<QAction*>() <<
FormMain::instance()->m_ui->m_actionUpdateSelectedFeedsCategories << FormMain::instance()->m_ui->m_actionUpdateSelectedFeedsCategories <<
FormMain::instance()->m_ui->m_actionViewSelectedItemsNewspaperMode << FormMain::instance()->m_ui->m_actionViewSelectedItemsNewspaperMode <<
FormMain::instance()->m_ui->m_actionMarkFeedsAsRead << FormMain::instance()->m_ui->m_actionMarkSelectedFeedsAsRead <<
FormMain::instance()->m_ui->m_actionMarkFeedsAsUnread); FormMain::instance()->m_ui->m_actionMarkSelectedFeedsAsUnread);
} }
void FeedsView::initializeContextMenuEmptySpace() { void FeedsView::initializeContextMenuEmptySpace() {

View File

@ -71,8 +71,8 @@ QList<QAction*> FormMain::allActions() {
actions << m_ui->m_actionOpenSelectedSourceArticlesExternally << actions << m_ui->m_actionOpenSelectedSourceArticlesExternally <<
m_ui->m_actionOpenSelectedSourceArticlesInternally << m_ui->m_actionOpenSelectedSourceArticlesInternally <<
m_ui->m_actionOpenSelectedMessagesInternally << m_ui->m_actionOpenSelectedMessagesInternally <<
m_ui->m_actionMarkFeedsAsRead << m_ui->m_actionMarkSelectedFeedsAsRead <<
m_ui->m_actionMarkFeedsAsUnread << m_ui->m_actionMarkSelectedFeedsAsUnread <<
m_ui->m_actionClearFeeds << m_ui->m_actionClearFeeds <<
m_ui->m_actionMarkSelectedMessagesAsRead << m_ui->m_actionMarkSelectedMessagesAsRead <<
m_ui->m_actionMarkSelectedMessagesAsUnread << m_ui->m_actionMarkSelectedMessagesAsUnread <<
@ -97,6 +97,7 @@ void FormMain::prepareMenus() {
// Add needed items to the menu. // Add needed items to the menu.
m_trayMenu->addAction(m_ui->m_actionUpdateAllFeeds); m_trayMenu->addAction(m_ui->m_actionUpdateAllFeeds);
m_trayMenu->addAction(m_ui->m_actionMarkAllFeedsRead);
m_trayMenu->addSeparator(); m_trayMenu->addSeparator();
m_trayMenu->addAction(m_ui->m_actionSettings); m_trayMenu->addAction(m_ui->m_actionSettings);
m_trayMenu->addAction(m_ui->m_actionQuit); m_trayMenu->addAction(m_ui->m_actionQuit);
@ -214,6 +215,7 @@ void FormMain::setupIcons() {
m_ui->m_menuCurrentTab->setIcon(IconThemeFactory::instance()->fromTheme("go-home")); m_ui->m_menuCurrentTab->setIcon(IconThemeFactory::instance()->fromTheme("go-home"));
// Feeds/messages. // Feeds/messages.
m_ui->m_menuAddItem->setIcon(IconThemeFactory::instance()->fromTheme("document-new"));
m_ui->m_actionUpdateAllFeeds->setIcon(IconThemeFactory::instance()->fromTheme("document-save-as")); m_ui->m_actionUpdateAllFeeds->setIcon(IconThemeFactory::instance()->fromTheme("document-save-as"));
m_ui->m_actionUpdateSelectedFeedsCategories->setIcon(IconThemeFactory::instance()->fromTheme("document-save")); m_ui->m_actionUpdateSelectedFeedsCategories->setIcon(IconThemeFactory::instance()->fromTheme("document-save"));
m_ui->m_actionClearFeeds->setIcon(IconThemeFactory::instance()->fromTheme("mail-mark-junk")); m_ui->m_actionClearFeeds->setIcon(IconThemeFactory::instance()->fromTheme("mail-mark-junk"));
@ -223,9 +225,8 @@ void FormMain::setupIcons() {
m_ui->m_actionAddStandardFeed->setIcon(IconThemeFactory::instance()->fromTheme("document-new")); m_ui->m_actionAddStandardFeed->setIcon(IconThemeFactory::instance()->fromTheme("document-new"));
m_ui->m_actionEditSelectedFeedCategory->setIcon(IconThemeFactory::instance()->fromTheme("gnome-other")); m_ui->m_actionEditSelectedFeedCategory->setIcon(IconThemeFactory::instance()->fromTheme("gnome-other"));
m_ui->m_actionMarkAllFeedsRead->setIcon(IconThemeFactory::instance()->fromTheme("mail-mark-not-junk")); m_ui->m_actionMarkAllFeedsRead->setIcon(IconThemeFactory::instance()->fromTheme("mail-mark-not-junk"));
m_ui->m_actionMarkFeedsAsRead->setIcon(IconThemeFactory::instance()->fromTheme("mail-mark-not-junk")); m_ui->m_actionMarkSelectedFeedsAsRead->setIcon(IconThemeFactory::instance()->fromTheme("mail-mark-not-junk"));
m_ui->m_actionMarkFeedsAsUnread->setIcon(IconThemeFactory::instance()->fromTheme("mail-mark-important")); m_ui->m_actionMarkSelectedFeedsAsUnread->setIcon(IconThemeFactory::instance()->fromTheme("mail-mark-important"));
m_ui->m_actionMarkFeedsAsRead->setIcon(IconThemeFactory::instance()->fromTheme("mail-mark-not-junk"));
m_ui->m_actionMarkSelectedMessagesAsRead->setIcon(IconThemeFactory::instance()->fromTheme("mail-mark-not-junk")); m_ui->m_actionMarkSelectedMessagesAsRead->setIcon(IconThemeFactory::instance()->fromTheme("mail-mark-not-junk"));
m_ui->m_actionMarkSelectedMessagesAsUnread->setIcon(IconThemeFactory::instance()->fromTheme("mail-mark-important")); m_ui->m_actionMarkSelectedMessagesAsUnread->setIcon(IconThemeFactory::instance()->fromTheme("mail-mark-important"));
m_ui->m_actionSwitchImportanceOfSelectedMessages->setIcon(IconThemeFactory::instance()->fromTheme("favorites")); m_ui->m_actionSwitchImportanceOfSelectedMessages->setIcon(IconThemeFactory::instance()->fromTheme("favorites"));

View File

@ -94,18 +94,24 @@
<property name="title"> <property name="title">
<string>Fee&amp;ds &amp;&amp; categories</string> <string>Fee&amp;ds &amp;&amp; categories</string>
</property> </property>
<widget class="QMenu" name="m_menuAddItem">
<property name="title">
<string>Add new item</string>
</property>
<addaction name="m_actionAddStandardCategory"/>
<addaction name="m_actionAddStandardFeed"/>
</widget>
<addaction name="m_actionUpdateAllFeeds"/> <addaction name="m_actionUpdateAllFeeds"/>
<addaction name="m_actionUpdateSelectedFeedsCategories"/> <addaction name="m_actionUpdateSelectedFeedsCategories"/>
<addaction name="separator"/> <addaction name="separator"/>
<addaction name="m_actionAddStandardFeed"/> <addaction name="m_menuAddItem"/>
<addaction name="m_actionAddStandardCategory"/>
<addaction name="m_actionEditSelectedFeedCategory"/> <addaction name="m_actionEditSelectedFeedCategory"/>
<addaction name="m_actionDeleteSelectedFeedCategory"/> <addaction name="m_actionDeleteSelectedFeedCategory"/>
<addaction name="separator"/> <addaction name="separator"/>
<addaction name="m_actionViewSelectedItemsNewspaperMode"/> <addaction name="m_actionViewSelectedItemsNewspaperMode"/>
<addaction name="m_actionMarkAllFeedsRead"/> <addaction name="m_actionMarkAllFeedsRead"/>
<addaction name="m_actionMarkFeedsAsRead"/> <addaction name="m_actionMarkSelectedFeedsAsRead"/>
<addaction name="m_actionMarkFeedsAsUnread"/> <addaction name="m_actionMarkSelectedFeedsAsUnread"/>
<addaction name="m_actionClearFeeds"/> <addaction name="m_actionClearFeeds"/>
</widget> </widget>
<widget class="QMenu" name="m_menuMessages"> <widget class="QMenu" name="m_menuMessages">
@ -292,7 +298,7 @@
<string notr="true"/> <string notr="true"/>
</property> </property>
</action> </action>
<action name="m_actionMarkFeedsAsRead"> <action name="m_actionMarkSelectedFeedsAsRead">
<property name="text"> <property name="text">
<string>Mark &amp;selected items read</string> <string>Mark &amp;selected items read</string>
</property> </property>
@ -300,7 +306,7 @@
<string>Mark all messages (without message filters) from selected feeds as read.</string> <string>Mark all messages (without message filters) from selected feeds as read.</string>
</property> </property>
</action> </action>
<action name="m_actionMarkFeedsAsUnread"> <action name="m_actionMarkSelectedFeedsAsUnread">
<property name="text"> <property name="text">
<string>Mark selected items unread</string> <string>Mark selected items unread</string>
</property> </property>
@ -326,10 +332,10 @@
</action> </action>
<action name="m_actionAddStandardFeed"> <action name="m_actionAddStandardFeed">
<property name="text"> <property name="text">
<string>Add new standard &amp;feed</string> <string>Standard &amp;feed</string>
</property> </property>
<property name="toolTip"> <property name="toolTip">
<string>Add new feed.</string> <string>Add new standard feed.</string>
</property> </property>
</action> </action>
<action name="m_actionOpenSelectedSourceArticlesExternally"> <action name="m_actionOpenSelectedSourceArticlesExternally">
@ -367,7 +373,7 @@
</action> </action>
<action name="m_actionAddStandardCategory"> <action name="m_actionAddStandardCategory">
<property name="text"> <property name="text">
<string>Add new standard &amp;category</string> <string>Standard &amp;category</string>
</property> </property>
<property name="toolTip"> <property name="toolTip">
<string>Add new standard category.</string> <string>Add new standard category.</string>

View File

@ -133,8 +133,37 @@ void FormStandardFeedDetails::onUseDefaultIcon() {
m_ui->m_btnIcon->setIcon(IconThemeFactory::instance()->fromTheme("application-rss+xml")); m_ui->m_btnIcon->setIcon(IconThemeFactory::instance()->fromTheme("application-rss+xml"));
} }
void FormStandardFeedDetails::apply() {
FeedsModelRootItem *parent = static_cast<FeedsModelRootItem*>(m_ui->m_cmbParentCategory->itemData(m_ui->m_cmbParentCategory->currentIndex()).value<void*>());
FeedsModelStandardFeed *new_feed = new FeedsModelStandardFeed();
// TODO: Setup data for new_feed.
if (m_editableFeed == NULL) {
// TODO: Add the feed.
// Add the category.
if (m_feedsModel->addStandardFeed(new_feed, parent)) {
accept();
}
else {
// TODO: hlasit chybu
}
}
else {
// TODO: Edit the feed.
if (m_feedsModel->editStandardFeed(m_editableFeed, new_feed)) {
accept();
}
else {
// TODO: hlasit chybu
}
}
}
void FormStandardFeedDetails::createConnections() { void FormStandardFeedDetails::createConnections() {
// General connections. // General connections.
connect(m_ui->m_buttonBox, SIGNAL(accepted()),
this, SLOT(apply()));
connect(m_ui->m_txtTitle->lineEdit(), SIGNAL(textChanged(QString)), connect(m_ui->m_txtTitle->lineEdit(), SIGNAL(textChanged(QString)),
this, SLOT(onTitleChanged(QString))); this, SLOT(onTitleChanged(QString)));
connect(m_ui->m_txtDescription->lineEdit(), SIGNAL(textChanged(QString)), connect(m_ui->m_txtDescription->lineEdit(), SIGNAL(textChanged(QString)),

View File

@ -28,11 +28,15 @@ class FormStandardFeedDetails : public QDialog {
int exec(FeedsModelStandardFeed *input_feed); int exec(FeedsModelStandardFeed *input_feed);
protected slots: protected slots:
// Applies changes.
void apply();
// Trigerred when title/description/url changes. // Trigerred when title/description/url changes.
void onTitleChanged(const QString &new_title); void onTitleChanged(const QString &new_title);
void onDescriptionChanged(const QString &new_description); void onDescriptionChanged(const QString &new_description);
void onUrlChanged(const QString &new_url); void onUrlChanged(const QString &new_url);
// Check if "OK" button can be enabled or not.
void checkOkButtonEnabled(); void checkOkButtonEnabled();
// Icon selectors. // Icon selectors.

View File

@ -174,22 +174,6 @@
</customwidgets> </customwidgets>
<resources/> <resources/>
<connections> <connections>
<connection>
<sender>m_buttonBox</sender>
<signal>accepted()</signal>
<receiver>FormStandardFeedDetails</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection> <connection>
<sender>m_buttonBox</sender> <sender>m_buttonBox</sender>
<signal>rejected()</signal> <signal>rejected()</signal>