From 3d67793a9ec01f15e3dcf6b59e6e0df5f59bdfad Mon Sep 17 00:00:00 2001 From: Michael Winkelmann Date: Thu, 20 Jul 2017 16:39:01 +0200 Subject: Revamp SQL examples to C++11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changed signals and slots to new syntax, used nullptr and replaced foreach with new C++11 range based for loops. Also fixed a few minor flaws. Task-number: QTBUG-60633 Change-Id: Ice4030133971912f96752d9d84c638c70fd73e35 Reviewed-by: Jesus Fernandez Reviewed-by: André Hartmann Reviewed-by: Friedemann Kleint --- examples/sql/sqlbrowser/browser.cpp | 6 +++--- examples/sql/sqlbrowser/browser.h | 6 ++++-- examples/sql/sqlbrowser/connectionwidget.cpp | 5 ++--- examples/sql/sqlbrowser/connectionwidget.h | 2 +- examples/sql/sqlbrowser/main.cpp | 14 ++++++++------ examples/sql/sqlbrowser/qsqlconnectiondialog.h | 2 +- 6 files changed, 19 insertions(+), 16 deletions(-) (limited to 'examples/sql/sqlbrowser') diff --git a/examples/sql/sqlbrowser/browser.cpp b/examples/sql/sqlbrowser/browser.cpp index d86c54404d..b05cf52099 100644 --- a/examples/sql/sqlbrowser/browser.cpp +++ b/examples/sql/sqlbrowser/browser.cpp @@ -165,11 +165,12 @@ void Browser::showTable(const QString &t) model->select(); if (model->lastError().type() != QSqlError::NoError) emit statusMessage(model->lastError().text()); + table->setModel(model); table->setEditTriggers(QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed); + connect(table->selectionModel(), &QItemSelectionModel::currentRowChanged, + this, &Browser::currentChanged); - connect(table->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)), - this, SLOT(currentChanged())); updateActions(); } @@ -189,7 +190,6 @@ void Browser::showMetaData(const QString &t) model->setHeaderData(5, Qt::Horizontal, "AutoValue"); model->setHeaderData(6, Qt::Horizontal, "DefaultValue"); - for (int i = 0; i < rec.count(); ++i) { QSqlField fld = rec.field(i); model->setData(model->index(i, 0), fld.name()); diff --git a/examples/sql/sqlbrowser/browser.h b/examples/sql/sqlbrowser/browser.h index fef410778b..3f98f487c3 100644 --- a/examples/sql/sqlbrowser/browser.h +++ b/examples/sql/sqlbrowser/browser.h @@ -65,7 +65,7 @@ class Browser: public QWidget, private Ui::Browser { Q_OBJECT public: - Browser(QWidget *parent = 0); + Browser(QWidget *parent = nullptr); virtual ~Browser(); QSqlError addConnection(const QString &driver, const QString &dbName, const QString &host, @@ -116,7 +116,9 @@ class CustomModel: public QSqlTableModel { Q_OBJECT public: - explicit CustomModel(QObject *parent = 0, QSqlDatabase db = QSqlDatabase()):QSqlTableModel(parent, db) {} + explicit CustomModel(QObject *parent = nullptr, QSqlDatabase db = QSqlDatabase()) + : QSqlTableModel(parent, db) {} + QVariant data(const QModelIndex &idx, int role) const override { if (role == Qt::BackgroundRole && isDirty(idx)) diff --git a/examples/sql/sqlbrowser/connectionwidget.cpp b/examples/sql/sqlbrowser/connectionwidget.cpp index 888579c9af..658cfb77dc 100644 --- a/examples/sql/sqlbrowser/connectionwidget.cpp +++ b/examples/sql/sqlbrowser/connectionwidget.cpp @@ -63,8 +63,8 @@ ConnectionWidget::ConnectionWidget(QWidget *parent) tree->header()->setSectionResizeMode(QHeaderView::Stretch); QAction *refreshAction = new QAction(tr("Refresh"), tree); metaDataAction = new QAction(tr("Show Schema"), tree); - connect(refreshAction, SIGNAL(triggered()), SLOT(refresh())); - connect(metaDataAction, SIGNAL(triggered()), SLOT(showMetaData())); + connect(refreshAction, &QAction::triggered, this, &ConnectionWidget::refresh); + connect(metaDataAction, &QAction::triggered, this, &ConnectionWidget::showMetaData); tree->addAction(refreshAction); tree->addAction(metaDataAction); tree->setContextMenuPolicy(Qt::ActionsContextMenu); @@ -146,7 +146,6 @@ void ConnectionWidget::setActive(QTreeWidgetItem *item) void ConnectionWidget::on_tree_itemActivated(QTreeWidgetItem *item, int /* column */) { - if (!item) return; diff --git a/examples/sql/sqlbrowser/connectionwidget.h b/examples/sql/sqlbrowser/connectionwidget.h index 8b8e3a9a62..a805765f69 100644 --- a/examples/sql/sqlbrowser/connectionwidget.h +++ b/examples/sql/sqlbrowser/connectionwidget.h @@ -62,7 +62,7 @@ class ConnectionWidget: public QWidget { Q_OBJECT public: - ConnectionWidget(QWidget *parent = 0); + ConnectionWidget(QWidget *parent = nullptr); virtual ~ConnectionWidget(); QSqlDatabase currentDatabase() const; diff --git a/examples/sql/sqlbrowser/main.cpp b/examples/sql/sqlbrowser/main.cpp index 002dbc3242..ea4649b68d 100644 --- a/examples/sql/sqlbrowser/main.cpp +++ b/examples/sql/sqlbrowser/main.cpp @@ -80,16 +80,18 @@ int main(int argc, char *argv[]) mainWin.setCentralWidget(&browser); QMenu *fileMenu = mainWin.menuBar()->addMenu(QObject::tr("&File")); - fileMenu->addAction(QObject::tr("Add &Connection..."), &browser, SLOT(addConnection())); + fileMenu->addAction(QObject::tr("Add &Connection..."), + [&]() { browser.addConnection(); }); fileMenu->addSeparator(); - fileMenu->addAction(QObject::tr("&Quit"), &app, SLOT(quit())); + fileMenu->addAction(QObject::tr("&Quit"), []() { qApp->quit(); }); QMenu *helpMenu = mainWin.menuBar()->addMenu(QObject::tr("&Help")); - helpMenu->addAction(QObject::tr("About"), &browser, SLOT(about())); - helpMenu->addAction(QObject::tr("About Qt"), qApp, SLOT(aboutQt())); + helpMenu->addAction(QObject::tr("About"), [&]() { browser.about(); }); + helpMenu->addAction(QObject::tr("About Qt"), []() { qApp->aboutQt(); }); - QObject::connect(&browser, SIGNAL(statusMessage(QString)), - mainWin.statusBar(), SLOT(showMessage(QString))); + QObject::connect(&browser, &Browser::statusMessage, [&mainWin](const QString &text) { + mainWin.statusBar()->showMessage(text); + }); addConnectionsFromCommandline(app.arguments(), &browser); mainWin.show(); diff --git a/examples/sql/sqlbrowser/qsqlconnectiondialog.h b/examples/sql/sqlbrowser/qsqlconnectiondialog.h index d43955acdc..fc998d7ee9 100644 --- a/examples/sql/sqlbrowser/qsqlconnectiondialog.h +++ b/examples/sql/sqlbrowser/qsqlconnectiondialog.h @@ -60,7 +60,7 @@ class QSqlConnectionDialog: public QDialog { Q_OBJECT public: - QSqlConnectionDialog(QWidget *parent = 0); + QSqlConnectionDialog(QWidget *parent = nullptr); ~QSqlConnectionDialog(); QString driverName() const; -- cgit v1.2.3