* 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