X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=10aedfa94b1d312d5018a61af6b26d83b6e19e77;hp=4c39b1229488c6ead696db5f96f4b89b3ec33451;hb=5bd4e3fcf31a7a337f91b3bba86bd237aa5e7ed6;hpb=366f5e334c898bef4b88605cf5cf2ee2feabffb1 diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 4c39b122..10aedfa9 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -455,7 +455,6 @@ void MainWin::setupTitleSetter() { void MainWin::setupStatusBar() { // MessageProcessor progress statusBar()->addPermanentWidget(msgProcessorStatusWidget); - connect(Client::messageProcessor(), SIGNAL(progressUpdated(int, int)), msgProcessorStatusWidget, SLOT(setProgress(int, int))); // Core Lag: updateLagIndicator(); @@ -479,9 +478,6 @@ void MainWin::setupStatusBar() { connect(showStatusbar, SIGNAL(toggled(bool)), statusBar(), SLOT(setVisible(bool))); connect(showStatusbar, SIGNAL(toggled(bool)), this, SLOT(saveStatusBarStatus(bool))); - - connect(Client::backlogManager(), SIGNAL(messagesRequested(const QString &)), this, SLOT(showStatusBarMessage(const QString &))); - connect(Client::backlogManager(), SIGNAL(messagesProcessed(const QString &)), this, SLOT(showStatusBarMessage(const QString &))); } void MainWin::saveStatusBarStatus(bool enabled) { @@ -546,6 +542,15 @@ void MainWin::setConnectedState() { action->setVisible(!Client::internalCore()); } + 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(messagesRequested(const QString &)), this, SLOT(showStatusBarMessage(const QString &))); + connect(Client::backlogManager(), SIGNAL(messagesProcessed(const QString &)), this, SLOT(showStatusBarMessage(const QString &))); + } + // _viewMenu->setEnabled(true); if(!Client::internalCore()) statusBar()->showMessage(tr("Connected to core.")); @@ -684,7 +689,7 @@ void MainWin::closeEvent(QCloseEvent *event) { QtUiApplication* app = qobject_cast qApp; Q_ASSERT(app); if(!app->aboutToQuit() && s.value("UseSystemTrayIcon").toBool() && s.value("MinimizeOnClose").toBool()) { - hideToTray(); + toggleMinimizedToTray(); event->ignore(); } else { event->accept(); @@ -694,7 +699,7 @@ void MainWin::closeEvent(QCloseEvent *event) { void MainWin::systrayActivated(QSystemTrayIcon::ActivationReason activationReason) { if(activationReason == QSystemTrayIcon::Trigger) { - restoreFromTray(); + toggleMinimizedToTray(); } } @@ -709,10 +714,16 @@ void MainWin::hideToTray() { systemTrayIcon()->show(); } -void MainWin::restoreFromTray() { - setWindowState(windowState() & ~Qt::WindowMinimized | Qt::WindowActive); - show(); - raise(); +void MainWin::toggleMinimizedToTray() { + if(windowState() & Qt::WindowMinimized) { + // restore + setWindowState((windowState() & ~Qt::WindowMinimized) | Qt::WindowActive); + show(); + raise(); + } else { + setWindowState((windowState() & ~Qt::WindowActive) | Qt::WindowMinimized); + hideToTray(); + } } void MainWin::messagesInserted(const QModelIndex &parent, int start, int end) {