aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/constraints
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/constraints')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/constraints/columndefaultpanel.cpp14
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/constraints/columnforeignkeypanel.cpp2
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/constraints/columnprimarykeypanel.cpp6
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/constraints/tableforeignkeypanel.cpp16
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/constraints/tablepkanduniquepanel.cpp11
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/constraints/tableprimarykeypanel.cpp3
6 files changed, 25 insertions, 27 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/constraints/columndefaultpanel.cpp b/SQLiteStudio3/guiSQLiteStudio/constraints/columndefaultpanel.cpp
index 9322117..5759f76 100644
--- a/SQLiteStudio3/guiSQLiteStudio/constraints/columndefaultpanel.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/constraints/columndefaultpanel.cpp
@@ -61,9 +61,9 @@ bool ColumnDefaultPanel::validate()
if (exprOk)
{
// Everything looks fine, so lets do the final check - if the value is considered constant by SQLite.
- static QString tempDdlLiteralTpl = QStringLiteral("CREATE TABLE temp.%1 (col DEFAULT %2);");
- static QString tempDdlExprTpl = QStringLiteral("CREATE TABLE temp.%1 (col DEFAULT (%2));");
- static QString dropTempDdl = QStringLiteral("DROP TABLE IF EXISTS temp.%1;");
+ static QString tempDdlLiteralTpl = QStringLiteral("CREATE TEMP TABLE %1 (col DEFAULT %2);");
+ static QString tempDdlExprTpl = QStringLiteral("CREATE TEMP TABLE %1 (col DEFAULT (%2));");
+ static QString dropTempDdl = QStringLiteral("DROP TABLE %1;");
QString tableName = getTempTable();
QString tempDdl = tempDdlExprTpl.arg(tableName, ui->exprEdit->toPlainText());
@@ -75,7 +75,8 @@ bool ColumnDefaultPanel::validate()
if (res->isError())
{
exprOk = false;
- exprError = tr("Invalid default value expression: %1").arg(res->getErrorText());
+ exprError = tr("Invalid default value expression: %1. If you want to use simple string as value, remember to surround it with quote characters.")
+ .arg(res->getErrorText());
}
else
currentMode = Mode::LITERAL;
@@ -84,7 +85,8 @@ bool ColumnDefaultPanel::validate()
currentMode = Mode::EXPR;
db->exec(dropTempDdl.arg(tableName));
- }
+ } else
+ exprError = tr("Invalid default value expression. If you want to use simple string as value, remember to surround it with quote characters.");
setValidState(ui->exprEdit, exprOk, exprError);
setValidState(ui->namedEdit, nameOk, tr("Enter a name of the constraint."));
@@ -269,7 +271,7 @@ void ColumnDefaultPanel::updateVirtualSql()
QString ColumnDefaultPanel::getTempTable()
{
SchemaResolver resolver(db);
- return resolver.getUniqueName("temp", "sqlitestudio_temp_table");
+ return resolver.getUniqueName("sqlitestudio_temp_table");
}
void ColumnDefaultPanel::updateState()
diff --git a/SQLiteStudio3/guiSQLiteStudio/constraints/columnforeignkeypanel.cpp b/SQLiteStudio3/guiSQLiteStudio/constraints/columnforeignkeypanel.cpp
index f4eb3eb..af79331 100644
--- a/SQLiteStudio3/guiSQLiteStudio/constraints/columnforeignkeypanel.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/constraints/columnforeignkeypanel.cpp
@@ -138,7 +138,7 @@ void ColumnForeignKeyPanel::readConstraint()
ui->fkTableCombo->setCurrentText(constr->foreignKey->foreignTable);
// Conditions
- foreach (SqliteForeignKey::Condition* condition, constr->foreignKey->conditions)
+ for (SqliteForeignKey::Condition* condition : constr->foreignKey->conditions)
readCondition(condition);
// Initially, Deferrable
diff --git a/SQLiteStudio3/guiSQLiteStudio/constraints/columnprimarykeypanel.cpp b/SQLiteStudio3/guiSQLiteStudio/constraints/columnprimarykeypanel.cpp
index d10b223..f8975d8 100644
--- a/SQLiteStudio3/guiSQLiteStudio/constraints/columnprimarykeypanel.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/constraints/columnprimarykeypanel.cpp
@@ -94,13 +94,7 @@ void ColumnPrimaryKeyPanel::constraintAvailable()
if (constraint.isNull())
return;
- SqliteCreateTable::Column* column = dynamic_cast<SqliteCreateTable::Column*>(constraint->parent());
ui->autoIncrCheck->setVisible(constraint->dialect == Dialect::Sqlite3);
- ui->autoIncrCheck->setEnabled(column->type &&
- DataType::fromString(column->type->detokenize().trimmed(), Qt::CaseInsensitive) == DataType::INTEGER);
-
- if (!ui->autoIncrCheck->isEnabled())
- ui->autoIncrCheck->setText(tr("Autoincrement (only for %1 type columns)", "column primary key").arg("INTEGER"));
readConstraint();
}
diff --git a/SQLiteStudio3/guiSQLiteStudio/constraints/tableforeignkeypanel.cpp b/SQLiteStudio3/guiSQLiteStudio/constraints/tableforeignkeypanel.cpp
index f8390a1..8bc7926 100644
--- a/SQLiteStudio3/guiSQLiteStudio/constraints/tableforeignkeypanel.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/constraints/tableforeignkeypanel.cpp
@@ -156,7 +156,7 @@ void TableForeignKeyPanel::updateColumnState(int rowIdx, bool tableSelected)
if (!wasEnabled && check->isEnabled())
{
// Automatically set matching column
- int idx = fkColumnsModel.stringList().indexOf(check->text());
+ int idx = fkColumnsModel.stringList().indexOf(check->property(UI_PROP_COLUMN).toString());
if (idx > -1)
combo->setCurrentIndex(idx);
}
@@ -191,7 +191,7 @@ void TableForeignKeyPanel::buildColumns()
SqliteCreateTable* createTable = dynamic_cast<SqliteCreateTable*>(constraint->parentStatement());
int row = 0;
- foreach (SqliteCreateTable::Column* column, createTable->columns)
+ for (SqliteCreateTable::Column* column : createTable->columns)
buildColumn(column, row++);
}
@@ -200,6 +200,7 @@ void TableForeignKeyPanel::buildColumn(SqliteCreateTable::Column* column, int ro
int col = 0;
QCheckBox* check = new QCheckBox(column->name);
+ check->setProperty(UI_PROP_COLUMN, column->name);
columnsLayout->addWidget(check, row, col++);
columnSignalMapping->setMapping(check, row);
connect(check, SIGNAL(toggled(bool)), columnSignalMapping, SLOT(map()));
@@ -228,7 +229,7 @@ void TableForeignKeyPanel::readConstraint()
if (!constr->foreignKey->foreignTable.isNull())
ui->fkTableCombo->setCurrentText(constr->foreignKey->foreignTable);
- foreach (SqliteForeignKey::Condition* condition, constr->foreignKey->conditions)
+ for (SqliteForeignKey::Condition* condition : constr->foreignKey->conditions)
readCondition(condition);
ui->deferrableCombo->setCurrentText(sqliteDeferrable(constr->foreignKey->deferrable));
@@ -245,10 +246,9 @@ void TableForeignKeyPanel::readConstraint()
int idx;
QCheckBox* check = nullptr;
QComboBox* combo = nullptr;
- SqliteIndexedColumn* localCol = nullptr;
SqliteIndexedColumn* foreignCol = nullptr;
int i = 0;
- foreach (localCol, constr->indexedColumns)
+ for (SqliteIndexedColumn* localCol : constr->indexedColumns)
{
// Foreign col
if (i < constr->foreignKey->indexedColumns.size())
@@ -312,7 +312,7 @@ void TableForeignKeyPanel::storeConfiguration()
if (constr->foreignKey)
delete constr->foreignKey;
- foreach (SqliteIndexedColumn* idxCol, constr->indexedColumns)
+ for (SqliteIndexedColumn* idxCol : constr->indexedColumns)
delete idxCol;
constr->indexedColumns.clear();
@@ -334,7 +334,7 @@ void TableForeignKeyPanel::storeConfiguration()
if (!check->isChecked())
continue;
- idxCol = new SqliteIndexedColumn(check->text());
+ idxCol = new SqliteIndexedColumn(check->property(UI_PROP_COLUMN).toString());
idxCol->setParent(constr);
constr->indexedColumns << idxCol;
@@ -407,7 +407,7 @@ int TableForeignKeyPanel::getColumnIndex(const QString& colName)
{
item = columnsLayout->itemAtPosition(i, 0)->widget();
cb = qobject_cast<QCheckBox*>(item);
- if (cb->text().compare(colName, Qt::CaseInsensitive) == 0)
+ if (cb->property(UI_PROP_COLUMN).toString().compare(colName, Qt::CaseInsensitive) == 0)
return i;
}
return -1;
diff --git a/SQLiteStudio3/guiSQLiteStudio/constraints/tablepkanduniquepanel.cpp b/SQLiteStudio3/guiSQLiteStudio/constraints/tablepkanduniquepanel.cpp
index f2a0ada..7c1c359 100644
--- a/SQLiteStudio3/guiSQLiteStudio/constraints/tablepkanduniquepanel.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/constraints/tablepkanduniquepanel.cpp
@@ -71,6 +71,7 @@ void TablePrimaryKeyAndUniquePanel::buildColumn(SqliteCreateTable::Column* colum
int col = 0;
QCheckBox* check = new QCheckBox(column->name);
+ check->setProperty(UI_PROP_COLUMN, column->name);
columnsLayout->addWidget(check, row, col++);
columnSignalMapping->setMapping(check, row);
connect(check, SIGNAL(toggled(bool)), columnSignalMapping, SLOT(map()));
@@ -109,7 +110,7 @@ int TablePrimaryKeyAndUniquePanel::getColumnIndex(const QString& colName)
{
item = columnsLayout->itemAtPosition(i, 0)->widget();
cb = qobject_cast<QCheckBox*>(item);
- if (cb->text().compare(colName, Qt::CaseInsensitive) == 0)
+ if (cb->property(UI_PROP_COLUMN).toString().compare(colName, Qt::CaseInsensitive) == 0)
return i;
}
return -1;
@@ -190,7 +191,7 @@ void TablePrimaryKeyAndUniquePanel::storeConfiguration()
constr->onConflict = sqliteConflictAlgo(ui->conflictComboBox->currentText());
// Columns
- foreach (SqliteIndexedColumn* idxCol, constr->indexedColumns)
+ for (SqliteIndexedColumn* idxCol : constr->indexedColumns)
delete idxCol;
constr->indexedColumns.clear();
@@ -207,7 +208,7 @@ void TablePrimaryKeyAndUniquePanel::storeConfiguration()
if (!check->isChecked())
continue;
- name = check->text();
+ name = check->property(UI_PROP_COLUMN).toString();
if (constr->dialect == Dialect::Sqlite3)
{
@@ -256,7 +257,7 @@ void TablePrimaryKeyAndUniquePanel::readConstraint()
int idx;
QCheckBox* check = nullptr;
QComboBox* combo = nullptr;
- foreach (SqliteIndexedColumn* idxCol, constr->indexedColumns)
+ for (SqliteIndexedColumn* idxCol : constr->indexedColumns)
{
idx = getColumnIndex(idxCol->name);
if (idx < 0)
@@ -294,6 +295,6 @@ void TablePrimaryKeyAndUniquePanel::buildColumns()
SqliteCreateTable* createTable = dynamic_cast<SqliteCreateTable*>(constraint->parentStatement());
int row = 0;
- foreach (SqliteCreateTable::Column* column, createTable->columns)
+ for (SqliteCreateTable::Column* column : createTable->columns)
buildColumn(column, row++);
}
diff --git a/SQLiteStudio3/guiSQLiteStudio/constraints/tableprimarykeypanel.cpp b/SQLiteStudio3/guiSQLiteStudio/constraints/tableprimarykeypanel.cpp
index c538990..bad4910 100644
--- a/SQLiteStudio3/guiSQLiteStudio/constraints/tableprimarykeypanel.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/constraints/tableprimarykeypanel.cpp
@@ -1,5 +1,6 @@
#include "tableprimarykeypanel.h"
#include "ui_tablepkanduniquepanel.h"
+#include "uiutils.h"
#include <QDebug>
TablePrimaryKeyPanel::TablePrimaryKeyPanel(QWidget *parent) :
@@ -50,7 +51,7 @@ void TablePrimaryKeyPanel::updateState()
item = columnsLayout->itemAtPosition(i, 0)->widget();
cb = qobject_cast<QCheckBox*>(item);
if (cb->isChecked())
- columns << cb->text();
+ columns << cb->property(UI_PROP_COLUMN).toString();
}
if (columns.size() != 1)