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