GSoC/2025/StatusReports/holychicken
Appearance
Porting ISO Image Writer GUI to Kirigami and adding some glitter
The current version of ISO Image writer is written in C++ with QT Widgets. Although it does the job of flashing an ISO onto a usb disk theres much room from improvment.
The current version offers:
- A straightforward interface for selecting ISO files and target USB devices
- Verification of ISO checksums and digital signatures
- Safety measures to prevent accidental overwrites of system drives
- Support for multiple platforms (Linux, Windows, macOS) through various package formats
Despite its functionality, the current implementation has several limitations:
- Requires manual downloading of ISO images before use
- Interface is not consistent with modern KDE applications as they move towards using Kirigami, the GUI framework built on top of QML
- Inconsistencies in the Ul usage
Mentors
Harald Sitter, Nicholas Fella, Tobias Fella
Work report
Week 1:
- Initial Blog
- Reviewed Kirigami components and brainstormed different layouts ideas
- Reviewed Codebase and started with porting frontend to QML
Week 2:
- Updated Build system to embed QML into executables
- Reviewed quickemu/quickget
- Completed first iteration of the UI with placeholder texts and stubs
Week 3 + 4:
- Refined the UI and added more features like drag-and-drop support, ISO searching.
- Opened up the initial Merge Request and received feedback
- Iterating and addressing the feedback
- As part of the feedback I had to rethink the UI following KDE's design language
Week 5:

- Addressing more feedback
- started integrating the backend logic to qml
- Completed integration of iso-verification
- Continuing with usb-device listing and flashing
Week 6:
- Addressing more feedback
- Reworking control flow for iso-verification
- Streamlining UI with KDE's design philosophy
Week 7 - Now:
- Added automatic iso discovery
- Improving look and feel of the app
- Switching out qml file dialog with `QFileDialog`
Final Notes
- Ported entire application from Qt Widgets to QML
- Implemented automatic ISO fetching system - dynamic fetching from Fedora, Kubuntu, and KDE Neon endpoints
- Built web scraping and JSON parsing functionality - Created releasefetch.cpp class to automatically get latest release information including checksums
- Added direct URL download capability - Users can now paste ISO URLs directly into the app for download and flashing
- Integrated native file dialog - Bridged QFileDialog from C++ to QML for better desktop theme consistency
- Made flashing process non-blocking - Updated flashcontroller to show real-time progress during USB flashing
- Implemented drag-and-drop functionality - Users can drop ISO files directly onto the application window

