more improvements to containmentactions

pull/2/head
Michail Vourlakos 7 years ago
parent d3756e0ce1
commit 82e77f7b23

@ -427,16 +427,16 @@ void DockMenuManager::addContainmentActions(QMenu *desktopMenu, QEvent *event)
auto *dockCorona = qobject_cast<DockCorona *>(m_dockView->corona());
if (dockCorona) {
desktopMenu->addAction(dockCorona->layoutManager()->addWidgetsAction());
//desktopMenu->addAction(dockCorona->layoutManager()->addWidgetsAction());
}
desktopMenu->addAction(m_dockView->containment()->actions()->action(QStringLiteral("configure")));
// desktopMenu->addAction(m_dockView->containment()->actions()->action(QStringLiteral("configure")));
}
} else {
auto *dockCorona = qobject_cast<DockCorona *>(m_dockView->corona());
desktopMenu->addSeparator();
auto *dockCorona = qobject_cast<DockCorona *>(m_dockView->corona());
if (dockCorona && dockCorona->layoutManager()->menuLayouts().count() > 1) {
const QIcon identityIcon = QIcon::fromTheme("user-identity");
QMenu *layoutsMenu = new QMenu(desktopMenu);
@ -481,11 +481,11 @@ void DockMenuManager::addContainmentActions(QMenu *desktopMenu, QEvent *event)
dockCorona->layoutManager()->showLatteSettingsDialog(Dock::LayoutPage);
});
layoutsMenu->addAction(editLayoutsAction);
// layoutsMenu->addAction(editLayoutsAction);
}
desktopMenu->addAction(dockCorona->layoutManager()->addWidgetsAction());
//desktopMenu->addAction(dockCorona->layoutManager()->addWidgetsAction());
desktopMenu->addActions(actions);
}

