diff options
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.cpp')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.cpp | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.cpp b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.cpp index 0f965cd..b3ee1ee 100644 --- a/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/multieditor/multieditor.cpp @@ -1,4 +1,5 @@ #include "multieditor.h" +#include "multieditor/multieditorfk.h" #include "multieditortext.h" #include "multieditornumeric.h" #include "multieditordatetime.h" @@ -7,15 +8,15 @@ #include "multieditorbool.h" #include "multieditorhex.h" #include "mainwindow.h" -#include "common/unused.h" +#include "iconmanager.h" #include "services/notifymanager.h" #include "services/pluginmanager.h" #include "multieditorwidgetplugin.h" #include "uiconfig.h" #include "dialogs/configdialog.h" -#include "formview.h" #include "themetuner.h" #include "common/compatibility.h" +#include "datagrid/sqlquerymodelcolumn.h" #include <QVBoxLayout> #include <QHBoxLayout> #include <QTabWidget> @@ -191,7 +192,6 @@ void MultiEditor::addEditor(MultiEditorWidget* editorWidget) connect(editorWidget, SIGNAL(valueModified()), this, SLOT(invalidateValue())); editors << editorWidget; tabs->addTab(editorWidget, editorWidget->getTabLabel().replace("&", "&&")); - THEME_TUNER->manageCompactLayout(editorWidget); editorWidget->installEventFilter(this); connect(editorWidget, &MultiEditorWidget::aboutToBeDeleted, [this, editorWidget]() @@ -280,7 +280,7 @@ void MultiEditor::setDataType(const DataType& dataType) { this->dataType = dataType; - for (MultiEditorWidget* editorWidget : getEditorTypes(dataType)) + for (MultiEditorWidget*& editorWidget : getEditorTypes(dataType)) addEditor(editorWidget); showTab(0); @@ -288,6 +288,14 @@ void MultiEditor::setDataType(const DataType& dataType) configBtn->setEnabled(true); } +void MultiEditor::enableFk(Db* db, SqlQueryModelColumn* column) +{ + MultiEditorFk* fkEditor = new MultiEditorFk(); + fkEditor->initFkCombo(db, column); + fkEditor->setTabLabel(tr("Foreign Key")); + addEditor(fkEditor); +} + void MultiEditor::focusThisEditor() { MultiEditorWidget* w = dynamic_cast<MultiEditorWidget*>(tabs->currentWidget()); @@ -324,14 +332,15 @@ QList<MultiEditorWidget*> MultiEditor::getEditorTypes(const DataType& dataType) if (editorsOrder.contains(typeStr)) { MultiEditorWidgetPlugin* plugin = nullptr; - for (const QString& editorPluginName : editorsOrder[typeStr].toStringList()) + for (QString& editorPluginName : editorsOrder[typeStr].toStringList()) { plugin = dynamic_cast<MultiEditorWidgetPlugin*>(PLUGINS->getLoadedPlugin(editorPluginName)); if (!plugin) { if (!missingEditorPluginsAlreadyWarned.contains(editorPluginName)) { - notifyWarn(tr("Data editor plugin '%1' not loaded, while it is defined for editing '%1' data type.")); + notifyWarn(tr("Data editor plugin '%1' not loaded, while it is defined for editing '%2' data type.") + .arg(editorPluginName, typeStr)); missingEditorPluginsAlreadyWarned[editorPluginName] = true; } continue; @@ -371,7 +380,7 @@ QList<MultiEditorWidget*> MultiEditor::getEditorTypes(const DataType& dataType) return ed1.first < ed2.first; }); - for (const EditorWithPriority& e : sortedEditors) + for (EditorWithPriority& e : sortedEditors) editors << e.second; return editors; @@ -439,7 +448,7 @@ QVariant MultiEditor::getValueOmmitNull() const void MultiEditor::initAddTabMenu() { addTabMenu = new QMenu(addTabBtn); - for (MultiEditorWidgetPlugin* plugin : PLUGINS->getLoadedPlugins<MultiEditorWidgetPlugin>()) + for (MultiEditorWidgetPlugin*& plugin : PLUGINS->getLoadedPlugins<MultiEditorWidgetPlugin>()) addPluginToMenu(plugin); sortAddTabMenu(); |
