/** \file pluginLoader.h \brief Define the plugin loader \author alpha_one_x86 \licence GPL3, see the file COPYING */ #ifndef PLUGIN_LOADER_TEST_H #define PLUGIN_LOADER_TEST_H #include #include #include #include #include #include #include #ifdef Q_OS_WIN32 #ifndef NOMINMAX #define NOMINMAX #endif #include #include #endif #include "../../../interface/PluginInterface_PluginLoader.h" #include "Environment.h" #include "OptionsWidget.h" /// \brief \brief Define the plugin loader class WindowsExplorerLoader : public PluginInterface_PluginLoader { Q_OBJECT Q_PLUGIN_METADATA(IID "first-world.info.ultracopier.PluginInterface.PluginLoader/1.2.4.0" FILE "plugin.json") Q_INTERFACES(PluginInterface_PluginLoader) public: WindowsExplorerLoader(); ~WindowsExplorerLoader(); /// \brief try enable/disable the catching void setEnabled(const bool &needBeRegistred); /// \brief to set resources, writePath can be empty if read only mode void setResources(OptionInterface * options,const std::string &writePath,const std::string &pluginPath,const bool &portableVersion); /// \brief to get the options widget, NULL if not have QWidget * options(); public slots: /// \brief to reload the translation, because the new language have been loaded void newLanguageLoaded(); private: std::string pluginPath; std::vector importantDll,secondDll; std::unordered_set correctlyLoaded; bool RegisterShellExtDll(const std::string &dllPath, const bool &bRegister,const bool &quiet); bool checkExistsDll(); bool dllChecked; bool needBeRegistred; OptionInterface * optionsEngine; OptionsWidget *optionsWidget; bool allDllIsImportant,Debug; bool changeOfArchDetected,is64Bits; private slots: void setAllDllIsImportant(bool allDllIsImportant); void setDebug(bool Debug); }; #endif // PLUGIN_LOADER_TEST_H