Make activity popup menu consistent with VD menu
Instead of using a custom widget use normal widget Signed-off-by: Carl Schwan <carl@carlschwan.eu>
This commit is contained in:
parent
621c06deda
commit
c0447c3681
1 changed files with 9 additions and 16 deletions
|
@ -53,7 +53,7 @@
|
||||||
#include <kconfig.h>
|
#include <kconfig.h>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QRegularExpression>
|
#include <QRegularExpression>
|
||||||
#include <QWidgetAction>
|
#include <QAction>
|
||||||
#include <kauthorized.h>
|
#include <kauthorized.h>
|
||||||
|
|
||||||
#include "killwindow.h"
|
#include "killwindow.h"
|
||||||
|
@ -719,21 +719,17 @@ void UserActionsMenu::activityPopupAboutToShow()
|
||||||
KActivities::Info activity(id);
|
KActivities::Info activity(id);
|
||||||
QString name = activity.name();
|
QString name = activity.name();
|
||||||
name.replace('&', "&&");
|
name.replace('&', "&&");
|
||||||
QWidgetAction *action = new QWidgetAction(m_activityMenu);
|
auto action = m_activityMenu->addAction(name);
|
||||||
QCheckBox *box = new QCheckBox(name, m_activityMenu);
|
action->setCheckable(true);
|
||||||
action->setDefaultWidget(box);
|
|
||||||
const QString icon = activity.icon();
|
const QString icon = activity.icon();
|
||||||
if (!icon.isEmpty())
|
if (!icon.isEmpty()) {
|
||||||
box->setIcon(QIcon::fromTheme(icon));
|
action->setIcon(QIcon::fromTheme(icon));
|
||||||
box->setBackgroundRole(m_activityMenu->backgroundRole());
|
}
|
||||||
box->setForegroundRole(m_activityMenu->foregroundRole());
|
|
||||||
box->setPalette(m_activityMenu->palette());
|
|
||||||
connect(box, &QCheckBox::clicked, action, &QAction::triggered);
|
|
||||||
m_activityMenu->addAction(action);
|
m_activityMenu->addAction(action);
|
||||||
action->setData(id);
|
action->setData(id);
|
||||||
|
|
||||||
if (m_client && !m_client->isOnAllActivities() && m_client->isOnActivity(id)) {
|
if (m_client && !m_client->isOnAllActivities() && m_client->isOnActivity(id)) {
|
||||||
box->setChecked(true);
|
action->setChecked(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -793,14 +789,11 @@ void UserActionsMenu::slotToggleOnActivity(QAction *action)
|
||||||
// susequent toggling ("off") would move the client to only that activity.
|
// susequent toggling ("off") would move the client to only that activity.
|
||||||
// bug #330838 -> set all but "on all" off to "force proper usage"
|
// bug #330838 -> set all but "on all" off to "force proper usage"
|
||||||
for (int i = 1; i < m_activityMenu->actions().count(); ++i) {
|
for (int i = 1; i < m_activityMenu->actions().count(); ++i) {
|
||||||
if (QWidgetAction *qwa = qobject_cast<QWidgetAction*>(m_activityMenu->actions().at(i))) {
|
m_activityMenu->actions().at(i)->setChecked(true);
|
||||||
if (QCheckBox *qcb = qobject_cast<QCheckBox*>(qwa->defaultWidget())) {
|
|
||||||
qcb->setChecked(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
Q_UNUSED(action)
|
Q_UNUSED(action)
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue