19 : showAction(nullptr), hideAction(nullptr), minimizeAction(nullptr),
20 maximizeAction(nullptr), restoreAction(nullptr), quitAction(nullptr),
21 sysTrayIcon(nullptr), trayIconMenu(nullptr), isAllocated(false) {
24 if (QSystemTrayIcon::isSystemTrayAvailable()) {
29 QIcon::fromTheme(
"qtpass-tray", QIcon(
":/artwork/icon.png")));
33 QObject::connect(sysTrayIcon, &QSystemTrayIcon::activated,
this,
41 dbg() <<
"No tray icon for this OS possibly also not show options?";
66void TrayIcon::createActions() {
67 showAction =
new QAction(tr(
"&Show"),
this);
68 connect(showAction, &QAction::triggered, parentwin, &QWidget::show);
69 hideAction =
new QAction(tr(
"&Hide"),
this);
70 connect(hideAction, &QAction::triggered, parentwin, &QWidget::hide);
72 minimizeAction =
new QAction(tr(
"Mi&nimize"),
this);
73 connect(minimizeAction, &QAction::triggered, parentwin,
74 &QWidget::showMinimized);
75 maximizeAction =
new QAction(tr(
"Ma&ximize"),
this);
76 connect(maximizeAction, &QAction::triggered, parentwin,
77 &QWidget::showMaximized);
78 restoreAction =
new QAction(tr(
"&Restore"),
this);
79 connect(restoreAction, &QAction::triggered, parentwin, &QWidget::showNormal);
81 quitAction =
new QAction(tr(
"&Quit"),
this);
82#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
83#pragma GCC diagnostic push
84#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
86 connect(quitAction, &QAction::triggered, qApp, &QApplication::quit);
87#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
88#pragma GCC diagnostic pop
95void TrayIcon::createTrayIcon() {
96 trayIconMenu =
new QMenu(
this);
97 trayIconMenu->addAction(showAction);
98 trayIconMenu->addAction(hideAction);
99 trayIconMenu->addAction(minimizeAction);
100 trayIconMenu->addAction(maximizeAction);
101 trayIconMenu->addAction(restoreAction);
102 trayIconMenu->addSeparator();
103 trayIconMenu->addAction(quitAction);
105 sysTrayIcon =
new QSystemTrayIcon(
this);
106 sysTrayIcon->setContextMenu(trayIconMenu);
113 if (parentwin->isVisible()) {
126 case QSystemTrayIcon::Trigger:
127 case QSystemTrayIcon::DoubleClick:
130 case QSystemTrayIcon::MiddleClick:
145 sysTrayIcon->showMessage(title, msg, QSystemTrayIcon::Information, time);
void showHideParent()
TrayIcon::showHideParent toggle app visibility.
void iconActivated(QSystemTrayIcon::ActivationReason reason)
TrayIcon::iconActivated you clicked on the trayicon.
void showMessage(const QString &title, const QString &msg, int time)
TrayIcon::showMessage show a systray message for notification.
TrayIcon(QMainWindow *parent)
TrayIcon::TrayIcon use a (system) tray icon with a nice QtPass logo on it (currently) only Quits.
void setVisible(bool visible)
TrayIcon::setVisible show or hide the icon.
auto getIsAllocated() -> bool
TrayIcon::getIsAllocated return if TrayIcon is allocated.