Skip to content
Snippets Groups Projects
configGeneral.qml 6.17 KiB
Newer Older
  • Learn to ignore specific revisions
  • wwjjbb's avatar
    wwjjbb committed
    /**
        Copyright 2016 Bill Binder <dxtwjb@gmail.com>
    
        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 3 of the License, 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 General Public License
        along with this program; if not, see <http://www.gnu.org/licenses/>.
    */
    
    import QtQuick 2.1
    import QtQuick.Controls 1.2 as QtControls
    
    dxtwjb's avatar
    dxtwjb committed
    import QtQuick.Layouts 1.2 as QtLayouts
    
    dxtwjb's avatar
    dxtwjb committed
    import QtQuick.Dialogs 1.0 as QtDialogs
    
    import org.kde.plasma.components 2.0 as PlasmaComponents
    
    wwjjbb's avatar
    wwjjbb committed
    
    Item {
        id: generalPage
    
    wwjjbb's avatar
    wwjjbb committed
        property alias cfg_hemisphere: hemisphere.currentIndex  // 0=North 1=South
    
        property alias cfg_transparentShadow: transparentShadow.checked  // boolean
    
    wwjjbb's avatar
    wwjjbb committed
        property alias cfg_showBackground: showBackground.checked  // boolean
    
    dxtwjb's avatar
    dxtwjb committed
        property alias cfg_dateFormat: dateFormat.currentIndex // code: 0= 1= 2=...
    
    wwjjbb's avatar
    wwjjbb committed
        property alias cfg_dateFormatString: dateFormatString.text
    
    dxtwjb's avatar
    dxtwjb committed
        property alias cfg_diskColour: diskColour.color
    
        property int cfg_lunarIndex: 0        // index into imageChoices
        property string cfg_lunarImage: ''    // filename (from imageChoices)
        property int cfg_lunarImageTweak: 0   // rotation angle adjustment for the image (from imageChoices)
    
        property alias cfg_showGrid: showGrid.checked
        property alias cfg_showTycho: showTycho.checked
        property alias cfg_showCopernicus: showCopernicus.checked
    
        onCfg_lunarIndexChanged: {
            cfg_lunarImage = imageChoices.get(cfg_lunarIndex).filename
            cfg_lunarImageTweak = imageChoices.get(cfg_lunarIndex).tweak
          }
    
        ImageChoices {
            id: imageChoices
        }
    
    dxtwjb's avatar
    dxtwjb committed
        QtDialogs.ColorDialog {
            id: colorDialog
            title: i18n("Pick a colour for the moon")
            visible: false
    
            onAccepted: {
                diskColour.color = colorDialog.color
            }
        }
    
    wwjjbb's avatar
    wwjjbb committed
        QtLayouts.GridLayout {
            columns: 2
            rowSpacing: 15
    
    dxtwjb's avatar
    dxtwjb committed
                text: i18n("Preview")
    
            QtLayouts.RowLayout {
                spacing: 20
    
    dxtwjb's avatar
    dxtwjb committed
    
                PlasmaComponents.ToolButton {
                    id: previousButton
                    iconSource: "go-previous"
                    enabled: cfg_lunarIndex > 0
                    onClicked: {
                        cfg_lunarIndex -= 1
                    }
                }
    
    
                LunaIcon {
                  id: lunaPreview
                  width: 200
                  height: 200
                  hemisphere: cfg_hemisphere
                  showShadow: false
    
                  transparentShadow: false
    
                  lunarImage: cfg_lunarImage
                  lunarImageTweak: cfg_lunarImageTweak
    
    dxtwjb's avatar
    dxtwjb committed
                  diskColour: cfg_diskColour
                  showGrid: cfg_showGrid
                  showTycho: cfg_showTycho
                  showCopernicus: cfg_showCopernicus
                }
    
                PlasmaComponents.ToolButton {
                    id: nextButton
                    iconSource: "go-next"
                    enabled: cfg_lunarIndex < imageChoices.count-1
                    onClicked: {
                        cfg_lunarIndex += 1
                    }
    
                QtLayouts.ColumnLayout {
    
    dxtwjb's avatar
    dxtwjb committed
                    spacing: 20
    
                    QtControls.CheckBox {
                        id: showGrid
                        text: i18n("Show grid")
                    }
    
                    QtControls.CheckBox {
                        id: showTycho
                        text: i18n("Tycho")
                    }
    
                    QtControls.CheckBox {
                        id: showCopernicus
                        text: i18n("Copernicus")
                    }
    
    
    dxtwjb's avatar
    dxtwjb committed
            }
    
            QtControls.Label {
                text: i18n("Disk Colour")
                visible: cfg_lunarImage === ""
            }
            Rectangle {
                id: diskColour
                width: 50
                height: 50
                color: '#808040'
                border.color: '#000000'
                radius: height/2
                visible: cfg_lunarImage === ""
    
                MouseArea {
                    anchors.fill: parent
                    onClicked: {
                        colorDialog.color = diskColour.color
                        colorDialog.visible = true
                    }
    
    wwjjbb's avatar
    wwjjbb committed
            QtControls.Label {
                text: i18n("Hemisphere")
            }
            QtControls.ComboBox {
                id: hemisphere
    
    dxtwjb's avatar
    dxtwjb committed
                QtLayouts.Layout.fillWidth: true
    
    wwjjbb's avatar
    wwjjbb committed
                textRole: "key"
                model: ListModel {
    
                    dynamicRoles: true
                    Component.onCompleted: {
                    append({key : i18n("Northern"), value: 0 })
                    append({key : i18n("Southern"), value: 1 })
                    }
    
    wwjjbb's avatar
    wwjjbb committed
                }
            }
    
    wwjjbb's avatar
    wwjjbb committed
            QtControls.Label {
                text: i18n("Date Format")
            }
            QtControls.ComboBox {
                id: dateFormat
    
    dxtwjb's avatar
    dxtwjb committed
                QtLayouts.Layout.fillWidth: true
    
    wwjjbb's avatar
    wwjjbb committed
                textRole: "key"
                model: ListModel {
    
                    dynamicRoles: true
                    Component.onCompleted: {
                    append({ key: i18n("Text date"), value: 0 })
                    append({ key: i18n("Short date"), value: 1 })
                    append({ key: i18n("Long date"), value: 2 })
                    append({ key: i18n("ISO date"), value: 3 })
                    append({ key: i18n("Custom"), value: 4 })
                    }
    
    wwjjbb's avatar
    wwjjbb committed
                }
            }
    
    wwjjbb's avatar
    wwjjbb committed
            QtControls.Label {
                text: i18n("Date Format String")
                visible: dateFormat.currentIndex == 4
            }
            QtControls.TextField {
                id: dateFormatString
                maximumLength: 24
                visible: dateFormat.currentIndex == 4
            }
    
            QtControls.Label {
                text: i18n("Background")
    
    wwjjbb's avatar
    wwjjbb committed
            QtControls.CheckBox {
                id: showBackground
                text: i18n("Show background")
            }
            QtControls.Label {
                text: ""
            }
    
            QtControls.CheckBox {
                id: transparentShadow
                text: i18n("Transparent shadow")
            }
    
    wwjjbb's avatar
    wwjjbb committed
        }
    }