@ -52,12 +52,6 @@ LayoutManager::LayoutManager(QObject *parent)
m_corona = qobject_cast<DockCorona *>(parent);
if (m_corona) {
//! create the add widgets action
const QIcon addWidIcon = QIcon::fromTheme("add");
m_addWidgetsAction = new QAction(addWidIcon, i18n("Add Widgets..."), this);
m_addWidgetsAction->setStatusTip(i18n("Show Plasma Widget Explorer"));
connect(m_addWidgetsAction, &QAction::triggered, this, &LayoutManager::showWidgetsExplorer);
connect(m_corona->universalSettings(), &UniversalSettings::currentLayoutNameChanged, this, &LayoutManager::currentLayoutNameChanged);
connect(m_corona->universalSettings(), &UniversalSettings::showInfoWindowChanged, this, &LayoutManager::showInfoWindowChanged);
@ -176,11 +170,6 @@ Importer *LayoutManager::importer()
return m_importer;
}
QAction *LayoutManager::addWidgetsAction()
{
return m_addWidgetsAction;
}
LaunchersSignals *LayoutManager::launchersSignals()
{
return m_launchersSignals;
@ -1113,15 +1102,6 @@ void LayoutManager::showInfoWindow(QString info, int duration, QStringList activ
}
}
void LayoutManager::showWidgetsExplorer()
{
QDBusInterface iface("org.kde.plasmashell", "/PlasmaShell", "", QDBusConnection::sessionBus());
if (iface.isValid()) {
iface.call("toggleWidgetExplorer");
}
}
//! it is used just in order to provide translations for the presets
void LayoutManager::ghostForTranslatedPresets()
{

@ -59,8 +59,6 @@ class LayoutManager : public QObject {
Q_PROPERTY(QStringList layouts READ layouts NOTIFY layoutsChanged)
Q_PROPERTY(QStringList menuLayouts READ menuLayouts NOTIFY menuLayoutsChanged)
Q_PROPERTY(QAction *addWidgetsAction READ addWidgetsAction NOTIFY addWidgetsActionChanged)
Q_PROPERTY(LaunchersSignals *launchersSignals READ launchersSignals NOTIFY launchersSignalsChanged)
public:
@ -94,8 +92,6 @@ public:
Dock::LayoutsMemoryUsage memoryUsage() const;
void setMemoryUsage(Dock::LayoutsMemoryUsage memoryUsage);
QAction *addWidgetsAction();
QHash<const Plasma::Containment *, DockView *> *currentDockViews() const;
QHash<const Plasma::Containment *, DockView *> *layoutDockViews(const QString &layoutName) const;
//! returns an active layout with that #id (name), it returns null if such
@ -128,7 +124,6 @@ public slots:
signals:
void activeLayoutsChanged();
void addWidgetsActionChanged();
void currentLayoutChanged();
void currentLayoutNameChanged();
void launchersSignalsChanged();
@ -140,7 +135,6 @@ signals:
private slots:
void currentActivityChanged(const QString &id);
void showInfoWindowChanged();
void showWidgetsExplorer();
void syncMultipleLayoutsToActivities(QString layoutForOrphans = QString());
private:
@ -175,8 +169,6 @@ private:
QStringList m_menuLayouts;
QStringList m_presetsPaths;
QAction *m_addWidgetsAction{nullptr};
QHash<const QString, QString> m_assignedLayouts;
QTimer m_dynamicSwitchTimer;

@ -9,8 +9,11 @@ add_library(plasma_containmentactions_lattecontextmenu MODULE ${contextmenu_SRCS
kcoreaddons_desktop_to_json(plasma_containmentactions_lattecontextmenu plasma-containmentactions-lattecontextmenu.desktop)
target_link_libraries(plasma_containmentactions_lattecontextmenu
Qt5::Widgets
KF5::Plasma)
Qt5::DBus
Qt5::Widgets
KF5::I18n
KF5::XmlGui
KF5::Plasma)
install(TARGETS plasma_containmentactions_lattecontextmenu DESTINATION ${KDE_INSTALL_PLUGINDIR})
install(FILES plasma-containmentactions-lattecontextmenu.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR})

@ -21,6 +21,10 @@
#include <QAction>
#include <QDebug>
#include <QtDBus/QtDBus>
#include <KActionCollection>
#include <KLocalizedString>
#include <Plasma/Containment>
#include <Plasma/Corona>
@ -29,6 +33,7 @@
Menu::Menu(QObject *parent, const QVariantList &args)
: Plasma::ContainmentActions(parent, args)
{
makeActions();
}
Menu::~Menu()
@ -36,17 +41,30 @@ Menu::~Menu()
qDeleteAll(m_actions);
}
void Menu::makeMenu()
void Menu::makeActions()
{
qDeleteAll(m_actions);
m_actions.clear();
QAction *action = new QAction(QIcon::fromTheme("edit"), "Print Message...", this);
connect(action, &QAction::triggered, [ = ]() {
m_printAction = new QAction(QIcon::fromTheme("edit"), "Print Message...", this);
connect(m_printAction, &QAction::triggered, [ = ]() {
qDebug() << "Action Trigerred !!!";
});
m_actions << action;
m_addWidgetsAction = new QAction(QIcon::fromTheme("add"), i18n("Add Widgets..."), this);
m_addWidgetsAction->setStatusTip(i18n("Show Plasma Widget Explorer"));
connect(m_addWidgetsAction, &QAction::triggered, [ = ]() {
QDBusInterface iface("org.kde.plasmashell", "/PlasmaShell", "", QDBusConnection::sessionBus());
if (iface.isValid()) {
iface.call("toggleWidgetExplorer");
}
});
m_configureAction = new QAction(QIcon::fromTheme("configure"), i18nc("dock/panel settings window", "Dock/Panel Settings"), this);
m_configureAction->setShortcut(QKeySequence());
connect(m_configureAction, &QAction::triggered, this, &Menu::requestConfiguration);
/*foreach (const QString &id, m_consumer.activities(KActivities::Info::Running)) {
KActivities::Info info(id);
QAction *action = new QAction(QIcon::fromTheme(info.icon()), info.name(), this);
@ -67,12 +85,33 @@ void Menu::makeMenu()
}
void Menu::requestConfiguration()
{
if (this->containment()) {
emit this->containment()->configureRequested(containment());
}
}
QList<QAction *> Menu::contextualActions()
{
makeMenu();
QList<QAction *> actions;
actions << m_printAction;
actions << m_addWidgetsAction;
actions << m_configureAction;
return actions;
}
QAction *Menu::action(const QString &name)
{
if (name == "add widgets") {
return m_addWidgetsAction;
} else if (name == "configure") {
return m_configureAction;
}
return m_actions;
return nullptr;
}
K_EXPORT_PLASMA_CONTAINMENTACTIONS_WITH_JSON(lattecontextmenu, Menu, "plasma-containmentactions-lattecontextmenu.json")

@ -35,11 +35,17 @@ public:
QList<QAction *> contextualActions() override;
QAction *action(const QString &name);
private Q_SLOTS:
void makeMenu();
void makeActions();
void requestConfiguration();
private:
QList<QAction *>m_actions;
QAction *m_addWidgetsAction{nullptr};
QAction *m_configureAction{nullptr};
QAction *m_printAction{nullptr};
};
#endif

@ -896,18 +896,16 @@ PlasmaComponents.ContextMenu {
PlasmaComponents.MenuItem {
id: addWidgets
visible: latteDock && latteDock.universalLayoutManager.addWidgetsAction
icon: "add"
text: i18n("Add Widgets...")
onClicked: latteDock.universalLayoutManager.addWidgetsAction.trigger();
action: latteDock.containmentActions()[1]
visible: latteDock
}
PlasmaComponents.MenuItem {
id: configureItem
action: latteDock ? latteDock.containmentActions()[1] : plasmoid.action("configure")
action: latteDock ? latteDock.containmentActions()[2] : plasmoid.action("configure")
}
PlasmaComponents.MenuItem {

Loading…
Cancel
Save