Merging r726:730 from trunk to branches/0.3. This forwardports everything except...
[quassel.git] / src / qtui / mainwin.cpp
index c8fc11b..cf7a6e0 100644 (file)
@@ -87,11 +87,6 @@ MainWin::MainWin(QtUi *_gui, QWidget *parent)
   if(style != "") {
     QApplication::setStyle(style);
   }
-
-  connect(Client::instance(), SIGNAL(securedConnection()), this, SLOT(securedConnection()));
-  sslLabel->setPixmap(QPixmap::fromImage(QImage(":/16x16/status/no-ssl")));
-  statusBar()->addPermanentWidget(sslLabel);
-
 }
 
 void MainWin::init() {
@@ -126,6 +121,7 @@ void MainWin::init() {
   setupTopicWidget();
   setupChatMonitor();
   setupInputWidget();
+  setupStatusBar();
   setupSystray();
 
   setupSettingsDlg();
@@ -290,6 +286,30 @@ void MainWin::setupTopicWidget() {
   ui.menuViews->addAction(dock->toggleViewAction());
 }
 
+void MainWin::setupStatusBar() {
+  connect(Client::instance(), SIGNAL(securedConnection()), this, SLOT(securedConnection()));
+  sslLabel->setPixmap(QPixmap());
+  statusBar()->addPermanentWidget(sslLabel);
+
+  ui.menuViews->addSeparator();
+  QAction *showStatusbar = ui.menuViews->addAction(tr("Statusbar"));
+  showStatusbar->setCheckable(true);
+
+  UiSettings uiSettings;
+
+  bool enabled = uiSettings.value("ShowStatusBar", QVariant(true)).toBool();
+  showStatusbar->setChecked(enabled);
+  enabled ? statusBar()->show() : statusBar()->hide();
+
+  connect(showStatusbar, SIGNAL(toggled(bool)), statusBar(), SLOT(setVisible(bool)));
+  connect(showStatusbar, SIGNAL(toggled(bool)), this, SLOT(saveStatusBarStatus(bool)));
+}
+
+void MainWin::saveStatusBarStatus(bool enabled) {
+  UiSettings uiSettings;
+  uiSettings.setValue("ShowStatusBar", enabled);
+}
+
 void MainWin::setupSystray() {
   connect(timer, SIGNAL(timeout()), this, SLOT(makeTrayIconBlink()));
   connect(Client::instance(), SIGNAL(messageReceived(const Message &)), this, SLOT(receiveMessage(const Message &)));
@@ -350,6 +370,8 @@ void MainWin::connectedToCore() {
   statusBar()->showMessage(tr("Connected to core."));
   setWindowIcon(onlineTrayIcon);
   systray->setIcon(onlineTrayIcon);
+  if(sslLabel->width() == 0)
+    sslLabel->setPixmap(QPixmap::fromImage(QImage(":/16x16/status/no-ssl")));
 }
 
 void MainWin::securedConnection() {
@@ -370,7 +392,7 @@ void MainWin::disconnectedFromCore() {
   statusBar()->showMessage(tr("Not connected to core."));
   setWindowIcon(offlineTrayIcon);
   systray->setIcon(offlineTrayIcon);
-  sslLabel->setPixmap(QPixmap::fromImage(QImage(":/16x16/status/no-ssl")));
+  sslLabel->setPixmap(QPixmap());
 }
 
 AbstractUiMsg *MainWin::layoutMsg(const Message &msg) {