Summary: | Exif checkboxes ‘Fired’, ‘Function’ and ‘Red-eye remove’ all act as *one* checkbox | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Karl Ove Hufthammer <karl> |
Component: | General | Assignee: | amyspark <amy> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | amy, griffinvalley, tamtamy.tymona |
Priority: | NOR | ||
Version: | git master (please specify the git hash!) | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/graphics/krita/commit/8702bb9001eb09519e5b8f49d3634816f8db398d | Version Fixed In: | |
Sentry Crash Report: |
Description
Karl Ove Hufthammer
2019-07-29 08:11:22 UTC
Related: bug 396669 It looks like metadata are kind of broken anyway. I could "fix this" by making it behave independently, but... I can't test if it breaks anything, because most of the code in metadata is either broken or wrong. The reason why all those checkboxes behave as one is that they are all distinguished as "exif:Flash" instead of "exif:Flash:Fired" etc. because exif:Flash, differently from all other fields in exif: scheme, is a structure (which means it contains other fields inside). The code looks like someone knew about it, but later forgot or at least forgot to check it in practice. The second/main reason is that all updates in one widget are propagated to all other widgets using the name of the property as the only thing that differentiate between what should get the notification and what shouldn't. All checkboxes has a property called "checked", which is why when one changes its "checked" status, they all change it too. Looks like the main reason for all those trouble is not separating the model and the view enough. I'm gonna unassign myself now. This bug depends on untangling the metadata code and fixing other bugs. It shouldn't be very difficult, but it will take some time, especially because half of the information is in .ui files and schemes. Relevant files: plugins/extensions/metadataeditor/kis_entry_editor.cpp plugins/extensions/metadataeditor/kis_metadata_editor.cpp plugins/extensions/metadataeditor/editors/exif.ui krita/data/metadata/schemas/exif.schema The most relevant functions are void KisEntryEditor::valueChanged() and KisMetaDataEditor::KisMetaDataEditor(QWidget* parent, KisMetaData::Store* originalStore) A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/1004 Git commit db407cd7993794ebb125ae63b720e11325f7365c by L. E. Segovia. Committed on 17/08/2021 at 16:37. Pushed by lsegovia into branch 'master'. Metadata editor: reimplement entry handling This commit implements entry handling based entirely on a few compile time macros and Qt's newer signal/slot syntax. This allows me to add support for flash metadata, which was broken since at least 67b39577b6dc9e5f2e5e2885b2188cbd393c55f6. While at it, add a default icon to the Dublin Core pane; the old one in the xmlgui file was missing since forever. CCMAIL: kimageshop@kde.org M +0 -6 Messages.sh M +0 -1 plugins/extensions/metadataeditor/CMakeLists.txt M +12 -30 plugins/extensions/metadataeditor/editors/dublincore.ui D +0 -33 plugins/extensions/metadataeditor/editors/dublincore.xmlgui M +4 -101 plugins/extensions/metadataeditor/editors/exif.ui D +0 -157 plugins/extensions/metadataeditor/editors/exif.xmlgui M +144 -99 plugins/extensions/metadataeditor/kis_meta_data_editor.cc M +1 -0 plugins/extensions/metadataeditor/kis_meta_data_editor.h https://invent.kde.org/graphics/krita/commit/db407cd7993794ebb125ae63b720e11325f7365c Git commit 8702bb9001eb09519e5b8f49d3634816f8db398d by L. E. Segovia. Committed on 25/08/2021 at 01:48. Pushed by lsegovia into branch 'krita/5.0'. Metadata editor: reimplement entry handling This commit implements entry handling based entirely on a few compile time macros and Qt's newer signal/slot syntax. This allows me to add support for flash metadata, which was broken since at least 67b39577b6dc9e5f2e5e2885b2188cbd393c55f6. While at it, add a default icon to the Dublin Core pane; the old one in the xmlgui file was missing since forever. CCMAIL: kimageshop@kde.org (cherry picked from commit db407cd7993794ebb125ae63b720e11325f7365c) M +0 -6 Messages.sh M +0 -1 plugins/extensions/metadataeditor/CMakeLists.txt M +12 -30 plugins/extensions/metadataeditor/editors/dublincore.ui D +0 -33 plugins/extensions/metadataeditor/editors/dublincore.xmlgui M +4 -101 plugins/extensions/metadataeditor/editors/exif.ui D +0 -157 plugins/extensions/metadataeditor/editors/exif.xmlgui M +144 -99 plugins/extensions/metadataeditor/kis_meta_data_editor.cc M +1 -0 plugins/extensions/metadataeditor/kis_meta_data_editor.h https://invent.kde.org/graphics/krita/commit/8702bb9001eb09519e5b8f49d3634816f8db398d |