Rewriting tagging
TODO/Tests:
- [x] Add tag in brush presets docker
- [x] Remove tag in brush presets docker
- [x] Rename tag in brush presets docker
- [x] Update tag to the filtered out resources
- [x] Add resource to tag ibpd
- [x] Add resource to a new tag ibpd
- [x] Remove resource from tag ibpd
- [x] Filtering by tag in combobox
- [x] Filtering by names in the filter below
- [ ] Filtering by tags in the filter below
- [x] Make sure "All" tag behaves correctly
- [x] Make sure we cannot remove or rename All tag
- [ ] Make sure that rename/add new signals are with QString, unless we provide a way to change/write other fields as well
- [ ] Remove all TODO: RESOURCES: from code (when they are all solved, of course)
- [ ] KisTagModel::allTags() should be refatored out, every time I need all tags, I need to reiterate over the model
- [ ] Change UI in tags adding/removing from whatever it is now to a one list with checkboxes
- [ ] Find a way to mark some tags as inactive (@rempt)
- [x] KisTagModel::renameTag() (@rempt)
- [x] KisResourceModel::tagsForResource() (@rempt)
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!)
- [x] 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
- [x] KisTagChooserWidget needs to use KisTagModel
- [ ] KisTagFilterWidget needs to use KisTagModel
- [x] KisTagToolButton needs to use KisTag
- [x] right-click tagging menu in the resource chooser implementation needs to use KisTagModel
- [ ] KisResourceTaggingManager might have a problem with recursive signals
- [x] 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