diff --git a/src/qml/MainSettingsDialog.qml b/src/qml/MainSettingsDialog.qml index 43ab832..628b472 100644 --- a/src/qml/MainSettingsDialog.qml +++ b/src/qml/MainSettingsDialog.qml @@ -1,319 +1,296 @@ /*********************************************************************************** * This file is part of the KHangMan project * * Copyright (C) 2012 Laszlo Papp * * Copyright (C) 2014 Rahul Chowdhury * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library 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 * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***********************************************************************************/ import QtQuick 2.3 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.2 import QtQuick.Layouts 1.1 import QtQuick.Dialogs 1.2 import QtQuick.Window 2.2 Dialog { id: mainSettingsDialog signal okClicked() signal cancelClicked() title: i18n("KHangMan Settings") contentItem: Rectangle { id: mainSettingsRectangle color: "black" implicitWidth: 600 implicitHeight: 210 property int settingsPageMargins: 15; MessageDialog { id: khangmanWordResolveTimeUserGuideDialog; title: i18n("KHangMan word resolve time") text: i18n("Maximum allowed time for resolving the word in KHangMan") icon: StandardIcon.Information standardButtons: StandardButton.Ok } MessageDialog { id: hintShowDurationUserGuideDialog; title: i18n("Hint show duration") text: i18n("The duration for showing the hint for the actual word"); icon: StandardIcon.Information standardButtons: StandardButton.Ok } MessageDialog { id: scoreMultiplyingFactorUserGuideDialog; title: i18n("KHangMan Score Multiplying Factor") text: i18n("Determine the factor by which the scores will be multiplied."); icon: StandardIcon.Information standardButtons: StandardButton.Ok } MessageDialog { id: soundsUserGuideDialog; title: i18n("Sounds") text: i18n("Turn all the sounds on or off inside the game"); icon: StandardIcon.Information standardButtons: StandardButton.Ok } function saveSettings() { khangman.resolveTime = resolveTimeSlider.value khangman.soundEnabled = soundsSwitch.checked khangman.scoreMultiplyingFactor = parseInt(scoreMultiplyingFactorTextEdit.text) } function resetSettings () { resolveTimeSlider.value = khangman.resolveTime soundsSwitch.checked = khangman.soundEnabled scoreMultiplyingFactorTextEdit.text = khangman.scoreMultiplyingFactor } Component.onCompleted: { resolveTimeSlider.value = khangman.resolveTime; soundsSwitch.checked = khangman.soundEnabled; } ColumnLayout { id: settingsPageMainColumn; width: parent.width spacing: 10; Label { id: settingsPageHeadingLabel text: i18n("KHangMan Settings"); font.pixelSize: 32; font.bold: true color: "white" } RowLayout { width: parent.width; spacing: 10 id: resolveTimeRowLayout Label { id: resolveTimeLabel; - anchors { - left: parent.left; - verticalCenter: parent.verticalCenter; - } + Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft text: i18n("Word resolve time in seconds"); font.bold: true color: "white" } Slider { id: resolveTimeSlider; width: parent.width - 10; stepSize: 15; tickmarksEnabled : true updateValueWhileDragging : true minimumValue: 0; maximumValue: 300; - anchors { - verticalCenter: parent.verticalCenter - } + Layout.alignment: Qt.AlignVCenter } Label { id: resolveTimeSliderCurrentValue text: i18n(resolveTimeSlider.value + (resolveTimeSlider.value == 1 ? " second" : " seconds")) color: "white" font.bold: true } ToolButton { iconSource: "Images/dialog-information.png" - anchors { - right: parent.right - verticalCenter: parent.verticalCenter - } + Layout.alignment: Qt.AlignVCenter | Qt.AlignRight onClicked: { khangmanWordResolveTimeUserGuideDialog.open(); } } } RowLayout { id: scoreMultiplyingFactorLayout width: parent.width Label { id: scoreMultiplyingFactorLabel - anchors { - left: parent.left - verticalCenter: parent.verticalCenter - } + Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft text: i18n("Score Multiplying Factor") font.bold: true color: "white" } Rectangle { id: scoreMultiplyingFactorInputBox color: "black" border.color: "white" height: scoreMultiplyingFactorLabel.height width: height * 5 TextEdit { id: scoreMultiplyingFactorTextEdit horizontalAlignment: TextEdit.AlignJustify wrapMode: TextEdit.Wrap text: khangman.scoreMultiplyingFactor.toString() font.bold: true color: "white" focus: true } } ToolButton { iconSource: "Images/dialog-information.png" - anchors { - right: parent.right; - verticalCenter: parent.verticalCenter; - } + Layout.alignment: Qt.AlignVCenter | Qt.AlignRight onClicked: { scoreMultiplyingFactorUserGuideDialog.open(); } } } RowLayout { width: parent.width; id: soundRowLayout Label { id: soundLabel - anchors { - left: parent.left; - verticalCenter: parent.verticalCenter; - } + Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft text: i18n("Sounds"); font.bold: true color: "white" } CheckBox { id: soundsSwitch; - anchors { - verticalCenter: parent.verticalCenter; - } + Layout.alignment: Qt.AlignVCenter } ToolButton { iconSource: "Images/dialog-information.png" - anchors { - right: parent.right; - verticalCenter: parent.verticalCenter; - } + Layout.alignment: Qt.AlignVCenter | Qt.AlignRight onClicked: { soundsUserGuideDialog.open(); } } } Button { id: cancelButton + Layout.alignment: Qt.AlignRight anchors { - right: parent.right rightMargin: 5 } style: ButtonStyle { background: Rectangle { id: cancelButtonStyleRectangle height: 10 width: 50 color: cancelButton.pressed ? "grey" : "white" radius: 8 } label: Text { id: cancelButtonLabel - anchors.centerIn: parent + Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter text: i18n("Cancel") font.family : "Arial" font.capitalization : Font.AllUppercase font.weight : Font.Bold horizontalAlignment : Text.AlignHCenter verticalAlignment : Text.AlignVCenter color: "black" } } onClicked: { // ignore the changes made to the settings mainSettingsRectangle.resetSettings() mainSettingsDialog.cancelClicked() } } Button { id: okButton + Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft anchors { - right: cancelButton.left - verticalCenter: cancelButton.verticalCenter rightMargin: 10 } style: ButtonStyle { background: Rectangle { id: okButtonStyleRectangle height: 10 width: 50 color: okButton.pressed ? "grey" : "white" radius: 8 } label: Text { id: okButtonLabel - anchors.centerIn: parent + Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter text: i18n("OK") font.family : "Arial" font.capitalization : Font.AllUppercase font.weight : Font.Bold horizontalAlignment : Text.AlignHCenter verticalAlignment : Text.AlignVCenter color: "black" } } onClicked: { // save the current settings mainSettingsRectangle.saveSettings() mainSettingsDialog.okClicked() } } } } } diff --git a/src/qml/MySelectionDialog.qml b/src/qml/MySelectionDialog.qml index 1eff853..ef995f7 100644 --- a/src/qml/MySelectionDialog.qml +++ b/src/qml/MySelectionDialog.qml @@ -1,141 +1,141 @@ /**************************************************************************** ** ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the Qt Components project. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.3 import QtQuick.Dialogs 1.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.2 Dialog { id: root width: 400 // Set a width and height so title bar title will show up properly height: 160 // Common API property alias model: selectionListView.model property int selectedIndex: -1 // read & write property Component delegate: // Note that this is the default delegate for the list Component { id: defaultDelegate Item { id: delegateItem property bool selected: index == selectedIndex; height: categoryButton.height * 1.2 - anchors.left: parent.left - anchors.right: parent.right + anchors.left: root.left + anchors.right: root.right anchors.leftMargin: categoryButton.height * 1.2 Button { id: categoryButton style: ButtonStyle { id: categoryButtonStyle background: Rectangle { id: backgroundRect anchors.fill: parent color: "black" radius: 8 } label: Text { id: itemText elide: Text.ElideRight anchors.verticalCenter: parent.verticalCenter anchors.fill: parent font.family : "Arial" font.weight : Font.Bold horizontalAlignment : Text.AlignHCenter verticalAlignment : Text.AlignVCenter text: modelData color: "white" } } onClicked: { selectedIndex = index; accept(); } } Component.onCompleted: { try { // Legacy. "name" used to be the role which was used by delegate itemText.text = name } catch(err) { try { // "modelData" available for JS array and for models with one role itemText.text = modelData } catch (err) { try { // C++ models have "display" role available always itemText.text = display } catch(err) { } } } } } } title: "Selection Dialog" // the content field which contains the selection content contentItem: Item { id: selectionContent property int listViewHeight width: root.width ListView { id: selectionListView model: ListModel {} currentIndex : -1 anchors.fill: parent delegate: root.delegate focus: true clip: true } } }