Add icon animation
@ -1,10 +1,10 @@
|
|||||||
#include "AdaptiveBrightness.hpp"
|
#include "AdaptiveBrightness.hpp"
|
||||||
|
|
||||||
AdaptiveBrightness::AdaptiveBrightness(QWidget* parent) : QMainWindow(parent), m_visibility(true)
|
AdaptiveBrightness::AdaptiveBrightness(QWidget* parent) : QMainWindow(parent), m_currentIcon(0), m_visibility(true)
|
||||||
{
|
{
|
||||||
m_ui.setupUi(this);
|
m_ui.setupUi(this);
|
||||||
|
|
||||||
m_icon = std::make_unique<QIcon>(":/AdaptiveBrightness/resources/brightness_system.ico");
|
loadIcons();
|
||||||
|
|
||||||
m_trayIconMenu = new QMenu(this);
|
m_trayIconMenu = new QMenu(this);
|
||||||
m_showHideAction = m_trayIconMenu->addAction(tr("Hide"), [this]() {
|
m_showHideAction = m_trayIconMenu->addAction(tr("Hide"), [this]() {
|
||||||
@ -22,7 +22,33 @@ AdaptiveBrightness::AdaptiveBrightness(QWidget* parent) : QMainWindow(parent), m
|
|||||||
m_trayIconMenu->addAction(tr("Quit"), this, &QWidget::close);
|
m_trayIconMenu->addAction(tr("Quit"), this, &QWidget::close);
|
||||||
|
|
||||||
m_trayIcon = new QSystemTrayIcon(this);
|
m_trayIcon = new QSystemTrayIcon(this);
|
||||||
m_trayIcon->setIcon(*m_icon);
|
m_trayIcon->setIcon(*m_icons[9]);
|
||||||
m_trayIcon->setContextMenu(m_trayIconMenu);
|
m_trayIcon->setContextMenu(m_trayIconMenu);
|
||||||
m_trayIcon->show();
|
m_trayIcon->show();
|
||||||
|
|
||||||
|
m_timer = new QTimer(this);
|
||||||
|
connect(m_timer, &QTimer::timeout, this, &AdaptiveBrightness::nextIcon);
|
||||||
|
m_timer->start(500);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AdaptiveBrightness::loadIcons()
|
||||||
|
{
|
||||||
|
constexpr auto ICON_PATHS = std::array{
|
||||||
|
":/AdaptiveBrightness/resources/brightness_0.ico", ":/AdaptiveBrightness/resources/brightness_1.ico",
|
||||||
|
":/AdaptiveBrightness/resources/brightness_2.ico", ":/AdaptiveBrightness/resources/brightness_3.ico",
|
||||||
|
":/AdaptiveBrightness/resources/brightness_4.ico", ":/AdaptiveBrightness/resources/brightness_5.ico",
|
||||||
|
":/AdaptiveBrightness/resources/brightness_6.ico", ":/AdaptiveBrightness/resources/brightness_7.ico",
|
||||||
|
":/AdaptiveBrightness/resources/brightness_8.ico", ":/AdaptiveBrightness/resources/brightness_default.ico",
|
||||||
|
":/AdaptiveBrightness/resources/brightness_error.ico", ":/AdaptiveBrightness/resources/brightness_system.ico",
|
||||||
|
};
|
||||||
|
|
||||||
|
for(std::size_t i = 0; i < ICON_PATHS.size(); ++i) {
|
||||||
|
m_icons[i] = std::make_unique<QIcon>(ICON_PATHS[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void AdaptiveBrightness::nextIcon()
|
||||||
|
{
|
||||||
|
m_currentIcon = (m_currentIcon + 1) % m_icons.size();
|
||||||
|
m_trayIcon->setIcon(*m_icons[m_currentIcon]);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <array>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
@ -7,6 +8,7 @@
|
|||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QSystemTrayIcon>
|
#include <QSystemTrayIcon>
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
#include "ui_AdaptiveBrightness.h"
|
#include "ui_AdaptiveBrightness.h"
|
||||||
|
|
||||||
@ -17,11 +19,17 @@ class AdaptiveBrightness : public QMainWindow {
|
|||||||
AdaptiveBrightness(QWidget* parent = nullptr);
|
AdaptiveBrightness(QWidget* parent = nullptr);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void loadIcons();
|
||||||
|
void nextIcon();
|
||||||
|
|
||||||
Ui::AdaptiveBrightnessClass m_ui;
|
Ui::AdaptiveBrightnessClass m_ui;
|
||||||
|
|
||||||
std::unique_ptr<QIcon> m_icon;
|
std::array<std::unique_ptr<QIcon>, 12> m_icons;
|
||||||
|
std::size_t m_currentIcon;
|
||||||
bool m_visibility;
|
bool m_visibility;
|
||||||
QAction* m_showHideAction;
|
QAction* m_showHideAction;
|
||||||
QMenu* m_trayIconMenu;
|
QMenu* m_trayIconMenu;
|
||||||
QSystemTrayIcon* m_trayIcon;
|
QSystemTrayIcon* m_trayIcon;
|
||||||
|
|
||||||
|
QTimer* m_timer;
|
||||||
};
|
};
|
||||||
|
@ -1,5 +1,16 @@
|
|||||||
<RCC>
|
<RCC>
|
||||||
<qresource prefix="/AdaptiveBrightness">
|
<qresource prefix="/AdaptiveBrightness">
|
||||||
<file>resources/brightness_system.ico</file>
|
<file>resources/brightness_system.ico</file>
|
||||||
|
<file>resources/brightness_0.ico</file>
|
||||||
|
<file>resources/brightness_1.ico</file>
|
||||||
|
<file>resources/brightness_2.ico</file>
|
||||||
|
<file>resources/brightness_3.ico</file>
|
||||||
|
<file>resources/brightness_4.ico</file>
|
||||||
|
<file>resources/brightness_5.ico</file>
|
||||||
|
<file>resources/brightness_6.ico</file>
|
||||||
|
<file>resources/brightness_7.ico</file>
|
||||||
|
<file>resources/brightness_8.ico</file>
|
||||||
|
<file>resources/brightness_default.ico</file>
|
||||||
|
<file>resources/brightness_error.ico</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
BIN
AdaptiveBrightness/resources/brightness_0.ico
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
AdaptiveBrightness/resources/brightness_1.ico
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
AdaptiveBrightness/resources/brightness_2.ico
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
AdaptiveBrightness/resources/brightness_3.ico
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
AdaptiveBrightness/resources/brightness_4.ico
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
AdaptiveBrightness/resources/brightness_5.ico
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
AdaptiveBrightness/resources/brightness_6.ico
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
AdaptiveBrightness/resources/brightness_7.ico
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
AdaptiveBrightness/resources/brightness_8.ico
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
AdaptiveBrightness/resources/brightness_default.ico
Normal file
After Width: | Height: | Size: 102 KiB |
BIN
AdaptiveBrightness/resources/brightness_error.ico
Normal file
After Width: | Height: | Size: 104 KiB |