File indexing completed on 2025-02-02 04:11:30
0001 /* 0002 * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #ifndef SCRIPTING_PLUGINSETTINGSWIDGET_H 0008 #define SCRIPTING_PLUGINSETTINGSWIDGET_H 0009 0010 #include <memory> 0011 #include <QWidget> 0012 0013 class QListWidgetItem; 0014 0015 namespace glaxnimate::plugin 0016 { 0017 class Plugin; 0018 } 0019 0020 namespace glaxnimate::gui { 0021 0022 namespace Ui 0023 { 0024 class PluginSettingsWidget; 0025 } 0026 0027 class PluginSettingsWidget : public QWidget 0028 { 0029 Q_OBJECT 0030 0031 public: 0032 PluginSettingsWidget(QWidget* parent = nullptr); 0033 0034 ~PluginSettingsWidget(); 0035 0036 0037 private Q_SLOTS: 0038 void install_dialog(); 0039 void refresh_plugins(); 0040 void uninstall_current(); 0041 void enable_current(); 0042 void disable_current(); 0043 void current_changed(QListWidgetItem* item); 0044 0045 protected: 0046 void changeEvent ( QEvent* event ) override; 0047 0048 private: 0049 void update_entries(); 0050 void clear_selection(); 0051 0052 std::unique_ptr<Ui::PluginSettingsWidget> d; 0053 plugin::Plugin* current = nullptr; 0054 }; 0055 0056 } // namespace glaxnimate::gui 0057 #endif // SCRIPTING_PLUGINSETTINGSWIDGET_H