summaryrefslogtreecommitdiff
path: root/plugins/CopyEngine/Ultracopier-Spec/CopyEngineFactory.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/CopyEngine/Ultracopier-Spec/CopyEngineFactory.h')
-rwxr-xr-xplugins/CopyEngine/Ultracopier-Spec/CopyEngineFactory.h127
1 files changed, 127 insertions, 0 deletions
diff --git a/plugins/CopyEngine/Ultracopier-Spec/CopyEngineFactory.h b/plugins/CopyEngine/Ultracopier-Spec/CopyEngineFactory.h
new file mode 100755
index 0000000..810af80
--- /dev/null
+++ b/plugins/CopyEngine/Ultracopier-Spec/CopyEngineFactory.h
@@ -0,0 +1,127 @@
+/** \file factory.h
+\brief Define the factory to create new instance
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#include "StructEnumDefinition_CopyEngine.h"
+
+#include <QObject>
+#include <QList>
+#include <QStringList>
+#include <QFileInfo>
+#include <QProcess>
+#include <QTimer>
+
+#include "../../../interface/PluginInterface_CopyEngine.h"
+#include "qstorageinfo.h"
+#include "StructEnumDefinition.h"
+#include "ui_copyEngineOptions.h"
+#include "CopyEngine.h"
+#include "Environment.h"
+#include "Filters.h"
+#include "RenamingRules.h"
+
+#ifdef Q_OS_WIN32
+ #ifndef NOMINMAX
+ #define NOMINMAX
+ #endif
+ #include <windows.h>
+#endif
+#ifdef Q_OS_LINUX
+ #include <unistd.h>
+#endif
+
+#ifndef FACTORY_H
+#define FACTORY_H
+
+namespace Ui {
+ class copyEngineOptions;
+}
+
+/** \brief to generate copy engine instance */
+class CopyEngineFactory : public PluginInterface_CopyEngineFactory
+{
+ Q_OBJECT
+ #ifndef ULTRACOPIER_PLUGIN_ALL_IN_ONE_DIRECT
+ Q_PLUGIN_METADATA(IID "first-world.info.ultracopier.PluginInterface.CopyEngineFactory/1.0.0.0" FILE "plugin.json")
+ Q_INTERFACES(PluginInterface_CopyEngineFactory)
+ #endif
+public:
+ CopyEngineFactory();
+ ~CopyEngineFactory();
+ /// \brief to return the instance of the copy engine
+ PluginInterface_CopyEngine * getInstance() override;
+ /// \brief set the resources, to store options, to have facilityInterface
+ void setResources(OptionInterface * options,const std::string &writePath,const std::string &pluginPath,
+ FacilityInterface * facilityInterface,const bool &portableVersion) override;
+ //get mode allowed
+ /// \brief define if can copy file, folder or both
+ Ultracopier::CopyType getCopyType() override;
+ /// \brief to return which kind of transfer list operation is supported
+ Ultracopier::TransferListOperation getTransferListOperation() override;
+ /// \brief define if can only copy, or copy and move
+ bool canDoOnlyCopy() const override;
+ /// \brief to get the supported protocols for the source
+ std::vector<std::string> supportedProtocolsForTheSource() const override;
+ /// \brief to get the supported protocols for the destination
+ std::vector<std::string> supportedProtocolsForTheDestination() const override;
+ /// \brief to get the options of the copy engine
+ QWidget * options() override;
+ /// \brief to get if have pause
+ bool havePause() override;
+
+private:
+ Ui::copyEngineOptions *ui;
+ QWidget* tempWidget;
+ OptionInterface * optionsEngine;
+ bool errorFound;
+ FacilityInterface * facilityEngine;
+ Filters *filters;
+ RenamingRules *renamingRules;
+ QStorageInfo storageInfo;
+ QTimer lunchInitFunction;
+ std::vector<std::string> includeStrings,includeOptions,excludeStrings,excludeOptions;
+ std::string firstRenamingRule,otherRenamingRule;
+
+#if defined(Q_OS_WIN32) || (defined(Q_OS_LINUX) && defined(_SC_PHYS_PAGES))
+ static size_t getTotalSystemMemory();
+#endif
+private slots:
+ void init();
+ void setDoRightTransfer(bool doRightTransfer);
+ void setKeepDate(bool keepDate);
+ void setOsSpecFlags(bool os_spec_flags);
+ void setNativeCopy(bool native_copy);
+ #ifdef ULTRACOPIER_PLUGIN_RSYNC
+ void setRsync(bool rsync);
+ #endif
+ void setFolderCollision(int index);
+ void setFolderError(int index);
+ void setCheckDestinationFolder();
+ void setMkFullPath();
+ void setChecksum();
+ void showFilterDialog();
+ void sendNewFilters(const std::vector<std::string> &includeStrings,const std::vector<std::string> &includeOptions,
+ const std::vector<std::string> &excludeStrings,const std::vector<std::string> &excludeOptions);
+ void sendNewRenamingRules(const std::string &firstRenamingRule, const std::string &otherRenamingRule);
+ void showRenamingRules();
+ void setFileCollision(int index);
+ void setFileError(int index);
+ void deletePartiallyTransferredFiles(bool checked);
+ void renameTheOriginalDestination(bool checked);
+ void checkDiskSpace(bool checked);
+ void defaultDestinationFolderBrowse();
+ void defaultDestinationFolder();
+ void followTheStrictOrder(bool checked);
+ void moveTheWholeFolder(bool checked);
+ void on_inodeThreads_editingFinished();
+ void setBuffer(bool checked);
+ void setAutoStart(bool autoStart);
+public slots:
+ void resetOptions() override;
+ void newLanguageLoaded() override;
+signals:
+ void reloadLanguage() const;
+};
+
+#endif // FACTORY_H