Bug 373257

Summary: unwanted new categories with UUID-like names
Product: [Applications] korganizer Reporter: Gunter Ohrner <kdebugs>
Component: generalAssignee: kdepim bugs <kdepim-bugs>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 5.3.2   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In: 5.6.1
Attachments: category list, showing two automatically created unwanted categories which have UUIDs as their names.

Description Gunter Ohrner 2016-12-04 15:40:08 UTC
kOrganizer 5.3.3 (KDE Neon) randomly creates new event categories, the names of which look like UUIDs.

See attached screenshot.
Comment 1 Gunter Ohrner 2016-12-04 15:41:22 UTC
Created attachment 102616 [details]
category list, showing two automatically created unwanted categories which have UUIDs as their names.
Comment 2 Denis Kurz 2017-08-25 22:48:22 UTC
Git commit b807715001e83abe4335b48ab4f2b424410bcec4 by Denis Kurz.
Committed on 25/08/2017 at 22:48.
Pushed by dkurz into branch 'Applications/17.08'.

Prevent tag name vs gid confusion

Summary:
The old code relied on the display name of the tags of the item provided
via load(const Akonadi::Item&) being set, but those aren't actually
fetched. This led IncidenceCategories to believe that an item's
categories are the gids of its tags. Saving the item without confirming
the category dialog (e.g. by only modifying the description) led to this
gid being written back to Akonadi. Opening the item again afterwards
then even leads to a corresponding Akonadi tag being created.

We reduce state in IncidenceEditor, stop matching Tags twice a
row (in onTagsFetched and matchExistingCategories), and rely more on
incidence->categories(), where no gid confusion exists.
FIXED-IN: 5.6.1

Test Plan:
I editted multiple events in KOrganizer, modifying categories or
description or title of the event, or all of them in one change.
For categories, I tried to set related subsets of my tags (a sub-
or superset of the previously selected tags), or completely unrelated
sets (deselecting all selected, and selecting previously other ones
instead). All changes were saved as expected, and no gid-named
categories were created in the process.

Reviewers: #kde_pim, dvratil

Reviewed By: #kde_pim, dvratil

Subscribers: dvratil

Tags: #kde_pim

Differential Revision: https://phabricator.kde.org/D7548

M  +31   -35   src/incidencecategories.cpp
M  +0    -3    src/incidencecategories.h

https://commits.kde.org/incidenceeditor/b807715001e83abe4335b48ab4f2b424410bcec4