summaryrefslogtreecommitdiffstats
path: root/src/main.cpp
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-03 15:41:56 +0200
committerDanilo M. <danix@danix.xyz>2026-08-04 12:53:32 +0200
commit3f322bcb2a39baffb004890caa167e6aacbee9a1 (patch)
treeacc3e05d5c70efc551bc9d286378a8c25bca3554 /src/main.cpp
parent9bd2eb0e832ae68ffc15dae6033c5c4543bb8130 (diff)
downloadqtmaildir-3f322bcb2a39baffb004890caa167e6aacbee9a1.tar.gz
qtmaildir-3f322bcb2a39baffb004890caa167e6aacbee9a1.zip
feat: use the application icon
The icon was committed in a previous session and referenced nowhere: no qrc, no .desktop entry, no setWindowIcon. It is wired up now, as a window icon, a desktop entry, and install rules placing both into hicolor and share/applications. resources.qrc belongs to the executable rather than to qtmaildir_lib. A qrc compiled into a static library registers itself from a global initialiser, and the linker discards that object because nothing references it: the build succeeded, qInitResources_resources() was present in the .a, and QFile::exists(":/icons/qtmaildir.svg") still returned false at runtime. Verified loading at 16, 32 and 64 pixels after the move. Toolbar and menu actions take icons from the system theme by their standard names, so they match the rest of the desktop rather than shipping bespoke art. A theme lacking one leaves that action as text, which still works.
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 4d3ed0a..231594f 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -17,6 +17,7 @@
*/
#include <QApplication>
+#include <QIcon>
#include <QMessageBox>
#include <QWebEngineUrlScheme>
@@ -76,6 +77,13 @@ int main(int argc, char *argv[])
app.setOrganizationName(QStringLiteral("qtmaildir"));
app.setApplicationVersion(QStringLiteral(QTMAILDIR_VERSION));
+ // Compiled in rather than read from disk, so the icon is there whether or
+ // not the app was installed. setDesktopFileName() is what lets a Wayland
+ // compositor match the window to its .desktop entry, which is where the
+ // taskbar icon really comes from there.
+ app.setWindowIcon(QIcon(QStringLiteral(":/icons/qtmaildir.svg")));
+ app.setDesktopFileName(QStringLiteral("qtmaildir"));
+
// Fail loudly on an ABI mismatch rather than crashing later.
if (LIBNOTMUCH_MAJOR_VERSION < 5) {
QMessageBox::critical(nullptr, QObject::tr("qtmaildir"),