From ce7cbcc3b64a1b0b6e5cf91d911d3ad10e7d6424 Mon Sep 17 00:00:00 2001 From: Paul Wicking Date: Tue, 5 Jun 2018 13:13:38 +0200 Subject: [PATCH] Doc: Clean up and modernize SQL example: Books MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Replace Qt4-style connects. * Reformat code to adhere to 80 column width. * Touch comments to make location and style consistent. * Rename a label in the UI form. Task-number: QTBUG-68652 Change-Id: Icc592f7b5a013d1806bc36c45057b35472b6efbb Reviewed-by: Topi Reiniƶ --- examples/sql/books/bookdelegate.cpp | 28 +++-- examples/sql/books/bookwindow.cpp | 42 ++++--- examples/sql/books/bookwindow.ui | 167 +++++++++++++++------------- 3 files changed, 135 insertions(+), 102 deletions(-) diff --git a/examples/sql/books/bookdelegate.cpp b/examples/sql/books/bookdelegate.cpp index 6a42fd2db7c..4115f80cf3b 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 1428bc04b57..d85b4389563 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 659d3245648..c81a86cb2ca 100644 --- a/examples/sql/books/bookwindow.ui +++ b/examples/sql/books/bookwindow.ui @@ -1,10 +1,8 @@ - - - - + + BookWindow - - + + 0 0 @@ -12,117 +10,135 @@ 420 - + Books - - - - 9 - - + + + 6 + + 9 + + + 9 + + + 9 + + + 9 + - - + + Books - - - 9 - - + + 6 + + 9 + + + 9 + + + 9 + + + 9 + - - + + QAbstractItemView::SelectRows - - + + Details - - - - - <b>Title:</b> + + + + + <b>Title:</b> - - - + + + true - - - - <b>Author: </b> - - - - - - - true - - - - - - - <b>Genre:</b> + + + + <b>Author: </b> - - - + + + true - - - - <b>Year:</b> + + + + <b>Genre:</b> - - - - + + + + true - + + + + + + <b>Year:</b> + + + + + + + true + + - - 2100 - - + -1000 - - - - - - <b>Rating:</b> + + 2100 - - - + + + + <b>Rating:</b> + + + + + + 5 @@ -136,7 +152,6 @@ - bookTable titleEdit