From 7167ce41b61d2ba2cdb526777a4233eb84a3b66a Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Sat, 6 Dec 2014 17:33:25 -0500 Subject: Imported Upstream version 2.99.6 --- .../guiSQLiteStudio/dialogs/configdialog.h | 141 +++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.h (limited to 'SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.h') diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.h b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.h new file mode 100644 index 0000000..95e9f1a --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/configdialog.h @@ -0,0 +1,141 @@ +#ifndef CONFIGDIALOG_H +#define CONFIGDIALOG_H + +#include "config_builder.h" +#include "datatype.h" +#include "common/bihash.h" +#include "guiSQLiteStudio_global.h" +#include + +namespace Ui { + class ConfigDialog; +} + +class QListWidgetItem; +class QTreeWidgetItem; +class CustomConfigWidgetPlugin; +class QSignalMapper; +class Plugin; +class PluginType; +class QComboBox; +class QToolButton; +class QTreeWidget; +class QListWidget; +class QTableWidget; +class ConfigMapper; +class MultiEditorWidgetPlugin; +class ConfigNotifiablePlugin; +class UiConfiguredPlugin; + +class GUI_API_EXPORT ConfigDialog : public QDialog +{ + Q_OBJECT + + public: + explicit ConfigDialog(QWidget *parent = 0); + ~ConfigDialog(); + + void configureDataEditors(const QString& dataTypeString); + + static QString getFilterString(QWidget* widget); + static QString getFilterString(QComboBox* widget); + static QString getFilterString(QTreeWidget* widget); + static QString getFilterString(QListWidget* widget); + static QString getFilterString(QTableWidget* widget); + + private: + void init(); + void load(); + void initPageMap(); + void initInternalCustomConfigWidgets(); + void initFormatterPlugins(); + void initPlugins(); + void initPluginsPage(); + bool initPluginPage(Plugin* plugin, bool skipConfigLoading); + void deinitPluginPage(Plugin* pluginName); + void initDataEditors(); + void initShortcuts(); + void initShortcuts(CfgCategory* cfgCategory); + void applyStyle(QWidget* widget, QStyle* style); + QTreeWidgetItem* getPluginsCategoryItem() const; + QTreeWidgetItem* getPluginsCategoryItem(PluginType* type) const; + QTreeWidgetItem* getPluginItem(Plugin* plugin) const; + QTreeWidgetItem* createPluginsTypeItem(const QString& widgetName, const QString& title) const; + QTreeWidgetItem* getItemByTitle(const QString& title) const; + void switchPageToPlugin(QTreeWidgetItem* item); + bool isPluginCategoryItem(QTreeWidgetItem *item) const; + void codeFormatterUnloaded(); + void codeFormatterLoaded(); + void updatePluginCategoriesVisibility(QTreeWidgetItem* categoryItem); + QString collectLoadedPlugins() const; + QHash buildPageToCategoryItemMap() const; + QList getAllCategoryItems() const; + QList getDefaultEditorsForType(DataType::Enum dataType); + QList updateCustomDataTypeEditors(const QStringList& editorsOrder); + QList updateDefaultDataTypeEditors(DataType::Enum typeEnum); + void addDataTypeEditor(const QString& pluginName); + void addDataTypeEditor(MultiEditorWidgetPlugin* plugin); + void removeDataTypeEditor(QListWidgetItem* item, const QString& pluginName); + void removeDataTypeEditor(int idx); + void transformDataTypeEditorsToCustomList(QListWidgetItem* typeItem); + QStringList getPluginNamesFromDataTypeItem(QListWidgetItem* typeItem, bool* exists = nullptr); + void setPluginNamesForDataTypeItem(QListWidgetItem* typeItem, const QStringList& pluginNames); + void addDataType(const QString& typeStr); + void rollbackPluginConfigs(); + void commitPluginConfigs(); + + Ui::ConfigDialog *ui = nullptr; + QStyle* previewStyle = nullptr; + QHash nameToPage; + BiHash itemToPluginNameMap; + QHash pluginTypeToItemMap; + QHash pluginToItemMap; + QHash formatterLangToPluginComboMap; + QHash formatterLangToConfigButtonMap; + ConfigMapper* configMapper = nullptr; + QHash pluginConfigMappers; + QAction* dataEditRenameAction = nullptr; + QAction* dataEditDeleteAction = nullptr; + bool updatingDataEditorItem = false; + bool modifiedFlag = false; + QList notifiablePlugins; + + private slots: + void refreshFormattersPage(); + void pageSwitched(); + void updateDataTypeEditors(); + void updateDataTypeListState(); + void dataEditorItemEdited(QListWidgetItem* item); + void dataEditorAvailableChanged(QListWidgetItem* item); + void dataEditorTabsOrderChanged(int from, int to); + void addDataType(); + void renameDataType(); + void delDataType(); + void dataTypesHelp(); + void switchPage(QTreeWidgetItem* item); + void updateStylePreview(); + void apply(); + void save(); + void storeSelectedFormatters(); + void markModified(); + void setModified(bool modified); + void updateModified(); + void applyFilter(const QString& filter); + void updateActiveFormatterState(); + void configureFormatter(const QString& pluginTitle); + void activeFormatterChanged(); + void detailsClicked(const QString& pluginName); + void failedToLoadPlugin(const QString& pluginName); + void loadUnloadPlugin(QTreeWidgetItem* item, int column); + void pluginAboutToUnload(Plugin* plugin, PluginType* type); + void pluginLoaded(Plugin* plugin, PluginType* type, bool skipConfigLoading = false); + void pluginUnloaded(const QString& pluginName, PluginType* type); + void updatePluginCategoriesVisibility(); + void updateBuiltInPluginsVisibility(); + void applyShortcutsFilter(const QString& filter); + + public slots: + void accept(); +}; + +#endif // CONFIGDIALOG_H -- cgit v1.2.3