diff --git a/src/gui/feedmessageviewer.cpp b/src/gui/feedmessageviewer.cpp index e2c88e5fa..eb253f8d3 100644 --- a/src/gui/feedmessageviewer.cpp +++ b/src/gui/feedmessageviewer.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -22,6 +23,8 @@ #include #include #include +#include +#include FeedMessageViewer::FeedMessageViewer(QWidget *parent) @@ -114,15 +117,17 @@ void FeedMessageViewer::updateAllFeeds() { } } +void FeedMessageViewer::onFeedUpdatesStarted() { + +} + void FeedMessageViewer::onFeedUpdatesProgress(FeedsModelFeed *feed, int current, int total) { // Some feed got updated. - // TODO: Don't update counts of all feeds here, - // it is enough to update counts of update feed. - // So use indexForItem method from the model. - //m_feedsView->updateCountsOfAllFeeds(true); m_feedsView->updateCountsOfParticularFeed(feed, true); + + } void FeedMessageViewer::onFeedUpdatesFinished() { @@ -131,23 +136,27 @@ void FeedMessageViewer::onFeedUpdatesFinished() { } void FeedMessageViewer::createConnections() { - // General connections. + // Message changers. connect(m_messagesView, SIGNAL(currentMessagesRemoved()), m_messagesBrowser, SLOT(clear())); connect(m_messagesView, SIGNAL(currentMessagesChanged(QList)), m_messagesBrowser, SLOT(navigateToMessages(QList))); - connect(m_messagesView, SIGNAL(openMessagesInNewspaperView(QList)), - FormMain::getInstance()->m_ui->m_tabWidget, - SLOT(addBrowserWithMessages(QList))); - connect(m_messagesView, SIGNAL(openLinkNewTab(QString)), - FormMain::getInstance()->m_ui->m_tabWidget, - SLOT(addLinkedBrowser(QString))); + + // Feed changers. connect(m_feedsView, SIGNAL(feedsSelected(QList)), m_messagesView, SLOT(loadFeeds(QList))); connect(m_messagesView, SIGNAL(feedCountsChanged()), m_feedsView, SLOT(updateCountsOfSelectedFeeds())); connect(m_feedsView, SIGNAL(feedsNeedToBeReloaded(int)), m_messagesView, SLOT(reloadSelections(int))); + + // Message openers. + connect(m_messagesView, SIGNAL(openMessagesInNewspaperView(QList)), + FormMain::getInstance()->m_ui->m_tabWidget, + SLOT(addBrowserWithMessages(QList))); + connect(m_messagesView, SIGNAL(openLinkNewTab(QString)), + FormMain::getInstance()->m_ui->m_tabWidget, + SLOT(addLinkedBrowser(QString))); connect(m_feedsView, SIGNAL(newspaperModeRequested(QList)), FormMain::getInstance()->m_ui->m_tabWidget, SLOT(addBrowserWithMessages(QList))); diff --git a/src/gui/feedmessageviewer.h b/src/gui/feedmessageviewer.h index d79e5b7af..eef7c840b 100644 --- a/src/gui/feedmessageviewer.h +++ b/src/gui/feedmessageviewer.h @@ -12,6 +12,7 @@ class MessagesView; class FeedDownloader; class QToolBar; class QSplitter; +class QProgressBar; class FeedsModelFeed; class FeedMessageViewer : public TabContent { @@ -41,6 +42,7 @@ class FeedMessageViewer : public TabContent { protected slots: // Reacts on feed updates. + void onFeedUpdatesStarted(); void onFeedUpdatesProgress(FeedsModelFeed *feed, int current, int total); void onFeedUpdatesFinished(); diff --git a/src/gui/formmain.cpp b/src/gui/formmain.cpp index 53de209f1..a63a45f84 100755 --- a/src/gui/formmain.cpp +++ b/src/gui/formmain.cpp @@ -29,7 +29,8 @@ FormMain::FormMain(QWidget *parent) : QMainWindow(parent), m_ui(new Ui::FormMain // Initialize singleton. s_instance = this; - setStatusBar(new StatusBar(this)); + m_statusBar = new StatusBar(this); + setStatusBar(m_statusBar); // Prepare main window and tabs. prepareMenus(); @@ -96,6 +97,10 @@ QList FormMain::getActions() { return actions; } +StatusBar *FormMain::statusBar() { + return m_statusBar; +} + void FormMain::prepareMenus() { // Setup menu for tray icon. if (SystemTrayIcon::isSystemTrayAvailable()) { @@ -266,6 +271,10 @@ void FormMain::saveSize() { } void FormMain::createConnections() { + // Status bar connections. + connect(m_statusBar->fullscreenSwitcher(), SIGNAL(clicked()), + m_ui->m_actionFullscreen, SLOT(trigger())); + // Core connections. connect(qApp, SIGNAL(commitDataRequest(QSessionManager&)), this, SLOT(onCommitData(QSessionManager&))); diff --git a/src/gui/formmain.h b/src/gui/formmain.h index ebbd76194..bba9e7348 100644 --- a/src/gui/formmain.h +++ b/src/gui/formmain.h @@ -7,6 +7,8 @@ #include +class StatusBar; + class FormMain : public QMainWindow { Q_OBJECT @@ -30,6 +32,9 @@ class FormMain : public QMainWindow { // NOTE: This is used for setting dynamic shortcuts for given actions. QList getActions(); + // Access to statusbar. + StatusBar *statusBar(); + // Singleton accessor. static FormMain *getInstance(); @@ -84,6 +89,7 @@ class FormMain : public QMainWindow { private: Ui::FormMain *m_ui; QMenu *m_trayMenu; + StatusBar *m_statusBar; static FormMain *s_instance; }; diff --git a/src/gui/formmain.ui b/src/gui/formmain.ui index be45a9584..618c2de77 100644 --- a/src/gui/formmain.ui +++ b/src/gui/formmain.ui @@ -125,7 +125,6 @@ - &Import @@ -409,11 +408,6 @@
tabwidget.h
1 - - StatusBar - QStatusBar -
statusbar.h
-
diff --git a/src/gui/messagesview.cpp b/src/gui/messagesview.cpp index 525391b8a..6e8232012 100644 --- a/src/gui/messagesview.cpp +++ b/src/gui/messagesview.cpp @@ -175,7 +175,6 @@ void MessagesView::mousePressEvent(QMouseEvent *event) { } case Qt::MiddleButton: { - // TODO: nefunguje? // Open selected messages in new tab on mouse middle button click. openSelectedSourceMessagesInternally(); break; @@ -363,7 +362,7 @@ void MessagesView::reselectIndexes(const QModelIndexList &indexes) { } void MessagesView::adjustColumns() { - if (header()->count() == 10 && !m_columnsAdjusted) { + if (header()->count() > 0 && !m_columnsAdjusted) { m_columnsAdjusted = true; #if QT_VERSION >= 0x050000 diff --git a/src/gui/messagesview.h b/src/gui/messagesview.h index 6d49b48d1..1698705d4 100755 --- a/src/gui/messagesview.h +++ b/src/gui/messagesview.h @@ -22,6 +22,7 @@ class MessagesView : public QTreeView { MessagesProxyModel *model(); MessagesModel *sourceModel(); + // Creates needed connections. void createConnections(); public slots: diff --git a/src/gui/statusbar.cpp b/src/gui/statusbar.cpp index c9889bef6..8878dcf19 100644 --- a/src/gui/statusbar.cpp +++ b/src/gui/statusbar.cpp @@ -1,9 +1,38 @@ #include "gui/statusbar.h" +#include "gui/iconthemefactory.h" + +#include +#include +#include + StatusBar::StatusBar(QWidget *parent) : QStatusBar(parent) { + setSizeGripEnabled(false); + setContentsMargins(3, 1, 3, 1); + + // Initializations of widgets for status bar. + m_fullscreenSwitcher = new QToolButton(this); + m_fullscreenSwitcher->setIcon(IconThemeFactory::getInstance()->fromTheme("view-fullscreen")); + m_fullscreenSwitcher->setToolTip(tr("Switch application between fulscreen/normal states right from this status bar icon.")); + + m_progressBar = new QProgressBar(this); + m_progressBar->setFixedWidth(100); + + m_progressLabel = new QLabel(this); + m_progressLabel->setText("aaa"); + + // Add widgets. + addPermanentWidget(m_fullscreenSwitcher); + addWidget(m_progressBar, 0); + addWidget(m_progressLabel, 1); } StatusBar::~StatusBar() { qDebug("Destroying StatusBar instance."); } + +QToolButton *StatusBar::fullscreenSwitcher() const +{ + return m_fullscreenSwitcher; +} diff --git a/src/gui/statusbar.h b/src/gui/statusbar.h index f754fb988..23175e141 100644 --- a/src/gui/statusbar.h +++ b/src/gui/statusbar.h @@ -4,6 +4,10 @@ #include +class QProgressBar; +class QToolButton; +class QLabel; + class StatusBar : public QStatusBar { Q_OBJECT @@ -12,9 +16,12 @@ class StatusBar : public QStatusBar { explicit StatusBar(QWidget *parent = 0); virtual ~StatusBar(); - signals: - - public slots: + QToolButton *fullscreenSwitcher() const; + + private: + QProgressBar *m_progressBar; + QLabel *m_progressLabel; + QToolButton *m_fullscreenSwitcher; }; diff --git a/src/gui/tabwidget.h b/src/gui/tabwidget.h index 5a48043e5..5f2fce4f4 100644 --- a/src/gui/tabwidget.h +++ b/src/gui/tabwidget.h @@ -64,6 +64,7 @@ class TabWidget : public QTabWidget { // Fixes indexes of tab contents. void fixContentsIndexes(int starting_index, int ending_index); + // Called when number of tab pages changes. void checkTabBarVisibility(); // Changes icon/text of the tab.