Add app icons across web, Android, and the desktop app
- Web: favicon.ico + png icons under static/, served from the site root and linked from every page head. - Android: the artwork becomes the launcher icon — the 432px adaptive foreground over the gruvbox background, replacing the placeholder vector drawables. - Desktop: the icon is the Qt window/taskbar icon (embedded via app.qrc), and the app is now an installable package — a wrapped binary, a photog.desktop entry, and hicolor icons — so `nix profile install ./desktop` puts "Photog" in the application menu.
This commit is contained in:
@@ -4,6 +4,7 @@ project(photogallery_uploader LANGUAGES CXX)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS Widgets Network Concurrent)
|
||||
find_package(Qt6Keychain REQUIRED)
|
||||
@@ -15,6 +16,7 @@ add_executable(uploader
|
||||
settings.cpp
|
||||
uploadclient.cpp
|
||||
imageprep.cpp
|
||||
app.qrc
|
||||
)
|
||||
|
||||
target_link_libraries(uploader PRIVATE
|
||||
@@ -23,3 +25,14 @@ target_link_libraries(uploader PRIVATE
|
||||
Qt6::Concurrent
|
||||
Qt6Keychain::Qt6Keychain
|
||||
)
|
||||
|
||||
# Installation — the binary, a desktop entry, and the app icon in the hicolor
|
||||
# theme, so `nix profile install ./desktop` puts "Photog" in the app menu.
|
||||
include(GNUInstallDirs)
|
||||
install(TARGETS uploader RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(FILES photog.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
|
||||
foreach(sz 32 128 256 512)
|
||||
install(FILES icons/app-${sz}.png
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/${sz}x${sz}/apps
|
||||
RENAME photog.png)
|
||||
endforeach()
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<!DOCTYPE RCC>
|
||||
<RCC version="1.0">
|
||||
<qresource prefix="/">
|
||||
<file>icons/app-32.png</file>
|
||||
<file>icons/app-128.png</file>
|
||||
<file>icons/app-256.png</file>
|
||||
<file>icons/app-512.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
@@ -17,6 +17,28 @@
|
||||
pkgs.qt6.qtimageformats
|
||||
];
|
||||
in {
|
||||
# Installable build: `nix profile install ./desktop` drops "Photog" into
|
||||
# the application menu with its icon. wrapQtAppsHook wraps the binary so
|
||||
# it finds the Qt platform (xcb + wayland) and image-format plugins on
|
||||
# its own, without the dev shell.
|
||||
packages.default = pkgs.stdenv.mkDerivation {
|
||||
pname = "photog";
|
||||
version = "0.1.0";
|
||||
src = ./.;
|
||||
nativeBuildInputs = with pkgs; [
|
||||
cmake
|
||||
ninja
|
||||
pkg-config
|
||||
qt6.wrapQtAppsHook
|
||||
];
|
||||
buildInputs = with pkgs; [
|
||||
qt6.qtbase
|
||||
qt6.qtwayland
|
||||
qt6.qtimageformats
|
||||
qt6Packages.qtkeychain
|
||||
];
|
||||
};
|
||||
|
||||
devShells.default = pkgs.mkShell {
|
||||
packages = with pkgs; [
|
||||
cmake
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 40 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 7.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 97 KiB |
@@ -1,4 +1,5 @@
|
||||
#include <QApplication>
|
||||
#include <QIcon>
|
||||
|
||||
#include "mainwindow.h"
|
||||
|
||||
@@ -8,6 +9,15 @@ int main(int argc, char **argv)
|
||||
app.setApplicationName(QStringLiteral("photogallery-uploader"));
|
||||
app.setOrganizationName(QStringLiteral("inflo.ws"));
|
||||
|
||||
// Window / taskbar / alt-tab icon, embedded via app.qrc. Several sizes so
|
||||
// the small titlebar rendering stays crisp rather than downscaling 512px.
|
||||
QIcon icon;
|
||||
icon.addFile(QStringLiteral(":/icons/app-32.png"));
|
||||
icon.addFile(QStringLiteral(":/icons/app-128.png"));
|
||||
icon.addFile(QStringLiteral(":/icons/app-256.png"));
|
||||
icon.addFile(QStringLiteral(":/icons/app-512.png"));
|
||||
app.setWindowIcon(icon);
|
||||
|
||||
MainWindow window;
|
||||
window.resize(440, 680);
|
||||
window.show();
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Photog
|
||||
GenericName=Photo Uploader
|
||||
Comment=Upload photos to your gallery
|
||||
Exec=uploader
|
||||
Icon=photog
|
||||
Terminal=false
|
||||
Categories=Graphics;Photography;Network;
|
||||
Reference in New Issue
Block a user