From 366044bb27388c50eff3ad8b94ed656a01aaa794 Mon Sep 17 00:00:00 2001 From: BlackMark Date: Sun, 21 Jun 2020 18:54:13 +0200 Subject: [PATCH] Add example context menu --- AdaptiveBrightness/AdaptiveBrightness.cpp | 22 ++++++++++++++++++---- AdaptiveBrightness/AdaptiveBrightness.hpp | 5 +++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/AdaptiveBrightness/AdaptiveBrightness.cpp b/AdaptiveBrightness/AdaptiveBrightness.cpp index 809a1b8..0c09181 100644 --- a/AdaptiveBrightness/AdaptiveBrightness.cpp +++ b/AdaptiveBrightness/AdaptiveBrightness.cpp @@ -1,14 +1,28 @@ #include "AdaptiveBrightness.hpp" -#include - -AdaptiveBrightness::AdaptiveBrightness(QWidget* parent) : QMainWindow(parent) +AdaptiveBrightness::AdaptiveBrightness(QWidget* parent) : QMainWindow(parent), m_visibility(true) { m_ui.setupUi(this); m_icon = std::make_unique(":/AdaptiveBrightness/resources/brightness_system.ico"); - m_trayIcon = new QSystemTrayIcon(this); + m_trayIconMenu = new QMenu(this); + m_showHideAction = m_trayIconMenu->addAction(tr("Hide"), [this]() { + if(m_visibility) { + m_showHideAction->setText(tr("Show")); + hide(); + } + else { + m_showHideAction->setText(tr("Hide")); + show(); + } + m_visibility = !m_visibility; + }); + m_trayIconMenu->addSeparator(); + m_trayIconMenu->addAction(tr("Quit"), this, &QWidget::close); + + m_trayIcon = new QSystemTrayIcon(this); m_trayIcon->setIcon(*m_icon); + m_trayIcon->setContextMenu(m_trayIconMenu); m_trayIcon->show(); } diff --git a/AdaptiveBrightness/AdaptiveBrightness.hpp b/AdaptiveBrightness/AdaptiveBrightness.hpp index f72cf6f..98243a1 100644 --- a/AdaptiveBrightness/AdaptiveBrightness.hpp +++ b/AdaptiveBrightness/AdaptiveBrightness.hpp @@ -2,8 +2,10 @@ #include +#include #include #include +#include #include #include "ui_AdaptiveBrightness.h" @@ -18,5 +20,8 @@ class AdaptiveBrightness : public QMainWindow { Ui::AdaptiveBrightnessClass m_ui; std::unique_ptr m_icon; + bool m_visibility; + QAction* m_showHideAction; + QMenu* m_trayIconMenu; QSystemTrayIcon* m_trayIcon; };