diff options
| author | 2021-12-17 07:06:30 -0500 | |
|---|---|---|
| committer | 2021-12-17 07:06:30 -0500 | |
| commit | 1fdc150116cad39aae5c5da407c3312b47a59e3a (patch) | |
| tree | 123c79a4d7ad2d45781ba03ce939f7539fb428d8 /SQLiteStudio3/guiSQLiteStudio/windows/tablestructuremodel.cpp | |
| parent | feda8a7db8d1d7c5439aa8f8feef7cc0dd2b59a0 (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.cpp | 63 |
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(); |
