* Update CXX Standard to 14 to be able to use qOverload()
---
 configure.ac        |  4 +--
 src/callmanager.cpp | 22 ++++++-------
 src/control.cpp     | 77 +++++++++++++++++++++------------------------
 src/phonesim.cpp    | 56 +++++++++++++++++----------------
 src/phonesim.h      |  3 +-
 5 files changed, 80 insertions(+), 82 deletions(-)

diff --git a/configure.ac b/configure.ac
index e339691..5cc4545 100644
--- a/configure.ac
+++ b/configure.ac
@@ -25,8 +25,8 @@ AC_ARG_ENABLE(optimization, 
AC_HELP_STRING([--disable-optimization],
 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Xml Qt5Network Qt5Script Qt5DBus 
Qt5Widgets, dummy=yes,
                                                AC_MSG_ERROR(Qt is required))

-# Needed for Qt 5.7
-CXXFLAGS="$CXXFLAGS --std=gnu++11"
+# Needed for qOverload
+CXXFLAGS="$CXXFLAGS --std=gnu++14"

 AC_SUBST(QT_CFLAGS)
 AC_SUBST(QT_LIBS)
diff --git a/src/callmanager.cpp b/src/callmanager.cpp
index 1995c6d..fbdb179 100644
--- a/src/callmanager.cpp
+++ b/src/callmanager.cpp
@@ -33,11 +33,11 @@ CallManager::CallManager( QObject *parent )

     hangupTimer = new QTimer(this);
     hangupTimer->setSingleShot(true);
-    connect( hangupTimer, SIGNAL(timeout()), this, SLOT(hangupTimeout()) );
+    connect( hangupTimer, &QTimer::timeout, this, &CallManager::hangupTimeout 
);

     ringTimer = new QTimer(this);
     ringTimer->setSingleShot(true);
-    connect( ringTimer, SIGNAL(timeout()), this, SLOT(sendNextRing()) );
+    connect( ringTimer, &QTimer::timeout, this, &CallManager::sendNextRing );
 }

 CallManager::~CallManager()
@@ -92,19 +92,19 @@ bool CallManager::command( const QString& cmd )
         // Check for special dial-back numbers.
         if ( number == "199" ) {
             send( "NO CARRIER" );
-            QTimer::singleShot( 5000, this, SLOT(dialBack()) );
+            QTimer::singleShot( 5000, this, &CallManager::dialBack );
             return true;
         } else if ( number == "1993" ) {
             send( "NO CARRIER" );
-            QTimer::singleShot( 30000, this, SLOT(dialBack()) );
+            QTimer::singleShot( 30000, this, &CallManager::dialBack );
             return true;
         } else if ( number == "177" ) {
             send( "NO CARRIER" );
-            QTimer::singleShot( 2000, this, SLOT(dialBackWithHangup5()) );
+            QTimer::singleShot( 2000, this, &CallManager::dialBackWithHangup5 
);
             return true;
         } else if ( number == "166" ) {
             send( "NO CARRIER" );
-            QTimer::singleShot( 1000, this, SLOT(dialBackWithHangup4()) );
+            QTimer::singleShot( 1000, this, &CallManager::dialBackWithHangup4 
);
             return true;
         } else if ( number == "155" ) {
             send( "BUSY" );
@@ -156,11 +156,11 @@ bool CallManager::command( const QString& cmd )

         // Automatic accept of calls
         if ( number == "6789" ) {
-            QTimer::singleShot( 1000, this, SLOT(dialingToConnected()) );
+            QTimer::singleShot( 1000, this, &CallManager::dialingToConnected );
         } else if ( number.startsWith( "05123" ) ) {
-            QTimer::singleShot( 1000, this, SLOT(dialingToConnected()) );
+            QTimer::singleShot( 1000, this, &CallManager::dialingToConnected );
         } else if ( number.startsWith( "06123" ) ) {
-            QTimer::singleShot( 1000, this, SLOT(dialingToAlerting()) );
+            QTimer::singleShot( 1000, this, &CallManager::dialingToAlerting );
         }

     // Data call - phone number 696969
@@ -726,7 +726,7 @@ void CallManager::dialingToConnected()
         temp = temp.replace( "05123" , "" );
         int timeout = temp.toInt( &ok, 10 );
         timeout = ok ? timeout * 1000 : 10000;
-        QTimer::singleShot( timeout, this, SLOT(hangup()) );
+        QTimer::singleShot( timeout, this, &CallManager::hangup );
     }
 }

@@ -750,7 +750,7 @@ void CallManager::dialingToAlerting()
         temp = temp.replace( "06123" , "" );
         int timeout = temp.toInt( &ok, 10 );
         timeout = ok ? timeout * 1000 : 10000;
