1 /* 2 SPDX-FileCopyrightText: 2013 Marco Martin <mart@kde.org> 3 4 SPDX-License-Identifier: LGPL-2.0-or-later 5 */ 6 7 #include "serviceoperationstatus.h" 8 ServiceOperationStatus(QObject * parent)9ServiceOperationStatus::ServiceOperationStatus(QObject *parent) 10 : QObject(parent) 11 , m_enabled(false) 12 { 13 } 14 ~ServiceOperationStatus()15ServiceOperationStatus::~ServiceOperationStatus() 16 { 17 } 18 setService(Plasma::Service * service)19void ServiceOperationStatus::setService(Plasma::Service *service) 20 { 21 if (m_service.data() == service) { 22 return; 23 } 24 25 if (m_service) { 26 disconnect(m_service.data(), nullptr, this, nullptr); 27 } 28 if (service) { 29 connect(service, &Plasma::Service::operationEnabledChanged, this, &ServiceOperationStatus::updateStatus); 30 } 31 32 m_service = service; 33 updateStatus(); 34 Q_EMIT serviceChanged(); 35 } 36 service() const37Plasma::Service *ServiceOperationStatus::service() const 38 { 39 return m_service.data(); 40 } 41 setOperation(const QString & operation)42void ServiceOperationStatus::setOperation(const QString &operation) 43 { 44 if (m_operation == operation) { 45 return; 46 } 47 48 m_operation = operation; 49 updateStatus(); 50 Q_EMIT operationChanged(); 51 } 52 operation() const53QString ServiceOperationStatus::operation() const 54 { 55 return m_operation; 56 } 57 setEnabled(bool enabled)58void ServiceOperationStatus::setEnabled(bool enabled) 59 { 60 if (m_enabled == enabled) { 61 return; 62 } 63 64 m_enabled = enabled; 65 updateStatus(); 66 Q_EMIT enabledChanged(); 67 } 68 isEnabled() const69bool ServiceOperationStatus::isEnabled() const 70 { 71 return m_enabled; 72 } 73 updateStatus()74void ServiceOperationStatus::updateStatus() 75 { 76 if (!m_service) { 77 return; 78 } 79 80 bool enabled = m_service.data()->isOperationEnabled(m_operation); 81 if (enabled != m_enabled) { 82 m_enabled = enabled; 83 Q_EMIT enabledChanged(); 84 } 85 } 86