mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-08-02 01:34:46 +00:00
quicksettings: Make mobile data quick setting use NM API directly
This commit is contained in:
parent
5660a9e016
commit
b323a83add
5 changed files with 30 additions and 2 deletions
|
|
@ -47,6 +47,7 @@ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
|
||||||
Notifications
|
Notifications
|
||||||
Wayland
|
Wayland
|
||||||
ModemManagerQt
|
ModemManagerQt
|
||||||
|
NetworkManagerQt
|
||||||
)
|
)
|
||||||
find_package(KWinDBusInterface)
|
find_package(KWinDBusInterface)
|
||||||
set_package_properties(KWinDBusInterface PROPERTIES DESCRIPTION "KWin DBus interface"
|
set_package_properties(KWinDBusInterface PROPERTIES DESCRIPTION "KWin DBus interface"
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ target_sources(ppc-mmqmlplugin PRIVATE
|
||||||
target_link_libraries(ppc-mmqmlplugin
|
target_link_libraries(ppc-mmqmlplugin
|
||||||
Qt5::Qml
|
Qt5::Qml
|
||||||
KF5::ModemManagerQt
|
KF5::ModemManagerQt
|
||||||
|
KF5::NetworkManagerQt
|
||||||
)
|
)
|
||||||
|
|
||||||
set_property(TARGET ppc-mmqmlplugin PROPERTY LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/org/kde/plasma/mm)
|
set_property(TARGET ppc-mmqmlplugin PROPERTY LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/org/kde/plasma/mm)
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,17 @@
|
||||||
// SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
// SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
||||||
|
// SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include <NetworkManagerQt/Manager>
|
||||||
|
|
||||||
#include "signalindicator.h"
|
#include "signalindicator.h"
|
||||||
|
|
||||||
SignalIndicator::SignalIndicator()
|
SignalIndicator::SignalIndicator()
|
||||||
{
|
{
|
||||||
|
connect(NetworkManager::notifier(), &NetworkManager::Notifier::wwanEnabledChanged, this, [this](bool) {
|
||||||
|
Q_EMIT wwanEnabledChanged();
|
||||||
|
});
|
||||||
|
|
||||||
connect(ModemManager::notifier(), &ModemManager::Notifier::modemAdded, this, &SignalIndicator::updateModem);
|
connect(ModemManager::notifier(), &ModemManager::Notifier::modemAdded, this, &SignalIndicator::updateModem);
|
||||||
connect(ModemManager::notifier(), &ModemManager::Notifier::modemRemoved, this, &SignalIndicator::updateModem);
|
connect(ModemManager::notifier(), &ModemManager::Notifier::modemRemoved, this, &SignalIndicator::updateModem);
|
||||||
updateModem();
|
updateModem();
|
||||||
|
|
@ -36,6 +43,16 @@ bool SignalIndicator::available() const
|
||||||
return !ModemManager::modemDevices().isEmpty();
|
return !ModemManager::modemDevices().isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SignalIndicator::wwanEnabled() const
|
||||||
|
{
|
||||||
|
return NetworkManager::isWwanEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SignalIndicator::setWwanEnabled(bool wwanEnabled)
|
||||||
|
{
|
||||||
|
NetworkManager::setWwanEnabled(wwanEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
void SignalIndicator::updateModem()
|
void SignalIndicator::updateModem()
|
||||||
{
|
{
|
||||||
if (!available()) {
|
if (!available()) {
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,15 @@
|
||||||
// SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
// SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
|
||||||
|
// SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <ModemManagerQt/Manager>
|
#include <ModemManagerQt/Manager>
|
||||||
#include <ModemManagerQt/modem3gpp.h>
|
#include <ModemManagerQt/modem3gpp.h>
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
|
||||||
|
// We make the assumption that there is only one modem.
|
||||||
class SignalIndicator : public QObject
|
class SignalIndicator : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
@ -15,6 +18,7 @@ class SignalIndicator : public QObject
|
||||||
Q_PROPERTY(QString name READ name NOTIFY nameChanged)
|
Q_PROPERTY(QString name READ name NOTIFY nameChanged)
|
||||||
Q_PROPERTY(bool simLocked READ simLocked NOTIFY simLockedChanged)
|
Q_PROPERTY(bool simLocked READ simLocked NOTIFY simLockedChanged)
|
||||||
Q_PROPERTY(bool available READ available NOTIFY availableChanged)
|
Q_PROPERTY(bool available READ available NOTIFY availableChanged)
|
||||||
|
Q_PROPERTY(bool wwanEnabled READ wwanEnabled WRITE setWwanEnabled NOTIFY wwanEnabledChanged)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SignalIndicator();
|
SignalIndicator();
|
||||||
|
|
@ -23,12 +27,16 @@ public:
|
||||||
QString name() const;
|
QString name() const;
|
||||||
bool simLocked() const;
|
bool simLocked() const;
|
||||||
bool available() const;
|
bool available() const;
|
||||||
|
bool wwanEnabled() const;
|
||||||
|
|
||||||
|
void setWwanEnabled(bool wwanEnabled);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void strengthChanged();
|
void strengthChanged();
|
||||||
void nameChanged();
|
void nameChanged();
|
||||||
void simLockedChanged();
|
void simLockedChanged();
|
||||||
void availableChanged();
|
void availableChanged();
|
||||||
|
void wwanEnabledChanged();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ModemManager::Modem::Ptr m_modem;
|
ModemManager::Modem::Ptr m_modem;
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import org.kde.bluezqt 1.0 as BluezQt
|
||||||
import org.kde.plasma.core 2.0 as PlasmaCore
|
import org.kde.plasma.core 2.0 as PlasmaCore
|
||||||
import org.kde.plasma.components 3.0 as PC3
|
import org.kde.plasma.components 3.0 as PC3
|
||||||
import org.kde.plasma.networkmanagement 0.2 as PlasmaNM
|
import org.kde.plasma.networkmanagement 0.2 as PlasmaNM
|
||||||
|
import org.kde.plasma.mm 1.0 as PlasmaMM
|
||||||
import org.kde.plasma.private.mobileshell 1.0 as MobileShell
|
import org.kde.plasma.private.mobileshell 1.0 as MobileShell
|
||||||
|
|
||||||
MobileShell.QuickSettingsModel {
|
MobileShell.QuickSettingsModel {
|
||||||
|
|
@ -67,9 +68,9 @@ MobileShell.QuickSettingsModel {
|
||||||
text: i18n("Mobile Data")
|
text: i18n("Mobile Data")
|
||||||
icon: "network-modem"
|
icon: "network-modem"
|
||||||
settingsCommand: "plasma-open-settings kcm_mobile_broadband"
|
settingsCommand: "plasma-open-settings kcm_mobile_broadband"
|
||||||
enabled: enabledConnections.wwanEnabled
|
enabled: PlasmaMM.SignalIndicator.wwanEnabled
|
||||||
function toggle() {
|
function toggle() {
|
||||||
nmHandler.enableWwan(!enabledConnections.wwanEnabled)
|
PlasmaMM.SignalIndicator.wwanEnabled = !PlasmaMM.SignalIndicator.wwanEnabled
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MobileShell.QuickSetting {
|
MobileShell.QuickSetting {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue