Add a new statusbar widget for displaying CoreConnection's state
[quassel.git] / src / qtui / mainwin.cpp
index 6e6b851..6871ae0 100644 (file)
@@ -56,6 +56,7 @@
 #include "clientbufferviewmanager.h"
 #include "clientignorelistmanager.h"
 #include "coreconnection.h"
+#include "coreconnectionstatuswidget.h"
 #include "coreinfodlg.h"
 #include "contextmenuactionprovider.h"
 #include "debugbufferviewoverlay.h"
@@ -124,7 +125,8 @@ MainWin::MainWin(QWidget *parent)
 #endif
     coreLagLabel(new QLabel()),
     sslLabel(new QLabel()),
-    msgProcessorStatusWidget(new MsgProcessorStatusWidget()),
+    _msgProcessorStatusWidget(new MsgProcessorStatusWidget(this)),
+    _coreConnectionStatusWidget(new CoreConnectionStatusWidget(Client::coreConnection(), this)),
     _titleSetter(this),
     _awayLog(0),
     _layoutLoaded(false)
@@ -624,7 +626,11 @@ void MainWin::setupTitleSetter() {
 
 void MainWin::setupStatusBar() {
   // MessageProcessor progress
-  statusBar()->addPermanentWidget(msgProcessorStatusWidget);
+  statusBar()->addPermanentWidget(_msgProcessorStatusWidget);
+
+  // Connection state
+  _coreConnectionStatusWidget->update();
+  statusBar()->addPermanentWidget(_coreConnectionStatusWidget);
 
   // Core Lag:
   updateLagIndicator();
@@ -715,11 +721,11 @@ void MainWin::setConnectedState() {
       action->setVisible(!Client::internalCore());
   }
 
-  disconnect(Client::backlogManager(), SIGNAL(updateProgress(int, int)), msgProcessorStatusWidget, SLOT(setProgress(int, int)));
+  disconnect(Client::backlogManager(), SIGNAL(updateProgress(int, int)), _msgProcessorStatusWidget, SLOT(setProgress(int, int)));
   disconnect(Client::backlogManager(), SIGNAL(messagesRequested(const QString &)), this, SLOT(showStatusBarMessage(const QString &)));
   disconnect(Client::backlogManager(), SIGNAL(messagesProcessed(const QString &)), this, SLOT(showStatusBarMessage(const QString &)));
   if(!Client::internalCore()) {
-    connect(Client::backlogManager(), SIGNAL(updateProgress(int, int)), msgProcessorStatusWidget, SLOT(setProgress(int, int)));
+    connect(Client::backlogManager(), SIGNAL(updateProgress(int, int)), _msgProcessorStatusWidget, SLOT(setProgress(int, int)));
     connect(Client::backlogManager(), SIGNAL(messagesRequested(const QString &)), this, SLOT(showStatusBarMessage(const QString &)));
     connect(Client::backlogManager(), SIGNAL(messagesProcessed(const QString &)), this, SLOT(showStatusBarMessage(const QString &)));
   }
@@ -815,17 +821,14 @@ void MainWin::setDisconnectedState() {
   sslLabel->hide();
   updateLagIndicator();
   coreLagLabel->hide();
-  if(msgProcessorStatusWidget)
-    msgProcessorStatusWidget->setProgress(0, 0);
+  if(_msgProcessorStatusWidget)
+    _msgProcessorStatusWidget->setProgress(0, 0);
   updateIcon();
   systemTray()->setState(SystemTray::Inactive);
 }
 
 void MainWin::startInternalCore() {
-  ClientSyncer *syncer = new ClientSyncer();
-  Client::registerClientSyncer(syncer);
-  connect(syncer, SIGNAL(syncFinished()), syncer, SLOT(deleteLater()), Qt::QueuedConnection);
-  syncer->useInternalCore();
+
 }
 
 void MainWin::showChannelList(NetworkId netId) {