Hello plasma devs and users, Please review the plasma/isemenov/menu branch.
Based on #306537 but goes a bit further than that. Fixes: "Arrange icons" (flow configuration) added to the context menu "Sort order" and "folders first" added to the config UI Update the "Sort" combo if the user moves the icons while the dialog is open - fix by Eike Hein, I expressed it using a helper func since the relevant code has changed slightly Update sort order, sort direction, flow combos when the user cnahges those using the context menu if the config dialog is open Update the align to grid, lock in place, folders first, click to view checkboxes when the user cnahges those using the context menu if the config dialog is open Fix a potential stall (instead of iterating the combos from 0 till maxCount() (INTMAX) which can result in a minute-long loop (tested) if the value is not found iterate them from 0 till count()) - thanks goes to tsdgeos for explaiing me that comboboxes are contiguous Changed the hardcoded "-1" to an anonymous enum "FolderView::Unsorted = -1" for code clarity and maintainability Only show the "Unsorted" action in the "Sort" combo if the view is not sorted. It appears when the users drags icons around, and lives until the dialog is closed. Then, when the dialog is opened again, if the view is still unsorted, it is added to the list. If the user sorts the view using the combo or the context menu, unsorted still stays until the dialog is closed - probably better than have it appear and disappear within an open dialog. This implements aseigo's idea. Also, since I had to move the flow and sorting direction to QActionGroups (to enable them in the context menu), and that lead to duplicated for loops, I created a little helper to add action groups to combos. (trying to follow "code what to do, not how to do it"). Another thing worth mentioning is the setCurrentItem() helper func. I should be using QComboBox::findData(), *but* we use enums for the action data, hence QVariant's and Q_DECLARE_METATYPE. QVariant::operator==() fails for user defined types, including Q_DECLARE_METATYPE'd enums. Debugged together with tsdgeos and steveire. So we have to workaround that, in a manually written loop, which I put in a helper func. Thank you for your attention! Best regards, Ignat Semenov _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel