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