-        QTimer::singleShot( timeout, this, SLOT(dialingToConnected()) );
+        QTimer::singleShot( timeout, this, &CallManager::dialingToConnected );
     }
 }

diff --git a/src/control.cpp b/src/control.cpp
index 1ea5294..d4732b7 100644
--- a/src/control.cpp
+++ b/src/control.cpp
@@ -63,34 +63,34 @@ ControlWidget::ControlWidget(const QString &ruleFile, 
Control *parent)

     bus.registerObject("/", script, QDBusConnection::ExportAllSlots);

-    connect(ui->hsSignalQuality, SIGNAL(valueChanged(int)), this, 
SLOT(sendSQ()));
-    connect(ui->hsBatteryCharge, SIGNAL(valueChanged(int)), this, 
SLOT(sendBC()));
-    connect(ui->hsBatteryCharging, SIGNAL(stateChanged(int)), this, 
SLOT(chargingChanged(int)));
-    connect(ui->pbSelectOperator, SIGNAL(clicked()), this, SLOT(sendOPS()));
-    connect(ui->pbRegistration, SIGNAL(clicked()), this, SLOT(sendREG()));
-    connect(ui->pbSendCellBroadcast, SIGNAL(clicked()), this, SLOT(sendCBM()));
-    connect(ui->pbSendSMSMessage, SIGNAL(clicked()), this, 
SLOT(sendSMSMessage()));
-    connect(ui->pbFile, SIGNAL(clicked()), this, SLOT(selectFile()));
-    connect(ui->pbSendSMSDatagram, SIGNAL(clicked()), this, 
SLOT(sendSMSDatagram()));
-    connect(ui->pbIncomingCall, SIGNAL(clicked()), this, SLOT(sendCall()));
-    connect(ui->openSpecButton, SIGNAL(clicked()), this, 
SLOT(resetTranslator()));
-    connect(ui->atCheckBox, SIGNAL(clicked()), this, SLOT(atChanged()));
-    connect(ui->pbAddMessage, SIGNAL(clicked()), this, SLOT(addVoicemail()));
-    connect(ui->pbRemoveMessage, SIGNAL(clicked()), this, 
SLOT(delVoicemail()));
-    connect(ui->pbNotifyUDH, SIGNAL(clicked()), this, SLOT(sendVMNotify()));
-    connect(ui->pbNotifyUDHEnhanced, SIGNAL(clicked()), this, 
SLOT(sendEVMNotify()));
-    connect(ui->pbSendUSSD, SIGNAL(clicked()), this, SLOT(sendUSSD()));
-    connect(ui->pbCancelUSSD, SIGNAL(clicked()), this, SLOT(cancelUSSD()));
-    connect(ui->cbSimInserted, SIGNAL(clicked()), this, 
SLOT(simInsertRemove()));
-    connect(ui->pbStart, SIGNAL(clicked()), this, SLOT(simAppStart()));
-    connect(ui->pbAbort, SIGNAL(clicked()), this, SLOT(simAppAbort()));
-    connect(ui->pbReset, SIGNAL(clicked()), this, SLOT(modemSilentReset()));
-    connect(ui->pbSendGNSSData, SIGNAL(clicked()), this, SLOT(sendGNSSData()));
-    connect(ui->pbGNSSDefault, SIGNAL(clicked()), this, 
SLOT(setDefaultGNSSData()));
-    connect(ui->pbSendNotif, SIGNAL(clicked()), this, SLOT(sendCSSN()));
-    connect(ui->pbAlerting, SIGNAL(clicked()), this, SLOT(setStateAlerting()));
-    connect(ui->pbActive, SIGNAL(clicked()), this, SLOT(setStateConnected()));
-    connect(ui->pbHangup, SIGNAL(clicked()), this, SLOT(setStateHangup()));
+    connect(ui->hsSignalQuality, &QSlider::valueChanged, this, 
&ControlWidget::sendSQ);
+    connect(ui->hsBatteryCharge, &QSlider::valueChanged, this, 
&ControlWidget::sendBC);
+    connect(ui->hsBatteryCharging, &QCheckBox::stateChanged, this, 
&ControlWidget::chargingChanged);
+    connect(ui->pbSelectOperator, &QPushButton::clicked, this, 
&ControlWidget::sendOPS);
+    connect(ui->pbRegistration, &QPushButton::clicked, this, 
&ControlWidget::sendREG);
+    connect(ui->pbSendCellBroadcast, &QPushButton::clicked, this, 
&ControlWidget::sendCBM);
+    connect(ui->pbSendSMSMessage, &QPushButton::clicked, this, 
&ControlWidget::sendSMSMessage);
+    connect(ui->pbFile, &QPushButton::clicked, this, 
&ControlWidget::selectFile);
+    connect(ui->pbSendSMSDatagram, &QPushButton::clicked, this, 
&ControlWidget::sendSMSDatagram);
+    connect(ui->pbIncomingCall, &QPushButton::clicked, this, 
&ControlWidget::sendCall);
+    connect(ui->openSpecButton, &QPushButton::clicked, this, 
&ControlWidget::resetTranslator);
+    connect(ui->atCheckBox, &QCheckBox::clicked, this, 
&ControlWidget::atChanged);
+    connect(ui->pbAddMessage, &QPushButton::clicked, this, 
&ControlWidget::addVoicemail);
+    connect(ui->pbRemoveMessage, &QPushButton::clicked, this, 
&ControlWidget::delVoicemail);
+    connect(ui->pbNotifyUDH, &QPushButton::clicked, this, 
&ControlWidget::sendVMNotify);
+    connect(ui->pbNotifyUDHEnhanced, &QPushButton::clicked, this, 
&ControlWidget::sendEVMNotify);
+    connect(ui->pbSendUSSD, &QPushButton::clicked, this, 
&ControlWidget::sendUSSD);
+    connect(ui->pbCancelUSSD, &QPushButton::clicked, this, 
&ControlWidget::cancelUSSD);
+    connect(ui->cbSimInserted, &QCheckBox::clicked, this, 
&ControlWidget::simInsertRemove);
+    connect(ui->pbStart, &QPushButton::clicked, this, 
&ControlWidget::simAppStart);
+    connect(ui->pbAbort, &QPushButton::clicked, this, 
&ControlWidget::simAppAbort);
+    connect(ui->pbReset, &QPushButton::clicked, this, 
&ControlWidget::modemSilentReset);
+    connect(ui->pbSendGNSSData, &QPushButton::clicked, this, 
&ControlWidget::sendGNSSData);
+    connect(ui->pbGNSSDefault, &QPushButton::clicked, this, 
&ControlWidget::setDefaultGNSSData);
+    connect(ui->pbSendNotif, &QPushButton::clicked, this, 
&ControlWidget::sendCSSN);
+    connect(ui->pbAlerting, &QPushButton::clicked, this, 
&ControlWidget::setStateAlerting);
+    connect(ui->pbActive, &QPushButton::clicked, this, 
&ControlWidget::setStateConnected);
+    connect(ui->pbHangup, &QPushButton::clicked, this, 
&ControlWidget::setStateHangup);

     QStringList headers;
     headers << "Sender" << "Priority" << "Notification Status";
