improve moving around an applet

--fast layout manager takes resposibility
for reparent procedures during moving an applet
at different position
work/spdx
Michail Vourlakos 4 years ago
parent f1732be8c3
commit d61d074f97

@ -155,9 +155,9 @@ MouseArea {
if ((plasmoid.formFactor === PlasmaCore.Types.Vertical && posInItem.y < item.height/2) ||
(plasmoid.formFactor !== PlasmaCore.Types.Vertical && posInItem.x < item.width/2)) {
root.layoutManagerInsertBefore(item, placeHolder);
fastLayoutManager.insertBefore(item, placeHolder);
} else {
root.layoutManagerInsertAfter(item, placeHolder);
fastLayoutManager.insertAfter(item, placeHolder);
}
}
@ -226,7 +226,7 @@ MouseArea {
placeHolder.height = currentApplet.height;
handle.width = currentApplet.width;
handle.height = currentApplet.height;
root.layoutManagerInsertBefore(currentApplet, placeHolder);
fastLayoutManager.insertBefore(currentApplet, placeHolder);
currentApplet.parent = root;
currentApplet.x = root.isHorizontal ? lastX - currentApplet.width/2 : lastX-appletX;
currentApplet.y = root.isVertical ? lastY - currentApplet.height/2 : lastY-appletY;
@ -253,7 +253,7 @@ MouseArea {
configurationArea.isResizingLeft = false;
configurationArea.isResizingRight = false;
root.layoutManagerInsertBefore(placeHolder, currentApplet);
fastLayoutManager.insertBefore(placeHolder, currentApplet);
placeHolder.parent = configurationArea;
currentApplet.z = 1;

@ -130,6 +130,27 @@ void LayoutManager::setMetrics(QQuickItem *metrics)
//! Actions
void LayoutManager::insertBefore(QQuickItem *hoveredItem, QQuickItem *item)
{
if (!hoveredItem || !item) {
return;
}
item->setParentItem(hoveredItem->parentItem());
item->stackBefore(hoveredItem);
}
void LayoutManager::insertAfter(QQuickItem *hoveredItem, QQuickItem *item)
{
if (!hoveredItem || !item) {
return;
}
item->setParentItem(hoveredItem->parentItem());
item->stackAfter(hoveredItem);
}
bool LayoutManager::insertAtLayoutCoordinates(QQuickItem *layout, QQuickItem *item, int x, int y)
{
if (!layout || !item || !m_plasmoid) {

@ -64,6 +64,8 @@ public:
public slots:
Q_INVOKABLE void moveAppletsInJustifyAlignment();
Q_INVOKABLE void insertBefore(QQuickItem *hoveredItem, QQuickItem *item);
Q_INVOKABLE void insertAfter(QQuickItem *hoveredItem, QQuickItem *item);
Q_INVOKABLE void insertAtCoordinates(QQuickItem *item, const int &x, const int &y);
signals:

Loading…
Cancel
Save