src/: Qt 4.x C++ sources and UI definitions (*.cpp,*.h,*.ui,*.rc). Entry points live inmain.cppandzima-ptc-cleaner.cpp; UI logic is centered inptcclean.*.gfx/andzima-ptc-cleaner.qrc: Icons and other resources bundled into the Qt resource system.locale/: Translation bundles (*.qm) loaded at runtime; keep locale files alongside the built binary or inlocale/.bin/: Staging spot for built artifacts if you copy them here; not populated automatically by the default build.- Root scripts:
install.shanduninstall.sh(manual/legacy), plusshell.nixfor a reproducible Qt toolchain.
- Build (Qt/qmake):
Generates a GUI executable
qmake -recursive zima-ptc-cleaner.pro make -j$(nproc)ZIMA-PTC-Cleanerin the project root. - Nix shell (optional):
nix developornix-shellto enter a dev environment with Qt tooling. - Run locally:
./ZIMA-PTC-Cleaner(ensure translation files are discoverable per the paths above).
- Language: C++ with Qt 4 widgets; tabs are used for indentation in existing files—follow the prevailing style.
- Naming: Classes in
CamelCase(e.g.,Ptcclean), methods incamelCase, and Qt slots/signals follow Qt naming (e.g.,on_action_triggered). - UI:
.uiforms edited via Qt Designer; keep signal/slot hookups consistent with generated headers. - Formatting: Match brace placement seen in
main.cppandptcclean.cpp; prefer Qt types (QString,QList) over STL unless justified.
- No automated test suite is present. Perform manual validation: start the app, exercise directory selection, cleaning actions, and preference dialogs on the target platform.
- Always verify changes with a full build (
qmake -recursive zima-ptc-cleaner.pro+make -j$(nproc)) before considering the work done, ensuring UI forms and resources still compile and translations load for at least one locale.
- Commits: Use concise, imperative subjects (e.g., “Add dir change validation”). Group related UI and logic updates together; avoid mixing refactors with behavior changes when possible.
- Pull requests: Describe the user-facing impact, key implementation notes, and manual test steps. Link related issues or tickets if available, and include platform specifics for any UI change.
- When adding new UI text, update corresponding translation sources and regenerate
*.qmfiles with Qt Linguist tools, keeping them inlocale/. - Add new icons or assets through
zima-ptc-cleaner.qrcso they are embedded consistently across platforms.