Commit b7b25010 authored by Yunhe Guo's avatar Yunhe Guo
Browse files

Migrate QQC1 to QQC2

Summary:
The TableView in digital clock widget time zone configuration is replaced with ListView. Other UI didn't change.

{F7635385}

Reviewers: #plasma, #plasma_workspaces, ngraham

Reviewed By: ngraham

Subscribers: GB_2, ahiemstra, broulik, kmaterka, ngraham, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D24798
parent 0fff726c
......@@ -18,7 +18,7 @@
*/
import QtQuick 2.0
import QtQuick.Layouts 1.1
import QtQuick.Controls 1.4
import QtQuick.Controls 2.8
import org.kde.plasma.plasmoid 2.0
import org.kde.kquickcontrolsaddons 2.0
......
......@@ -18,8 +18,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>
*/
import QtQuick 2.0
import QtQuick.Controls 1.2 as QtControls
import QtQuick 2.13
import QtQuick.Controls 2.13 as QQC2
import QtQuick.Layouts 1.0
import QtQuick.Dialogs 1.1
......@@ -45,90 +45,63 @@ ColumnLayout {
}
}
// This is just for getting the column width
QtControls.CheckBox {
id: checkbox
visible: false
}
Kirigami.InlineMessage {
id: messageWidget
Layout.fillWidth: true
Layout.margins: Kirigami.Units.smallSpacing
type: Kirigami.MessageType.Warning
text: i18n("At least one time zone needs to be enabled. 'Local' was enabled automatically.")
showCloseButton: true
}
QtControls.TextField {
QQC2.TextField {
id: filter
Layout.fillWidth: true
placeholderText: i18n("Search Time Zones")
}
QtControls.TableView {
id: timeZoneView
signal toggleCurrent
Item {
Layout.fillWidth: true
Layout.fillHeight: true
Keys.onSpacePressed: toggleCurrent()
QQC2.ScrollView {
anchors.fill: parent
clip: true
Component.onCompleted: background.visible = true // enable border
model: TimeZoneFilterProxy {
sourceModel: timeZones
filterString: filter.text
}
ListView {
id: listView
focus: true // keyboard navigation
activeFocusOnTab: true // keyboard navigation
QtControls.TableViewColumn {
role: "checked"
width: checkbox.width
delegate:
QtControls.CheckBox {
id: checkBox
anchors.centerIn: parent
checked: styleData.value
activeFocusOnTab: false // only let the TableView as a whole get focus
onClicked: {
//needed for model's setData to be called
model.checked = checked;
}
model: TimeZoneFilterProxy {
sourceModel: timeZones
filterString: filter.text
}
Connections {
target: timeZoneView
onToggleCurrent: {
if (styleData.row === timeZoneView.currentRow) {
model.checked = !checkBox.checked
}
}
delegate: QQC2.CheckDelegate {
id: checkbox
focus: true // keyboard navigation
width: parent.width
text: !city || city.indexOf("UTC") === 0 ? comment : comment ? i18n("%1, %2 (%3)", city, region, comment) : i18n("%1, %2", city, region)
checked: model.checked
onToggled: {
model.checked = checkbox.checked
listView.currentIndex = index // highlight
listView.forceActiveFocus() // keyboard navigation
}
highlighted: ListView.isCurrentItem
}
resizable: false
movable: false
}
QtControls.TableViewColumn {
role: "city"
title: i18n("City")
}
QtControls.TableViewColumn {
role: "region"
title: i18n("Region")
}
QtControls.TableViewColumn {
role: "comment"
title: i18n("Comment")
}
}
}
RowLayout {
Layout.fillWidth: true
QtControls.CheckBox {
QQC2.CheckBox {
id: enableWheelCheckBox
text: i18n("Switch time zone with mouse wheel")
}
}
}
......@@ -17,7 +17,6 @@
*/
import QtQuick 2.5
import QtQuick.Controls 1.4 as QQC1
import QtQuick.Controls 2.5 as QQC2
import QtQuick.Layouts 1.3
......@@ -119,23 +118,28 @@ Item {
anchors.left: parent.left
anchors.right: parent.right
// QQC2 SpinBox doesn't cleanly support non-integer values, which can be
// worked around, but the code is messy and the user experience is
// somewhat poor. So for now, we stick with the QQC1 SpinBox
QQC1.SpinBox {
QQC2.SpinBox {
id: updateIntervalSpinBox
Kirigami.FormData.label: i18n("Update interval:")
decimals: 1
suffix: i18ncp("Suffix for spinbox (seconds)", " second",
" seconds")
maximumValue: 1000
stepSize: 0.1
onValueChanged: cfg_updateInterval = value * 1000
Component.onCompleted: value = cfg_updateInterval / 1000
from: 100
stepSize: 100
to: 1000000
editable: true
validator: DoubleValidator {
bottom: spinbox.from
top: spinbox.to
}
textFromValue: function(value) {
var seconds = value / 1000
return i18n("%1 seconds", seconds.toFixed(1))
}
valueFromText: function(text) {
return parseFloat(text) * 1000
}
value: cfg_updateInterval
onValueModified: cfg_updateInterval = value
}
Item {
Kirigami.FormData.isSection: true
}
......
......@@ -25,9 +25,9 @@ PlasmaComponents.ToolButton {
QQC2.Menu {
id: keyboardMenu
property int largestWidth: 9999
Component.onCompleted: {
var trueWidth = 0;
for (var i = 0; i < keyboardMenu.count; i++) {
......@@ -63,11 +63,11 @@ PlasmaComponents.ToolButton {
id: menuItem
property string name: modelData.longName
property string shortName: modelData.shortName
property real textWidth: text.contentWidth + 20
implicitWidth: text.contentWidth + 20
implicitHeight: Math.round(text.contentHeight * 1.6)
contentItem: QQC2.Label {
id: text
font.pointSize: config.fontSize
......
......@@ -20,7 +20,7 @@
import QtQuick 2.8
import QtQuick.Layouts 1.1
import QtQuick.Controls 2.0
import QtQuick.Controls 2.0 as QQC2
import QtGraphicalEffects 1.0
import org.kde.plasma.core 2.0 as PlasmaCore
......@@ -148,7 +148,6 @@ PlasmaCore.ColorScope {
anchors.horizontalCenter: parent.horizontalCenter
}
StackView {
id: mainStack
anchors {
......@@ -435,7 +434,7 @@ PlasmaCore.ColorScope {
DropShadow {
id: logoShadow
anchors.fill: logo
source: logo
source: logo
visible: !softwareRendering && config.showlogo == "shown"
horizontalOffset: 1
verticalOffset: 1
......
......@@ -45,7 +45,7 @@ PlasmaComponents.ToolButton {
QQC2.Menu {
id: sessionMenu
property int largestWidth: 9999
Component.onCompleted: {
......@@ -55,7 +55,7 @@ PlasmaComponents.ToolButton {
}
sessionMenu.largestWidth = trueWidth
}
background: Rectangle {
implicitHeight: 40
implicitWidth: sessionMenu.largestWidth > sessionButton.implicitWidth ? sessionMenu.largestWidth : sessionButton.implicitWidth
......
......@@ -22,7 +22,7 @@ import QtQuick 2.0
import org.kde.plasma.core 2.0 as Plasmacore
import org.kde.plasma.wallpapers.image 2.0 as Wallpaper
import org.kde.kquickcontrolsaddons 2.0
import QtQuick.Controls 1.0 as QtControls
import QtQuick.Controls 2.8 as QQC2
Item {
id: root
......@@ -41,7 +41,7 @@ Item {
//Rectangle { color: "orange"; x: formAlignment; width: formAlignment; height: 20 }
QtControls.ScrollView {
QQC2.ScrollView {
anchors.fill: parent
frameVisible: true
......@@ -71,7 +71,7 @@ Item {
}
}
QtControls.Button {
QQC2.Button {
anchors {
bottom: parent.bottom
horizontalCenter: parent.horizontalCenter
......
......@@ -22,7 +22,7 @@ import Qt.labs.folderlistmodel 2.1
import org.kde.plasma.core 2.0 as Plasmacore
import org.kde.plasma.wallpapers.image 2.0 as Wallpaper
import org.kde.kquickcontrolsaddons 2.0
import QtQuick.Controls 1.0 as QtControls
import QtQuick.Controls 2.8 as QQC2
Rectangle {
id: root
......@@ -31,7 +31,7 @@ Rectangle {
SystemPalette {id: syspal}
QtControls.ScrollView {
QQC2.ScrollView {
anchors.fill: parent
frameVisible: true
......@@ -76,7 +76,7 @@ Rectangle {
}
}
}
QtControls.Button {
QQC2.Button {
anchors {
bottom: parent.bottom
horizontalCenter: parent.horizontalCenter
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment