Merge pull request #260

2a7f160 Settings hide/show window after changing decorations type (moneromooo.monero)
456bf04 Settings: add user option to toggle custom decorations (moneromooo.monero)
eff8bde Make the custom decorations optional (moneromooo.monero)
This commit is contained in:
Riccardo Spagni 2016-12-20 17:49:35 +02:00
commit 0526aff950
No known key found for this signature in database
GPG Key ID: 55432DF31CCD4FCD
4 changed files with 185 additions and 9 deletions

View File

@ -166,7 +166,7 @@ Rectangle {
ColumnLayout {
anchors.fill: parent
anchors.margins: 2
anchors.topMargin: 0
anchors.topMargin: appWindow.persistentSettings.customDecorations ? 30 : 0
spacing: 0
@ -185,7 +185,7 @@ Rectangle {
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenterOffset: -5
anchors.left: parent.left
anchors.leftMargin: 40
anchors.leftMargin: appWindow.persistentSettings.customDecorations ? 20 : 40
source: "images/moneroLogo2.png"
}

View File

@ -35,19 +35,36 @@ Rectangle {
property int mouseX: 0
property bool containsMouse: false
property alias basicButtonVisible: goToBasicVersionButton.visible
property bool customDecorations: true
signal goToBasicVersion(bool yes)
height: customDecorations ? 30 : 0
y: -height
property string title
property alias maximizeButtonVisible: maximizeButton.visible
Text {
anchors.centerIn: parent
font.family: "Arial"
font.pixelSize: 15
font.letterSpacing: -1
color: "#FFFFFF"
text: titleBar.title
visible: customDecorations
}
Behavior on y {
NumberAnimation { duration: 100; easing.type: Easing.InQuad }
}
Rectangle {
id: goToBasicVersionButton
property bool containsMouse: titleBar.mouseX >= x && titleBar.mouseX <= x + width
property bool checked: false
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
color: containsMouse || checked ? "#FFE00A" : "#000000"
width: parent.width
height: parent.height
height: 30
width: height
Image {
anchors.centerIn: parent
@ -64,4 +81,98 @@ Rectangle {
}
}
}
Row {
id: row
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
visible: parent.customDecorations
Rectangle {
property bool containsMouse: titleBar.mouseX >= x + row.x && titleBar.mouseX <= x + row.x + width && titleBar.containsMouse
anchors.top: parent.top
anchors.bottom: parent.bottom
width: height
color: containsMouse ? "#6B0072" : "#000000"
Image {
anchors.centerIn: parent
source: "../images/helpIcon.png"
}
MouseArea {
id: whatIsArea
anchors.fill: parent
onClicked: {
}
}
}
Rectangle {
property bool containsMouse: titleBar.mouseX >= x + row.x && titleBar.mouseX <= x + row.x + width && titleBar.containsMouse
anchors.top: parent.top
anchors.bottom: parent.bottom
width: height
color: containsMouse ? "#3665B3" : "#000000"
Image {
anchors.centerIn: parent
source: "../images/minimizeIcon.png"
}
MouseArea {
id: minimizeArea
anchors.fill: parent
onClicked: {
appWindow.visibility = Window.Minimized
}
}
}
Rectangle {
id: maximizeButton
property bool containsMouse: titleBar.mouseX >= x + row.x && titleBar.mouseX <= x + row.x + width && titleBar.containsMouse
anchors.top: parent.top
anchors.bottom: parent.bottom
width: height
color: containsMouse ? "#FF6C3C" : "#000000"
Image {
anchors.centerIn: parent
source: appWindow.visibility === Window.FullScreen ? "../images/backToWindowIcon.png" :
"../images/maximizeIcon.png"
}
MouseArea {
id: maximizeArea
anchors.fill: parent
onClicked: {
appWindow.visibility = appWindow.visibility !== Window.FullScreen ? Window.FullScreen :
Window.Windowed
}
}
}
Rectangle {
property bool containsMouse: titleBar.mouseX >= x + row.x && titleBar.mouseX <= x + row.x + width && titleBar.containsMouse
anchors.top: parent.top
anchors.bottom: parent.bottom
width: height
color: containsMouse ? "#E04343" : "#000000"
Image {
anchors.centerIn: parent
source: "../images/closeIcon.png"
}
MouseArea {
anchors.fill: parent
onClicked: appWindow.close();
}
}
}
}

View File

@ -625,9 +625,26 @@ ApplicationWindow {
width: rightPanelExpanded ? 1269 : 1269 - 300
height: maxWindowHeight;
color: "#FFFFFF"
flags: Qt.WindowSystemMenuHint | Qt.Window | Qt.WindowMinimizeButtonHint | Qt.WindowCloseButtonHint | Qt.WindowTitleHint | Qt.WindowMaximizeButtonHint
flags: persistentSettings.customDecorations ? (Qt.FramelessWindowHint | Qt.WindowSystemMenuHint | Qt.Window | Qt.WindowMinimizeButtonHint) : (Qt.WindowSystemMenuHint | Qt.Window | Qt.WindowMinimizeButtonHint | Qt.WindowCloseButtonHint | Qt.WindowTitleHint | Qt.WindowMaximizeButtonHint)
onWidthChanged: x -= 0
function setCustomWindowDecorations(custom) {
var x = appWindow.x
var y = appWindow.y
if (x < 0)
x = 0
if (y < 0)
y = 0
persistentSettings.customDecorations = custom
if (custom)
appWindow.flags = Qt.FramelessWindowHint | Qt.WindowSystemMenuHint | Qt.Window | Qt.WindowMinimizeButtonHint
else
appWindow.flags = Qt.WindowSystemMenuHint | Qt.Window | Qt.WindowMinimizeButtonHint | Qt.WindowCloseButtonHint | Qt.WindowTitleHint | Qt.WindowMaximizeButtonHint
appWindow.hide()
appWindow.x = x
appWindow.y = y
appWindow.show()
}
Component.onCompleted: {
x = (Screen.width - width) / 2
@ -669,6 +686,7 @@ ApplicationWindow {
property string payment_id
property int restore_height : 0
property bool is_recovering : false
property bool customDecorations : true
}
// Information dialog
@ -757,8 +775,11 @@ ApplicationWindow {
PropertyChanges { target: appWindow; width: 930; }
PropertyChanges { target: appWindow; height: 595; }
PropertyChanges { target: resizeArea; visible: false }
PropertyChanges { target: titleBar; maximizeButtonVisible: false }
PropertyChanges { target: frameArea; blocked: true }
PropertyChanges { target: titleBar; visible: false }
PropertyChanges { target: titleBar; y: 0 }
PropertyChanges { target: titleBar; title: qsTr("Program setup wizard") + translationManager.emptyString }
}, State {
name: "normal"
PropertyChanges { target: leftPanel; visible: true }
@ -769,8 +790,11 @@ ApplicationWindow {
PropertyChanges { target: appWindow; width: rightPanelExpanded ? 1269 : 1269 - 300; }
PropertyChanges { target: appWindow; height: maxWindowHeight; }
PropertyChanges { target: resizeArea; visible: true }
PropertyChanges { target: titleBar; maximizeButtonVisible: true }
PropertyChanges { target: frameArea; blocked: false }
PropertyChanges { target: titleBar; visible: true }
PropertyChanges { target: titleBar; y: 0 }
PropertyChanges { target: titleBar; title: qsTr("Monero") + translationManager.emptyString }
}
]
@ -838,6 +862,11 @@ ApplicationWindow {
properties: "visibility"
value: Window.Windowed
}
PropertyAction {
target: titleBar
properties: "maximizeButtonVisible"
value: false
}
PropertyAction {
target: frameArea
properties: "blocked"
@ -926,6 +955,11 @@ ApplicationWindow {
properties: "blocked"
value: false
}
PropertyAction {
target: titleBar
properties: "maximizeButtonVisible"
value: true
}
}
WizardMain {
@ -988,10 +1022,11 @@ ApplicationWindow {
TitleBar {
id: titleBar
anchors.left: parent.left
anchors.right: parent.right
x: 0
y: 0
width: 30
height: 30
customDecorations: persistentSettings.customDecorations
onGoToBasicVersion: {
if (yes) {
// basicPanel.currentView = middlePanel.currentView
@ -1001,6 +1036,25 @@ ApplicationWindow {
goToProAnimation.start()
}
}
MouseArea {
enabled: persistentSettings.customDecorations
property var previousPosition
anchors.fill: parent
propagateComposedEvents: true
onPressed: previousPosition = globalCursor.getPosition()
onPositionChanged: {
if (pressedButtons == Qt.LeftButton) {
var pos = globalCursor.getPosition()
var dx = pos.x - previousPosition.x
var dy = pos.y - previousPosition.y
appWindow.x += dx
appWindow.y += dy
previousPosition = pos
}
}
}
}
// new ToolTip

View File

@ -334,6 +334,17 @@ Rectangle {
}
RowLayout {
CheckBox {
id: customDecorationsCheckBox
checked: persistentSettings.customDecorations
onClicked: appWindow.setCustomWindowDecorations(checked)
text: qsTr("Custom decorations") + translationManager.emptyString
checkedIcon: "../images/checkedVioletIcon.png"
uncheckedIcon: "../images/uncheckedIcon.png"
}
}
}
// Daemon console