summaryrefslogtreecommitdiff
path: root/OptionDialog.h
diff options
context:
space:
mode:
Diffstat (limited to 'OptionDialog.h')
-rw-r--r--OptionDialog.h122
1 files changed, 122 insertions, 0 deletions
diff --git a/OptionDialog.h b/OptionDialog.h
new file mode 100644
index 0000000..c8e9db3
--- /dev/null
+++ b/OptionDialog.h
@@ -0,0 +1,122 @@
+/** \file OptionDialog.h
+\brief To have an interface to control the options
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#include "Environment.h"
+
+#ifndef OPTIONDIALOG_H
+#define OPTIONDIALOG_H
+
+#include <QDialog>
+#include <QAbstractButton>
+#include <QTreeWidgetItem>
+
+#include "Environment.h"
+#include "OSSpecific.h"
+#include "PluginsManager.h"
+
+namespace Ui {
+ class OptionDialog;
+}
+
+/** \brief Dialog for the options
+
+ It's need manage the ultracopier options, plugins selection, plugin prority.
+ It's need manage too the plugin options and plugins informations.
+ */
+class OptionDialog : public QDialog
+{
+ Q_OBJECT
+public:
+ explicit OptionDialog();
+ ~OptionDialog();
+ /** \brief add the option widget from copy engine */
+ void addPluginOptionWidget(const PluginType &category,const std::string &name,QWidget * options);
+protected:
+ void changeEvent(QEvent *e);
+ void loadLogVariableLabel();
+private slots:
+ void on_treeWidget_itemSelectionChanged();
+ void on_buttonBox_clicked(QAbstractButton *button);
+ //plugin management
+ void onePluginAdded(const PluginsAvailable &plugin);
+ #ifndef ULTRACOPIER_PLUGIN_ALL_IN_ONE
+ void onePluginWillBeRemoved(const PluginsAvailable &plugin);
+ #endif
+ #ifdef ULTRACOPIER_PLUGIN_IMPORT_SUPPORT
+ void manuallyAdded(const PluginsAvailable &plugin);
+ #endif
+ void loadOption();
+ void newOptionValue(const std::string &group,const std::string &name,const std::string &value);
+ void on_Ultracopier_current_theme_currentIndexChanged(const int &index);
+ void on_Language_currentIndexChanged(const int &index);
+ void on_Language_force_toggled(const bool &checked);
+ void on_CatchCopyAsDefault_toggled(const bool &checked);
+ #ifndef ULTRACOPIER_VERSION_PORTABLE
+ void on_LoadAtSessionStarting_toggled(const bool &checked);
+ #endif
+ void on_CopyEngineList_itemSelectionChanged();
+ void on_toolButtonDown_clicked();
+ void on_toolButtonUp_clicked();
+ void on_pluginList_itemSelectionChanged();
+ #ifdef ULTRACOPIER_PLUGIN_IMPORT_SUPPORT
+ void on_pluginRemove_clicked();
+ void on_pluginAdd_clicked();
+ #endif
+ void on_pluginInformation_clicked();
+ void on_checkBox_Log_clicked();
+ void on_lineEditLog_File_editingFinished();
+ void on_lineEditLog_transfer_format_editingFinished();
+ void on_lineEditLog_error_format_editingFinished();
+ void on_checkBoxLog_transfer_clicked();
+ void on_checkBoxLog_error_clicked();
+ void on_logBrowse_clicked();
+ void on_checkBoxLog_folder_clicked();
+ void on_checkBoxLog_sync_clicked();
+ void on_ActionOnManualOpen_currentIndexChanged(const int &index);
+ void on_GroupWindowWhen_currentIndexChanged(const int &index);
+ void on_DisplayOSWarning_clicked();
+ void on_checkTheUpdate_clicked();
+ void on_confirmToGroupWindows_clicked();
+ void oSSpecificClosed();
+ void on_remainingTimeAlgorithm_currentIndexChanged(int index);
+
+private:
+ bool quit;
+ Ui::OptionDialog *ui;
+ struct pluginStore
+ {
+ QTreeWidgetItem * item;
+ std::string path;
+ bool isWritable;
+ };
+ std::vector<pluginStore> pluginLink;
+ struct pluginOptionsWidget
+ {
+ std::string name;
+ QTreeWidgetItem * item;
+ QWidget *options;
+ PluginType category;
+ };
+ std::vector<pluginOptionsWidget> pluginOptionsWidgetList;
+ int number_of_listener;
+ void addLanguage(const PluginsAvailable &plugin);
+ void removeLanguage(const PluginsAvailable &plugin);
+ void addTheme(const PluginsAvailable &plugin);
+ void removeTheme(const PluginsAvailable &plugin);
+ std::vector<std::string> copyEngineStringList() const;
+ bool ignoreCopyEngineListEdition;
+ PluginsManager::ImportBackend defaultImportBackend;
+ int loadedCopyEnginePlugin;
+ QTreeWidgetItem * treeWidgetItem;
+ OSSpecific *oSSpecific;
+ bool allPluginsIsLoaded;
+public slots:
+ void newThemeOptions(const std::string &name,QWidget* theNewOptionsWidget,bool isLoaded,bool havePlugin);
+ void newClientList(const std::vector<std::string> &clientsList);
+signals:
+ void previouslyPluginAdded(const PluginsAvailable &plugin) const;
+};
+
+#endif // OPTIONDIALOG_H