From cb3152086c61e7c51ed1c5f8c5946364e19abc4d Mon Sep 17 00:00:00 2001 From: Fabian Kosmale Date: Tue, 21 Jan 2020 15:33:11 +0100 Subject: Introduce Q_PROPERTY attribute REQUIRED This is meant to correspond to required properties in QML. Change-Id: I2645981e13f7423bc86b48370c165b3cfe2aaa62 Task-number: QTBUG-81561 Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/corelib/doc/snippets/code/doc_src_properties.cpp | 1 + src/corelib/doc/src/objectmodel/properties.qdoc | 6 ++++++ 2 files changed, 7 insertions(+) (limited to 'src/corelib/doc') diff --git a/src/corelib/doc/snippets/code/doc_src_properties.cpp b/src/corelib/doc/snippets/code/doc_src_properties.cpp index b72c9d13e1..a67945bbcf 100644 --- a/src/corelib/doc/snippets/code/doc_src_properties.cpp +++ b/src/corelib/doc/snippets/code/doc_src_properties.cpp @@ -61,6 +61,7 @@ Q_PROPERTY(type name [USER bool] [CONSTANT] [FINAL]) + [REQUIRED] //! [0] diff --git a/src/corelib/doc/src/objectmodel/properties.qdoc b/src/corelib/doc/src/objectmodel/properties.qdoc index 9ef08cce07..680e5598f0 100644 --- a/src/corelib/doc/src/objectmodel/properties.qdoc +++ b/src/corelib/doc/src/objectmodel/properties.qdoc @@ -144,6 +144,12 @@ optimizations in some cases, but is not enforced by moc. Care must be taken never to override a \c FINAL property. + \li The presence of the \c REQUIRED attribute indicates that the property + should be set by a user of the class. This is not enforced by moc, and is + mostly useful for classes exposed to QML. In QML, classes with REQUIRED + properties cannot be instantiated unless all REQUIRED properties have + been set. + \endlist The \c READ, \c WRITE, and \c RESET functions can be inherited. -- cgit v1.2.3 From ae9056587a52d51c7b41b41f631c6cab8097a7c7 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Sat, 25 Jan 2020 21:19:47 +0100 Subject: Doc/QtCore: use new signal/slot signature in snippets Use the new signal/slot syntax in the snippets where possible. Also change some 0 to nullptr. Change-Id: Ie3da2721d3cec33704f73f4d39c06a767717b095 Reviewed-by: Sze Howe Koh --- .../code/src_corelib_kernel_qcoreapplication.cpp | 10 +++--- .../src_corelib_statemachine_qstatemachine.cpp | 2 +- .../code/src_corelib_thread_qfuturewatcher.cpp | 2 +- .../snippets/code/src_corelib_tools_qtimeline.cpp | 4 +-- .../doc/snippets/qsignalmapper/buttonwidget.cpp | 14 ++++----- .../doc/snippets/qsignalmapper/buttonwidget.h | 4 +-- .../doc/snippets/resource-system/mainwindow.cpp | 36 +++++++++++----------- src/corelib/doc/snippets/statemachine/main.cpp | 13 ++++---- src/corelib/doc/snippets/statemachine/main2.cpp | 15 ++++----- src/corelib/doc/snippets/statemachine/main3.cpp | 2 +- src/corelib/doc/snippets/statemachine/main5.cpp | 14 ++++----- src/corelib/doc/snippets/timers/analogclock.cpp | 2 +- src/corelib/doc/snippets/timers/timers.cpp | 6 ++-- src/corelib/doc/src/animation.qdoc | 4 +-- src/corelib/doc/src/statemachine.qdoc | 4 +-- 15 files changed, 67 insertions(+), 65 deletions(-) (limited to 'src/corelib/doc') diff --git a/src/corelib/doc/snippets/code/src_corelib_kernel_qcoreapplication.cpp b/src/corelib/doc/snippets/code/src_corelib_kernel_qcoreapplication.cpp index aae2456bf1..36b47e6f6e 100644 --- a/src/corelib/doc/snippets/code/src_corelib_kernel_qcoreapplication.cpp +++ b/src/corelib/doc/snippets/code/src_corelib_kernel_qcoreapplication.cpp @@ -56,7 +56,7 @@ QApplication::sendEvent(mainWindow, &event); //! [1] QPushButton *quitButton = new QPushButton("Quit"); -connect(quitButton, SIGNAL(clicked()), &app, SLOT(quit()), Qt::QueuedConnection); +connect(quitButton, &QPushButton::clicked, &app, &QCoreApplication::quit, Qt::QueuedConnection); //! [1] @@ -79,12 +79,12 @@ Q_COREAPP_STARTUP_FUNCTION(preRoutineMyDebugTool) //! [4] -static int *global_ptr = 0; +static int *global_ptr = nullptr; static void cleanup_ptr() { delete [] global_ptr; - global_ptr = 0; + global_ptr = nullptr; } void init_ptr() @@ -125,9 +125,9 @@ private: //! [6] static inline QString tr(const char *sourceText, - const char *comment = 0); + const char *comment = nullptr); static inline QString trUtf8(const char *sourceText, - const char *comment = 0); + const char *comment = nullptr); //! [6] diff --git a/src/corelib/doc/snippets/code/src_corelib_statemachine_qstatemachine.cpp b/src/corelib/doc/snippets/code/src_corelib_statemachine_qstatemachine.cpp index a606da1a0c..c756116de4 100644 --- a/src/corelib/doc/snippets/code/src_corelib_statemachine_qstatemachine.cpp +++ b/src/corelib/doc/snippets/code/src_corelib_statemachine_qstatemachine.cpp @@ -56,7 +56,7 @@ QState *s1 = new QState(); s1->assignProperty(&button, "text", "Click me"); QFinalState *s2 = new QFinalState(); -s1->addTransition(&button, SIGNAL(clicked()), s2); +s1->addTransition(&button, &QPushButton::clicked, s2); machine.addState(s1); machine.addState(s2); diff --git a/src/corelib/doc/snippets/code/src_corelib_thread_qfuturewatcher.cpp b/src/corelib/doc/snippets/code/src_corelib_thread_qfuturewatcher.cpp index 043974b25b..336c1e9c79 100644 --- a/src/corelib/doc/snippets/code/src_corelib_thread_qfuturewatcher.cpp +++ b/src/corelib/doc/snippets/code/src_corelib_thread_qfuturewatcher.cpp @@ -52,7 +52,7 @@ // Instantiate the objects and connect to the finished signal. MyClass myObject; QFutureWatcher watcher; -connect(&watcher, SIGNAL(finished()), &myObject, SLOT(handleFinished())); +connect(&watcher, QFutureWatcher::finished, &myObject, &MyClass::handleFinished); // Start the computation. QFuture future = QtConcurrent::run(...); diff --git a/src/corelib/doc/snippets/code/src_corelib_tools_qtimeline.cpp b/src/corelib/doc/snippets/code/src_corelib_tools_qtimeline.cpp index 004a810fce..80859d5ba5 100644 --- a/src/corelib/doc/snippets/code/src_corelib_tools_qtimeline.cpp +++ b/src/corelib/doc/snippets/code/src_corelib_tools_qtimeline.cpp @@ -56,10 +56,10 @@ progressBar->setRange(0, 100); // Construct a 1-second timeline with a frame range of 0 - 100 QTimeLine *timeLine = new QTimeLine(1000, this); timeLine->setFrameRange(0, 100); -connect(timeLine, SIGNAL(frameChanged(int)), progressBar, SLOT(setValue(int))); +connect(timeLine, &QTimeLine::frameChanged, progressBar, &QProgressBar::setValue); // Clicking the push button will start the progress bar animation pushButton = new QPushButton(tr("Start animation"), this); -connect(pushButton, SIGNAL(clicked()), timeLine, SLOT(start())); +connect(pushButton, &QPushButton::clicked, timeLine, &QTimeLine::start); ... //! [0] diff --git a/src/corelib/doc/snippets/qsignalmapper/buttonwidget.cpp b/src/corelib/doc/snippets/qsignalmapper/buttonwidget.cpp index e91c41b305..84a156bb6d 100644 --- a/src/corelib/doc/snippets/qsignalmapper/buttonwidget.cpp +++ b/src/corelib/doc/snippets/qsignalmapper/buttonwidget.cpp @@ -48,11 +48,10 @@ ** ****************************************************************************/ -#include -#include - #include "buttonwidget.h" +#include + //! [0] ButtonWidget::ButtonWidget(const QStringList &texts, QWidget *parent) : QWidget(parent) @@ -62,15 +61,16 @@ ButtonWidget::ButtonWidget(const QStringList &texts, QWidget *parent) QGridLayout *gridLayout = new QGridLayout; for (int i = 0; i < texts.size(); ++i) { QPushButton *button = new QPushButton(texts[i]); - connect(button, SIGNAL(clicked()), signalMapper, SLOT(map())); + connect(button, &QPushButton::clicked, + signalMapper, &QSignalMapper::map); //! [0] //! [1] signalMapper->setMapping(button, texts[i]); gridLayout->addWidget(button, i / 3, i % 3); } - connect(signalMapper, SIGNAL(mapped(QString)), + connect(signalMapper, QOverload::of(&QSignalMapper::mapped), //! [1] //! [2] - this, SIGNAL(clicked(QString))); + this, &ButtonWidget::clicked); setLayout(gridLayout); } @@ -84,7 +84,7 @@ ButtonWidget::ButtonWidget(const QStringList &texts, QWidget *parent) for (int i = 0; i < texts.size(); ++i) { QString text = texts[i]; QPushButton *button = new QPushButton(text); - connect(button, &QPushButton::clicked, [=] { clicked(text); }); + connect(button, &QPushButton::clicked, [this, text] { clicked(text); }); gridLayout->addWidget(button, i / 3, i % 3); } setLayout(gridLayout); diff --git a/src/corelib/doc/snippets/qsignalmapper/buttonwidget.h b/src/corelib/doc/snippets/qsignalmapper/buttonwidget.h index f55683c2d5..b9d59f8dd8 100644 --- a/src/corelib/doc/snippets/qsignalmapper/buttonwidget.h +++ b/src/corelib/doc/snippets/qsignalmapper/buttonwidget.h @@ -51,7 +51,7 @@ #ifndef BUTTONWIDGET_H #define BUTTONWIDGET_H -#include +#include class QSignalMapper; class QString; @@ -63,7 +63,7 @@ class ButtonWidget : public QWidget Q_OBJECT public: - ButtonWidget(const QStringList &texts, QWidget *parent = 0); + ButtonWidget(const QStringList &texts, QWidget *parent = nullptr); signals: void clicked(const QString &text); diff --git a/src/corelib/doc/snippets/resource-system/mainwindow.cpp b/src/corelib/doc/snippets/resource-system/mainwindow.cpp index 86e93aaa62..6dc525304c 100644 --- a/src/corelib/doc/snippets/resource-system/mainwindow.cpp +++ b/src/corelib/doc/snippets/resource-system/mainwindow.cpp @@ -68,10 +68,10 @@ MainWindow::MainWindow() readSettings(); - connect(textEdit->document(), SIGNAL(contentsChanged()), - this, SLOT(documentWasModified())); + connect(textEdit->document(), &QTextEdit::contentsChanged, + this, &QAction::documentWasModified); - setCurrentFile(""); + setCurrentFile(QString()); setUnifiedTitleAndToolBarOnMac(true); } //! [2] @@ -95,7 +95,7 @@ void MainWindow::newFile() { if (maybeSave()) { textEdit->clear(); - setCurrentFile(""); + setCurrentFile(QString()); } } //! [6] @@ -162,31 +162,31 @@ void MainWindow::createActions() newAct = new QAction(QIcon(":/images/new.png"), tr("&New"), this); newAct->setShortcuts(QKeySequence::New); newAct->setStatusTip(tr("Create a new file")); - connect(newAct, SIGNAL(triggered()), this, SLOT(newFile())); + connect(newAct, &QAction::triggered, this, &MainWindow::newFile); //! [19] openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this); openAct->setShortcuts(QKeySequence::Open); openAct->setStatusTip(tr("Open an existing file")); - connect(openAct, SIGNAL(triggered()), this, SLOT(open())); + connect(openAct, &QAction::triggered, this, &MainWindow::open); //! [18] //! [19] saveAct = new QAction(QIcon(":/images/save.png"), tr("&Save"), this); saveAct->setShortcuts(QKeySequence::Save); saveAct->setStatusTip(tr("Save the document to disk")); - connect(saveAct, SIGNAL(triggered()), this, SLOT(save())); + connect(saveAct, &QAction::triggered, this, &MainWindow::save); saveAsAct = new QAction(tr("Save &As..."), this); saveAsAct->setShortcuts(QKeySequence::SaveAs); saveAsAct->setStatusTip(tr("Save the document under a new name")); - connect(saveAsAct, SIGNAL(triggered()), this, SLOT(saveAs())); + connect(saveAsAct, &QAction::triggered, this, &MainWindow::saveAs); //! [20] exitAct = new QAction(tr("E&xit"), this); exitAct->setShortcuts(QKeySequence::Quit); //! [20] exitAct->setStatusTip(tr("Exit the application")); - connect(exitAct, SIGNAL(triggered()), this, SLOT(close())); + connect(exitAct, &QAction::triggered, this, &MainWindow::close); //! [21] cutAct = new QAction(QIcon(":/images/cut.png"), tr("Cu&t"), this); @@ -194,38 +194,38 @@ void MainWindow::createActions() cutAct->setShortcuts(QKeySequence::Cut); cutAct->setStatusTip(tr("Cut the current selection's contents to the " "clipboard")); - connect(cutAct, SIGNAL(triggered()), textEdit, SLOT(cut())); + connect(cutAct, &QAction::triggered, textEdit, &QTextEdit::cut); copyAct = new QAction(QIcon(":/images/copy.png"), tr("&Copy"), this); copyAct->setShortcuts(QKeySequence::Copy); copyAct->setStatusTip(tr("Copy the current selection's contents to the " "clipboard")); - connect(copyAct, SIGNAL(triggered()), textEdit, SLOT(copy())); + connect(copyAct, &QAction::triggered, textEdit, &QTextEdit::copy); pasteAct = new QAction(QIcon(":/images/paste.png"), tr("&Paste"), this); pasteAct->setShortcuts(QKeySequence::Paste); pasteAct->setStatusTip(tr("Paste the clipboard's contents into the current " "selection")); - connect(pasteAct, SIGNAL(triggered()), textEdit, SLOT(paste())); + connect(pasteAct, &QAction::triggered, textEdit, &QTextEdit::paste); aboutAct = new QAction(tr("&About"), this); aboutAct->setStatusTip(tr("Show the application's About box")); - connect(aboutAct, SIGNAL(triggered()), this, SLOT(about())); + connect(aboutAct, &QAction::triggered, this, &MainWindow::about); //! [22] aboutQtAct = new QAction(tr("About &Qt"), this); aboutQtAct->setStatusTip(tr("Show the Qt library's About box")); - connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt())); + connect(aboutQtAct, &QAction::triggered, qApp, &QApplication::aboutQt); //! [22] //! [23] cutAct->setEnabled(false); //! [23] //! [24] copyAct->setEnabled(false); - connect(textEdit, SIGNAL(copyAvailable(bool)), - cutAct, SLOT(setEnabled(bool))); - connect(textEdit, SIGNAL(copyAvailable(bool)), - copyAct, SLOT(setEnabled(bool))); + connect(textEdit, &QTextEdit::copyAvailable, + cutAct, &QAction::setEnabled); + connect(textEdit, &QTextEdit::copyAvailable, + copyAct, &QAction::setEnabled); } //! [24] diff --git a/src/corelib/doc/snippets/statemachine/main.cpp b/src/corelib/doc/snippets/statemachine/main.cpp index 8cd8b69e12..c399f4f199 100644 --- a/src/corelib/doc/snippets/statemachine/main.cpp +++ b/src/corelib/doc/snippets/statemachine/main.cpp @@ -48,13 +48,14 @@ ** ****************************************************************************/ -#include +#include int main(int argv, char **args) { QApplication app(argv, args); QLabel *label = new QLabel; + QPushButton *button = new QPushButton; //![0] QStateMachine machine; @@ -70,14 +71,14 @@ int main(int argv, char **args) //![4] //![5] - QObject::connect(s3, SIGNAL(entered()), button, SLOT(showMaximized())); - QObject::connect(s3, SIGNAL(exited()), button, SLOT(showMinimized())); + QObject::connect(s3, &QState::entered, button, &QPushButton:showMaximized); + QObject::connect(s3, &QState::exited, button, &QPushButton::showMinimized); //![5] //![1] - s1->addTransition(button, SIGNAL(clicked()), s2); - s2->addTransition(button, SIGNAL(clicked()), s3); - s3->addTransition(button, SIGNAL(clicked()), s1); + s1->addTransition(button, &QPushButton::clicked, s2); + s2->addTransition(button, &QPushButton::clicked, s3); + s3->addTransition(button, &QPushButton::clicked, s1); //![1] //![2] diff --git a/src/corelib/doc/snippets/statemachine/main2.cpp b/src/corelib/doc/snippets/statemachine/main2.cpp index 96eb912b14..dedd2d29bf 100644 --- a/src/corelib/doc/snippets/statemachine/main2.cpp +++ b/src/corelib/doc/snippets/statemachine/main2.cpp @@ -48,11 +48,11 @@ ** ****************************************************************************/ -#include +#include int main(int argv, char **args) { - QApplication app(argv, args); + QApplication app(argv, args); QStateMachine machine; @@ -66,16 +66,17 @@ int main(int argv, char **args) //![0] //![2] - s12->addTransition(quitButton, SIGNAL(clicked()), s12); + s12->addTransition(quitButton, &QPushButton::clicked, s12); //![2] //![1] QFinalState *s2 = new QFinalState(); - s1->addTransition(quitButton, SIGNAL(clicked()), s2); + s1->addTransition(quitButton, &QPushButton::clicked, s2); machine.addState(s2); machine.setInitialState(s1); - QObject::connect(&machine, SIGNAL(finished()), QApplication::instance(), SLOT(quit())); + QObject::connect(&machine, &QStateMachine::finished, + QCoreApplication::instance(), &QCoreApplication::quit); //![1] QButton *interruptButton = new QPushButton("Interrupt Button"); @@ -90,11 +91,11 @@ int main(int argv, char **args) mbox->addButton(QMessageBox::Ok); mbox->setText("Interrupted!"); mbox->setIcon(QMessageBox::Information); - QObject::connect(s3, SIGNAL(entered()), mbox, SLOT(exec())); + QObject::connect(s3, &QState::entered, mbox, &QMessageBox::exec); s3->addTransition(s1h); machine.addState(s3); - s1->addTransition(interruptButton, SIGNAL(clicked()), s3); + s1->addTransition(interruptButton, &QPushButton::clicked, s3); //![3] return app.exec(); diff --git a/src/corelib/doc/snippets/statemachine/main3.cpp b/src/corelib/doc/snippets/statemachine/main3.cpp index bc9a0e29c4..b665565aef 100644 --- a/src/corelib/doc/snippets/statemachine/main3.cpp +++ b/src/corelib/doc/snippets/statemachine/main3.cpp @@ -62,7 +62,7 @@ int main(int argv, char **args) //![0] //![1] - s1->addTransition(s1, SIGNAL(finished()), s2); + s1->addTransition(s1, &QState::finished, s2); //![1] return app.exec(); diff --git a/src/corelib/doc/snippets/statemachine/main5.cpp b/src/corelib/doc/snippets/statemachine/main5.cpp index 38bb2cb475..d701f51e2b 100644 --- a/src/corelib/doc/snippets/statemachine/main5.cpp +++ b/src/corelib/doc/snippets/statemachine/main5.cpp @@ -98,7 +98,7 @@ int main(int argv, char **args) s1->assignProperty(button, "geometry", QRectF(0, 0, 50, 50)); s2->assignProperty(button, "geometry", QRectF(0, 0, 100, 100)); - s1->addTransition(button, SIGNAL(clicked()), s2); + s1->addTransition(button, &QPushButton::clicked, s2); //![3] } @@ -111,7 +111,7 @@ int main(int argv, char **args) s1->assignProperty(button, "geometry", QRectF(0, 0, 50, 50)); s2->assignProperty(button, "geometry", QRectF(0, 0, 100, 100)); - QSignalTransition *transition = s1->addTransition(button, SIGNAL(clicked()), s2); + QSignalTransition *transition = s1->addTransition(button, &QPushButton::clicked, s2); transition->addAnimation(new QPropertyAnimation(button, "geometry")); //![4] @@ -130,9 +130,9 @@ int main(int argv, char **args) QState *s2 = new QState(); s2->assignProperty(button, "geometry", QRectF(0, 0, 50, 50)); - connect(s2, SIGNAL(entered()), messageBox, SLOT(exec())); + connect(s2, &QState::entered, messageBox, SLOT(exec())); - s1->addTransition(button, SIGNAL(clicked()), s2); + s1->addTransition(button, &QPushButton::clicked, s2); //![5] } @@ -151,10 +151,10 @@ int main(int argv, char **args) s2->assignProperty(button, "geometry", QRectF(0, 0, 50, 50)); QState *s3 = new QState(); - connect(s3, SIGNAL(entered()), messageBox, SLOT(exec())); + connect(s3, &QState::entered, messageBox, SLOT(exec())); - s1->addTransition(button, SIGNAL(clicked()), s2); - s2->addTransition(s2, SIGNAL(propertiesAssigned()), s3); + s1->addTransition(button, &QPushButton::clicked, s2); + s2->addTransition(s2, &QState::propertiesAssigned, s3); //![6] } diff --git a/src/corelib/doc/snippets/timers/analogclock.cpp b/src/corelib/doc/snippets/timers/analogclock.cpp index 4e1957a450..3edfce3235 100644 --- a/src/corelib/doc/snippets/timers/analogclock.cpp +++ b/src/corelib/doc/snippets/timers/analogclock.cpp @@ -61,7 +61,7 @@ AnalogClock::AnalogClock(QWidget *parent) //! [3] //! [4] QTimer *timer = new QTimer(this); //! [4] //! [5] - connect(timer, SIGNAL(timeout()), this, SLOT(update())); + connect(timer, &QTimer::timeout, this, QOverload<>::of(&AnalogClock::update)); //! [5] //! [6] timer->start(1000); //! [6] diff --git a/src/corelib/doc/snippets/timers/timers.cpp b/src/corelib/doc/snippets/timers/timers.cpp index 5f95899af2..eb0c82c625 100644 --- a/src/corelib/doc/snippets/timers/timers.cpp +++ b/src/corelib/doc/snippets/timers/timers.cpp @@ -61,13 +61,13 @@ Foo::Foo() //! [0] QTimer *timer = new QTimer(this); //! [0] //! [1] - connect(timer, SIGNAL(timeout()), this, SLOT(updateCaption())); + connect(timer, &QTimer::timeout, this, &Foo::updateCaption); //! [1] //! [2] timer->start(1000); //! [2] //! [3] - QTimer::singleShot(200, this, SLOT(updateCaption())); + QTimer::singleShot(200, this, &Foo::updateCaption); //! [3] { @@ -75,7 +75,7 @@ Foo::Foo() //! [4] QTimer *timer = new QTimer(this); //! [4] //! [5] - connect(timer, SIGNAL(timeout()), this, SLOT(processOneThing())); + connect(timer, &QTimer::timeout, this, &Foo::processOneThing); //! [5] //! [6] timer->start(); //! [6] diff --git a/src/corelib/doc/src/animation.qdoc b/src/corelib/doc/src/animation.qdoc index 0c1b2aed17..9cbe50d4a9 100644 --- a/src/corelib/doc/src/animation.qdoc +++ b/src/corelib/doc/src/animation.qdoc @@ -356,11 +356,11 @@ state2->assignProperty(button, "geometry", QRect(250, 250, 100, 30)); QSignalTransition *transition1 = state1->addTransition(button, - SIGNAL(clicked()), state2); + &QPushButton::clicked, state2); transition1->addAnimation(new QPropertyAnimation(button, "geometry")); QSignalTransition *transition2 = state2->addTransition(button, - SIGNAL(clicked()), state1); + &QPushButton::clicked, state1); transition2->addAnimation(new QPropertyAnimation(button, "geometry")); machine->start(); diff --git a/src/corelib/doc/src/statemachine.qdoc b/src/corelib/doc/src/statemachine.qdoc index 43c8497ef2..881a0785c6 100644 --- a/src/corelib/doc/src/statemachine.qdoc +++ b/src/corelib/doc/src/statemachine.qdoc @@ -323,12 +323,12 @@ QState *s1 = new QState(&machine); QPushButton button; - QSignalTransition *trans = new QSignalTransition(&button, SIGNAL(clicked())); + QSignalTransition *trans = new QSignalTransition(&button, &QPushButton::clicked); s1->addTransition(trans); QMessageBox msgBox; msgBox.setText("The button was clicked; carry on."); - QObject::connect(trans, SIGNAL(triggered()), &msgBox, SLOT(exec())); + QObject::connect(trans, QSignalTransition::triggered, &msgBox, &QMessageBox::exec); machine.setInitialState(s1); \endcode -- cgit v1.2.3