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/drilldown/imageitem.cpp | 6 ++--- examples/sql/drilldown/imageitem.h | 4 ++-- examples/sql/drilldown/informationwindow.cpp | 18 +++++++------- examples/sql/drilldown/informationwindow.h | 20 ++++++++-------- examples/sql/drilldown/main.cpp | 11 +++++---- examples/sql/drilldown/view.cpp | 36 +++++++++++----------------- examples/sql/drilldown/view.h | 4 ++-- 7 files changed, 48 insertions(+), 51 deletions(-) (limited to 'examples/sql/drilldown') diff --git a/examples/sql/drilldown/imageitem.cpp b/examples/sql/drilldown/imageitem.cpp index 4e440fc786..04ec614755 100644 --- a/examples/sql/drilldown/imageitem.cpp +++ b/examples/sql/drilldown/imageitem.cpp @@ -60,8 +60,8 @@ ImageItem::ImageItem(int id, const QPixmap &pixmap, QGraphicsItem *parent) timeLine.setDuration(150); timeLine.setFrameRange(0, 150); - connect(&timeLine, SIGNAL(frameChanged(int)), this, SLOT(setFrame(int))); - connect(&timeLine, SIGNAL(finished()), this, SLOT(updateItemPosition())); + connect(&timeLine, &QTimeLine::frameChanged, this, &ImageItem::setFrame); + connect(&timeLine, &QTimeLine::finished, this, &ImageItem::updateItemPosition); adjust(); } @@ -116,7 +116,7 @@ void ImageItem::adjust() //! [4] //! [5] -int ImageItem::id() +int ImageItem::id() const { return recordId; } diff --git a/examples/sql/drilldown/imageitem.h b/examples/sql/drilldown/imageitem.h index 4f773a6dfc..abb9103c7e 100644 --- a/examples/sql/drilldown/imageitem.h +++ b/examples/sql/drilldown/imageitem.h @@ -60,10 +60,10 @@ class ImageItem : public QObject, public QGraphicsPixmapItem Q_OBJECT public: - ImageItem(int id, const QPixmap &pixmap, QGraphicsItem *parent = 0); + ImageItem(int id, const QPixmap &pixmap, QGraphicsItem *parent = nullptr); void adjust(); - int id(); + int id() const; protected: void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; diff --git a/examples/sql/drilldown/informationwindow.cpp b/examples/sql/drilldown/informationwindow.cpp index 2536b0ca91..0007432672 100644 --- a/examples/sql/drilldown/informationwindow.cpp +++ b/examples/sql/drilldown/informationwindow.cpp @@ -84,10 +84,12 @@ InformationWindow::InformationWindow(int id, QSqlRelationalTableModel *items, //! [3] //! [4] - connect(descriptionEditor, SIGNAL(textChanged()), - this, SLOT(enableButtons())); - connect(imageFileEditor, SIGNAL(currentIndexChanged(int)), - this, SLOT(enableButtons())); + connect(descriptionEditor, &QTextEdit::textChanged, [=]() { + enableButtons(); + }); + connect(imageFileEditor, QOverload::of(&QComboBox::currentIndexChanged), [=]() { + enableButtons(); + }); QFormLayout *formLayout = new QFormLayout; formLayout->addRow(itemLabel, itemText); @@ -109,7 +111,7 @@ InformationWindow::InformationWindow(int id, QSqlRelationalTableModel *items, //! [4] //! [5] -int InformationWindow::id() +int InformationWindow::id() const { return itemId; } @@ -149,9 +151,9 @@ void InformationWindow::createButtons() closeButton->setDefault(true); - connect(closeButton, SIGNAL(clicked()), this, SLOT(close())); - connect(revertButton, SIGNAL(clicked()), this, SLOT(revert())); - connect(submitButton, SIGNAL(clicked()), this, SLOT(submit())); + connect(closeButton, &QPushButton::clicked, this, &InformationWindow::close); + connect(revertButton, &QPushButton::clicked, this, &InformationWindow::revert); + connect(submitButton, &QPushButton::clicked, this, &InformationWindow::submit); //! [8] //! [9] diff --git a/examples/sql/drilldown/informationwindow.h b/examples/sql/drilldown/informationwindow.h index 6e87cea65a..653837d722 100644 --- a/examples/sql/drilldown/informationwindow.h +++ b/examples/sql/drilldown/informationwindow.h @@ -61,9 +61,9 @@ class InformationWindow : public QDialog public: InformationWindow(int id, QSqlRelationalTableModel *items, - QWidget *parent = 0); + QWidget *parent = nullptr); - int id(); + int id() const; signals: void imageChanged(int id, const QString &fileName); @@ -83,16 +83,16 @@ private: int itemId; QString displayedImage; - QComboBox *imageFileEditor; - QLabel *itemText; - QTextEdit *descriptionEditor; + QComboBox *imageFileEditor = nullptr; + QLabel *itemText = nullptr; + QTextEdit *descriptionEditor = nullptr; - QPushButton *closeButton; - QPushButton *submitButton; - QPushButton *revertButton; - QDialogButtonBox *buttonBox; + QPushButton *closeButton = nullptr; + QPushButton *submitButton = nullptr; + QPushButton *revertButton = nullptr; + QDialogButtonBox *buttonBox = nullptr; - QDataWidgetMapper *mapper; + QDataWidgetMapper *mapper = nullptr; }; //! [2] diff --git a/examples/sql/drilldown/main.cpp b/examples/sql/drilldown/main.cpp index 3465d11b4d..db3320de48 100644 --- a/examples/sql/drilldown/main.cpp +++ b/examples/sql/drilldown/main.cpp @@ -48,10 +48,13 @@ ** ****************************************************************************/ -#include - -#include "../connection.h" #include "view.h" +#include "../connection.h" + +#include + +#include + int main(int argc, char *argv[]) { @@ -60,7 +63,7 @@ int main(int argc, char *argv[]) QApplication app(argc, argv); if (!createConnection()) - return 1; + return EXIT_FAILURE; View view("items", "images"); view.show(); diff --git a/examples/sql/drilldown/view.cpp b/examples/sql/drilldown/view.cpp index fc05d2fcaf..13e9310061 100644 --- a/examples/sql/drilldown/view.cpp +++ b/examples/sql/drilldown/view.cpp @@ -89,8 +89,6 @@ void View::addItems() int topMargin = 40; for (int i = 0; i < itemCount; i++) { - ImageItem *image; - QGraphicsTextItem *label; QSqlRecord record = itemTable->record(i); int id = record.value("id").toInt(); @@ -101,12 +99,12 @@ void View::addItems() int x = ((i % 2) * imageOffset) + leftMargin + columnOffset; int y = ((i / 2) * imageOffset) + topMargin; - image = new ImageItem(id, QPixmap(":/" + file)); + ImageItem *image = new ImageItem(id, QPixmap(":/" + file)); image->setData(0, i); image->setPos(x, y); scene->addItem(image); - label = scene->addText(item); + QGraphicsTextItem *label = scene->addText(item); label->setDefaultTextColor(QColor("#d7d6d5")); QPointF labelOffset((120 - label->boundingRect().width()) / 2, 120.0); label->setPos(QPointF(x, y) + labelOffset); @@ -133,22 +131,22 @@ void View::showInformation(ImageItem *image) return; InformationWindow *window = findWindow(id); - if (window && window->isVisible()) { - window->raise(); - window->activateWindow(); - } else if (window && !window->isVisible()) { - window->show(); - } else { - InformationWindow *window; + if (!window) { window = new InformationWindow(id, itemTable, this); - connect(window, SIGNAL(imageChanged(int,QString)), - this, SLOT(updateImage(int,QString))); + connect(window, QOverload::of(&InformationWindow::imageChanged), + this, QOverload::of(&View::updateImage)); window->move(pos() + QPoint(20, 40)); window->show(); informationWindows.append(window); } + + if (window->isVisible()) { + window->raise(); + window->activateWindow(); + } else + window->show(); } //! [6] @@ -172,19 +170,13 @@ void View::updateImage(int id, const QString &fileName) //! [7] //! [8] -InformationWindow* View::findWindow(int id) +InformationWindow *View::findWindow(int id) const { - QList::iterator i, beginning, end; - - beginning = informationWindows.begin(); - end = informationWindows.end(); - - for (i = beginning; i != end; ++i) { - InformationWindow *window = (*i); + for (auto window : informationWindows) { if (window && (window->id() == id)) return window; } - return 0; + return nullptr; } //! [8] diff --git a/examples/sql/drilldown/view.h b/examples/sql/drilldown/view.h index 9d6ef0e853..5afa1a25e9 100644 --- a/examples/sql/drilldown/view.h +++ b/examples/sql/drilldown/view.h @@ -63,7 +63,7 @@ class View : public QGraphicsView Q_OBJECT public: - View(const QString &items, const QString &images, QWidget *parent = 0); + View(const QString &items, const QString &images, QWidget *parent = nullptr); protected: void mouseReleaseEvent(QMouseEvent *event) override; @@ -77,7 +77,7 @@ private slots: //! [2] private: void addItems(); - InformationWindow* findWindow(int id); + InformationWindow *findWindow(int id) const; void showInformation(ImageItem *image); QGraphicsScene *scene; -- cgit v1.2.3