From 8386eed0a503bd2683b908bc05d682231331894b Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Sat, 28 Nov 2009 22:34:50 +0100 Subject: [PATCH] Display lag and SSL status in CoreConnectionStatusWidget Removing the legacy widgets too. --- src/client/coreconnection.cpp | 10 +++---- src/qtui/CMakeLists.txt | 1 + src/qtui/coreconnectionstatuswidget.cpp | 30 ++++++++++++++++++- src/qtui/coreconnectionstatuswidget.h | 5 +++- src/qtui/mainwin.cpp | 35 +---------------------- src/qtui/mainwin.h | 3 -- src/qtui/ui/coreconnectionstatuswidget.ui | 18 +++++++++++- 7 files changed, 57 insertions(+), 45 deletions(-) diff --git a/src/client/coreconnection.cpp b/src/client/coreconnection.cpp index a60fae38..a982f62a 100644 --- a/src/client/coreconnection.cpp +++ b/src/client/coreconnection.cpp @@ -155,9 +155,6 @@ void CoreConnection::setState(QAbstractSocket::SocketState socketState) { case QAbstractSocket::ConnectingState: state = Connecting; break; - case QAbstractSocket::ConnectedState: - state = Connected; - break; default: state = Disconnected; } @@ -220,7 +217,7 @@ void CoreConnection::coreHasData() { sessionStateReceived(msg["SessionState"].toMap()); break; // this is definitively the last message we process here! } else { - emit connectionError(tr("Invalid data received from core!
Disconnecting.")); + emit connectionError(tr("Invalid data received from core, disconnecting.")); disconnectFromCore(); return; } @@ -448,6 +445,9 @@ void CoreConnection::sslErrors() { #endif /* HAVE_SSL */ void CoreConnection::connectionReady() { + setState(Connected); + emit connectionMsg(tr("Connected to %1").arg(currentAccount().accountName())); + if(!_coreMsgBuffer["Configured"].toBool()) { // start wizard emit startCoreSetup(_coreMsgBuffer["StorageBackends"].toList()); @@ -559,7 +559,7 @@ void CoreConnection::networkInitDone() { void CoreConnection::checkSyncState() { if(_netsToSync.isEmpty()) { setState(Synchronized); - setProgressText(QString()); + setProgressText(tr("Synchronized to %1").arg(currentAccount().accountName())); setProgressMaximum(-1); emit synchronized(); } diff --git a/src/qtui/CMakeLists.txt b/src/qtui/CMakeLists.txt index 3e7e0670..0a873772 100644 --- a/src/qtui/CMakeLists.txt +++ b/src/qtui/CMakeLists.txt @@ -120,6 +120,7 @@ set(FORMS coreconfigwizardstorageselectionpage.ui coreconfigwizardsyncpage.ui coreconnectauthdlg.ui + coreconnectionstatuswidget.ui coreinfodlg.ui debugbufferviewoverlay.ui debugconsole.ui diff --git a/src/qtui/coreconnectionstatuswidget.cpp b/src/qtui/coreconnectionstatuswidget.cpp index bc78fc68..34cdc667 100644 --- a/src/qtui/coreconnectionstatuswidget.cpp +++ b/src/qtui/coreconnectionstatuswidget.cpp @@ -21,14 +21,16 @@ #include "coreconnectionstatuswidget.h" #include "client.h" -#include "coreconnection.h" #include "iconloader.h" +#include "signalproxy.h" CoreConnectionStatusWidget::CoreConnectionStatusWidget(CoreConnection *connection, QWidget *parent) : QWidget(parent), _coreConnection(connection) { ui.setupUi(this); + ui.lagLabel->hide(); + ui.sslLabel->hide(); update(); connect(coreConnection(), SIGNAL(progressTextChanged(QString)), ui.messageLabel, SLOT(setText(QString))); @@ -36,7 +38,9 @@ CoreConnectionStatusWidget::CoreConnectionStatusWidget(CoreConnection *connectio connect(coreConnection(), SIGNAL(progressRangeChanged(int, int)), ui.progressBar, SLOT(setRange(int, int))); connect(coreConnection(), SIGNAL(progressRangeChanged(int, int)), this, SLOT(progressRangeChanged(int, int))); + connect(coreConnection(), SIGNAL(stateChanged(CoreConnection::ConnectionState)), SLOT(connectionStateChanged(CoreConnection::ConnectionState))); connect(coreConnection(), SIGNAL(connectionError(QString)), ui.messageLabel, SLOT(setText(QString))); + connect(Client::signalProxy(), SIGNAL(lagUpdated(int)), SLOT(updateLag(int))); } void CoreConnectionStatusWidget::update() { @@ -50,7 +54,31 @@ void CoreConnectionStatusWidget::update() { ui.progressBar->hide(); ui.messageLabel->setText(conn->progressText()); +} + +void CoreConnectionStatusWidget::updateLag(int msecs) { + if(msecs >= 0) { + ui.lagLabel->setText(tr("(Lag: %1 ms)").arg(msecs)); + if(!ui.lagLabel->isVisible()) + ui.lagLabel->show(); + } else { + if(ui.lagLabel->isVisible()) + ui.lagLabel->hide(); + } +} +void CoreConnectionStatusWidget::connectionStateChanged(CoreConnection::ConnectionState state) { + if(state >= CoreConnection::Connected) { + if(coreConnection()->isEncrypted()) { + ui.sslLabel->setPixmap(SmallIcon("security-high")); + ui.sslLabel->setToolTip(tr("The connection to your core is encrypted with SSL.")); + } else { + ui.sslLabel->setPixmap(SmallIcon("security-low")); + ui.sslLabel->setToolTip(tr("The connection to your core is not encrypted.")); + } + ui.sslLabel->show(); + } else + ui.sslLabel->hide(); } void CoreConnectionStatusWidget::progressRangeChanged(int min, int max) { diff --git a/src/qtui/coreconnectionstatuswidget.h b/src/qtui/coreconnectionstatuswidget.h index fd2c10a5..f07926ed 100644 --- a/src/qtui/coreconnectionstatuswidget.h +++ b/src/qtui/coreconnectionstatuswidget.h @@ -25,7 +25,7 @@ #include "ui_coreconnectionstatuswidget.h" -class CoreConnection; +#include "coreconnection.h" class CoreConnectionStatusWidget : public QWidget { Q_OBJECT @@ -37,7 +37,10 @@ public: public slots: void update(); + void updateLag(int msecs); + private slots: + void connectionStateChanged(CoreConnection::ConnectionState); void progressRangeChanged(int min, int max); private: diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index c7792107..0b5fe853 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -128,8 +128,6 @@ MainWin::MainWin(QWidget *parent) #else : QMainWindow(parent), #endif - coreLagLabel(new QLabel()), - sslLabel(new QLabel()), _msgProcessorStatusWidget(new MsgProcessorStatusWidget(this)), _coreConnectionStatusWidget(new CoreConnectionStatusWidget(Client::coreConnection(), this)), _titleSetter(this), @@ -642,17 +640,6 @@ void MainWin::setupStatusBar() { _coreConnectionStatusWidget->update(); statusBar()->addPermanentWidget(_coreConnectionStatusWidget); - // Core Lag: - updateLagIndicator(); - statusBar()->addPermanentWidget(coreLagLabel); - coreLagLabel->hide(); - connect(Client::signalProxy(), SIGNAL(lagUpdated(int)), this, SLOT(updateLagIndicator(int))); - - // SSL indicator - sslLabel->setPixmap(QPixmap()); - statusBar()->addPermanentWidget(sslLabel); - sslLabel->hide(); - QAction *showStatusbar = QtUi::actionCollection("General")->action("ToggleStatusBar"); QtUiSettings uiSettings; @@ -746,14 +733,7 @@ void MainWin::setConnectedState() { else statusBar()->clearMessage(); - if(Client::signalProxy()->isSecure()) { - sslLabel->setPixmap(SmallIcon("security-high")); - } else { - sslLabel->setPixmap(SmallIcon("security-low")); - } - - sslLabel->setVisible(!Client::internalCore()); - coreLagLabel->setVisible(!Client::internalCore()); + _coreConnectionStatusWidget->setVisible(!Client::internalCore()); updateIcon(); systemTray()->setState(SystemTray::Active); @@ -784,15 +764,6 @@ void MainWin::saveLayout() { if(accountId > 0) s.setValue(QString("MainWinState-%1").arg(accountId) , saveState(accountId)); } -void MainWin::updateLagIndicator(int lag) { - QString text = tr("Core Lag: %1"); - if(lag == -1) - text = text.arg('-'); - else - text = text.arg("%1 msec").arg(lag); - coreLagLabel->setText(text); -} - void MainWin::disconnectedFromCore() { // save core specific layout and remove bufferviews; saveLayout(); @@ -827,10 +798,6 @@ void MainWin::setDisconnectedState() { coll->action("CoreInfo")->setEnabled(false); //_viewMenu->setEnabled(false); statusBar()->showMessage(tr("Not connected to core.")); - sslLabel->setPixmap(QPixmap()); - sslLabel->hide(); - updateLagIndicator(); - coreLagLabel->hide(); if(_msgProcessorStatusWidget) _msgProcessorStatusWidget->setProgress(0, 0); updateIcon(); diff --git a/src/qtui/mainwin.h b/src/qtui/mainwin.h index 5f15fa55..8c9c1ec7 100644 --- a/src/qtui/mainwin.h +++ b/src/qtui/mainwin.h @@ -107,7 +107,6 @@ class MainWin protected slots: void connectedToCore(); void setConnectedState(); - void updateLagIndicator(int lag = -1); void disconnectedFromCore(); void setDisconnectedState(); @@ -168,8 +167,6 @@ class MainWin KHelpMenu *_kHelpMenu; #endif - QLabel *coreLagLabel; - QLabel *sslLabel; MsgProcessorStatusWidget *_msgProcessorStatusWidget; CoreConnectionStatusWidget *_coreConnectionStatusWidget; diff --git a/src/qtui/ui/coreconnectionstatuswidget.ui b/src/qtui/ui/coreconnectionstatuswidget.ui index f9e72e01..0d05ef8d 100644 --- a/src/qtui/ui/coreconnectionstatuswidget.ui +++ b/src/qtui/ui/coreconnectionstatuswidget.ui @@ -14,7 +14,16 @@ Form - + + 4 + + + 0 + + + 4 + + 0 @@ -37,6 +46,13 @@ + + + + Lag: n/a + + + -- 2.20.1