simplify appletItems discovery for right click

--the containment becomes independent from dockView.
The appletItems which are needed in order to show
the context menu correctly are discovered from dockView
without any need of functionality from containment
v0.6
Michail Vourlakos 8 years ago
parent 96a153fdb8
commit a90c7012f1

@ -493,28 +493,6 @@ QVariantList DockView::containmentActions()
//!BEGIN overriding context menus behavior
void DockView::addAppletItem(QObject *item)
{
PlasmaQuick::AppletQuickItem *dynItem = qobject_cast<PlasmaQuick::AppletQuickItem *>(item);
if (!dynItem || m_appletItems.contains(dynItem)) {
return;
}
m_appletItems.append(dynItem);
}
void DockView::removeAppletItem(QObject *item)
{
PlasmaQuick::AppletQuickItem *dynItem = qobject_cast<PlasmaQuick::AppletQuickItem *>(item);
if (!dynItem) {
return;
}
m_appletItems.removeAll(dynItem);
}
void DockView::menuAboutToHide()
{
m_contextMenu = 0;
@ -574,7 +552,9 @@ void DockView::mousePressEvent(QMouseEvent *event)
//FIXME: very inefficient appletAt() implementation
Plasma::Applet *applet = 0;
foreach (PlasmaQuick::AppletQuickItem *ai, m_appletItems) {
foreach (Plasma::Applet *appletTemp, containment()->applets()) {
PlasmaQuick::AppletQuickItem *ai = appletTemp->property("_plasma_graphicObject").value<PlasmaQuick::AppletQuickItem *>();
if (ai && ai->isVisible() && ai->contains(ai->mapFromItem(contentItem(), event->pos()))) {
applet = ai->applet();
break;

@ -32,8 +32,6 @@
#include <QPointer>
#include <QTimer>
#include <PlasmaQuick/AppletQuickItem>
namespace Plasma {
class Types;
class Corona;
@ -91,9 +89,6 @@ public:
static QScreen *atScreens(QQmlListProperty<QScreen> *property, int index);
public slots:
Q_INVOKABLE void addAppletItem(QObject *item);
Q_INVOKABLE void removeAppletItem(QObject *item);
Q_INVOKABLE void addNewDock();
Q_INVOKABLE void removeDock();
@ -151,7 +146,6 @@ private:
QMenu *m_contextMenu;
QPointer<PlasmaQuick::ConfigView> m_configView;
QPointer<VisibilityManager> m_visibility;
QList<PlasmaQuick::AppletQuickItem *> m_appletItems;
};
}

@ -426,12 +426,6 @@ DragDrop.DropArea {
dock.visibility.onContainsMouseChanged.connect(visibilityManager.slotContainsMouseChanged);
dock.visibility.onMustBeHide.connect(visibilityManager.slotMustBeHide);
dock.visibility.onMustBeShown.connect(visibilityManager.slotMustBeShown);
// adding the AppletQuickItem to the Now Dock in order to be
// used for right clicking events
for(var i=0; i<plasmoid.applets.length; ++i) {
dock.addAppletItem(plasmoid.applets[i]);
}
}
}
@ -539,8 +533,6 @@ DragDrop.DropArea {
}
Containment.onAppletRemoved: {
dock.removeAppletItem(applet)
LayoutManager.removeApplet(applet);
var flexibleFound = false;
for (var i = 0; i < mainLayout.children.length; ++i) {
@ -652,10 +644,6 @@ DragDrop.DropArea {
})
addContainerInLayout(container, applet, x, y);
if(dock) {
dock.addAppletItem(applet);
}
}
function addContainerInLayout(container, applet, x, y){

Loading…
Cancel
Save