diff --git a/applets/notes/package/contents/config/config.qml b/applets/notes/package/contents/config/config.qml
index 121431e7c39d6573435c5b30e496556caec010e6..85905c54676552f57282fbe000fa943d0f70f587 100644
--- a/applets/notes/package/contents/config/config.qml
+++ b/applets/notes/package/contents/config/config.qml
@@ -4,7 +4,7 @@
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/
-import QtQuick 2.0
+import QtQuick 2.15
import org.kde.plasma.configuration 2.0
diff --git a/applets/notes/package/contents/config/main.xml b/applets/notes/package/contents/config/main.xml
index e7387cd1281eb8e78125d98fb3bc1bd5bbb7f381..521cd14769b2c1e370fdf9595417160662c93eb4 100644
--- a/applets/notes/package/contents/config/main.xml
+++ b/applets/notes/package/contents/config/main.xml
@@ -17,5 +17,18 @@
+
+
+ 0
+
+
+
+ 0
+
+
+
+ 0
+
+
diff --git a/applets/notes/package/contents/ui/ShortcutMenuItem.qml b/applets/notes/package/contents/ui/ShortcutMenuItem.qml
index d56109dfb97eb3bc25c72339d48655c7f6a913c1..48c4813e4d5220efee2448e55a03dae40b283c80 100644
--- a/applets/notes/package/contents/ui/ShortcutMenuItem.qml
+++ b/applets/notes/package/contents/ui/ShortcutMenuItem.qml
@@ -4,9 +4,9 @@
* SPDX-License-Identifier: LGPL-2.0-or-later
*/
-import QtQuick 2.6
-import QtQuick.Window 2.2
-import QtQuick.Controls 2.12
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Window 2.15
MenuItem {
property alias _sequence: shortcutElement.sequence
diff --git a/applets/notes/package/contents/ui/configAppearance.qml b/applets/notes/package/contents/ui/configAppearance.qml
index 3a1469d590f166d74994a34f454ff1ad1aff580e..fdedd0ab34b0981333d737935eed3680ee5434b6 100644
--- a/applets/notes/package/contents/ui/configAppearance.qml
+++ b/applets/notes/package/contents/ui/configAppearance.qml
@@ -4,10 +4,9 @@
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/
-import QtQuick 2.5
-
-import QtQuick.Layouts 1.2
-import QtQuick.Controls 2.5 as QQC2
+import QtQuick 2.15
+import QtQuick.Controls 2.15 as QQC2
+import QtQuick.Layouts 1.15
import org.kde.kcm 1.1 as KCM
import org.kde.plasma.core 2.0 as PlasmaCore
diff --git a/applets/notes/package/contents/ui/main.qml b/applets/notes/package/contents/ui/main.qml
index 9e421c9e206356945697c06160b10b05f953abb1..05be15ed7cd6e01f73b4d1cd5c25e4417ee749e9 100644
--- a/applets/notes/package/contents/ui/main.qml
+++ b/applets/notes/package/contents/ui/main.qml
@@ -6,9 +6,10 @@
*/
import QtQuick 2.15
-import QtQuick.Controls 2.5 as QQC2
-import QtQuick.Layouts 1.1
-import QtQuick.Window 2.12
+import QtQuick.Controls 2.15 as QQC2
+import QtQuick.Layouts 1.15
+import QtQuick.Window 2.15
+// Dialogs are stuck at 1.3 for some reason. Don't bump.
import QtQuick.Dialogs 1.3
// Deliberately imported after QtQuick to avoid missing restoreMode property in Binding. Fix in Qt 6.
import QtQml 2.15
@@ -31,7 +32,7 @@ PlasmaCore.SvgItem {
svg: PlasmaCore.Svg {
imagePath: "widgets/notes"
}
- elementId: plasmoid.configuration.color + "-notes"
+ elementId: Plasmoid.configuration.color + "-notes"
width: PlasmaCore.Units.gridUnit * 15
height: PlasmaCore.Units.gridUnit * 15
@@ -47,13 +48,13 @@ PlasmaCore.SvgItem {
readonly property real verticalMargins: height * 0.07
// note is of type Note
- property QtObject note: noteManager.loadNote(plasmoid.configuration.noteId);
+ property QtObject note: noteManager.loadNote(Plasmoid.configuration.noteId);
// define colors used for icons in ToolButtons and for text in TextArea.
// this is deliberately _NOT_ the theme color as we are over a known bright background!
// an unknown colour over a known colour is a bad move as you end up with white on yellow.
readonly property color textIconColor: {
- if (plasmoid.configuration.color === "black" || plasmoid.configuration.color === "translucent-light") {
+ if (Plasmoid.configuration.color === "black" || Plasmoid.configuration.color === "translucent-light") {
return "#dfdfdf";
}
return "#202020";
@@ -66,10 +67,10 @@ PlasmaCore.SvgItem {
}
Connections {
- target: plasmoid
+ target: Plasmoid.self
function onExpandedChanged(expanded) {
// don't autofocus when we're on the desktop
- if (expanded && (plasmoid.formFactor === PlasmaCore.Types.Vertical || plasmoid.formFactor === PlasmaCore.Types.Horizontal)) {
+ if (expanded && (Plasmoid.formFactor === PlasmaCore.Types.Vertical || Plasmoid.formFactor === PlasmaCore.Types.Horizontal)) {
mainTextArea.forceActiveFocus()
}
}
@@ -101,13 +102,13 @@ PlasmaCore.SvgItem {
Timer {
id: activationTimer
interval: 250 // matches taskmanager delay
- onTriggered: plasmoid.expanded = true
+ onTriggered: Plasmoid.expanded = true
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
- onClicked: plasmoid.expanded = !plasmoid.expanded
+ onClicked: Plasmoid.expanded = !Plasmoid.expanded
PlasmaCore.IconItem {
anchors.fill: parent
@@ -151,7 +152,7 @@ PlasmaCore.SvgItem {
PlasmaComponents3.TextArea {
id: mainTextArea
- property real cfgFontPointSize: plasmoid.configuration.fontSize
+ property real cfgFontPointSize: Plasmoid.configuration.fontSize
textFormat: TextEdit.RichText
onLinkActivated: Qt.openUrlExternally(link)
@@ -164,7 +165,7 @@ PlasmaCore.SvgItem {
Keys.onPressed: {
if (event.key === Qt.Key_Escape) {
- plasmoid.expanded = false;
+ Plasmoid.expanded = false;
event.accepted = true;
} else if (event.modifiers === Qt.ControlModifier) {
if (event.key === Qt.Key_B) {
@@ -213,9 +214,9 @@ PlasmaCore.SvgItem {
onActiveFocusChanged: {
if (activeFocus && root.Window && (root.Window.window.flags & Qt.WindowDoesNotAcceptFocus)) {
- plasmoid.status = PlasmaCore.Types.AcceptingInputStatus
+ Plasmoid.status = PlasmaCore.Types.AcceptingInputStatus
} else {
- plasmoid.status = PlasmaCore.Types.ActiveStatus
+ Plasmoid.status = PlasmaCore.Types.ActiveStatus
note.save(mainTextArea.text);
}
}
@@ -229,9 +230,9 @@ PlasmaCore.SvgItem {
}
Component.onCompleted: {
- if (!plasmoid.configuration.fontSize) {
+ if (!Plasmoid.configuration.fontSize) {
// Set fontSize to default if it is not set
- plasmoid.configuration.fontSize = mainTextArea.font.pointSize
+ Plasmoid.configuration.fontSize = mainTextArea.font.pointSize
}
}
@@ -319,6 +320,51 @@ PlasmaCore.SvgItem {
}
}
}
+
+ // Save scrolling position when it changes, but throttle to avoid
+ // killing a storage disk.
+ Connections {
+ target: scrollview.contentItem
+ function onContentXChanged() {
+ throttedScrollSaver.restart();
+ }
+ function onContentYChanged() {
+ throttedScrollSaver.restart();
+ }
+ }
+ Connections {
+ target: mainTextArea
+ function onCursorPositionChanged() {
+ throttedScrollSaver.restart();
+ }
+ }
+
+ Timer {
+ id: throttedScrollSaver
+ interval: PlasmaCore.Units.humanMoment
+ repeat: false
+ running: false
+ onTriggered: scrollview.saveScroll()
+ }
+
+ function saveScroll() {
+ const flickable = scrollview.contentItem;
+ Plasmoid.configuration.scrollX = flickable.contentX;
+ Plasmoid.configuration.scrollY = flickable.contentY;
+ Plasmoid.configuration.cursorPosition = mainTextArea.cursorPosition;
+ }
+
+ function restoreScroll() {
+ const flickable = scrollview.contentItem;
+ flickable.contentX = Plasmoid.configuration.scrollX;
+ flickable.contentY = Plasmoid.configuration.scrollY;
+ mainTextArea.cursorPosition = Plasmoid.configuration.cursorPosition;
+ }
+
+ // Give it some time to lay out the text, because at this
+ // point in time content size is not reliable yet.
+ Component.onCompleted: Qt.callLater(restoreScroll)
+ Component.onDestruction: saveScroll()
}
DragDrop.DropArea {
@@ -442,11 +488,11 @@ PlasmaCore.SvgItem {
focusPolicy: Qt.TabFocus
icon.name: "configure"
icon.color: textIconColor
- onClicked: plasmoid.action("configure").trigger()
+ onClicked: Plasmoid.action("configure").trigger()
Accessible.name: settingsTooltip.text
QQC2.ToolTip {
id: settingsTooltip
- text: plasmoid.action("configure").text
+ text: Plasmoid.action("configure").text
}
}
@@ -471,7 +517,7 @@ PlasmaCore.SvgItem {
// is done in the same way every time.
documentHandler.stripAndSimplify(mainTextArea.text) == documentHandler.strippedClipboardText()
) {
- plasmoid.action("remove").trigger();
+ Plasmoid.action("remove").trigger();
} else {
discardConfirmationDialogLoader.open();
}
@@ -479,7 +525,7 @@ PlasmaCore.SvgItem {
Accessible.name: removeTooltip.text
QQC2.ToolTip {
id: removeTooltip
- text: plasmoid.action("remove").text
+ text: Plasmoid.action("remove").text
}
}
}
@@ -508,29 +554,29 @@ PlasmaCore.SvgItem {
standardButtons: StandardButton.Discard | StandardButton.Cancel
onDiscard: {
- plasmoid.action("remove").trigger()
+ Plasmoid.action("remove").trigger()
visible = false;
}
}
}
Component.onCompleted: {
- plasmoid.setAction("change_note_color_white", i18nc("@item:inmenu", "White"));
- plasmoid.setAction("change_note_color_black", i18nc("@item:inmenu", "Black"));
- plasmoid.setAction("change_note_color_red", i18nc("@item:inmenu", "Red"));
- plasmoid.setAction("change_note_color_orange", i18nc("@item:inmenu", "Orange"));
- plasmoid.setAction("change_note_color_yellow", i18nc("@item:inmenu", "Yellow"));
- plasmoid.setAction("change_note_color_green", i18nc("@item:inmenu", "Green"));
- plasmoid.setAction("change_note_color_blue", i18nc("@item:inmenu", "Blue"));
- plasmoid.setAction("change_note_color_pink", i18nc("@item:inmenu", "Pink"));
- plasmoid.setAction("change_note_color_translucent", i18nc("@item:inmenu", "Translucent"));
- plasmoid.setAction("change_note_color_translucent-light", i18nc("@item:inmenu", "Translucent Light"));
- plasmoid.setActionSeparator("separator0");
-
- // plasmoid configuration doesn't check before emitting change signal
+ Plasmoid.setAction("change_note_color_white", i18nc("@item:inmenu", "White"));
+ Plasmoid.setAction("change_note_color_black", i18nc("@item:inmenu", "Black"));
+ Plasmoid.setAction("change_note_color_red", i18nc("@item:inmenu", "Red"));
+ Plasmoid.setAction("change_note_color_orange", i18nc("@item:inmenu", "Orange"));
+ Plasmoid.setAction("change_note_color_yellow", i18nc("@item:inmenu", "Yellow"));
+ Plasmoid.setAction("change_note_color_green", i18nc("@item:inmenu", "Green"));
+ Plasmoid.setAction("change_note_color_blue", i18nc("@item:inmenu", "Blue"));
+ Plasmoid.setAction("change_note_color_pink", i18nc("@item:inmenu", "Pink"));
+ Plasmoid.setAction("change_note_color_translucent", i18nc("@item:inmenu", "Translucent"));
+ Plasmoid.setAction("change_note_color_translucent-light", i18nc("@item:inmenu", "Translucent Light"));
+ Plasmoid.setActionSeparator("separator0");
+
+ // Plasmoid configuration doesn't check before emitting change signal
// explicit check is needed (at time of writing)
- if (note.id != plasmoid.configuration.noteId) {
- plasmoid.configuration.noteId = note.id;
+ if (note.id != Plasmoid.configuration.noteId) {
+ Plasmoid.configuration.noteId = note.id;
}
}
@@ -540,7 +586,7 @@ PlasmaCore.SvgItem {
function actionTriggered(actionName) {
if (actionName.indexOf("change_note_color_") == 0){
- plasmoid.configuration.color = actionName.replace("change_note_color_", "");
+ Plasmoid.configuration.color = actionName.replace("change_note_color_", "");
}
}
}