From 9084361782871de8368ef3bc88d7336cc895bdb6 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Mon, 10 Feb 2014 17:19:43 +0100 Subject: [PATCH] Toolbar cleanup & added option to switch toolbar style. --- src/gui/feedmessageviewer.cpp | 25 +++++++++++++++---------- src/gui/feedmessageviewer.h | 3 +++ src/gui/feedsview.cpp | 11 +++++++++++ src/gui/feedsview.h | 2 ++ src/gui/formmain.cpp | 1 + src/gui/formmain.ui | 12 ++++++++++++ src/gui/formsettings.cpp | 18 ++++++++++++++++++ src/gui/formsettings.ui | 20 +++++++++++++++----- 8 files changed, 77 insertions(+), 15 deletions(-) diff --git a/src/gui/feedmessageviewer.cpp b/src/gui/feedmessageviewer.cpp index 803345def..a7a7689d5 100644 --- a/src/gui/feedmessageviewer.cpp +++ b/src/gui/feedmessageviewer.cpp @@ -111,7 +111,7 @@ void FeedMessageViewer::quit() { } void FeedMessageViewer::updateTrayIconStatus(int unread_messages, - int total_messages) { + int total_messages) { Q_UNUSED(total_messages) if (SystemTrayIcon::isSystemTrayActivated()) { @@ -129,7 +129,7 @@ void FeedMessageViewer::onFeedUpdatesProgress(FeedsModelFeed *feed, // Some feed got updated. m_feedsView->updateCountsOfParticularFeed(feed, true); FormMain::instance()->statusBar()->showProgress((current * 100.0) / total, - tr("Updated feed '%1'").arg(feed->title())); + tr("Updated feed '%1'").arg(feed->title())); } void FeedMessageViewer::onFeedUpdatesFinished() { @@ -212,6 +212,8 @@ void FeedMessageViewer::createConnections() { SIGNAL(triggered()), m_feedsView, SLOT(markSelectedFeedsUnread())); connect(form_main->m_ui->m_actionClearSelectedFeeds, SIGNAL(triggered()), m_feedsView, SLOT(clearSelectedFeeds())); + connect(form_main->m_ui->m_actionClearAllFeeds, + SIGNAL(triggered()), m_feedsView, SLOT(clearAllFeeds())); connect(form_main->m_ui->m_actionUpdateSelectedFeedsCategories, SIGNAL(triggered()), m_feedsView, SLOT(updateSelectedFeeds())); connect(form_main->m_ui->m_actionUpdateAllFeeds, @@ -242,14 +244,9 @@ void FeedMessageViewer::initialize() { // Add everything to toolbar. m_toolBar->addAction(FormMain::instance()->m_ui->m_actionUpdateAllFeeds); m_toolBar->addAction(FormMain::instance()->m_ui->m_actionMarkAllFeedsRead); - m_toolBar->addSeparator(); - m_toolBar->addAction(FormMain::instance()->m_ui->m_actionUpdateSelectedFeedsCategories); - m_toolBar->addAction(FormMain::instance()->m_ui->m_actionEditSelectedFeedCategory); - m_toolBar->addAction(FormMain::instance()->m_ui->m_actionDeleteSelectedFeedCategory); - m_toolBar->addSeparator(); - m_toolBar->addAction(FormMain::instance()->m_ui->m_actionMarkSelectedFeedsAsRead); - m_toolBar->addAction(FormMain::instance()->m_ui->m_actionMarkSelectedFeedsAsUnread); - m_toolBar->addAction(FormMain::instance()->m_ui->m_actionClearSelectedFeeds); + m_toolBar->addAction(FormMain::instance()->m_ui->m_actionClearAllFeeds); + + m_toolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); // Finish web/message browser setup. m_messagesBrowser->setNavigationBarVisible(false); @@ -257,6 +254,8 @@ void FeedMessageViewer::initialize() { // Downloader setup. qRegisterMetaType >("QList"); m_feedDownloader->moveToThread(m_feedDownloaderThread); + + refreshVisualProperties(); } void FeedMessageViewer::initializeViews() { @@ -348,3 +347,9 @@ void FeedMessageViewer::vacuumDatabase() { SystemFactory::instance()->applicationCloseLock()->unlock(); } + +void FeedMessageViewer::refreshVisualProperties() { + m_toolBar->setToolButtonStyle(static_cast(Settings::instance()->value(APP_CFG_GUI, + "toolbar_style", + Qt::ToolButtonIconOnly).toInt())); +} diff --git a/src/gui/feedmessageviewer.h b/src/gui/feedmessageviewer.h index d8cae5469..971385ab0 100644 --- a/src/gui/feedmessageviewer.h +++ b/src/gui/feedmessageviewer.h @@ -46,6 +46,9 @@ class FeedMessageViewer : public TabContent { public slots: void vacuumDatabase(); + // Reloads some changeable visual settings. + void refreshVisualProperties(); + protected slots: // Updates counts of messages for example in tray icon. void updateTrayIconStatus(int unread_messages, int total_messages); diff --git a/src/gui/feedsview.cpp b/src/gui/feedsview.cpp index dc096c229..62eeb34eb 100644 --- a/src/gui/feedsview.cpp +++ b/src/gui/feedsview.cpp @@ -191,10 +191,21 @@ void FeedsView::setSelectedFeedsClearStatus(int clear) { emit feedsNeedToBeReloaded(1); } +void FeedsView::setAllFeedsClearStatus(int clear) { + m_sourceModel->markFeedsDeleted(allFeeds(), clear, 0); + updateCountsOfAllFeeds(); + + emit feedsNeedToBeReloaded(1); +} + void FeedsView::clearSelectedFeeds() { setSelectedFeedsClearStatus(1); } +void FeedsView::clearAllFeeds() { + setAllFeedsClearStatus(1); +} + void FeedsView::addNewStandardCategory() { if (!SystemFactory::instance()->applicationCloseLock()->tryLock()) { // Lock was not obtained because diff --git a/src/gui/feedsview.h b/src/gui/feedsview.h index e34d6edf0..02275d9e5 100644 --- a/src/gui/feedsview.h +++ b/src/gui/feedsview.h @@ -71,7 +71,9 @@ class FeedsView : public QTreeView { // Feed clearers. void setSelectedFeedsClearStatus(int clear); + void setAllFeedsClearStatus(int clear); void clearSelectedFeeds(); + void clearAllFeeds(); void clearAllReadMessages(); // Base manipulators. diff --git a/src/gui/formmain.cpp b/src/gui/formmain.cpp index 4216a197c..3403f1a74 100755 --- a/src/gui/formmain.cpp +++ b/src/gui/formmain.cpp @@ -241,6 +241,7 @@ void FormMain::setupIcons() { m_ui->m_actionUpdateAllFeeds->setIcon(icon_theme_factory->fromTheme("item-update-all")); m_ui->m_actionUpdateSelectedFeedsCategories->setIcon(icon_theme_factory->fromTheme("item-update-selected")); m_ui->m_actionClearSelectedFeeds->setIcon(icon_theme_factory->fromTheme("mail-remove")); + m_ui->m_actionClearAllFeeds->setIcon(icon_theme_factory->fromTheme("mail-remove")); m_ui->m_actionDeleteSelectedFeedCategory->setIcon(icon_theme_factory->fromTheme("item-remove")); m_ui->m_actionDeleteSelectedMessages->setIcon(icon_theme_factory->fromTheme("mail-remove")); m_ui->m_actionAddStandardCategory->setIcon(icon_theme_factory->fromTheme("item-new")); diff --git a/src/gui/formmain.ui b/src/gui/formmain.ui index e91939246..ae8dbfac2 100644 --- a/src/gui/formmain.ui +++ b/src/gui/formmain.ui @@ -114,6 +114,7 @@ + @@ -467,6 +468,17 @@ Hides or shows the list of feeds/categories. + + + Clear all items + + + Remove all messages from all feeds. + + + + + diff --git a/src/gui/formsettings.cpp b/src/gui/formsettings.cpp index 48cd8fd76..09c09e52d 100755 --- a/src/gui/formsettings.cpp +++ b/src/gui/formsettings.cpp @@ -675,11 +675,28 @@ void FormSettings::loadInterface() { m_ui->m_hideTabBarIfOneTabVisible->setChecked(settings->value(APP_CFG_GUI, "hide_tabbar_one_tab", true).toBool()); + + // Load toolbar button style. + m_ui->m_cmbToolbarButtonStyle->addItem(tr("icon only"), Qt::ToolButtonIconOnly); + m_ui->m_cmbToolbarButtonStyle->addItem(tr("text only"), Qt::ToolButtonTextOnly); + m_ui->m_cmbToolbarButtonStyle->addItem(tr("text beside icon"), Qt::ToolButtonTextBesideIcon); + m_ui->m_cmbToolbarButtonStyle->addItem(tr("text under icon"), Qt::ToolButtonTextUnderIcon); + m_ui->m_cmbToolbarButtonStyle->addItem(tr("follow OS style"), Qt::ToolButtonFollowStyle); + + m_ui->m_cmbToolbarButtonStyle->setCurrentIndex(m_ui->m_cmbToolbarButtonStyle->findData(Settings::instance()->value(APP_CFG_GUI, + "toolbar_style", + Qt::ToolButtonIconOnly).toInt())); + } void FormSettings::saveInterface() { Settings *settings = Settings::instance(); + // Save toolbar. + Settings::instance()->setValue(APP_CFG_GUI, + "toolbar_style", + m_ui->m_cmbToolbarButtonStyle->itemData(m_ui->m_cmbToolbarButtonStyle->currentIndex())); + // Save tray icon. if (SystemTrayIcon::isSystemTrayAvailable()) { settings->setValue(APP_CFG_GUI, "use_tray_icon", @@ -727,4 +744,5 @@ void FormSettings::saveInterface() { m_ui->m_hideTabBarIfOneTabVisible->isChecked()); FormMain::instance()->tabWidget()->checkTabBarVisibility(); + FormMain::instance()->tabWidget()->feedMessageViewer()->refreshVisualProperties(); } diff --git a/src/gui/formsettings.ui b/src/gui/formsettings.ui index 2feecf340..562ae7f3f 100644 --- a/src/gui/formsettings.ui +++ b/src/gui/formsettings.ui @@ -17,7 +17,7 @@ - 1 + 3 @@ -289,8 +289,8 @@ Authors of this application are NOT responsible for lost data. 0 0 - 100 - 30 + 564 + 363 @@ -367,8 +367,8 @@ Authors of this application are NOT responsible for lost data. 0 0 - 167 - 219 + 558 + 337 @@ -394,6 +394,16 @@ Authors of this application are NOT responsible for lost data. + + + + + + + Toolbar button style + + +