@@ -120,19 +120,14 @@ Control::Control(const QString& ruleFile, SimRules *sr, 
QObject *parent)
         : HardwareManipulator(sr, parent),
         widget(new ControlWidget(ruleFile, this))
 {
-    QList<QByteArray> proxySignals;
-    proxySignals
-        << SIGNAL(unsolicitedCommand(QString))
-        << SIGNAL(command(QString))
-        << SIGNAL(variableChanged(QString,QString))
-        << SIGNAL(switchTo(QString))
-        << SIGNAL(startIncomingCall(QString, QString, QString))
-        << SIGNAL(stateChangedToAlerting())
-        << SIGNAL(stateChangedToConnected())
-        << SIGNAL(stateChangedToHangup(int));
-
-    foreach (QByteArray sig, proxySignals)
-        connect(widget, sig, this, sig);
+    connect(widget, &ControlWidget::unsolicitedCommand, this, 
&Control::unsolicitedCommand);
+    connect(widget, &ControlWidget::command, this, &Control::command);
+    connect(widget, &ControlWidget::variableChanged, this, 
&Control::variableChanged);
+    connect(widget, &ControlWidget::switchTo, this, &Control::switchTo);
+    connect(widget, &ControlWidget::startIncomingCall, this, 
&Control::startIncomingCall);
+    connect(widget, &ControlWidget::stateChangedToAlerting, this, 
&Control::stateChangedToAlerting);
+    connect(widget, &ControlWidget::stateChangedToConnected, this, 
&Control::stateChangedToConnected);
+    connect(widget, &ControlWidget::stateChangedToHangup, this, 
&Control::stateChangedToHangup);
 }

 Control::~Control()
diff --git a/src/phonesim.cpp b/src/phonesim.cpp
index ba99fd0..1fd3c15 100644
--- a/src/phonesim.cpp
+++ b/src/phonesim.cpp
@@ -31,6 +31,7 @@
 #include <qbytearray.h>
 #include <qregexp.h>
 #include <qdebug.h>
+#include <qglobal.h>

 #define PHONEBOOK_NLENGTH 32
 #define PHONEBOOK_TLENGTH 16
@@ -362,8 +363,8 @@ bool SimChat::command( const QString& cmd )

             timer->setSingleShot( true );

