File indexing completed on 2024-06-16 04:29:30
0001 /* 0002 SnoreNotify is a Notification Framework based on Qt 0003 Copyright (C) 2013-2015 Hannah von Reth <vonreth@kde.org> 0004 0005 SnoreNotify is free software: you can redistribute it and/or modify 0006 it under the terms of the GNU Lesser General Public License as published by 0007 the Free Software Foundation, either version 3 of the License, or 0008 (at your option) any later version. 0009 0010 SnoreNotify is distributed in the hope that it will be useful, 0011 but WITHOUT ANY WARRANTY; without even the implied warranty of 0012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0013 GNU Lesser General Public License for more details. 0014 0015 You should have received a copy of the GNU Lesser General Public License 0016 along with SnoreNotify. If not, see <http://www.gnu.org/licenses/>. 0017 */ 0018 0019 #include "pushover_frontend.h" 0020 0021 #include "libsnore/snore.h" 0022 #include "libsnore/version.h" 0023 #include "libsnore/notification/notification_p.h" 0024 #include "libsnore/hint.h" 0025 0026 namespace { 0027 static const Snore::SettingsKey DeviceID = {QStringLiteral("DeviceID"), Snore::GlobalSetting}; 0028 static const Snore::SettingsKey Secret = {QStringLiteral("Secret"), Snore::GlobalSetting}; 0029 } 0030 0031 using namespace Snore; 0032 0033 PushoverFrontend::PushoverFrontend(): 0034 m_client(new PushoverClient(this)) 0035 { 0036 hints().setValue("client", QVariant::fromValue(QPointer<PushoverClient>(m_client))); 0037 connect(this, &PushoverFrontend::enabledChanged, [this](bool enabled) { 0038 if (enabled) { 0039 m_client->connectToService(); 0040 } else { 0041 m_client->disconnectService(); 0042 } 0043 }); 0044 } 0045 0046 void PushoverFrontend::setDefaultSettings() 0047 { 0048 setDefaultSettingsValue(Secret, QString()); 0049 setDefaultSettingsValue(DeviceID, QString()); 0050 SnoreFrontend::setDefaultSettings(); 0051 } 0052 0053 void PushoverFrontend::slotActionInvoked(Notification notification) 0054 { 0055 if (notification.priority() == Notification::Emergency) { 0056 qCWarning(SNORE) << "emergeency notification" << notification; 0057 m_client->acknowledgeNotification(notification); 0058 } 0059 } 0060