Added "Accounts" menu and some minor TT-RSS stuff.

This commit is contained in:
Martin Rotter 2015-12-14 09:47:03 +01:00
parent 7d13039533
commit 7b7fe704d2
9 changed files with 84 additions and 38 deletions

View file

@ -197,34 +197,6 @@ void FormMain::updateAddItemMenu() {
m_ui->m_menuAddItem->addMenu(root_menu);
}
if (m_ui->m_menuAddItem->actions().size() > 0) {
m_ui->m_menuAddItem->addSeparator();
}
m_ui->m_menuAddItem->addAction(m_ui->m_actionServiceAdd);
/*
* foreach (ServiceRoot *activated_root, tabWidget()->feedMessageViewer()->feedsView()->sourceModel()->serviceRoots()) {
QMenu *root_menu = new QMenu(activated_root->title(), m_ui->m_menuServices);
root_menu->setIcon(activated_root->icon());
root_menu->setToolTip(activated_root->description());
QList<QAction*> root_actions = activated_root->serviceMenu();
if (root_actions.isEmpty()) {
QAction *no_action = new QAction(qApp->icons()->fromTheme(QSL("dialog-error")),
tr("No possible actions"),
m_ui->m_menuServices);
no_action->setEnabled(false);
root_menu->addAction(no_action);
}
else {
root_menu->addActions(root_actions);
}
m_ui->m_menuServices->addMenu(root_menu);
}*/
}
void FormMain::updateRecycleBinMenu() {
@ -270,6 +242,39 @@ void FormMain::updateRecycleBinMenu() {
m_ui->m_menuRecycleBin->addAction(m_ui->m_actionEmptyAllRecycleBins);
}
void FormMain::updateAccountsMenu() {
m_ui->m_menuAccounts->clear();
foreach (ServiceRoot *activated_root, tabWidget()->feedMessageViewer()->feedsView()->sourceModel()->serviceRoots()) {
QMenu *root_menu = new QMenu(activated_root->title(), m_ui->m_menuAccounts);
root_menu->setIcon(activated_root->icon());
root_menu->setToolTip(activated_root->description());
QList<QAction*> root_actions = activated_root->serviceMenu();
if (root_actions.isEmpty()) {
QAction *no_action = new QAction(qApp->icons()->fromTheme(QSL("dialog-error")),
tr("No possible actions"),
m_ui->m_menuAccounts);
no_action->setEnabled(false);
root_menu->addAction(no_action);
}
else {
root_menu->addActions(root_actions);
}
m_ui->m_menuAccounts->addMenu(root_menu);
}
if (m_ui->m_menuAccounts->actions().size() > 0) {
m_ui->m_menuAccounts->addSeparator();
}
m_ui->m_menuAccounts->addAction(m_ui->m_actionServiceAdd);
m_ui->m_menuAccounts->addAction(m_ui->m_actionServiceEdit);
m_ui->m_menuAccounts->addAction(m_ui->m_actionServiceDelete);
}
void FormMain::switchVisibility(bool force_hide) {
if (force_hide || isVisible()) {
if (SystemTrayIcon::isSystemTrayActivated()) {
@ -368,6 +373,8 @@ void FormMain::setupIcons() {
m_ui->m_actionRestoreAllRecycleBins->setIcon(icon_theme_factory->fromTheme(QSL("recycle-bin-restore-all")));
m_ui->m_actionEmptyAllRecycleBins->setIcon(icon_theme_factory->fromTheme(QSL("recycle-bin-empty")));
m_ui->m_actionServiceAdd->setIcon(icon_theme_factory->fromTheme(QSL("item-new")));
m_ui->m_actionServiceEdit->setIcon(icon_theme_factory->fromTheme(QSL("item-edit")));
m_ui->m_actionServiceDelete->setIcon(icon_theme_factory->fromTheme(QSL("item-remove")));
// Setup icons for underlying components: opened web browsers...
foreach (WebBrowser *browser, WebBrowser::runningWebBrowsers()) {
@ -442,6 +449,10 @@ void FormMain::createConnections() {
connect(m_ui->m_menuAddItem, SIGNAL(aboutToShow()), this, SLOT(updateAddItemMenu()));
connect(m_ui->m_menuRecycleBin, SIGNAL(aboutToShow()), this, SLOT(updateRecycleBinMenu()));
connect(m_ui->m_menuAccounts, SIGNAL(aboutToShow()), this, SLOT(updateAccountsMenu()));
connect(m_ui->m_actionServiceDelete, SIGNAL(triggered()), m_ui->m_actionDeleteSelectedItem, SIGNAL(triggered()));
connect(m_ui->m_actionServiceEdit, SIGNAL(triggered()), m_ui->m_actionEditSelectedItem, SIGNAL(triggered()));
// Menu "File" connections.
connect(m_ui->m_actionBackupDatabaseSettings, SIGNAL(triggered()), this, SLOT(backupDatabaseSettings()));

View file

@ -76,6 +76,7 @@ class FormMain : public QMainWindow {
private slots:
void updateAddItemMenu();
void updateRecycleBinMenu();
void updateAccountsMenu();
// Loads web browser menu if user selects to change tabs.
void loadWebBrowserMenu(int index);

View file

@ -126,13 +126,12 @@
</widget>
<widget class="QMenu" name="m_menuFeeds">
<property name="title">
<string>Feeds &amp;&amp; categories &amp;&amp; accounts</string>
<string>Feeds &amp;&amp; categories</string>
</property>
<widget class="QMenu" name="m_menuAddItem">
<property name="title">
<string>Add &amp;new item</string>
</property>
<addaction name="m_actionServiceAdd"/>
</widget>
<addaction name="m_actionUpdateAllItems"/>
<addaction name="m_actionUpdateSelectedItems"/>
@ -181,8 +180,17 @@
<addaction name="m_actionRestoreAllRecycleBins"/>
<addaction name="m_actionEmptyAllRecycleBins"/>
</widget>
<widget class="QMenu" name="m_menuAccounts">
<property name="title">
<string>&amp;Accounts</string>
</property>
<addaction name="m_actionServiceAdd"/>
<addaction name="m_actionServiceEdit"/>
<addaction name="m_actionServiceDelete"/>
</widget>
<addaction name="m_menuFile"/>
<addaction name="m_menuView"/>
<addaction name="m_menuAccounts"/>
<addaction name="m_menuFeeds"/>
<addaction name="m_menuMessages"/>
<addaction name="m_menuRecycleBin"/>
@ -705,7 +713,7 @@
</action>
<action name="m_actionServiceAdd">
<property name="text">
<string>&amp;Add new service account</string>
<string>&amp;Add new account</string>
</property>
<property name="shortcut">
<string notr="true"/>
@ -757,6 +765,22 @@
<string notr="true"/>
</property>
</action>
<action name="m_actionServiceEdit">
<property name="text">
<string>&amp;Edit selected account</string>
</property>
<property name="shortcut">
<string notr="true"/>
</property>
</action>
<action name="m_actionServiceDelete">
<property name="text">
<string>&amp;Delete selected account</string>
</property>
<property name="shortcut">
<string notr="true"/>
</property>
</action>
</widget>
<customwidgets>
<customwidget>

View file

@ -211,7 +211,12 @@ void FeedMessageViewer::updateFeedButtonsAvailability() {
form_main->m_ui->m_actionUpdateSelectedItems->setEnabled(!critical_action_running && (feed_selected || category_selected || service_selected));
form_main->m_ui->m_actionViewSelectedItemsNewspaperMode->setEnabled(anything_selected);
form_main->m_ui->m_actionExpandCollapseItem->setEnabled(anything_selected);
form_main->m_ui->m_actionServiceDelete->setEnabled(service_selected);
form_main->m_ui->m_actionServiceEdit->setEnabled(service_selected);
form_main->m_ui->m_menuAddItem->setEnabled(!critical_action_running);
form_main->m_ui->m_menuAccounts->setEnabled(!critical_action_running);
form_main->m_ui->m_menuRecycleBin->setEnabled(!critical_action_running);
}

View file

@ -39,7 +39,7 @@ QVariant Feed::data(int column, int role) const {
case NewMessages:
return QColor(Qt::blue);
case NetworkError:
case Error:
return QColor(Qt::red);
default:

View file

@ -43,7 +43,7 @@ class Feed : public RootItem {
enum Status {
Normal = 0,
NewMessages = 1,
NetworkError = 2,
Error = 2,
ParsingError = 3,
OtherError = 4
};

View file

@ -447,7 +447,7 @@ int StandardFeed::update() {
if (m_networkError != QNetworkReply::NoError) {
qWarning("Error during fetching of new messages for feed '%s' (id %d).", qPrintable(url()), id());
setStatus(NetworkError);
setStatus(Error);
return 0;
}
else if (status() != NewMessages) {

View file

@ -96,7 +96,7 @@ int TtRssFeed::update() {
true, true, false, error);
if (error != QNetworkReply::NoError) {
setStatus(Feed::NetworkError);
setStatus(Feed::Error);
return 0;
}
else {
@ -273,9 +273,6 @@ int TtRssFeed::updateMessages(const QList<Message> &messages) {
if (query_insert.exec() && query_insert.numRowsAffected() == 1) {
updated_messages++;
}
else {
QString str = query_insert.lastError().text();
}
query_insert.finish();

View file

@ -531,6 +531,11 @@ void TtRssServiceRoot::completelyRemoveAllData() {
}
void TtRssServiceRoot::syncIn() {
QIcon original_icon = icon();
setIcon(qApp->icons()->fromTheme(QSL("item-sync")));
itemChanged(QList<RootItem*>() << this);
QNetworkReply::NetworkError err;
TtRssGetFeedsCategoriesResponse feed_cats_response = m_network->getFeedsCategories(err);
@ -561,6 +566,9 @@ void TtRssServiceRoot::syncIn() {
requestReloadMessageList(true);
requestItemExpand(all_items, true);
}
setIcon(original_icon);
itemChanged(QList<RootItem*>() << this);
}
QStringList TtRssServiceRoot::customIDsOfMessages(const QList<QPair<Message,RootItem::Importance> > &changes) {