98 lines
2.7 KiB
QML
98 lines
2.7 KiB
QML
|
import QtQuick 2.0
|
||
|
|
||
|
import QtQuick.Controls 1.1 as Controls
|
||
|
import QtQuick.Layouts 1.1
|
||
|
|
||
|
import org.kde.plasma.core 2.0 as PlasmaCore
|
||
|
|
||
|
|
||
|
/*This test is for checking PlasmaDialog visualParent and related function work
|
||
|
*To test move the window towards various edges and press the button.
|
||
|
The Red rectangle should always be on screen and on the right screen
|
||
|
|
||
|
*/
|
||
|
|
||
|
PlasmaCore.Dialog {
|
||
|
|
||
|
type: windowIsDockControl.checked ? PlasmaCore.Dialog.Dock : PlasmaCore.Dialog.Normal
|
||
|
visible: true
|
||
|
|
||
|
Rectangle {
|
||
|
color: "#ffffff"
|
||
|
width: 300
|
||
|
height: 300
|
||
|
|
||
|
Rectangle {
|
||
|
id: innerRect
|
||
|
color: "#ddffdd"
|
||
|
width: 200
|
||
|
height: 200
|
||
|
anchors.centerIn: parent
|
||
|
|
||
|
ColumnLayout {
|
||
|
anchors.margins: 5
|
||
|
anchors.top: parent.top
|
||
|
anchors.left:parent.left
|
||
|
anchors.right:parent.right
|
||
|
|
||
|
Controls.Label {
|
||
|
Layout.fillWidth: true
|
||
|
text: "alt + left click and move the window to various edges to test popup position"
|
||
|
wrapMode: Text.WordWrap
|
||
|
}
|
||
|
|
||
|
Controls.ComboBox {
|
||
|
id: alignmentControl
|
||
|
//order must match Location in plasma.h
|
||
|
model: ["Left", "Right", "Top", "Bottom"]
|
||
|
currentIndex: 0
|
||
|
}
|
||
|
|
||
|
Controls.CheckBox {
|
||
|
id: windowIsDockControl
|
||
|
text: "Window is a dock"
|
||
|
}
|
||
|
|
||
|
Controls.Button {
|
||
|
text: "Show Popup"
|
||
|
onClicked: {
|
||
|
dialog.visible = !dialog.visible
|
||
|
console.log(alignmentControl.currentIndex);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
PlasmaCore.Dialog
|
||
|
{
|
||
|
id: dialog
|
||
|
visualParent: innerRect
|
||
|
location: {
|
||
|
switch (alignmentControl.currentIndex) {
|
||
|
case 0:
|
||
|
return PlasmaCore.Types.LeftEdge
|
||
|
case 1:
|
||
|
return PlasmaCore.Types.RightEdge
|
||
|
case 2:
|
||
|
return PlasmaCore.Types.TopEdge
|
||
|
default:
|
||
|
return PlasmaCore.Types.BottomEdge
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
Rectangle {
|
||
|
color: "#FF0000"
|
||
|
width: 150
|
||
|
height: 150
|
||
|
}
|
||
|
|
||
|
Component.onCompleted: {
|
||
|
console.log(alignmentControl.currentIndex);
|
||
|
console.log(dialog.location);
|
||
|
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|