diff options
Diffstat (limited to 'examples/sql')
-rw-r--r-- | examples/sql/books/bookdelegate.cpp | 28 | ||||
-rw-r--r-- | examples/sql/books/bookwindow.cpp | 42 | ||||
-rw-r--r-- | examples/sql/books/bookwindow.ui | 149 |
3 files changed, 126 insertions, 93 deletions
diff --git a/examples/sql/books/bookdelegate.cpp b/examples/sql/books/bookdelegate.cpp index 6a42fd2db7..4115f80cf3 100644 --- a/examples/sql/books/bookdelegate.cpp +++ b/examples/sql/books/bookdelegate.cpp @@ -62,15 +62,21 @@ void BookDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, { if (index.column() != 5) { QStyleOptionViewItem opt = option; - opt.rect.adjust(0, 0, -1, -1); // since we draw the grid ourselves + // Since we draw the grid ourselves: + opt.rect.adjust(0, 0, -1, -1); QSqlRelationalDelegate::paint(painter, opt, index); } else { const QAbstractItemModel *model = index.model(); QPalette::ColorGroup cg = (option.state & QStyle::State_Enabled) ? - (option.state & QStyle::State_Active) ? QPalette::Normal : QPalette::Inactive : QPalette::Disabled; + (option.state & QStyle::State_Active) ? + QPalette::Normal : + QPalette::Inactive : + QPalette::Disabled; if (option.state & QStyle::State_Selected) - painter->fillRect(option.rect, option.palette.color(cg, QPalette::Highlight)); + painter->fillRect( + option.rect, + option.palette.color(cg, QPalette::Highlight)); int rating = model->data(index, Qt::DisplayRole).toInt(); int width = star.width(); @@ -81,7 +87,8 @@ void BookDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, painter->drawPixmap(x, y, star); x += width; } - drawFocus(painter, option, option.rect.adjusted(0, 0, -1, -1)); // since we draw the grid ourselves + // Since we draw the grid ourselves: + drawFocus(painter, option, option.rect.adjusted(0, 0, -1, -1)); } QPen pen = painter->pen(); @@ -96,8 +103,8 @@ QSize BookDelegate::sizeHint(const QStyleOptionViewItem &option, { if (index.column() == 5) return QSize(5 * star.width(), star.height()) + QSize(1, 1); - - return QSqlRelationalDelegate::sizeHint(option, index) + QSize(1, 1); // since we draw the grid ourselves + // Since we draw the grid ourselves: + return QSqlRelationalDelegate::sizeHint(option, index) + QSize(1, 1); } bool BookDelegate::editorEvent(QEvent *event, QAbstractItemModel *model, @@ -112,19 +119,21 @@ bool BookDelegate::editorEvent(QEvent *event, QAbstractItemModel *model, int stars = qBound(0, int(0.7 + qreal(mouseEvent->pos().x() - option.rect.x()) / star.width()), 5); model->setData(index, QVariant(stars)); - return false; //so that the selection can change + // So that the selection can change: + return false; } return true; } -QWidget *BookDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, +QWidget *BookDelegate::createEditor(QWidget *parent, + const QStyleOptionViewItem &option, const QModelIndex &index) const { if (index.column() != 4) return QSqlRelationalDelegate::createEditor(parent, option, index); - // for editing the year, return a spinbox with a range from -1000 to 2100. + // For editing the year, return a spinbox with a range from -1000 to 2100. QSpinBox *sb = new QSpinBox(parent); sb->setFrame(false); sb->setMaximum(2100); @@ -132,4 +141,3 @@ QWidget *BookDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem return sb; } - diff --git a/examples/sql/books/bookwindow.cpp b/examples/sql/books/bookwindow.cpp index 1428bc04b5..d85b438956 100644 --- a/examples/sql/books/bookwindow.cpp +++ b/examples/sql/books/bookwindow.cpp @@ -59,53 +59,61 @@ BookWindow::BookWindow() ui.setupUi(this); if (!QSqlDatabase::drivers().contains("QSQLITE")) - QMessageBox::critical(this, "Unable to load database", "This demo needs the SQLITE driver"); + QMessageBox::critical( + this, + "Unable to load database", + "This demo needs the SQLITE driver" + ); - // initialize the database + // Initialize the database: QSqlError err = initDb(); if (err.type() != QSqlError::NoError) { showError(err); return; } - // Create the data model + // Create the data model: model = new QSqlRelationalTableModel(ui.bookTable); model->setEditStrategy(QSqlTableModel::OnManualSubmit); model->setTable("books"); - // Remember the indexes of the columns + // Remember the indexes of the columns: authorIdx = model->fieldIndex("author"); genreIdx = model->fieldIndex("genre"); - // Set the relations to the other database tables + // Set the relations to the other database tables: model->setRelation(authorIdx, QSqlRelation("authors", "id", "name")); model->setRelation(genreIdx, QSqlRelation("genres", "id", "name")); - // Set the localized header captions + // Set the localized header captions: model->setHeaderData(authorIdx, Qt::Horizontal, tr("Author Name")); model->setHeaderData(genreIdx, Qt::Horizontal, tr("Genre")); - model->setHeaderData(model->fieldIndex("title"), Qt::Horizontal, tr("Title")); + model->setHeaderData(model->fieldIndex("title"), + Qt::Horizontal, tr("Title")); model->setHeaderData(model->fieldIndex("year"), Qt::Horizontal, tr("Year")); - model->setHeaderData(model->fieldIndex("rating"), Qt::Horizontal, tr("Rating")); + model->setHeaderData(model->fieldIndex("rating"), + Qt::Horizontal, tr("Rating")); - // Populate the model + // Populate the model: if (!model->select()) { showError(model->lastError()); return; } - // Set the model and hide the ID column + // Set the model and hide the ID column: ui.bookTable->setModel(model); ui.bookTable->setItemDelegate(new BookDelegate(ui.bookTable)); ui.bookTable->setColumnHidden(model->fieldIndex("id"), true); ui.bookTable->setSelectionMode(QAbstractItemView::SingleSelection); - // Initialize the Author combo box + // Initialize the Author combo box: ui.authorEdit->setModel(model->relationModel(authorIdx)); - ui.authorEdit->setModelColumn(model->relationModel(authorIdx)->fieldIndex("name")); + ui.authorEdit->setModelColumn( + model->relationModel(authorIdx)->fieldIndex("name")); ui.genreEdit->setModel(model->relationModel(genreIdx)); - ui.genreEdit->setModelColumn(model->relationModel(genreIdx)->fieldIndex("name")); + ui.genreEdit->setModelColumn( + model->relationModel(genreIdx)->fieldIndex("name")); QDataWidgetMapper *mapper = new QDataWidgetMapper(this); mapper->setModel(model); @@ -116,8 +124,11 @@ BookWindow::BookWindow() mapper->addMapping(ui.genreEdit, genreIdx); mapper->addMapping(ui.ratingEdit, model->fieldIndex("rating")); - connect(ui.bookTable->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)), - mapper, SLOT(setCurrentModelIndex(QModelIndex))); + connect(ui.bookTable->selectionModel(), + &QItemSelectionModel::currentRowChanged, + mapper, + &QDataWidgetMapper::setCurrentModelIndex + ); ui.bookTable->setCurrentIndex(model->index(0, 0)); } @@ -127,4 +138,3 @@ void BookWindow::showError(const QSqlError &err) QMessageBox::critical(this, "Unable to initialize Database", "Error initializing database: " + err.text()); } - diff --git a/examples/sql/books/bookwindow.ui b/examples/sql/books/bookwindow.ui index 659d324564..c81a86cb2c 100644 --- a/examples/sql/books/bookwindow.ui +++ b/examples/sql/books/bookwindow.ui @@ -1,10 +1,8 @@ -<ui version="4.0" > - <author></author> - <comment></comment> - <exportmacro></exportmacro> +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> <class>BookWindow</class> - <widget class="QMainWindow" name="BookWindow" > - <property name="geometry" > + <widget class="QMainWindow" name="BookWindow"> + <property name="geometry"> <rect> <x>0</x> <y>0</y> @@ -12,117 +10,135 @@ <height>420</height> </rect> </property> - <property name="windowTitle" > + <property name="windowTitle"> <string>Books</string> </property> - <widget class="QWidget" name="centralWidget" > - <layout class="QVBoxLayout" > - <property name="margin" > + <widget class="QWidget" name="centralWidget"> + <layout class="QVBoxLayout"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> <number>9</number> </property> - <property name="spacing" > - <number>6</number> + <property name="topMargin"> + <number>9</number> + </property> + <property name="rightMargin"> + <number>9</number> + </property> + <property name="bottomMargin"> + <number>9</number> </property> <item> - <widget class="QGroupBox" name="groupBox" > - <property name="title" > + <widget class="QGroupBox" name="groupBox"> + <property name="title"> <string>Books</string> </property> - <layout class="QVBoxLayout" > - <property name="margin" > + <layout class="QVBoxLayout"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> <number>9</number> </property> - <property name="spacing" > - <number>6</number> + <property name="topMargin"> + <number>9</number> + </property> + <property name="rightMargin"> + <number>9</number> + </property> + <property name="bottomMargin"> + <number>9</number> </property> <item> - <widget class="QTableView" name="bookTable" > - <property name="selectionBehavior" > + <widget class="QTableView" name="bookTable"> + <property name="selectionBehavior"> <enum>QAbstractItemView::SelectRows</enum> </property> </widget> </item> <item> - <widget class="QGroupBox" name="groupBox_2" > - <property name="title" > + <widget class="QGroupBox" name="groupBox_2"> + <property name="title"> <string>Details</string> </property> - <layout class="QFormLayout" > - <item row="0" column="0" > - <widget class="QLabel" name="label_5" > - <property name="text" > - <string><b>Title:</b></string> + <layout class="QFormLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="label_5"> + <property name="text"> + <string><b>Title:</b></string> </property> </widget> </item> - <item row="0" column="1" > - <widget class="QLineEdit" name="titleEdit" > - <property name="enabled" > + <item row="0" column="1"> + <widget class="QLineEdit" name="titleEdit"> + <property name="enabled"> <bool>true</bool> </property> </widget> </item> - <item row="1" column="0" > - <widget class="QLabel" name="label_2_2_2_2" > - <property name="text" > - <string><b>Author: </b></string> + <item row="1" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string><b>Author: </b></string> </property> </widget> - </item> - <item row="1" column="1" > - <widget class="QComboBox" name="authorEdit" > - <property name="enabled" > + </item> + <item row="1" column="1"> + <widget class="QComboBox" name="authorEdit"> + <property name="enabled"> <bool>true</bool> </property> </widget> - </item> - <item row="2" column="0" > - <widget class="QLabel" name="label_3" > - <property name="text" > - <string><b>Genre:</b></string> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string><b>Genre:</b></string> </property> </widget> </item> - <item row="2" column="1" > - <widget class="QComboBox" name="genreEdit" > - <property name="enabled" > + <item row="2" column="1"> + <widget class="QComboBox" name="genreEdit"> + <property name="enabled"> <bool>true</bool> </property> </widget> </item> - <item row="3" column="0" > - <widget class="QLabel" name="label_4" > - <property name="text" > - <string><b>Year:</b></string> + <item row="3" column="0"> + <widget class="QLabel" name="label_4"> + <property name="text"> + <string><b>Year:</b></string> </property> </widget> - </item> - <item row="3" column="1" > - <widget class="QSpinBox" name="yearEdit" > - <property name="enabled" > + </item> + <item row="3" column="1"> + <widget class="QSpinBox" name="yearEdit"> + <property name="enabled"> <bool>true</bool> </property> - <property name="prefix" > + <property name="prefix"> <string/> </property> - <property name="maximum" > - <number>2100</number> - </property> - <property name="minimum" > + <property name="minimum"> <number>-1000</number> </property> + <property name="maximum"> + <number>2100</number> + </property> </widget> </item> - <item row="4" column="0" > - <widget class="QLabel" name="label" > - <property name="text" > - <string><b>Rating:</b></string> + <item row="4" column="0"> + <widget class="QLabel" name="label"> + <property name="text"> + <string><b>Rating:</b></string> </property> </widget> </item> - <item row="4" column="1" > - <widget class="QSpinBox" name="ratingEdit" > - <property name="maximum" > + <item row="4" column="1"> + <widget class="QSpinBox" name="ratingEdit"> + <property name="maximum"> <number>5</number> </property> </widget> @@ -136,7 +152,6 @@ </layout> </widget> </widget> - <pixmapfunction></pixmapfunction> <tabstops> <tabstop>bookTable</tabstop> <tabstop>titleEdit</tabstop> |