Add example context menu

This commit is contained in:
BlackMark 2020-06-21 18:54:13 +02:00
parent 75308e78b5
commit 366044bb27
2 changed files with 23 additions and 4 deletions

View File

@ -1,14 +1,28 @@
#include "AdaptiveBrightness.hpp" #include "AdaptiveBrightness.hpp"
#include <QMessageBox> AdaptiveBrightness::AdaptiveBrightness(QWidget* parent) : QMainWindow(parent), m_visibility(true)
AdaptiveBrightness::AdaptiveBrightness(QWidget* parent) : QMainWindow(parent)
{ {
m_ui.setupUi(this); m_ui.setupUi(this);
m_icon = std::make_unique<QIcon>(":/AdaptiveBrightness/resources/brightness_system.ico"); m_icon = std::make_unique<QIcon>(":/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->setIcon(*m_icon);
m_trayIcon->setContextMenu(m_trayIconMenu);
m_trayIcon->show(); m_trayIcon->show();
} }

View File

@ -2,8 +2,10 @@
#include <memory> #include <memory>
#include <QAction>
#include <QIcon> #include <QIcon>
#include <QMainWindow> #include <QMainWindow>
#include <QMenu>
#include <QSystemTrayIcon> #include <QSystemTrayIcon>
#include "ui_AdaptiveBrightness.h" #include "ui_AdaptiveBrightness.h"
@ -18,5 +20,8 @@ class AdaptiveBrightness : public QMainWindow {
Ui::AdaptiveBrightnessClass m_ui; Ui::AdaptiveBrightnessClass m_ui;
std::unique_ptr<QIcon> m_icon; std::unique_ptr<QIcon> m_icon;
bool m_visibility;
QAction* m_showHideAction;
QMenu* m_trayIconMenu;
QSystemTrayIcon* m_trayIcon; QSystemTrayIcon* m_trayIcon;
}; };