Skip to content

Refactor: Full QML UI Migration#6

Merged
femto-simple merged 24 commits into
mainfrom
codex/arcnotes-full-qml
Mar 20, 2026
Merged

Refactor: Full QML UI Migration#6
femto-simple merged 24 commits into
mainfrom
codex/arcnotes-full-qml

Conversation

@deku2026
Copy link
Copy Markdown
Contributor

This PR migrates the ArcNotes application from a QtWidgets-based UI to a modern QML-based UI.

Key Changes:

  • UI Architecture Shift: Transitioned from traditional QtWidgets (e.g., MainWindow, UpdaterWindow, NodeTreeView, NoteListView) to a full QML frontend located in src/qml/ (e.g., Main.qml, KanbanBoard.qml, UpdaterDialog.qml, AboutDialog.qml).
  • Core Backend Replacements: Introduced AppBackend, NoteEditorBackend, and UpdateBackend to replace legacy view-logic files and cleanly bridge C++ application logic with the new QML frontend.
  • Dependency Cleanup: Removed unused 3rd-party libraries, including QSimpleUpdater, qautostart, qmarkdowntextedit, and qxt, significantly reducing the codebase size.
  • Build System & Resources: Refactored CMakeLists.txt to dynamically glob QML resources and cpp sources, adjusting internal resources and translation files.
  • Styling updates: Removed legacy .css stylesheet files for Qt Widgets in favor of native QML styling and integrated theme management.

Overall, this simplifies the application architecture, removing over 26k lines of legacy widget code while adding ~6.4k lines of modern QML/C++ integration code.

deku2026 added 24 commits March 19, 2026 17:01
- Introduced SubscriptionStatus.qml as a singleton to mirror the C++ SubscriptionStatus::Value enum.
- Updated SubscriptionWindow.qml to reference the new SubscriptionStatus enum for subscription status handling.
- Refactored kanbanMain.qml to remove unnecessary code and improve readability.
- Created subscriptionstatus.h to define the SubscriptionStatus class and its enum values.
- Enhanced TagListModel to include roleNames for better data representation in QML.
…ate editors, tree view logic, and widget style utilities. Update test suite to exclude removed tests and adjust dependencies accordingly.
- Deleted the UpdaterWindow class implementation (updaterwindow.cpp, updaterwindow.h, updaterwindow.ui).
- Removed all related test files and configurations (CMakeLists.txt, main.cpp, tst_notedata.cpp, tst_notedata.h, tst_notemodel.cpp, tst_notemodel.h, tests.pro).
…create qmlmodulecompat.qrc for resource management
…w functions for note preview and tree icon handling
…tures; add context menu for note actions, including restore and delete options
…lobal menu, and refine note context menu interactions
…g, padding, and implicit height for improved usability
…dling, and improve layout for better usability
…alculation and set width/height based on content
…p, and refine margins for improved visual consistency
@femto-simple femto-simple merged commit c3c39fd into main Mar 20, 2026
2 checks passed
@deku2026 deku2026 deleted the codex/arcnotes-full-qml branch May 30, 2026 11:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants