Warning, file /graphics/glaxnimate/src/gui/settings/api_credentials.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <unordered_map> 0010 #include <QUrl> 0011 #include <KLocalizedString> 0012 0013 #include "app/utils/qstring_hash.hpp" 0014 #include "app/settings/custom_settings_group.hpp" 0015 0016 0017 namespace glaxnimate::gui::settings { 0018 0019 class ApiCredentials : public app::settings::CustomSettingsGroupBase 0020 { 0021 public: 0022 struct Credential 0023 { 0024 QString name; 0025 QString value = ""; 0026 QString hidden_default = ""; 0027 }; 0028 0029 struct Api 0030 { 0031 QUrl info_url; 0032 std::vector<Credential> credentials; 0033 0034 QString credential(const QString& name) const; 0035 }; 0036 0037 ApiCredentials(); 0038 0039 QString slug() const override { return "api_credentials"; } 0040 QIcon icon() const override { return QIcon::fromTheme("dialog-password"); } 0041 QString label() const override { return i18n("API Credentials"); } 0042 bool has_visible_settings() const override { return !apis_.empty(); } 0043 0044 QVariant get_variant(const QString& setting) const override; 0045 0046 void load ( QSettings & settings ) override; 0047 0048 void save ( QSettings & settings ) override; 0049 0050 const Api& api(const QString& name) const 0051 { 0052 return apis_.at(name); 0053 } 0054 0055 QWidget * make_widget ( QWidget * parent ) override; 0056 0057 0058 private: 0059 std::map<QString, Api> apis_; 0060 }; 0061 0062 } // namespace glaxnimate::gui::settings 0063