expose dock settings into tasks plasmoid

pull/1/head
Michail Vourlakos 8 years ago
parent 8e4b4f36bc
commit 4152535e51

@ -33,6 +33,7 @@
#include <QMetaEnum>
#include <Plasma/Containment>
#include <Plasma/ContainmentActions>
#include <KActionCollection>
#include <KLocalizedContext>
@ -567,6 +568,41 @@ void DockView::restoreConfig()
// setAlignment(static_cast<Dock::Alignment>(readEntry("alignment", Dock::Center).toInt()));
}
QVariantList DockView::containmentActions()
{
QVariantList actions;
/*if (containment()->corona()->immutability() != Plasma::Types::Mutable) {
return actions;
}*/
//FIXME: the trigger string it should be better to be supported this way
//const QString trigger = Plasma::ContainmentActions::eventToString(event);
const QString trigger = "RightButton;NoModifier";
Plasma::ContainmentActions *plugin = containment()->containmentActions().value(trigger);
if (!plugin) {
return actions;
}
if (plugin->containment() != containment()) {
plugin->setContainment(containment());
// now configure it
KConfigGroup cfg(containment()->corona()->config(), "ActionPlugins");
cfg = KConfigGroup(&cfg, QString::number(containment()->containmentType()));
KConfigGroup pluginConfig = KConfigGroup(&cfg, trigger);
plugin->restore(pluginConfig);
}
foreach (QAction *ac, plugin->contextualActions()) {
actions << QVariant::fromValue<QAction *>(ac);
}
return actions;
}
}
//!END SLOTS
//!END namespace

@ -103,6 +103,7 @@ public:
public slots:
Q_INVOKABLE void addNewDock();
Q_INVOKABLE QVariantList containmentActions();
//used from the configuration window
Q_INVOKABLE QList<int> freeEdges() const;
Q_INVOKABLE void initialize();

@ -732,6 +732,10 @@ DragDrop.DropArea {
root.clearZoomSignal();
}
function containmentActions(){
return dock.containmentActions();
}
function containsMouse(){
var result = root.outsideContainsMouse();

@ -590,12 +590,10 @@ PlasmaComponents.ContextMenu {
onClicked: tasksModel.requestRemoveLauncher(visualParent.m.LauncherUrlWithoutIcon);
}
PlasmaComponents.MenuItem {
property QtObject configureAction: null
visible: !nowDockPanel
enabled: configureAction && configureAction.enabled
text: configureAction ? configureAction.text : ""
@ -606,6 +604,37 @@ PlasmaComponents.ContextMenu {
Component.onCompleted: configureAction = plasmoid.action("configure")
}
PlasmaComponents.MenuItem {
id: containmentMenuItem
visible: nowDockPanel
enabled: visible
icon: "latte-dock"
text: "Latte"
PlasmaComponents.ContextMenu {
id: containmentSubMenu
visualParent: containmentMenuItem.action
function refresh() {
clearMenuItems();
var actionList = nowDockPanel.containmentActions();
for (var i=0; i<actionList.length; ++i){
var item = menu.newMenuItem(containmentSubMenu);
item.visible = false;
item.action = actionList[i];
containmentSubMenu.addMenuItem(item,containmentMenuItem);
}
}
Component.onCompleted: refresh();
}
}
PlasmaComponents.MenuItem {
separator: true
}
@ -621,4 +650,5 @@ PlasmaComponents.ContextMenu {
onClicked: tasksModel.requestClose(visualParent.modelIndex())
}
}

Loading…
Cancel
Save