commit ce844ce8
Update readme and make the icon work in Wayland
Changed files
| M | README.md before |
| M | src/main.cpp before |
diff --git a/README.md b/README.md
index a880400..7cb3c92 100644
--- a/README.md
+++ b/README.md
@@ -4,17 +4,29 @@ A Qt6-based image browser application for viewing and managing image collections
## Features
-- Browse images in a directory tree
-- Thumbnail preview of images
-- Single image view mode with keyboard navigation
-- File system navigation
-- Multi-threaded thumbnail generation for responsive UI
+- Browse images in a directory tree with file system navigation
+- Multi-threaded, cached thumbnail generation for a responsive UI
+- Single image view mode with keyboard-driven zoom, pan, fit and navigation
+- Fullscreen viewing
+- EXIF/IPTC metadata panel (camera, exposure, ISO, focal length, dimensions, …)
+- Geo location with a clickable OpenStreetMap link when an image is geotagged
+- Edit image captions (written to the IPTC Caption-Abstract tag)
+- Lossless 90° rotation (updates the EXIF orientation tag, pixel data untouched)
+- Move images to trash and delete files
+- Right-click context menus (including copying file paths), also in fullscreen
+- Configurable keyboard shortcuts
+- Preferences for background color, thumbnail cache size, dock locking and layout
+- Path entry field with autocomplete
+- Translations (Danish included)
+- Supports every image format provided by the installed Qt image plugins
## Requirements
- C++17 or later
- CMake 3.21+
-- Qt6 (Widgets component)
+- Qt6 (Widgets and LinguistTools components)
+- Git and a network connection — Exiv2 (v0.28.8) is fetched and statically linked
+ at configure time via CMake `FetchContent`
## Building
@@ -24,7 +36,7 @@ Install Qt6 development files:
```bash
# On Ubuntu/Debian
-sudo apt-get install qt6-base-dev
+sudo apt-get install qt6-base-dev qt6-tools-dev
# On macOS with Homebrew
brew install qt6
@@ -34,30 +46,56 @@ brew install qt6
```bash
cd SagoImageBrowser
-mkdir build
-cd build
-cmake ..
-make
+cmake -B build
+cmake --build build
```
-The compiled executable will be at `./build/SagoImageBrowser`
+The compiled executable will be at `./build/SagoImageBrowser`.
+
+### Installing
+
+```bash
+cmake --install build
+```
+
+This installs the executable, a `.desktop` entry and the application icon.
## Running
```bash
-./build/SagoImageBrowser
+./build/SagoImageBrowser [path]
+```
+
+An optional directory or image path can be passed on the command line.
+
+## Tests
+
+A small test for the EXIF reader is built alongside the application:
+
+```bash
+./build/test_exifreader
```
## Project Structure
```
src/
- ├── main.cpp # Application entry point
- ├── mainwindow.h/cpp # Main application window
- ├── imagemodel.h/cpp # Image data model
- ├── imageviewwidget.h/cpp # Image display widget
- └── thumbnailworker.h/cpp # Background thumbnail generation
-CMakeLists.txt # Build configuration
+ ├── main.cpp # Application entry point
+ ├── mainwindow.h/cpp # Main application window
+ ├── imagemodel.h/cpp # Image list/grid data model
+ ├── fsdirmodel.h/cpp # Directory tree model
+ ├── imageviewwidget.h/cpp # Single-image display widget (zoom/pan)
+ ├── thumbnailworker.h/cpp # Background thumbnail generation
+ ├── thumbnailcache.h/cpp # Thumbnail caching
+ ├── thumbnaildelegate.h/cpp # Thumbnail rendering in the view
+ ├── exifreader.h/cpp # EXIF/IPTC reading, caption writing, rotation
+ ├── preferencesdialog.h/cpp # Preferences dialog
+ ├── shortcutmanager.h/cpp # Configurable keyboard shortcuts
+ └── pathcompletermodel.h/cpp # Autocomplete for the path field
+test/ # Unit tests
+translations/ # Qt translation files (.ts)
+extra/ # Desktop entry and icons
+CMakeLists.txt # Build configuration
```
## License
diff --git a/src/main.cpp b/src/main.cpp
index 48eb682..98d7854 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -7,6 +7,7 @@
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
+ app.setDesktopFileName("sago-image-browser");
app.setWindowIcon(QIcon(":/icons/sago_image_browser.svg"));
QTranslator translator;