diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mainwindow.cpp | 7 | ||||
| -rw-r--r-- | src/statusbar.cpp | 15 | ||||
| -rw-r--r-- | src/statusbar.h | 5 |
3 files changed, 21 insertions, 6 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 6b3ee11f..c39ac749 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -243,7 +243,7 @@ MainWindow::MainWindow(QSettings &initSettings connect(ui->logList->model(), SIGNAL(dataChanged(QModelIndex,QModelIndex)), ui->logList, SLOT(scrollToBottom())); - m_statusBar.reset(new StatusBar(statusBar())); + m_statusBar.reset(new StatusBar(statusBar(), ui->actionNotifications)); updateProblemsButton(); @@ -899,6 +899,11 @@ void MainWindow::updateProblemsButton() button->setIcon(final); } } + + // updating the status bar, may be null very early when MO is starting + if (m_statusBar) { + m_statusBar->setHasNotifications(numProblems > 0); + } } diff --git a/src/statusbar.cpp b/src/statusbar.cpp index f2af0272..a34500b0 100644 --- a/src/statusbar.cpp +++ b/src/statusbar.cpp @@ -2,16 +2,20 @@ #include "nexusinterface.h" #include "settings.h" -StatusBar::StatusBar(QStatusBar* bar) : - m_bar(bar), m_notifications(new QLabel), m_progress(new QProgressBar), +StatusBar::StatusBar(QStatusBar* bar, QAction* notifications) : + m_bar(bar), m_progress(new QProgressBar), m_notifications(new QToolButton), m_api(new QLabel) { - m_bar->addPermanentWidget(m_notifications); m_bar->addPermanentWidget(m_progress); + m_bar->addPermanentWidget(m_notifications); m_bar->addPermanentWidget(m_api); m_progress->setTextVisible(true); m_progress->setRange(0, 100); + m_progress->setMaximumWidth(100); + + m_notifications->setDefaultAction(notifications); + m_notifications->setAutoRaise(true); m_api->setObjectName("apistats"); m_api->setStyleSheet("QLabel{ padding-left: 0.1em; padding-right: 0.1em; }"); @@ -31,6 +35,11 @@ void StatusBar::setProgress(int percent) } } +void StatusBar::setHasNotifications(bool b) +{ + m_notifications->setVisible(b); +} + void StatusBar::updateAPI(const APIStats& stats, const APIUserAccount& user) { m_api->setText( diff --git a/src/statusbar.h b/src/statusbar.h index 99de8f16..bf14ba57 100644 --- a/src/statusbar.h +++ b/src/statusbar.h @@ -11,16 +11,17 @@ class Settings; class StatusBar { public: - StatusBar(QStatusBar* bar); + StatusBar(QStatusBar* bar, QAction* notifications); void setProgress(int percent); + void setHasNotifications(bool b); void updateAPI(const APIStats& stats, const APIUserAccount& user); void checkSettings(const Settings& settings); private: QStatusBar* m_bar; - QLabel* m_notifications; QProgressBar* m_progress; + QToolButton* m_notifications; QLabel* m_api; }; |
