summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainwindow.cpp7
-rw-r--r--src/statusbar.cpp15
-rw-r--r--src/statusbar.h5
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;
};