void MainWin::systrayActivated(QSystemTrayIcon::ActivationReason activationReason) {
if(activationReason == QSystemTrayIcon::Trigger) {
- restoreFromTray();
+ toggleMinimizedToTray();
}
}
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) {