fix #118,support dragging a file at windows group

pull/1/head
Michail Vourlakos 8 years ago
parent 8af7e78cd8
commit 45fb9466a5

@ -178,6 +178,7 @@ Item {
} }
if (parent.hoveredItem.m.IsGroupParent === true) { if (parent.hoveredItem.m.IsGroupParent === true) {
root.showPreviewForTasks(parent.hoveredItem);
// groupDialog.visualParent = parent.hoveredItem; // groupDialog.visualParent = parent.hoveredItem;
// groupDialog.visible = true; // groupDialog.visible = true;
} else if (parent.hoveredItem.m.IsLauncher !== true) { } else if (parent.hoveredItem.m.IsLauncher !== true) {

@ -857,8 +857,6 @@ MouseArea{
} }
///window previews//// ///window previews////
function modelIndex(){ function modelIndex(){
return tasksModel.makeModelIndex(index); return tasksModel.makeModelIndex(index);
} }
@ -867,6 +865,13 @@ MouseArea{
inBlockingAnimation = value; inBlockingAnimation = value;
} }
function slotShowPreviewForTasks(group) {
if (group === mainItemContainer) {
preparePreviewWindow();
windowsPreviewDlg.show();
}
}
function slotPublishGeometries() { function slotPublishGeometries() {
if ((isWindow || isStartup || isGroupParent) && tasksModel) { if ((isWindow || isStartup || isGroupParent) && tasksModel) {
tasksModel.requestPublishDelegateGeometry(mainItemContainer.modelIndex(), tasksModel.requestPublishDelegateGeometry(mainItemContainer.modelIndex(),
@ -890,6 +895,7 @@ MouseArea{
root.draggingFinished.connect(handlerDraggingFinished); root.draggingFinished.connect(handlerDraggingFinished);
root.clearZoomSignal.connect(clearZoom); root.clearZoomSignal.connect(clearZoom);
root.publishTasksGeometries.connect(slotPublishGeometries); root.publishTasksGeometries.connect(slotPublishGeometries);
root.showPreviewForTasks.connect(slotShowPreviewForTasks);
//fix wrong positioning of launchers.... //fix wrong positioning of launchers....
for(var i=0; i<tasksModel.launcherList.length; ++i){ for(var i=0; i<tasksModel.launcherList.length; ++i){

@ -25,6 +25,8 @@ import QtQuick.Layouts 1.1
import QtGraphicalEffects 1.0 import QtGraphicalEffects 1.0
import QtQml.Models 2.2 import QtQml.Models 2.2
import org.kde.draganddrop 2.0
import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 2.0 as PlasmaComponents import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.plasma.extras 2.0 as PlasmaExtras import org.kde.plasma.extras 2.0 as PlasmaExtras
@ -107,6 +109,31 @@ PlasmaExtras.ScrollArea {
return singleTask.containsMouse() || groupTask.containsMouse(); return singleTask.containsMouse() || groupTask.containsMouse();
} }
DropArea {
id: dropMainArea
anchors.fill: contentItem
enabled: isGroup
preventStealing: true
property bool dragInside: false
property QtObject currentWindow
onDragLeave: {
windowsPreviewDlg.hide();
}
onDragMove: {
var current = groupTask.childAtPos(event.x, event.y);
if (current && currentWindow !== current && current.submodelIndex) {
currentWindow = current;
tasksModel.requestActivate(current.submodelIndex);
}
}
}
ToolTipInstance { ToolTipInstance {
id: singleTask id: singleTask
visible: !isGroup visible: !isGroup
@ -138,6 +165,28 @@ PlasmaExtras.ScrollArea {
return false; return false;
} }
function childAtPos(x, y){
var tasks = groupTask.children;
for(var i=0; i<tasks.length; ++i){
var task = tasks[i];
var choords = contentItem.mapFromItem(task,0, 0);
if(choords.y < 0)
choords.y = 0;
if(choords.x < 0)
choords.x = 0;
if( (x>=choords.x) && (x<=choords.x+task.width)
&& (y>=choords.y) && (y<=choords.y+task.height)){
return task;
}
}
return null;
}
} }
} }
} }

@ -30,6 +30,8 @@ import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.plasma.extras 2.0 as PlasmaExtras import org.kde.plasma.extras 2.0 as PlasmaExtras
import org.kde.kquickcontrolsaddons 2.0 as KQuickControlsAddons import org.kde.kquickcontrolsaddons 2.0 as KQuickControlsAddons
import org.kde.draganddrop 2.0
import org.kde.taskmanager 0.1 as TaskManager import org.kde.taskmanager 0.1 as TaskManager
Column { Column {

@ -134,6 +134,7 @@ Item {
signal signalAnimationsNeedLength(int value); signal signalAnimationsNeedLength(int value);
signal signalAnimationsNeedThickness(int value); signal signalAnimationsNeedThickness(int value);
signal signalDraggingState(bool value); signal signalDraggingState(bool value);
signal showPreviewForTasks(QtObject group);
//trigger updating scaling of neighbour delegates of zoomed delegate //trigger updating scaling of neighbour delegates of zoomed delegate
signal updateScale(int delegateIndex, real newScale, real step) signal updateScale(int delegateIndex, real newScale, real step)
signal publishTasksGeometries(); signal publishTasksGeometries();

Loading…
Cancel
Save