File indexing completed on 2025-01-12 04:20:13

0001 /*
0002     SnoreNotify is a Notification Framework based on Qt
0003     Copyright (C) 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 #ifndef PUSHOVERSETTINGS_H
0019 #define PUSHOVERSETTINGS_H
0020 
0021 #include "libsnore/settings/pluginsettingswidget.h"
0022 #include "libsnore/plugins/settingsplugin.h"
0023 
0024 #include "pushoverclient.h"
0025 
0026 class QLineEdit;
0027 class QPushButton;
0028 class QLabel;
0029 
0030 class PushoverSettings : public Snore::PluginSettingsWidget
0031 {
0032     Q_OBJECT
0033 public:
0034     explicit PushoverSettings(Snore::SnorePlugin *plugin, QWidget *parent = 0);
0035     ~PushoverSettings();
0036 
0037     void load() override;
0038     void save() override;
0039 
0040 private:
0041     QLineEdit *m_emailLineEdit;
0042     QLineEdit *m_passwordLineEdit;
0043     QLineEdit *m_deviceLineEdit;
0044     QPushButton *m_registerButton;
0045     QLabel *m_errorMessageLabel;
0046     PushoverClient::LoginState m_state = PushoverClient::Undefined;
0047 
0048 private Q_SLOTS:
0049     void slotUpdateLoginState(PushoverClient::LoginState state);
0050 
0051 };
0052 
0053 SNORE_DECLARE_SETTINGS_PLUGIN(Pushover)
0054 
0055 #endif // PUSHOVERSETTINGS_H