|
- /*
- * Carla plugin host
- * Copyright (C) 2011-2023 Filipe Coelho <falktx@falktx.com>
- * SPDX-License-Identifier: GPL-2.0-or-later
- */
-
- #pragma once
-
- #ifdef __clang__
- # pragma clang diagnostic push
- # pragma clang diagnostic ignored "-Wdeprecated-copy-with-user-provided-copy"
- # pragma clang diagnostic ignored "-Wdeprecated-register"
- #elif defined(__GNUC__) && __GNUC__ >= 8
- # pragma GCC diagnostic push
- # pragma GCC diagnostic ignored "-Wclass-memaccess"
- # pragma GCC diagnostic ignored "-Wdeprecated-copy"
- #endif
-
- #include <QtWidgets/QDialog>
-
- #ifdef __clang__
- # pragma clang diagnostic pop
- #elif defined(__GNUC__) && __GNUC__ >= 8
- # pragma GCC diagnostic pop
- #endif
-
- #include "ui_pluginlistdialog.h"
-
- struct HostSettings {
- bool showPluginBridges;
- bool showWineBridges;
- bool useSystemIcons;
- };
-
- class QSafeSettings;
- typedef struct _CarlaPluginDiscoveryInfo CarlaPluginDiscoveryInfo;
- struct PluginInfo;
-
- // --------------------------------------------------------------------------------------------------------------------
- // Plugin List Dialog
-
- class PluginListDialog : public QDialog
- {
- enum TableIndex {
- TW_FAVORITE,
- TW_NAME,
- TW_LABEL,
- TW_MAKER,
- TW_BINARY,
- };
-
- enum UserRoles {
- UR_PLUGIN_INFO = 1,
- UR_SEARCH_TEXT,
- };
-
- struct PrivateData;
- PrivateData *const p;
-
- Ui_PluginListDialog ui;
-
- // ----------------------------------------------------------------------------------------------------------------
- // public methods
-
- public:
- explicit PluginListDialog(QWidget* parent, const HostSettings& hostSettings);
- ~PluginListDialog() override;
-
- const PluginInfo& getSelectedPluginInfo() const;
- void addPluginInfo(const CarlaPluginDiscoveryInfo* info, const char* sha1sum);
- bool checkPluginCache(const char* filename, const char* sha1sum);
-
- // ----------------------------------------------------------------------------------------------------------------
- // protected methods
-
- protected:
- void done(int) override;
- void showEvent(QShowEvent*) override;
- void timerEvent(QTimerEvent*) override;
-
- // ----------------------------------------------------------------------------------------------------------------
- // private methods
-
- private:
- void addPluginsToTable();
- void loadSettings();
-
- // ----------------------------------------------------------------------------------------------------------------
- // private slots
-
- private Q_SLOTS:
- void cellClicked(int row, int column);
- void cellDoubleClicked(int row, int column);
- void focusSearchFieldAndSelectAll();
- void checkFilters();
- void checkFiltersCategoryAll(bool clicked);
- void checkFiltersCategorySpecific(bool clicked);
- void clearFilters();
- void checkPlugin(int row);
- void refreshPlugins();
- void refreshPluginsStart();
- void refreshPluginsStop();
- void refreshPluginsSkip();
- void saveSettings();
- };
-
- // --------------------------------------------------------------------------------------------------------------------
|