7 #include <QApplication>
11 #include <QMessageBox>
29 Q_ASSERT(m_systemTrayIcon);
30 m_systemTrayIcon->setIcon(icon);
35 Q_ASSERT(m_systemTrayIcon);
36 m_systemTrayIcon->setToolTip(tooltip);
43 case QSystemTrayIcon::Trigger:
44 case QSystemTrayIcon::DoubleClick:
48 case QSystemTrayIcon::MiddleClick:
break;
54 QSystemTrayIcon::MessageIcon icon,
int millisecondsTimeoutHint)
56 Q_ASSERT(m_systemTrayIcon);
57 m_systemTrayIcon->showMessage(title, message, icon, millisecondsTimeoutHint);
62 int result = QMessageBox::Close;
64 if (m_systemTrayMode.testFlag(AskOnClose))
67 msgBox.setText(
"Are you sure you want to close? This will quit swiftcore!");
68 msgBox.setStandardButtons(QMessageBox::Close | QMessageBox::Cancel);
69 msgBox.setDefaultButton(QMessageBox::Close);
70 msgBox.setIcon(QMessageBox::Warning);
73 result = QMessageBox::Close;
76 case QMessageBox::Close:
event->accept();
break;
77 case QMessageBox::Cancel:
event->ignore();
break;
84 QMainWindow::changeEvent(event);
85 if (event->type() == QEvent::WindowStateChange)
87 if (isMinimized()) { hide(); }
91 void CSystemTrayWindow::createActions()
93 m_actionRestore =
new QAction(tr(
"&Restore"),
this);
94 connect(m_actionRestore, &QAction::triggered,
this, &QWidget::showNormal);
96 m_actionQuit =
new QAction(tr(
"&Quit"),
this);
97 connect(m_actionQuit, &QAction::triggered, qApp, &QApplication::quit);
100 void CSystemTrayWindow::createTrayIcon(
const QIcon &icon)
102 m_trayIconMenu =
new QMenu(
this);
103 m_trayIconMenu->addAction(m_actionRestore);
104 m_trayIconMenu->addSeparator();
105 m_trayIconMenu->addAction(m_actionQuit);
107 m_systemTrayIcon =
new QSystemTrayIcon(
this);
108 m_systemTrayIcon->setContextMenu(m_trayIconMenu);
109 m_systemTrayIcon->setIcon(icon);
110 m_systemTrayIcon->show();
void ps_showMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon icon=QSystemTrayIcon::Information, int millisecondsTimeoutHint=10000)
Show message in the system tray.
void setSystemTrayMode(SystemTrayMode mode)
System tray mode.
virtual void closeEvent(QCloseEvent *event)
void setSystemTrayToolTip(const QString &tooltip)
Set tool tip.
virtual void changeEvent(QEvent *event)
void ps_activateWindow(QSystemTrayIcon::ActivationReason reason)
Activate window from system tray.
CSystemTrayWindow(const QIcon &icon, QWidget *parent=nullptr)
Constructor.
void setSystemTrayIcon(const QIcon &icon)
Set icon.