mirror of
https://github.com/developersu/ClearClock.git
synced 2025-05-14 19:20:26 +03:00
348 lines
9.6 KiB
QML
348 lines
9.6 KiB
QML
/*
|
|
SPDX-FileCopyrightText: 2022 qewer33
|
|
SPDX-License-Identifier: GPL-3.0-or-later
|
|
*/
|
|
|
|
import QtQuick 2.12
|
|
import QtQuick.Controls 2.12 as QtControls
|
|
import QtQuick.Layouts 1.12 as QtLayouts
|
|
import QtQuick.Dialogs
|
|
|
|
import org.kde.kirigami 2.3 as Kirigami
|
|
import org.kde.kcmutils as KCM
|
|
|
|
import "../lib"
|
|
|
|
KCM.SimpleKCM {
|
|
id: appearancePage
|
|
width: childrenRect.width
|
|
height: childrenRect.height
|
|
|
|
signal configurationChanged
|
|
|
|
property alias cfg_clockUse24hFormat: use24hFormat.checkState
|
|
property alias cfg_clockShowSeconds: showSeconds.checkState
|
|
property alias cfg_clockSeparator: clockSeparatorTextField.text
|
|
property string cfg_clockFontColor
|
|
property string cfg_clockFontFamily
|
|
property bool cfg_clockBoldText
|
|
property bool cfg_clockItalicText
|
|
property int cfg_clockFontSize
|
|
property alias cfg_clockShadowEnabled: clockShadowCheckBox.checked
|
|
property color cfg_clockShadowColor
|
|
property int cfg_clockShadowRadius
|
|
property int cfg_clockShadowXOffset
|
|
property int cfg_clockShadowYOffset
|
|
|
|
property alias cfg_showDayDisplay: showDayDisplayCheckBox.checked
|
|
property string cfg_dayFontColor
|
|
property string cfg_dayFontFamily
|
|
property bool cfg_dayBoldText
|
|
property bool cfg_dayItalicText
|
|
property int cfg_dayFontSize
|
|
property alias cfg_dayShadowEnabled: dayShadowCheckBox.checked
|
|
property color cfg_dayShadowColor
|
|
property int cfg_dayShadowRadius
|
|
property int cfg_dayShadowXOffset
|
|
property int cfg_dayShadowYOffset
|
|
|
|
property alias cfg_showDateDisplay: showDateDisplayCheckBox.checked
|
|
property alias cfg_dateCustomDateFormat: customDateFormat.text
|
|
property string cfg_dateFontColor
|
|
property string cfg_dateFontFamily
|
|
property bool cfg_dateBoldText
|
|
property bool cfg_dateItalicText
|
|
property int cfg_dateFontSize
|
|
property alias cfg_dateShadowEnabled: dateShadowCheckBox.checked
|
|
property color cfg_dateShadowColor
|
|
property int cfg_dateShadowRadius
|
|
property int cfg_dateShadowXOffset
|
|
property int cfg_dateShadowYOffset
|
|
|
|
ListModel {
|
|
id: fontsModel
|
|
Component.onCompleted: {
|
|
var arr = [] // use temp array to avoid constant binding stuff
|
|
arr.push({
|
|
"text": "ClearClock Default",
|
|
"value": "ccdefault"
|
|
})
|
|
|
|
var fonts = Qt.fontFamilies()
|
|
var foundIndex = 0
|
|
for (var i = 0, j = fonts.length; i < j; ++i) {
|
|
arr.push({
|
|
"text": fonts[i],
|
|
"value": fonts[i]
|
|
})
|
|
}
|
|
append(arr)
|
|
}
|
|
}
|
|
|
|
Kirigami.FormLayout {
|
|
id: layout
|
|
anchors.fill: parent
|
|
|
|
|
|
Kirigami.Separator {
|
|
Kirigami.FormData.isSection: true
|
|
Kirigami.FormData.label: "Clock Display Settings"
|
|
}
|
|
|
|
QtControls.CheckBox {
|
|
Kirigami.FormData.label: "Use 24-hour clock"
|
|
id: use24hFormat
|
|
tristate: false
|
|
checked: cfg_clockUse24hFormat
|
|
}
|
|
|
|
QtControls.CheckBox {
|
|
Kirigami.FormData.label: "Show seconds"
|
|
id: showSeconds
|
|
tristate: false
|
|
checked: cfg_clockShowSeconds
|
|
}
|
|
|
|
QtControls.TextField {
|
|
Kirigami.FormData.label: "Separator"
|
|
id: clockSeparatorTextField
|
|
maximumLength: 1
|
|
}
|
|
|
|
ColorButton {
|
|
Kirigami.FormData.label: "Color"
|
|
|
|
onValueChanged: {
|
|
cfg_clockFontColor = value
|
|
}
|
|
}
|
|
|
|
FontConfig {
|
|
Kirigami.FormData.label: "Font"
|
|
fontModel: fontsModel
|
|
|
|
fontValue: cfg_clockFontFamily
|
|
onFontValueChanged: {
|
|
cfg_clockFontFamily = fontValue
|
|
}
|
|
|
|
boldValue: cfg_clockBoldText
|
|
onBoldValueChanged: {
|
|
cfg_clockBoldText = boldValue
|
|
}
|
|
|
|
italicValue: cfg_clockItalicText
|
|
onItalicValueChanged: {
|
|
cfg_clockItalicText = italicValue
|
|
}
|
|
|
|
pxSizeValue: cfg_clockFontSize
|
|
onPxSizeValueChanged: {
|
|
cfg_clockFontSize = pxSizeValue
|
|
}
|
|
}
|
|
|
|
QtControls.CheckBox {
|
|
id: clockShadowCheckBox
|
|
text: i18n("Enable shadow")
|
|
tristate: false
|
|
checked: cfg_clockShadowEnabled
|
|
}
|
|
|
|
ShadowConfig {
|
|
Kirigami.FormData.label: "Shadow"
|
|
enabled: clockShadowCheckBox.checked
|
|
|
|
colorValue: cfg_clockShadowColor
|
|
onColorValueChanged: {
|
|
cfg_clockShadowColor = colorValue
|
|
}
|
|
|
|
radiusValue: cfg_clockShadowRadius
|
|
onRadiusValueChanged: {
|
|
cfg_clockShadowRadius = radiusValue
|
|
}
|
|
|
|
offsetXValue: cfg_clockShadowXOffset
|
|
onOffsetXValueChanged: {
|
|
cfg_clockShadowXOffset = offsetXValue
|
|
}
|
|
|
|
offsetYValue: cfg_clockShadowYOffset
|
|
onOffsetYValueChanged: {
|
|
cfg_clockShadowYOffset = offsetYValue
|
|
}
|
|
}
|
|
|
|
|
|
Kirigami.Separator {
|
|
Kirigami.FormData.isSection: true
|
|
Kirigami.FormData.label: "Day Display Settings"
|
|
}
|
|
|
|
QtControls.CheckBox {
|
|
Kirigami.FormData.label: "Show day display"
|
|
id: showDayDisplayCheckBox
|
|
}
|
|
|
|
ColorButton {
|
|
Kirigami.FormData.label: "Color"
|
|
|
|
onValueChanged: {
|
|
cfg_dayFontColor = value
|
|
}
|
|
}
|
|
|
|
FontConfig {
|
|
Kirigami.FormData.label: "Font"
|
|
fontModel: fontsModel
|
|
enabled: showDayDisplayCheckBox.checked
|
|
|
|
fontValue: cfg_dayFontFamily
|
|
onFontValueChanged: {
|
|
cfg_dayFontFamily = fontValue
|
|
}
|
|
|
|
boldValue: cfg_dayBoldText
|
|
onBoldValueChanged: {
|
|
cfg_dayBoldText = boldValue
|
|
}
|
|
|
|
italicValue: cfg_dayItalicText
|
|
onItalicValueChanged: {
|
|
cfg_dayItalicText = italicValue
|
|
}
|
|
|
|
pxSizeValue: cfg_dayFontSize
|
|
onPxSizeValueChanged: {
|
|
cfg_dayFontSize = pxSizeValue
|
|
}
|
|
}
|
|
|
|
QtControls.CheckBox {
|
|
id: dayShadowCheckBox
|
|
text: i18n("Enable shadow")
|
|
tristate: false
|
|
checked: cfg_dayShadowEnabled
|
|
}
|
|
|
|
ShadowConfig {
|
|
Kirigami.FormData.label: "Shadow"
|
|
enabled: dayShadowCheckBox.checked
|
|
|
|
colorValue: cfg_dayShadowColor
|
|
onColorValueChanged: {
|
|
cfg_dayShadowColor = colorValue
|
|
}
|
|
|
|
radiusValue: cfg_dayShadowRadius
|
|
onRadiusValueChanged: {
|
|
cfg_dayShadowRadius = radiusValue
|
|
}
|
|
|
|
offsetXValue: cfg_dayShadowXOffset
|
|
onOffsetXValueChanged: {
|
|
cfg_dayShadowXOffset = offsetXValue
|
|
}
|
|
|
|
offsetYValue: cfg_clockShadowYOffset
|
|
onOffsetYValueChanged: {
|
|
cfg_dayShadowYOffset = offsetYValue
|
|
}
|
|
}
|
|
|
|
|
|
Kirigami.Separator {
|
|
Kirigami.FormData.isSection: true
|
|
Kirigami.FormData.label: "Date Display Settings"
|
|
}
|
|
|
|
QtControls.CheckBox {
|
|
Kirigami.FormData.label: "Show date display"
|
|
id: showDateDisplayCheckBox
|
|
}
|
|
|
|
QtLayouts.RowLayout {
|
|
Kirigami.FormData.label: "Date format"
|
|
enabled: showDateDisplayCheckBox.checked
|
|
|
|
QtControls.TextField {
|
|
id: customDateFormat
|
|
QtLayouts.Layout.fillWidth: true
|
|
}
|
|
|
|
QtControls.Button {
|
|
icon.name: "exifinfo"
|
|
onClicked: Qt.openUrlExternally("https://doc.qt.io/qt-5/qml-qtqml-qt.html#formatDateTime-method")
|
|
}
|
|
}
|
|
|
|
ColorButton {
|
|
Kirigami.FormData.label: "Color"
|
|
|
|
onValueChanged: {
|
|
cfg_dateFontColor = value
|
|
}
|
|
}
|
|
|
|
FontConfig {
|
|
Kirigami.FormData.label: "Font"
|
|
fontModel: fontsModel
|
|
enabled: showDateDisplayCheckBox.checked
|
|
|
|
fontValue: cfg_dateFontFamily
|
|
onFontValueChanged: {
|
|
cfg_dateFontFamily = fontValue
|
|
}
|
|
|
|
boldValue: cfg_dateBoldText
|
|
onBoldValueChanged: {
|
|
cfg_dateBoldText = boldValue
|
|
}
|
|
|
|
italicValue: cfg_dateItalicText
|
|
onItalicValueChanged: {
|
|
cfg_dateItalicText = italicValue
|
|
}
|
|
|
|
pxSizeValue: cfg_dateFontSize
|
|
onPxSizeValueChanged: {
|
|
cfg_dateFontSize = pxSizeValue
|
|
}
|
|
}
|
|
|
|
QtControls.CheckBox {
|
|
id: dateShadowCheckBox
|
|
text: i18n("Enable shadow")
|
|
tristate: false
|
|
checked: cfg_dateShadowEnabled
|
|
}
|
|
|
|
ShadowConfig {
|
|
Kirigami.FormData.label: "Shadow"
|
|
enabled: dateShadowCheckBox.checked
|
|
|
|
colorValue: cfg_dateShadowColor
|
|
onColorValueChanged: {
|
|
cfg_dateShadowColor = colorValue
|
|
}
|
|
|
|
radiusValue: cfg_dateShadowRadius
|
|
onRadiusValueChanged: {
|
|
cfg_dateShadowRadius = radiusValue
|
|
}
|
|
|
|
offsetXValue: cfg_dateShadowXOffset
|
|
onOffsetXValueChanged: {
|
|
cfg_dateShadowXOffset = offsetXValue
|
|
}
|
|
|
|
offsetYValue: cfg_dateShadowYOffset
|
|
onOffsetYValueChanged: {
|
|
cfg_dateShadowYOffset = offsetYValue
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|