From 47a4f6d632b71c528e717cd420a6a9b29cc3a42e Mon Sep 17 00:00:00 2001 From: Bhushan Shah Date: Thu, 16 Sep 2021 10:18:20 +0530 Subject: [PATCH 01/13] Add airplane mode in quicksettings Based on original patch from Nicolas Fella (cherry picked from commit ed9517161d8ceadad2783401a2ca6773213956b6) --- CMakeLists.txt | 1 + .../airplanemode/contents/ui/main.qml | 24 +++++++++++++++++++ quicksettings/airplanemode/metadata.desktop | 14 +++++++++++ 3 files changed, 39 insertions(+) create mode 100644 quicksettings/airplanemode/contents/ui/main.qml create mode 100644 quicksettings/airplanemode/metadata.desktop diff --git a/CMakeLists.txt b/CMakeLists.txt index c6b69cfe..1583c805 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,6 +52,7 @@ include(CheckIncludeFiles) plasma_install_package(look-and-feel org.kde.plasma.phone look-and-feel) plasma_install_package(shell org.kde.plasma.phoneshell shells) plasma_install_package(quicksettings/nightcolor org.kde.plasma.nightcolor quicksettings) +plasma_install_package(quicksettings/airplanemode org.kde.plasma.airplanemode quicksettings) install(FILES plasma_phone_components.notifyrc DESTINATION ${KNOTIFYRC_INSTALL_DIR}) diff --git a/quicksettings/airplanemode/contents/ui/main.qml b/quicksettings/airplanemode/contents/ui/main.qml new file mode 100644 index 00000000..9d36bb41 --- /dev/null +++ b/quicksettings/airplanemode/contents/ui/main.qml @@ -0,0 +1,24 @@ +/* + * SPDX-FileCopyrightText: 2021 Bhushan Shah + * SPDX-FileCopyrightText: 2021 Nicolas Fella + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +import org.kde.plasma.private.mobilehomescreencomponents 0.1 as HomeScreenComponents +import org.kde.plasma.networkmanagement 0.2 as PlasmaNM + +HomeScreenComponents.QuickSetting { + text: i18n("Airplane Mode") + icon: "network-flightmode-on" + enabled: PlasmaNM.Configuration.airplaneModeEnabled + + PlasmaNM.Handler { + id: nmHandler + } + + function toggle() { + nmHandler.enableAirplaneMode(!PlasmaNM.Configuration.airplaneModeEnabled); + PlasmaNM.Configuration.airplaneModeEnabled = !PlasmaNM.Configuration.airplaneModeEnabled; + } +} diff --git a/quicksettings/airplanemode/metadata.desktop b/quicksettings/airplanemode/metadata.desktop new file mode 100644 index 00000000..151f217e --- /dev/null +++ b/quicksettings/airplanemode/metadata.desktop @@ -0,0 +1,14 @@ +[Desktop Entry] +Name=Airplane Mode +Icon=network-flightmode-on + +Type=Service +X-KDE-ServiceTypes=KPackage/GenericQML + +X-KDE-PluginInfo-Author=Bhushan Shah +X-KDE-PluginInfo-Email=bshah@kde.org +X-KDE-PluginInfo-Name=org.kde.plasma.airplanemode +X-KDE-PluginInfo-Version=0.1 +X-KDE-PluginInfo-Website=https://kde.org +X-KDE-PluginInfo-License=GPL + From 6d1a9ed153f72a9189c1cfa954fe9b220bad7e05 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Mon, 13 Sep 2021 18:26:05 +0200 Subject: [PATCH 02/13] phonepanel: Keep the Quick Settings buttons the same size Instead of doing weird UI puzzles, just let them elide their text. This solves binding loops and makes the look overall more predictable. (cherry picked from commit c4903c25b9e81d94ed7d68f29db6cf9422cd3e5d) --- .../contents/ui/quicksettings/QuickSettingsPanel.qml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/containments/panel/package/contents/ui/quicksettings/QuickSettingsPanel.qml b/containments/panel/package/contents/ui/quicksettings/QuickSettingsPanel.qml index c1835654..a3fba5f9 100644 --- a/containments/panel/package/contents/ui/quicksettings/QuickSettingsPanel.qml +++ b/containments/panel/package/contents/ui/quicksettings/QuickSettingsPanel.qml @@ -94,9 +94,6 @@ Item { spacing: 0 height: Layout.minimumHeight * (1 - root.expandedRatio) + (Layout.maximumHeight * root.expandedRatio) - readonly property real cellSizeHint: PlasmaCore.Units.iconSizes.large + PlasmaCore.Units.smallSpacing * 6 - readonly property real columnWidth: Math.floor(width / Math.floor(width / cellSizeHint)) - // top indicators (clock, widgets, etc.) IndicatorsRow { id: indicatorsRow @@ -127,7 +124,7 @@ Item { readonly property real cellSizeHint: PlasmaCore.Units.iconSizes.large + PlasmaCore.Units.smallSpacing * 6 readonly property real columns: Math.floor(width / cellSizeHint) - readonly property real columnWidth: Math.floor(width / columns) + readonly property real columnWidth: (flow.width / (flow.columns + 1)) * (root.expandedRatio > 0.4 ? 1 : (1 - root.expandedRatio) + (flow.width / flow.columns) * root.expandedRatio) spacing: 0 @@ -136,10 +133,8 @@ Item { delegate: Delegate { id: delegateItem required property var modelData - width: root.expandedRatio < 0.4 - ? Math.max(implicitWidth + PlasmaCore.Units.smallSpacing * 2, flow.width / (flow.columns + 1)) - : Math.max(implicitWidth + PlasmaCore.Units.smallSpacing * 2, - (flow.width / (flow.columns + 1)) * (1 - root.expandedRatio) + (flow.width / flow.columns) * root.expandedRatio) + width: flow.columnWidth + labelOpacity: y > 0 ? 1 : root.expandedRatio opacity: y <= 0 ? 1 : root.expandedRatio From 50a50dd28dcbd71a55aa0fc69f97f3ba3304f5e2 Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Sat, 18 Sep 2021 02:13:25 +0000 Subject: [PATCH 03/13] SVN_SILENT made messages (.desktop file) - always resolve ours In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop" --- plasma_phone_components.notifyrc | 4 ++-- quicksettings/airplanemode/metadata.desktop | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/plasma_phone_components.notifyrc b/plasma_phone_components.notifyrc index d9130030..739c8e7b 100644 --- a/plasma_phone_components.notifyrc +++ b/plasma_phone_components.notifyrc @@ -30,7 +30,7 @@ Name[zh_CN]=Plasma [Event/captured] Name=Captured -Name[ca]=Captura +Name[ca]=Capturat Name[cs]=Zachyceno Name[de]=Aufgenommen Name[en_GB]=Captured @@ -55,7 +55,7 @@ Name[uk]=Захоплено Name[x-test]=xxCapturedxx Name[zh_CN]=已捕获 Comment=Captured -Comment[ca]=Captura +Comment[ca]=Capturat Comment[cs]=Zachyceno Comment[de]=Aufgenommen Comment[en_GB]=Captured diff --git a/quicksettings/airplanemode/metadata.desktop b/quicksettings/airplanemode/metadata.desktop index 151f217e..bc995c38 100644 --- a/quicksettings/airplanemode/metadata.desktop +++ b/quicksettings/airplanemode/metadata.desktop @@ -1,5 +1,12 @@ [Desktop Entry] Name=Airplane Mode +Name[ca]=Mode avió +Name[es]=Modo avión +Name[ia]=Modo aeroplano +Name[nl]=Vliegtuigmodus +Name[sv]=Flygplansläge +Name[uk]=Режим польоту +Name[x-test]=xxAirplane Modexx Icon=network-flightmode-on Type=Service From 07dfe5d6d5565b15eed5c14f9e6343c0abc9cba6 Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Sun, 19 Sep 2021 02:36:16 +0000 Subject: [PATCH 04/13] SVN_SILENT made messages (.desktop file) - always resolve ours In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop" --- quicksettings/airplanemode/metadata.desktop | 2 ++ 1 file changed, 2 insertions(+) diff --git a/quicksettings/airplanemode/metadata.desktop b/quicksettings/airplanemode/metadata.desktop index bc995c38..1573355b 100644 --- a/quicksettings/airplanemode/metadata.desktop +++ b/quicksettings/airplanemode/metadata.desktop @@ -2,11 +2,13 @@ Name=Airplane Mode Name[ca]=Mode avió Name[es]=Modo avión +Name[fr]=Mode Avion Name[ia]=Modo aeroplano Name[nl]=Vliegtuigmodus Name[sv]=Flygplansläge Name[uk]=Режим польоту Name[x-test]=xxAirplane Modexx +Name[zh_CN]=飞行模式 Icon=network-flightmode-on Type=Service From 348fe884287a1f84f86116b1345b286ed6cd4c7f Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Mon, 20 Sep 2021 02:30:30 +0000 Subject: [PATCH 05/13] SVN_SILENT made messages (.desktop file) - always resolve ours In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop" --- quicksettings/airplanemode/metadata.desktop | 1 + quicksettings/nightcolor/metadata.desktop | 1 + 2 files changed, 2 insertions(+) diff --git a/quicksettings/airplanemode/metadata.desktop b/quicksettings/airplanemode/metadata.desktop index 1573355b..8ee29553 100644 --- a/quicksettings/airplanemode/metadata.desktop +++ b/quicksettings/airplanemode/metadata.desktop @@ -5,6 +5,7 @@ Name[es]=Modo avión Name[fr]=Mode Avion Name[ia]=Modo aeroplano Name[nl]=Vliegtuigmodus +Name[nn]=Flymodus Name[sv]=Flygplansläge Name[uk]=Режим польоту Name[x-test]=xxAirplane Modexx diff --git a/quicksettings/nightcolor/metadata.desktop b/quicksettings/nightcolor/metadata.desktop index b62caa1d..158cb631 100644 --- a/quicksettings/nightcolor/metadata.desktop +++ b/quicksettings/nightcolor/metadata.desktop @@ -11,6 +11,7 @@ Name[ia]=Color de Nocte Name[it]=Colore notturno Name[ko]=야간 색상 Name[nl]=Nachtkleur +Name[nn]=Nattfargar Name[pl]=Barwy nocne Name[pt]=Cor Nocturna Name[pt_BR]=Cor noturna From 27811498d4382f3b9653883553e9161cd83b99f9 Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Thu, 23 Sep 2021 02:14:26 +0000 Subject: [PATCH 06/13] SVN_SILENT made messages (.desktop file) - always resolve ours In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop" --- quicksettings/airplanemode/metadata.desktop | 1 + 1 file changed, 1 insertion(+) diff --git a/quicksettings/airplanemode/metadata.desktop b/quicksettings/airplanemode/metadata.desktop index 8ee29553..88f90aea 100644 --- a/quicksettings/airplanemode/metadata.desktop +++ b/quicksettings/airplanemode/metadata.desktop @@ -2,6 +2,7 @@ Name=Airplane Mode Name[ca]=Mode avió Name[es]=Modo avión +Name[eu]=Hegaldi modua Name[fr]=Mode Avion Name[ia]=Modo aeroplano Name[nl]=Vliegtuigmodus From cca4b380584a94a0240b8f7ffd4c83b1c5ee40c5 Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Sat, 25 Sep 2021 02:15:02 +0000 Subject: [PATCH 07/13] SVN_SILENT made messages (.desktop file) - always resolve ours In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop" --- quicksettings/airplanemode/metadata.desktop | 1 + 1 file changed, 1 insertion(+) diff --git a/quicksettings/airplanemode/metadata.desktop b/quicksettings/airplanemode/metadata.desktop index 88f90aea..3375634c 100644 --- a/quicksettings/airplanemode/metadata.desktop +++ b/quicksettings/airplanemode/metadata.desktop @@ -7,6 +7,7 @@ Name[fr]=Mode Avion Name[ia]=Modo aeroplano Name[nl]=Vliegtuigmodus Name[nn]=Flymodus +Name[sl]=Letalski način Name[sv]=Flygplansläge Name[uk]=Режим польоту Name[x-test]=xxAirplane Modexx From a3791ee08107489f58f6dbbf4ebb827ad1b56621 Mon Sep 17 00:00:00 2001 From: Devin Lin Date: Sat, 25 Sep 2021 12:57:07 -0400 Subject: [PATCH 08/13] lockscreen: Fix text input not working because of predictive text --- look-and-feel/contents/lockscreen/PasswordBar.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/look-and-feel/contents/lockscreen/PasswordBar.qml b/look-and-feel/contents/lockscreen/PasswordBar.qml index 3f8a380b..0dcb36ba 100644 --- a/look-and-feel/contents/lockscreen/PasswordBar.qml +++ b/look-and-feel/contents/lockscreen/PasswordBar.qml @@ -129,6 +129,7 @@ Rectangle { visible: false focus: keypadOpen && !isPinMode z: 1 + inputMethodHints: Qt.ImhNoPredictiveText onFocusChanged: { if (focus) { From 92cb1290dc7ba19fe7cf42b302c934fe434228b7 Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Sun, 26 Sep 2021 02:14:27 +0000 Subject: [PATCH 09/13] SVN_SILENT made messages (.desktop file) - always resolve ours In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop" --- quicksettings/airplanemode/metadata.desktop | 1 + 1 file changed, 1 insertion(+) diff --git a/quicksettings/airplanemode/metadata.desktop b/quicksettings/airplanemode/metadata.desktop index 3375634c..4042d1e8 100644 --- a/quicksettings/airplanemode/metadata.desktop +++ b/quicksettings/airplanemode/metadata.desktop @@ -7,6 +7,7 @@ Name[fr]=Mode Avion Name[ia]=Modo aeroplano Name[nl]=Vliegtuigmodus Name[nn]=Flymodus +Name[pl]=Tryb samolotowy Name[sl]=Letalski način Name[sv]=Flygplansläge Name[uk]=Режим польоту From f6c1d727d716157a7b9c04efc9a3f4794e4081fb Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Mon, 13 Sep 2021 18:26:05 +0200 Subject: [PATCH 10/13] Revert "phonepanel: Keep the Quick Settings buttons the same size" This reverts commit c4903c25b9e81d94ed7d68f29db6cf9422cd3e5d. (cherry picked from commit 43f2f293cf243c129d386e1ef617c26615f84db0) --- .../contents/ui/quicksettings/QuickSettingsPanel.qml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/containments/panel/package/contents/ui/quicksettings/QuickSettingsPanel.qml b/containments/panel/package/contents/ui/quicksettings/QuickSettingsPanel.qml index a3fba5f9..c1835654 100644 --- a/containments/panel/package/contents/ui/quicksettings/QuickSettingsPanel.qml +++ b/containments/panel/package/contents/ui/quicksettings/QuickSettingsPanel.qml @@ -94,6 +94,9 @@ Item { spacing: 0 height: Layout.minimumHeight * (1 - root.expandedRatio) + (Layout.maximumHeight * root.expandedRatio) + readonly property real cellSizeHint: PlasmaCore.Units.iconSizes.large + PlasmaCore.Units.smallSpacing * 6 + readonly property real columnWidth: Math.floor(width / Math.floor(width / cellSizeHint)) + // top indicators (clock, widgets, etc.) IndicatorsRow { id: indicatorsRow @@ -124,7 +127,7 @@ Item { readonly property real cellSizeHint: PlasmaCore.Units.iconSizes.large + PlasmaCore.Units.smallSpacing * 6 readonly property real columns: Math.floor(width / cellSizeHint) - readonly property real columnWidth: (flow.width / (flow.columns + 1)) * (root.expandedRatio > 0.4 ? 1 : (1 - root.expandedRatio) + (flow.width / flow.columns) * root.expandedRatio) + readonly property real columnWidth: Math.floor(width / columns) spacing: 0 @@ -133,8 +136,10 @@ Item { delegate: Delegate { id: delegateItem required property var modelData - width: flow.columnWidth - + width: root.expandedRatio < 0.4 + ? Math.max(implicitWidth + PlasmaCore.Units.smallSpacing * 2, flow.width / (flow.columns + 1)) + : Math.max(implicitWidth + PlasmaCore.Units.smallSpacing * 2, + (flow.width / (flow.columns + 1)) * (1 - root.expandedRatio) + (flow.width / flow.columns) * root.expandedRatio) labelOpacity: y > 0 ? 1 : root.expandedRatio opacity: y <= 0 ? 1 : root.expandedRatio From cfcab16fb23f970970775a421b7e1e2ed545bacc Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Wed, 29 Sep 2021 00:55:51 +0200 Subject: [PATCH 11/13] Do not show "Sim Locked" when there's no SIM card Fixes https://invent.kde.org/plasma/plasma-phone-components/-/issues/115 (cherry picked from commit d238aa3031d131dd5035d69cd7227c84b2c8ecd8) --- .../ui/indicators/providers/SignalStrengthProvider.qml | 5 +++-- .../indicators/providers/SignalStrengthProvider.qml | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/containments/panel/package/contents/ui/indicators/providers/SignalStrengthProvider.qml b/containments/panel/package/contents/ui/indicators/providers/SignalStrengthProvider.qml index 79b39d68..d6dbfe53 100644 --- a/containments/panel/package/contents/ui/indicators/providers/SignalStrengthProvider.qml +++ b/containments/panel/package/contents/ui/indicators/providers/SignalStrengthProvider.qml @@ -1,12 +1,12 @@ /* * SPDX-FileCopyrightText: 2021 Devin Lin * SPDX-FileCopyrightText: 2015 Marco Martin + * SPDX-FileCopyrightText: 2021 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-or-later */ import QtQuick 2.1 -import QtQuick.Layouts 1.1 import org.kde.plasma.mm 1.0 @@ -14,6 +14,7 @@ QtObject { property string icon: "network-mobile-" + Math.floor(SignalIndicator.strength / 20) * 20 - property string label: SignalIndicator.simLocked ? i18n("Sim Locked") : SignalIndicator.name + property string label: !SignalIndicator.available ? "" + : SignalIndicator.simLocked ? i18n("Sim Locked") : SignalIndicator.name } diff --git a/look-and-feel/contents/lockscreen/indicators/providers/SignalStrengthProvider.qml b/look-and-feel/contents/lockscreen/indicators/providers/SignalStrengthProvider.qml index f3ad3ee3..77bcb85e 100644 --- a/look-and-feel/contents/lockscreen/indicators/providers/SignalStrengthProvider.qml +++ b/look-and-feel/contents/lockscreen/indicators/providers/SignalStrengthProvider.qml @@ -1,6 +1,6 @@ /* - * SPDX-FileCopyrightText: 2015 Marco Martin * SPDX-FileCopyrightText: 2021 Devin Lin + * SPDX-FileCopyrightText: 2015 Marco Martin * SPDX-FileCopyrightText: 2021 Tobias Fella * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,6 +14,7 @@ QtObject { property string icon: "network-mobile-" + Math.floor(SignalIndicator.strength / 20) * 20 - property string label: SignalIndicator.simLocked ? i18n("Sim Locked") : SignalIndicator.name + property string label: !SignalIndicator.available ? "" + : SignalIndicator.simLocked ? i18n("Sim Locked") : SignalIndicator.name } From b4aab98f099b21d0f903b886f715ed57c2ae5a5f Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Thu, 30 Sep 2021 02:11:23 +0000 Subject: [PATCH 12/13] SVN_SILENT made messages (.desktop file) - always resolve ours In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop" --- quicksettings/airplanemode/metadata.desktop | 1 + 1 file changed, 1 insertion(+) diff --git a/quicksettings/airplanemode/metadata.desktop b/quicksettings/airplanemode/metadata.desktop index 4042d1e8..06f9bad4 100644 --- a/quicksettings/airplanemode/metadata.desktop +++ b/quicksettings/airplanemode/metadata.desktop @@ -1,6 +1,7 @@ [Desktop Entry] Name=Airplane Mode Name[ca]=Mode avió +Name[cs]=Režim v Letadle Name[es]=Modo avión Name[eu]=Hegaldi modua Name[fr]=Mode Avion From 5c6c094dd25ef132fa071bd6d0b4bf4d1da5fe5b Mon Sep 17 00:00:00 2001 From: David Faure Date: Sat, 2 Oct 2021 14:01:56 +0200 Subject: [PATCH 13/13] Fix path->URL conversion error, detected by -DQT_NO_URL_CAST_FROM_STRING --- CMakeLists.txt | 2 ++ containments/panel/phonepanel.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1583c805..545713e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,8 @@ include(KDEGitCommitHooks) include(KDEClangFormat) include(FeatureSummary) +add_definitions(-DQT_NO_URL_CAST_FROM_STRING) + find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED Core Qml diff --git a/containments/panel/phonepanel.cpp b/containments/panel/phonepanel.cpp index 84b7381a..a906807f 100644 --- a/containments/panel/phonepanel.cpp +++ b/containments/panel/phonepanel.cpp @@ -178,7 +178,7 @@ void PhonePanel::handleMetaDataReceived(const QVariantMap &metadata, int fd) KNotification *notif = new KNotification("captured"); notif->setComponentName(QStringLiteral("plasma_phone_components")); notif->setTitle(i18n("New Screenshot")); - notif->setUrls({filePath}); + notif->setUrls({QUrl::fromLocalFile(filePath)}); notif->setText(i18n("New screenshot saved to %1", filePath)); notif->sendEvent(); }