11#include " coding_time_tracker.h"
22
33#include < QApplication>
4- #include < QPainter>
4+
5+ #include < QImage>
6+ #include < QPixmap>
7+
8+ #include < windows.h>
59
610CodingTimeTracker::CodingTimeTracker (
711 Settings settings, QObject* parent) :
@@ -41,15 +45,12 @@ bool CodingTimeTracker::start(QString& errorMessage) {
4145void CodingTimeTracker::poll () {
4246 const std::optional<QString> foregroundPath =
4347 foregroundApplication_.executablePath ();
44-
4548 std::optional<QString> trackedPath;
4649 if (foregroundPath.has_value () &&
4750 trackedApplication_.isTracked (*foregroundPath))
4851 trackedPath = foregroundPath;
49-
5052 trackingEngine_.observe (trackedPath, elapsedTimer_.elapsed ());
5153 if (trackingEngine_.state () == TrackingState::IDLE ) return ;
52-
5354 QString errorMessage;
5455 const std::optional<qint64> pendingSeconds =
5556 usageCounter_.increment (errorMessage);
@@ -60,7 +61,6 @@ void CodingTimeTracker::poll() {
6061 QSystemTrayIcon::Critical);
6162 return ;
6263 }
63-
6464 updateTrayStatus (pendingSeconds.value ());
6565}
6666
@@ -70,16 +70,8 @@ void CodingTimeTracker::updateTrayStatus(const qint64 pendingSeconds) {
7070 trayIcon_.setToolTip (status);
7171}
7272
73- QIcon CodingTimeTracker::createTrayIcon ()
74- {
75- QPixmap pixmap (32 , 32 );
76- pixmap.fill (Qt::transparent);
77-
78- QPainter painter (&pixmap);
79- painter.setRenderHint (QPainter::Antialiasing);
80- painter.setPen (Qt::NoPen);
81- painter.setBrush (QColor (QStringLiteral (" #FFFFFF" )));
82- painter.drawEllipse (2 , 2 , 28 , 28 );
83-
84- return QIcon (pixmap);
73+ QIcon CodingTimeTracker::createTrayIcon () {
74+ const HICON icon = ::LoadIconW (nullptr , IDI_APPLICATION );
75+ return QIcon (
76+ QPixmap::fromImage (QImage::fromHICON (icon)));
8577}
0 commit comments