Rewriting tagging
TODO:
- [ ] Add tag in brush presets docker
- [ ] Remove tag in brush presets docker
- [ ] Rename tag in brush presets docker
- [ ] Add tag to all filtered out resources
- [ ] Add resource to tag ibpd
- [ ] Remove resource from tag ibpd
- [x] Filtering by tag in combobox
- [ ] Filtering by tag in the filter below
- [ ] Filtering by multiple tags in filter below
- [ ] Make sure "All" tag behaves correctly
- [ ] Make sure we cannot remove or rename All tag
- [ ] Remove all TODO: RESOURCES: from code (when they are all solved, of course)
Notes:
Note: "writing to the database" means: "using appropriate functions implemented by Boud to write stuff to database".
Note2: this is all quite rough, but it will get smoother when I learn what all of this actually means :P
- [ ] tags are initialized properly in all appropriate storages
- [ ] KisBundleStorage needs to read tags from .desktop files, too (and don't remove reading from manifest!)
- [ ] tags are then written to database during the creation of the database
- [ ] tags are written to database during loading brand new resource storages (like bundles)
- [ ] tags changes are written to database when the user does something with them
- [ ] tags/resources relationships changes are written to database when the user tags or untags resources
- [ ] KisTagChooserWidget needs to use KisTagModel
- [ ] KisTagFilterWidget needs to use KisTagModel
- [ ] KisTagToolButton needs to use KisTagModel
- [ ] right-click tagging menu in the resource chooser implementation needs to use KisTagModel
- [ ] KisResourceTaggingManager might have a problem with recursive signals
- [ ] make a map of interconnectivity between: KisTagChooserWidget, KisTagFilterWidget, KisTagToolButton, "right-click menu" (above), KisResourceTaggingManager, KisResourceChooser, TaggingManager
- [ ] remove old code responsible for tagging: loading the tag files, keeping a list of tags and tag-resource relations, keeping that updated, saving it out to disk, and presenting that data to the tagging widgets