From: Alexander von Renteln Date: Fri, 4 Apr 2008 16:51:51 +0000 (+0000) Subject: -tray icon now greys out, when quassel is not connected X-Git-Tag: 0.2.0-alpha5~19 X-Git-Url: https://git.quassel-irc.org/?a=commitdiff_plain;h=2f600006c172342f253f1763620f5e635bc5b86f;p=quassel.git -tray icon now greys out, when quassel is not connected -new and better recognizable tray icon for activity/highlight -status bar displays if the connection to the core is secure or not --- diff --git a/src/client/client.cpp b/src/client/client.cpp index 8c7a0430..c2cbb2f1 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -318,6 +318,10 @@ void Client::setSyncedToCore() { emit coreConnectionStateChanged(true); } +void Client::setSecuredConnection() { + emit securedConnection(); +} + void Client::disconnectFromCore() { if(!isConnected()) return; diff --git a/src/client/client.h b/src/client/client.h index 509b447b..b7e079e6 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -126,6 +126,7 @@ signals: void showConfigWizard(const QVariantMap &coredata); void connected(); + void securedConnection(); void disconnected(); void coreConnectionStateChanged(bool); @@ -189,6 +190,8 @@ private slots: void setConnectedToCore(QIODevice *socket, AccountId id); void setSyncedToCore(); + void setSecuredConnection(); + private: Client(QObject *parent = 0); diff --git a/src/client/clientsyncer.cpp b/src/client/clientsyncer.cpp index 2c2a5df5..a4a4be82 100644 --- a/src/client/clientsyncer.cpp +++ b/src/client/clientsyncer.cpp @@ -193,6 +193,7 @@ void ClientSyncer::clientInitAck(const QVariantMap &msg) { connect(sslSocket, SIGNAL(sslErrors(const QList &)), this, SLOT(sslErrors(const QList &))); sslSocket->startClientEncryption(); emit encrypted(true); + Client::instance()->setSecuredConnection(); } else { emit connectionError(tr("The Quassel Core you are trying to connect to does not support SSL!
If you want to connect anyways, disable the usage of SSL in the account settings.")); emit encrypted(false); diff --git a/src/icons/icons.qrc b/src/icons/icons.qrc index 4ece047f..d6e9cfc6 100644 --- a/src/icons/icons.qrc +++ b/src/icons/icons.qrc @@ -584,6 +584,10 @@ oxygen/22x22/actions/zoom-original.png oxygen/22x22/actions/zoom-out.png + + oxygen/16x16/status/object-unlocked.png + oxygen/16x16/status/object-locked.png + oxygen/22x22/status/dialog-error.png oxygen/22x22/status/dialog-information.png @@ -597,5 +601,6 @@ quassel-icon.png quassel-icon-active.png + quassel-icon-offline.png diff --git a/src/icons/quassel-icon-active.png b/src/icons/quassel-icon-active.png index e834f95c..816a1017 100644 Binary files a/src/icons/quassel-icon-active.png and b/src/icons/quassel-icon-active.png differ diff --git a/src/icons/quassel-icon-offline.png b/src/icons/quassel-icon-offline.png new file mode 100644 index 00000000..16b02829 Binary files /dev/null and b/src/icons/quassel-icon-offline.png differ diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 9b49da10..c8fc11bc 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -62,9 +62,11 @@ MainWin::MainWin(QtUi *_gui, QWidget *parent) : QMainWindow(parent), gui(_gui), + sslLabel(new QLabel()), systray(new QSystemTrayIcon(this)), activeTrayIcon(":/icons/quassel-icon-active.png"), - inactiveTrayIcon(":/icons/quassel-icon.png"), + onlineTrayIcon(":/icons/quassel-icon.png"), + offlineTrayIcon(":/icons/quassel-icon-offline.png"), trayIconActive(false), timer(new QTimer(this)), settingsDlg(new SettingsDlg(this)), @@ -72,7 +74,8 @@ MainWin::MainWin(QtUi *_gui, QWidget *parent) { ui.setupUi(this); setWindowTitle("Quassel IRC"); - setWindowIcon(inactiveTrayIcon); + setWindowIcon(offlineTrayIcon); + systray->setIcon(offlineTrayIcon); setWindowIconText("Quassel IRC"); statusBar()->showMessage(tr("Waiting for core...")); @@ -84,6 +87,11 @@ 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() { @@ -131,7 +139,7 @@ void MainWin::init() { // attach the BufferWidget to the BufferModel and the default selection ui.bufferWidget->setModel(Client::bufferModel()); ui.bufferWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel()); - + if(Global::SPUTDEV) { //showSettingsDlg(); //showAboutDlg(); @@ -286,10 +294,6 @@ void MainWin::setupSystray() { connect(timer, SIGNAL(timeout()), this, SLOT(makeTrayIconBlink())); connect(Client::instance(), SIGNAL(messageReceived(const Message &)), this, SLOT(receiveMessage(const Message &))); - systray->setIcon(inactiveTrayIcon); -// systray->setToolTip("left click to minimize the quassel client to tray"); -// systray->setToolTip(toolTip); - systrayMenu = new QMenu(this); systrayMenu->addAction(ui.actionAboutQuassel); systrayMenu->addSeparator(); @@ -344,6 +348,15 @@ void MainWin::connectedToCore() { //ui.actionNetworkList->setEnabled(true); ui.bufferWidget->show(); statusBar()->showMessage(tr("Connected to core.")); + setWindowIcon(onlineTrayIcon); + systray->setIcon(onlineTrayIcon); +} + +void MainWin::securedConnection() { + // todo: make status bar entry + qDebug() << "secured the connection"; + + sslLabel->setPixmap(QPixmap::fromImage(QImage(":/16x16/status/ssl"))); } void MainWin::disconnectedFromCore() { @@ -355,6 +368,9 @@ void MainWin::disconnectedFromCore() { ui.actionConnectCore->setEnabled(true); // nickListWidget->reset(); statusBar()->showMessage(tr("Not connected to core.")); + setWindowIcon(offlineTrayIcon); + systray->setIcon(offlineTrayIcon); + sslLabel->setPixmap(QPixmap::fromImage(QImage(":/16x16/status/no-ssl"))); } AbstractUiMsg *MainWin::layoutMsg(const Message &msg) { @@ -474,13 +490,13 @@ void MainWin::setTrayIconActivity(bool active) { timer->start(500); } else { timer->stop(); - systray->setIcon(inactiveTrayIcon); + systray->setIcon(onlineTrayIcon); } } void MainWin::makeTrayIconBlink() { if(trayIconActive) { - systray->setIcon(inactiveTrayIcon); + systray->setIcon(onlineTrayIcon); trayIconActive = false; } else { systray->setIcon(activeTrayIcon); diff --git a/src/qtui/mainwin.h b/src/qtui/mainwin.h index 0f5e299e..a317c772 100644 --- a/src/qtui/mainwin.h +++ b/src/qtui/mainwin.h @@ -63,6 +63,7 @@ class MainWin : public QMainWindow { protected slots: void connectedToCore(); + void securedConnection(); void disconnectedFromCore(); void systrayActivated( QSystemTrayIcon::ActivationReason ); @@ -94,6 +95,7 @@ class MainWin : public QMainWindow { QtUi *gui; QMenu *systrayMenu; + QLabel *sslLabel; void setupMenus(); void setupViews(); @@ -111,7 +113,8 @@ class MainWin : public QMainWindow { QSystemTrayIcon *systray; QIcon activeTrayIcon; - QIcon inactiveTrayIcon; + QIcon onlineTrayIcon; + QIcon offlineTrayIcon; bool trayIconActive; QTimer *timer; diff --git a/version.inc b/version.inc index 5ce1cd16..7228cb8f 100644 --- a/version.inc +++ b/version.inc @@ -5,7 +5,7 @@ quasselVersion = "0.2.0-alpha5-pre"; quasselDate = "2008-04-03"; - quasselBuild = 698; + quasselBuild = 699; //! Minimum client build number the core needs clientBuildNeeded = 642;