diff options
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.h')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.h b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.h index 04b9af7..55d7f2e 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.h +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.h @@ -12,6 +12,7 @@ class MultiEditorWidget; class QLabel; class MultiEditorWidgetPlugin; class QToolButton; +class QMenu; class GUI_API_EXPORT MultiEditor : public QWidget { @@ -31,7 +32,13 @@ class GUI_API_EXPORT MultiEditor : public QWidget HEX }; - explicit MultiEditor(QWidget *parent = 0); + enum TabsMode { + CONFIGURABLE, /**< Tabs are loaded from datatype and also have configure button visible. */ + PRECONFIGURED, /**< Tabs are loaded from datatype. No config button is present. */ + DYNAMIC /**< No tabs are loaded, but user has button to add new tabs, can close them and reorder them. */ + }; + + explicit MultiEditor(QWidget *parent = nullptr, TabsMode tabsMode = CONFIGURABLE); void addEditor(MultiEditorWidget* editorWidget); void showTab(int idx); @@ -50,12 +57,16 @@ class GUI_API_EXPORT MultiEditor : public QWidget static void loadBuiltInEditors(); private: - void init(); + void init(TabsMode tabsMode); void updateVisibility(); void updateNullEffect(); void updateValue(const QVariant& newValue); + void setValueToWidget(MultiEditorWidget* editorWidget, const QVariant& newValue); void updateLabel(); QVariant getValueOmmitNull() const; + void initAddTabMenu(); + void addPluginToMenu(MultiEditorWidgetPlugin* plugin); + void sortAddTabMenu(); static QList<MultiEditorWidget*> getEditorTypes(const DataType& dataType); @@ -74,6 +85,8 @@ class GUI_API_EXPORT MultiEditor : public QWidget bool valueModified = false; QVariant valueBeforeNull; QToolButton* configBtn = nullptr; + QToolButton* addTabBtn = nullptr; + QMenu* addTabMenu = nullptr; DataType dataType; /** @@ -90,6 +103,7 @@ class GUI_API_EXPORT MultiEditor : public QWidget void nullStateChanged(int state); void invalidateValue(); void setModified(); + void removeTab(int idx); signals: void modified(); |
