plasma-framework/tests/dialog_positioning_parentrotated.qml
Marco Martin 6dfc6e38dd Consider visualParent rotation in popupPosition
if there are transforms in the scene, to correctly compute the position the
transform is needed to be accounter for.
QQuickITem::mapRectToScene does consider tranforms.
this adresses bug 345787 where the toolbox may be rotated.

BUG:345787
Change-Id: I13a5509d95a7498382155abf3c3d195708de56a6
2015-04-02 15:59:14 +02:00

94 lines
2.8 KiB
QML

/*
* Copyright 2014 Vishesh Handa <vhanda@kde.org>
* Copyright 2015 Marco Martin <mart@kde.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2,
* or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
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
import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.plasma.extras 2.0 as PlasmaExtras
ColumnLayout
{
height: units.gridUnit * 20
Controls.Label {
id: label
text: "Press the buttom and make sure the popup is on the correct place"
wrapMode: Text.WordWrap
}
PlasmaComponents.Button {
id: settingsButton
iconSource: "configure"
text: "Press Me"
Layout.alignment: Qt.AlignHCenter
rotation: 90
onClicked: {
contextMenu.visible = !contextMenu.visible;
}
}
PlasmaCore.Dialog {
id: contextMenu
visualParent: settingsButton
location: PlasmaCore.Types.BottomEdge
type: PlasmaCore.Dialog.PopupMenu
flags: Qt.Popup | Qt.FramelessWindowHint | Qt.WindowDoesNotAcceptFocus
mainItem: ColumnLayout {
id: menuColumn
Layout.minimumWidth: menuColumn.implicitWidth
Layout.minimumHeight: menuColumn.implicitHeight
spacing: units.smallSpacing
PlasmaExtras.Heading {
level: 3
text: "Panel Alignment"
}
PlasmaComponents.ButtonColumn {
spacing: 0
Layout.fillWidth: true
PlasmaComponents.ToolButton {
anchors {
left: parent.left
right: parent.right
}
text: "Left"
checkable: true
flat: false
}
PlasmaComponents.ToolButton {
anchors {
left: parent.left
right: parent.right
}
text: "Center"
checkable: true
flat: false
}
}
}
}
}