fix item sort order is changed when popup

Change-Id: Ia91885ac98ca6707dc677bf1e5f79011ac91dfb7
This commit is contained in:
石博文 2018-02-22 10:13:58 +08:00
parent fc5135ea74
commit 9ab72dfdba
Notes: Deepin Code Review 2018-02-22 10:29:55 +08:00
Verified+1: Anonymous Coward #1000004
Code-Review+2: 石博文 <sbw@sbw.so>
Submitted-by: 石博文 <sbw@sbw.so>
Submitted-at: Thu, 22 Feb 2018 10:29:55 +0800
Reviewed-on: https://cr.deepin.io/31789
Project: dde/dde-dock
Branch: refs/heads/master

View File

@ -206,7 +206,8 @@ void DockSettings::showDockSettingsMenu()
{
m_autoHide = false;
qDeleteAll(m_hideSubMenu->actions());
// create actions
QList<QAction *> actions;
for (auto *p : m_itemController->pluginList())
{
if (!p->pluginIsAllowDisable())
@ -221,9 +222,19 @@ void DockSettings::showDockSettingsMenu()
act->setChecked(enable);
act->setData(name);
m_hideSubMenu->addAction(act);
actions << act;
}
// sort by name
std::sort(actions.begin(), actions.end(), [] (QAction *a, QAction *b) -> bool {
return a->data().toString() > b->data().toString();
});
// add actions
qDeleteAll(m_hideSubMenu->actions());
for (auto act : actions)
m_hideSubMenu->addAction(act);
m_fashionModeAct.setChecked(m_displayMode == Fashion);
m_efficientModeAct.setChecked(m_displayMode == Efficient);
m_topPosAct.setChecked(m_position == Top);
@ -241,7 +252,6 @@ void DockSettings::showDockSettingsMenu()
m_keepHiddenAct.setChecked(m_hideMode == KeepHidden);
m_smartHideAct.setChecked(m_hideMode == SmartHide);
m_settingsMenu.exec(QCursor::pos());
setAutoHide(true);