Skip to content
  • Denis Kurz's avatar
    Prevent tag name vs gid confusion · b8077150
    Denis Kurz authored
    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.
    
    BUG: 373257
    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
    b8077150