SimApp::SimApp(QWidget *parent, Qt::WFlags f) : QMainWindow(parent, f), view(0), notification(0), hasStk(false), simToolkitAvailable(false), eventList(0), idleModeMsgId(0), failLabel(0), commandOutsideMenu(false), hasSustainedDisplayText(false) { status = new QValueSpaceObject("/Telephony/Status", this); setWindowTitle(tr("SIM Applications")); stack = new QStackedWidget(this); stack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) ); setCentralWidget(stack); stk = new QSimToolkit( QString(), this ); iconReader = 0; connect(stk, SIGNAL(command(QSimCommand)), this, SLOT(simCommand(QSimCommand))); connect(stk, SIGNAL(beginFailed()), this, SLOT(beginFailed())); QSimInfo *simInfo = new QSimInfo(QString(), this); connect(simInfo, SIGNAL(removed()), this, SLOT(simRemoved())); #ifndef QTOPIA_TEST waitDlg = new DelayedWaitDialog( this ); waitDlg->setText( tr( "Waiting for response..." ) ); waitDlg->setDelay( 500 ); #endif }
/*! \internal Construct a new CellModemManager with the appropriate \a parent. Only one instance of CellModemManager may be constructed. */ CellModemManager::CellModemManager(QObject *parent) : QAbstractCallPolicyManager(parent), d(new CellModemManagerPrivate) { Q_ASSERT(!cellModemManagerInstance); cellModemManagerInstance = true; d->m_status = new QValueSpaceObject("/Telephony/Status", this); d->m_status->setAttribute("ModemStatus", "Initializing"); QValueSpaceItem *simToolkitAvailable; simToolkitAvailable = new QValueSpaceItem ("/Telephony/Status/SimToolkit/Available", this); connect(simToolkitAvailable, SIGNAL(contentsChanged()), this, SLOT(simToolkitAvailableChange())); // Check for modem QServiceChecker checker("modem"); if(!checker.isValid()) { d->m_aerialOn = false; d->m_state = NoCellModem; updateStatus(); return; } d->m_netReg = new QNetworkRegistration("modem", this); d->m_regState = d->m_netReg->registrationState(); d->m_operator = d->m_netReg->currentOperatorName(); QObject::connect(d->m_netReg, SIGNAL(registrationStateChanged()), this, SLOT(registrationStateChanged())); QObject::connect(d->m_netReg, SIGNAL(currentOperatorChanged()), this, SLOT(currentOperatorChanged())); // Rename signal for QAbstractCallPolicyManager. QObject::connect(this, SIGNAL(registrationStateChanged(QTelephony::RegistrationState)), this, SIGNAL(registrationChanged(QTelephony::RegistrationState))); d->m_pinManager = new QPinManager("modem", this); QObject::connect(d->m_pinManager, SIGNAL(pinStatus(QString,QPinManager::Status,QPinOptions)), this, SLOT(pinStatus(QString,QPinManager::Status,QPinOptions)) ); d->m_rfFunc = new QPhoneRfFunctionality("modem", this); QObject::connect(d->m_rfFunc, SIGNAL(levelChanged()), this, SLOT(rfLevelChanged())); d->m_callForwarding = new QCallForwarding("modem", this); QObject::connect(d->m_callForwarding, SIGNAL(forwardingStatus(QCallForwarding::Reason,QList<QCallForwarding::Status>)), this, SLOT(forwardingStatus(QCallForwarding::Reason,QList<QCallForwarding::Status>))); QSimInfo *simInfo = new QSimInfo( "modem", this ); connect( simInfo, SIGNAL(removed()), this, SLOT(simRemoved()) ); connect( simInfo, SIGNAL(inserted()), this, SLOT(simInserted()) ); if(::profilesControlModem) { d->m_profiles = new QPhoneProfileManager(this); d->m_aerialOn = !d->m_profiles->planeMode(); QObject::connect(d->m_profiles, SIGNAL(planeModeChanged(bool)), this, SLOT(planeModeChanged(bool))); } // If plane mode isn't an option, then we have to fully initialize the modem // each time if(!planeModeSupported()) d->m_aerialOn = true; setAerialEnabled(d->m_aerialOn); updateStatus(); doInitialize(); }