-            connect(timer, SIGNAL(timeout()), this->state()->rules(),
-                    SLOT(delaySetVariable()));
+            connect(timer, &QTimer::timeout, this->state()->rules(),
+                    &SimRules::delaySetVariable);
             timer->start( delay );
         } else
             state()->rules()->setVariable( variable, val );
@@ -464,7 +465,7 @@ SimUnsolicited::SimUnsolicited( SimState *state, 
SimXmlNode& e )

     timer = new QTimer( this );
     timer->setSingleShot( true );
-    connect( timer, SIGNAL(timeout()), this, SLOT(timeout()) );
+    connect( timer, &QTimer::timeout, this, &SimUnsolicited::timeout );
 }


@@ -527,35 +528,36 @@ SimRules::SimRules(qintptr fd, QObject *p,  const 
QString& filename, HardwareMan
         machine = hmf->create(this, nullptr);

     if (machine) {
-        connect(machine, SIGNAL(unsolicitedCommand(QString)),
-                this, SLOT(unsolicited(QString)));
-        connect(machine, SIGNAL(command(QString)),
-                this, SLOT(command(QString)));
-        connect(machine, SIGNAL(variableChanged(QString,QString)),
-                this, SLOT(setVariable(QString,QString)));
-        connect(machine, SIGNAL(switchTo(QString)),
-                this, SLOT(switchTo(QString)));
+        connect(machine, &HardwareManipulator::unsolicitedCommand,
+                this, &SimRules::unsolicited);
+        connect(machine, &HardwareManipulator::command,
+                this, &SimRules::command);
+        connect(machine, &HardwareManipulator::variableChanged,
+                this, &SimRules::setVariable);
+        connect(machine, &HardwareManipulator::switchTo,
+                this, &SimRules::switchTo);
     }

+
     _callManager = new CallManager(this);
-    connect( _callManager, SIGNAL(send(QString)),
-             this, SLOT(respond(QString)) );
-    connect( _callManager, SIGNAL(unsolicited(QString)),
-             this, SLOT(unsolicited(QString)) );
-    connect( _callManager, SIGNAL(dialCheck(QString,bool&)),
-             this, SLOT(dialCheck(QString,bool&)) );
+    connect( _callManager, &CallManager::send,
+             this, qOverload<const QString &>( &SimRules::respond ) );
+    connect( _callManager, &CallManager::unsolicited,
+             this, &SimRules::unsolicited );
+    connect( _callManager, &CallManager::dialCheck,
+             this, &SimRules::dialCheck );

     if ( machine ) {
-        connect( machine, SIGNAL(startIncomingCall(QString,QString,QString)),
-                 _callManager, 
SLOT(startIncomingCall(QString,QString,QString)) );
-        connect ( _callManager, SIGNAL( callStatesChanged( QList<CallInfo> * ) 
),
-                  machine, SLOT( callManagement( QList<CallInfo> * ) ) );
-        connect ( machine, SIGNAL( stateChangedToAlerting() ), _callManager,
-                SLOT( dialingToAlerting() ) );
-        connect ( machine, SIGNAL( stateChangedToConnected() ), _callManager,
-                SLOT( dialingToConnected() ) );
-        connect ( machine, SIGNAL( stateChangedToHangup( int ) ), _callManager,
-                SLOT( hangupRemote( int ) ) );
+        connect( machine, &HardwareManipulator::startIncomingCall, 
_callManager,
+                 qOverload<const QString &, const QString &, const QString &>( 
&CallManager::startIncomingCall ) );
+        connect ( _callManager, &CallManager::callStatesChanged,
+                  machine, &HardwareManipulator::callManagement);
+        connect ( machine, &HardwareManipulator::stateChangedToAlerting, 
_callManager,
+                &CallManager::dialingToAlerting );
+        connect ( machine, &HardwareManipulator::stateChangedToConnected, 
_callManager,
+                &CallManager::dialingToConnected );
+        connect ( machine, &HardwareManipulator::stateChangedToHangup, 
_callManager,
+                &CallManager::hangupRemote );
     }

     connect(this,SIGNAL(readyRead()),
diff --git a/src/phonesim.h b/src/phonesim.h
index 65ea794..ac5084d 100644
--- a/src/phonesim.h
+++ b/src/phonesim.h
@@ -300,6 +300,8 @@ public slots:
     // Set a variable to a new value.
     void setVariable( const QString& name, const QString& value );

+    void delaySetVariable();
+
     // Switch to a new simulator state.
     void switchTo(const QString& name);

@@ -320,7 +322,6 @@ private slots:
     void tryReadCommand();
     void destruct();
     void delayTimeout();
-    void delaySetVariable();
     void dialCheck( const QString& number, bool& ok );

 private:
--
2.24.0
_______________________________________________
ofono mailing list -- ofono@ofono.org
To unsubscribe send an email to ofono-le...@ofono.org

Reply via email to