Bug 512278

Summary: Add Plasmoid for quickly viewing tasks on the desktop
Product: [Applications] KomoDo Reporter: Martin Sh <hemisputnik>
Component: GeneralAssignee: Akseli Lahtinen <akselmo>
Status: ASSIGNED ---    
Severity: wishlist    
Priority: NOR    
Version First Reported In: 1.5.0   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Martin Sh 2025-11-18 05:58:06 UTC
SUMMARY
I really like KomoDo, but one thing I wish it had is a Plasmoid that allows you to "staple" a specific TODO list to your desktop or panels.
Bonus points if you're able to filter for specific TODOs per-plasmoid (for example, filter by project or context).
Comment 1 Akseli Lahtinen 2025-11-18 16:41:19 UTC
It's a good idea. If I have time for this, I want to implement it. But anyone else is free to implement it too, KomoDo already has a parser that could be utilized.
Comment 2 Martin Sh 2025-11-18 17:09:06 UTC
I could totally implement this myself, I just need to finish the second MR for the fifteen-puzzle icon.
Comment 3 Akseli Lahtinen 2025-12-13 20:13:20 UTC
Git commit 46950147e64cc1c36e7d4ca8e9ce7de0001bfaec by Akseli Lahtinen, on behalf of Martin Sh.
Committed on 13/12/2025 at 20:13.
Pushed by akselmo into branch 'master'.

Various architectural improvements (in preparation for plasmoid work)

This MR doesn't change the behaviour of KomoDo (hopefully), but rather addresses some architectural limitations, in preparation for adding a plasmoid.

I tried to keep the changelist clean and easy to follow, but here's a brief list of what was changed anyway:
- Both the `ui` and `models` modules are now shared, instead of static.
- `TodoPage` has been moved from the `ui` module into the main executable (due to having a lot of application-specific bits. The intention is to make the `ui` module also usable by the plasmoid.)
- `TodoModel` is no longer a singleton.
- `TodoModel` and the configuration have been separated.
   - Configuration logic has been moved to the `komodo` executable, and it is now done in the QML code.
   - A couple of `TodoModel` properties have been removed, since they were only used for the config.
- A new method called `TodoModel.setLocalFilePath` has been added, which is used when the user passes a `--filename` argument.
   - This solves a bug where the `--filename` argument didn't work.
- Changing `filePath` no longer calls `loadFile`, since this resulted in files being loaded up to 3 times during initialization.

M  +8    -2    src/CMakeLists.txt
M  +1    -2    src/Main.qml
R  +58   -22   src/TodoPage.qml [from: src/ui/TodoPage.qml - 086% similarity]
M  +1    -2    src/autotests/CMakeLists.txt
R  +0    -0    src/komodo_config.kcfg [from: src/models/komodo_config.kcfg - 100% similarity]
M  +5    -0    src/main.cpp
M  +5    -5    src/models/CMakeLists.txt
M  +9    -44   src/models/TodoModel.cpp
M  +7    -13   src/models/TodoModel.h
M  +5    -5    src/ui/CMakeLists.txt

https://invent.kde.org/utilities/komodo/-/commit/46950147e64cc1c36e7d4ca8e9ce7de0001bfaec
Comment 4 Bug Janitor Service 2025-12-18 11:03:31 UTC
A possibly relevant merge request was started @ https://invent.kde.org/utilities/komodo/-/merge_requests/67