#ifndef MOPANELINTERFACE_H #define MOPANELINTERFACE_H #include "IPanelInterface.h" #include #include #include #include class MOPanelInterface final : public QObject, public IPanelInterface { Q_OBJECT public: using SignalPanelActivated = boost::signals2::signal; using SignalSelectedOriginsChanged = boost::signals2::signal&)>; MOPanelInterface(MOBase::IOrganizer* organizer, QMainWindow* mainWindow); MOPanelInterface(const MOPanelInterface&) = delete; MOPanelInterface(MOPanelInterface&&) = delete; ~MOPanelInterface() noexcept; MOPanelInterface& operator=(const MOPanelInterface&) = delete; MOPanelInterface& operator=(MOPanelInterface&&) = delete; void assignWidget(QTabWidget* tabWidget, QWidget* panel); void setSelectedFiles(const QList& selectedFiles) override; void displayOriginInformation(const QString& file) override; bool onPanelActivated(const std::function& func) override; bool onSelectedOriginsChanged( const std::function&)>& func) override; void setPluginState(const QString& name, bool enable) override; private slots: void onModSeparatorCollapsed(const QModelIndex& index); void onModSeparatorExpanded(const QModelIndex& index); void onModSelectionChanged(); private: MOBase::IModList* m_ModList; MOBase::IPluginList* m_PluginList; QTreeView* m_ModListView; QTreeView* m_PluginListView; SignalPanelActivated m_PanelActivated; SignalSelectedOriginsChanged m_SelectedOriginsChanged; }; #endif // MOPANELINTERFACE_H