summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2021-12-17 07:06:30 -0500
committerLibravatarUnit 193 <unit193@unit193.net>2021-12-17 07:06:30 -0500
commit1fdc150116cad39aae5c5da407c3312b47a59e3a (patch)
tree123c79a4d7ad2d45781ba03ce939f7539fb428d8 /SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.cpp
parentfeda8a7db8d1d7c5439aa8f8feef7cc0dd2b59a0 (diff)
New upstream version 3.3.3+dfsg1.upstream/3.3.3+dfsg1
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.cpp')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.cpp63
1 files changed, 40 insertions, 23 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.cpp b/SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.cpp
index 62b6613..41d6ed9 100644
--- a/SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.cpp
@@ -1,10 +1,11 @@
#include "tablestructuremodel.h"
#include "iconmanager.h"
#include "common/unused.h"
-#include "uiconfig.h"
#include <QFont>
#include <QDebug>
#include <QMimeData>
+#include <QApplication>
+#include <QStyle>
TableStructureModel::TableStructureModel(QObject *parent) :
QAbstractTableModel(parent)
@@ -26,14 +27,7 @@ int TableStructureModel::columnCount(const QModelIndex& parent) const
if (createTable.isNull())
return 0;
- switch (createTable->dialect)
- {
- case Dialect::Sqlite3:
- return 9;
- case Dialect::Sqlite2:
- return 7;
- }
- return 0;
+ return 10;
}
QVariant TableStructureModel::data(const QModelIndex& index, int role) const
@@ -109,6 +103,13 @@ QVariant TableStructureModel::data(const QModelIndex& index, int role) const
return getColumnCollate(row);
}
+ case TableStructureModel::Columns::GENERATED:
+ {
+ if (role != Qt::DecorationRole)
+ break;
+
+ return getColumnGenerate(row);
+ }
case TableStructureModel::Columns::DEFAULT:
{
if (role == Qt::FontRole)
@@ -142,23 +143,12 @@ QVariant TableStructureModel::headerData(int section, Qt::Orientation orientatio
TableStructureModel::Columns TableStructureModel::getHeaderColumn(int colIdx) const
{
- if (!createTable.isNull() && createTable->dialect == Dialect::Sqlite2)
- {
- if (colIdx >= 3)
- colIdx++; // skip FK
-
- if (colIdx >= 7)
- colIdx++; // skip COLLATE
- }
return static_cast<Columns>(colIdx);
}
bool TableStructureModel::isValidColumnIdx(int colIdx) const
{
- if (!createTable.isNull() && createTable->dialect == Dialect::Sqlite2)
- return colIdx >= 0 && colIdx < 7;
-
- return colIdx >= 0 && colIdx < 9;
+ return colIdx >= 0 && colIdx < 10;
}
SqliteCreateTable::Column* TableStructureModel::getColumn(int colIdx) const
@@ -313,10 +303,12 @@ QString TableStructureModel::columnLabel(int column) const
return tr("Not\nNULL", "table structure columns");
case Columns::COLLATE:
return tr("Collate", "table structure columns");
+ case Columns::GENERATED:
+ return tr("Generated", "table structure columns");
case Columns::DEFAULT:
return tr("Default value", "table structure columns");
}
- return QString::null;
+ return QString();
}
QVariant TableStructureModel::getColumnName(int row) const
@@ -378,6 +370,23 @@ QVariant TableStructureModel::getColumnCollate(int row) const
return QVariant();
}
+QVariant TableStructureModel::getColumnGenerate(int row) const
+{
+ SqliteCreateTable::Column* column = getColumn(row);
+ SqliteCreateTable::Column::Constraint* constr = column->getConstraint(SqliteCreateTable::Column::Constraint::GENERATED);
+ if (!constr)
+ return QVariant();
+
+ switch (constr->generatedType) {
+ case SqliteCreateTable::Column::Constraint::GeneratedType::STORED:
+ return ICONS.CONSTRAINT_GENERATED_STORED;
+ case SqliteCreateTable::Column::Constraint::GeneratedType::VIRTUAL:
+ case SqliteCreateTable::Column::Constraint::GeneratedType::null:
+ break;
+ }
+ return ICONS.CONSTRAINT_GENERATED_VIRTUAL;
+}
+
QVariant TableStructureModel::getColumnDefaultValue(int row) const
{
QVariant value = getColumnDefault(row);
@@ -403,7 +412,7 @@ QVariant TableStructureModel::getColumnDefaultColor(int row) const
{
QVariant value = getColumnDefault(row);
if (value.isNull())
- return QColor(CFG_UI.Colors.DataNullFg);
+ return QApplication::style()->standardPalette().dark().color();
return QVariant();
}
@@ -494,6 +503,14 @@ bool TableStructureModel::isColumnCollate(SqliteCreateTable::Column* column) con
return false;
}
+bool TableStructureModel::isColumnGenerate(SqliteCreateTable::Column* column) const
+{
+ if (column->hasConstraint(SqliteCreateTable::Column::Constraint::GENERATED))
+ return true;
+
+ return false;
+}
+
void TableStructureModel::setCreateTable(SqliteCreateTable* value)
{
beginResetModel();