From 1ef6578ad4b4a8ba3169a032c69a84e777f89c59 Mon Sep 17 00:00:00 2001 From: Automatic Release Builder Date: Sat, 3 Oct 2020 14:35:51 +0100 Subject: [PATCH] Fix scrolling of Launcxher FirstRun Johnathan R pointed out that for wider windows, the button was invisible, fix this will a scrollbar. --- src/GUI/qml/FirstRun.qml | 234 +++++++++++++++++++++------------------ 1 file changed, 129 insertions(+), 105 deletions(-) diff --git a/src/GUI/qml/FirstRun.qml b/src/GUI/qml/FirstRun.qml index 01314c2cc..0a2bc73f7 100644 --- a/src/GUI/qml/FirstRun.qml +++ b/src/GUI/qml/FirstRun.qml @@ -3,138 +3,162 @@ import FlightGear 1.0 import FlightGear.Launcher 1.0 import "." -Rectangle { - color: Style.themeColor +Item { id: root - Item { - id: imageClipFrame - clip: true + Rectangle { + id: content + color: Style.themeColor + anchors.fill: parent - height: root.height * 0.5 - anchors { - left: parent.left - right: parent.right - top: parent.top - } - - PreviewImage { - id: preview - - anchors.centerIn: parent - - // over-zoom the preview to fill the entire space available - readonly property double scale: Math.max(root.width / sourceSize.width, - imageClipFrame.height / sourceSize.height) - - width: height * aspectRatio - height: scale * sourceSize.height - - property var urlsList: _launcher.defaultSplashUrls() - imageUrl: urlsList[0] - } - - Text { - id: logoText - width: parent.width - Style.strutSize - - anchors { - top: parent.top - topMargin: Style.strutSize - } - - font.pointSize: Style.strutSize * 3 - font.italic: true - font.bold: true - - horizontalAlignment: Text.AlignHCenter - fontSizeMode: Text.Fit - text: "FlightGear " + _launcher.versionString - color: "white" - style: Text.Outline - styleColor: "black" - } } + Flickable { + id: flick + + contentHeight: textColumn.childrenRect.height + imageClipFrame.height + (Style.strutSize * 2) + flickableDirection: Flickable.VerticalFlick + + anchors.fill: parent - Column { - anchors { - left: parent.left - right: parent.right - top: imageClipFrame.bottom + Item { + id: imageClipFrame + clip: true - margins: Style.strutSize - } + height: root.height * 0.5 + anchors { + left: parent.left + right: parent.right + top: parent.top + } - spacing: Style.strutSize + PreviewImage { + id: preview - Text { - width: parent.width - font.pixelSize: Style.baseFontPixelSize * 1.5 - color: "white" - wrapMode: Text.WordWrap + anchors.centerIn: parent - readonly property string forumLink: "href=\"http://forum.flightgear.org\""; + // over-zoom the preview to fill the entire space available + readonly property double scale: Math.max(root.width / sourceSize.width, + imageClipFrame.height / sourceSize.height) - text: qsTr("Welcome to FlightGear, the open-source flight simulator. " + - "Everything in this software is the work of volunteers; we hope " + - "you enjoy it. If you find problems, or would like to contribute, " + - "please visit our user forum.").arg(forumLink) + width: height * aspectRatio + height: scale * sourceSize.height - onLinkActivated: { - Qt.openUrlExternally(link) + property var urlsList: _launcher.defaultSplashUrls() + imageUrl: urlsList[0] + } + + Text { + id: logoText + width: parent.width - Style.strutSize + + anchors { + top: parent.top + topMargin: Style.strutSize + } + + font.pointSize: Style.strutSize * 3 + font.italic: true + font.bold: true + + horizontalAlignment: Text.AlignHCenter + fontSizeMode: Text.Fit + text: "FlightGear " + _launcher.versionString + color: "white" + style: Text.Outline + styleColor: "black" } } - Text { - width: parent.width - font.pixelSize: Style.baseFontPixelSize * 1.5 - color: "white" - wrapMode: Text.WordWrap - readonly property string gplLink: "href=\"https://www.gnu.org/licenses/gpl-3.0.html\""; - text: qsTr("FlightGear is Free software, licensed under the GNU General Public License. " + - "This means you are are free to use the software, customise it, or make fixes to it, so long as " + - "you share your changes with the community.").arg(gplLink) + Column { + id: textColumn + anchors { + left: parent.left + right: parent.right + top: imageClipFrame.bottom - onLinkActivated: { - Qt.openUrlExternally(link) + margins: Style.strutSize } - } - Text { - width: parent.width - font.pixelSize: Style.baseFontPixelSize * 1.5 - color: "white" + spacing: Style.strutSize - wrapMode: Text.WordWrap + Text { + width: parent.width + font.pixelSize: Style.baseFontPixelSize * 1.5 + color: "white" + wrapMode: Text.WordWrap - text: qsTr("FlightGear can automatically report crashes and errors to the development team, " + - "which helps to improve the software for everyone. This reporting is anonymous but " + - "contains information such as the aircraft in use, your operating system and graphics driver. " + - "You can enable or disable this reporting in the 'Settings' page." - ) - } + readonly property string forumLink: "href=\"http://forum.flightgear.org\""; - Item { - width: parent.width - height: childrenRect.height + text: qsTr("Welcome to FlightGear, the open-source flight simulator. " + + "Everything in this software is the work of volunteers; we hope " + + "you enjoy it. If you find problems, or would like to contribute, " + + "please visit our user forum.").arg(forumLink) - Button { - invertColor: true - text: qsTrId("Okay"); - anchors.right: parent.right - - onClicked: { - OverlayShared.globalOverlay.dismissOverlay(); + onLinkActivated: { + Qt.openUrlExternally(link) } } - } - } // of column + + Text { + width: parent.width + font.pixelSize: Style.baseFontPixelSize * 1.5 + color: "white" + wrapMode: Text.WordWrap + + readonly property string gplLink: "href=\"https://www.gnu.org/licenses/gpl-3.0.html\""; + + text: qsTr("FlightGear is Free software, licensed under the GNU General Public License. " + + "This means you are are free to use the software, customise it, or make fixes to it, so long as " + + "you share your changes with the community.").arg(gplLink) + + onLinkActivated: { + Qt.openUrlExternally(link) + } + } + + Text { + width: parent.width + font.pixelSize: Style.baseFontPixelSize * 1.5 + color: "white" + + wrapMode: Text.WordWrap + + text: qsTr("FlightGear can automatically report crashes and errors to the development team, " + + "which helps to improve the software for everyone. This reporting is anonymous but " + + "contains information such as the aircraft in use, your operating system and graphics driver. " + + "You can enable or disable this reporting in the 'Settings' page." + ) + } + + Item { + width: parent.width + height: childrenRect.height + + Button { + invertColor: true + text: qsTrId("Okay"); + anchors.right: parent.right + + onClicked: { + OverlayShared.globalOverlay.dismissOverlay(); + } + } + } + } // of column + + } // of Flickable + Scrollbar { + id: scrollbar + anchors.right: parent.right + height: flick.height + flickable: flick + visible: flick.contentHeight > flick.height + } - -} +} // of Item