diff options
| author | Christian Kamm <christian.d.kamm@nokia.com> | 2011-09-12 11:09:18 +0200 |
|---|---|---|
| committer | Christian Kamm <christian.d.kamm@nokia.com> | 2011-09-12 11:10:16 +0200 |
| commit | 57e1fac8bf74080c4b3614b400510606dba69c56 (patch) | |
| tree | 0df58336abc1f502df5f8b4ad9903ce3410848be | |
| parent | 09885bb1b583a616fc5ef61508e75565c5a7f93d (diff) | |
Allow choosing which com.nokia.extras QML module to use.
Done-with: owolff
| -rw-r--r-- | src/main.cpp | 2 | ||||
| -rw-r--r-- | src/other/applicationmanager.cpp | 27 | ||||
| -rw-r--r-- | src/other/applicationmanager.h | 4 | ||||
| -rw-r--r-- | src/ui/applicationui.cpp | 40 | ||||
| -rw-r--r-- | src/ui/applicationui.h | 12 | ||||
| -rw-r--r-- | src/ui/mainwindow.cpp | 4 |
6 files changed, 83 insertions, 6 deletions
diff --git a/src/main.cpp b/src/main.cpp index 05e1501..9786cd0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -84,7 +84,7 @@ static void registerSimulator(const QString &location) settings->beginGroup(SIMULATOR_APP_QT_VERSIONS_KEY); QList<QString> supportedQtVersion; - supportedQtVersion << "4.7.4.0" << "4.8.0.0"; + supportedQtVersion << "4.7.4.0" << "4.7.4.1" << "4.8.0.0" << "4.8.0.1"; foreach(const QString &version, supportedQtVersion) { QList<QString> simulators; QVariant value = settings->value(version); diff --git a/src/other/applicationmanager.cpp b/src/other/applicationmanager.cpp index 3b45b2e..a391187 100644 --- a/src/other/applicationmanager.cpp +++ b/src/other/applicationmanager.cpp @@ -36,6 +36,7 @@ #include "deviceitem.h" #include "widgetmanager.h" #include "widget.h" +#include "applicationui.h" #include <QtCore/QTimer> #include <QtGui/QLayout> @@ -267,6 +268,15 @@ void ApplicationManager::handleConnection() return; } + // send platform to use for com.nokia.extras + const VersionStruct qtVersion = cmd.request.version; + if (qtVersion >= VersionStruct(4, 7, 4, 1) + && qtVersion != VersionStruct(4, 7, 8, 0)) { + int comNokiaExtrasPlatform = mApplicationUi->comNokiaExtrasPlatform(); + qt_blockingWrite( + socket, reinterpret_cast<const char *>(&comNokiaExtrasPlatform), sizeof(int), 500); + } + // success: register new application gAppIdCounter++; Application *app = new Application(QString::fromLatin1(cmd.request.applicationName), @@ -306,6 +316,11 @@ void ApplicationManager::setWidgetManager(WidgetManager *widMan) mDisplayInfo.hostDpi = QSize(desktop->logicalDpiX(), desktop->logicalDpiY()); } +void ApplicationManager::setApplicationUi(ApplicationUi *applicationUi) +{ + mApplicationUi = applicationUi; +} + QString ApplicationManager::fontDirectory() { return mFontDirectory; @@ -409,3 +424,15 @@ void ApplicationManager::updateMobilityVersion(int appId, VersionStruct version) } } } + +void ApplicationManager::recommendRestartIfAppRunning() +{ + if (mApps.isEmpty()) + return; + + QMessageBox errorMsg; + errorMsg.setWindowTitle(tr("Application Restart Required")); + errorMsg.setText(tr("This change might require all running applications to be restarted.")); + errorMsg.setIcon(QMessageBox::Warning); + errorMsg.exec(); +} diff --git a/src/other/applicationmanager.h b/src/other/applicationmanager.h index ecfe558..1228b2b 100644 --- a/src/other/applicationmanager.h +++ b/src/other/applicationmanager.h @@ -43,6 +43,7 @@ class PhononManager; class WidgetManager; class QLocalServer; class QMenuBar; +class ApplicationUi; struct DeviceData; class ApplicationManager : public QObject @@ -55,6 +56,7 @@ public: Application* applicationForId(int); void setPhononManager(PhononManager *manager); void setWidgetManager(WidgetManager *widMan); + void setApplicationUi(ApplicationUi *applicationUi); inline QWidget* logWidget() { return mConfigWidget; } QString fontDirectory(); @@ -81,6 +83,7 @@ public slots: void killAllApplications(); void updateDisplayInformation(const QSize &resolution, const DeviceData &device); void updateMobilityVersion(int appId, VersionStruct version); + void recommendRestartIfAppRunning(); protected slots: void watchDogTimer(); @@ -97,6 +100,7 @@ private: ApplicationTableWidget *mTableWidget; QWidget *mConfigWidget; QString mFontDirectory; + ApplicationUi *mApplicationUi; bool mSimulatorStarted; diff --git a/src/ui/applicationui.cpp b/src/ui/applicationui.cpp index 9f7a490..7652449 100644 --- a/src/ui/applicationui.cpp +++ b/src/ui/applicationui.cpp @@ -37,6 +37,8 @@ #include <QtGui/QHBoxLayout> #include <QtGui/QPushButton> #include <QtGui/QMenuBar> +#include <QtGui/QComboBox> +#include <QtCore/QSettings> #include "widget.h" ApplicationUi::ApplicationUi(QWidget *parent) : @@ -60,12 +62,19 @@ ApplicationUi::ApplicationUi(QWidget *parent) : optionsList << item; QPushButton *exitButton = new QPushButton(tr("Quit")); - item->setTags(QStringList() << "quit"); item = new OptionsItem(tr("Quit current application"), exitButton); + item->setTags(QStringList() << "quit"); optionsList << item; - connect(exitButton, SIGNAL(clicked()), SIGNAL(exitButtonClicked())); + mComNokiaExtrasChooser = new QComboBox; + mComNokiaExtrasChooser->addItem(tr("Symbian"), QVariant(QtSimulatorPrivate::SymbianComNokiaExtras)); + mComNokiaExtrasChooser->addItem(tr("Harmattan"), QVariant(QtSimulatorPrivate::HarmattanComNokiaExtras)); + connect(mComNokiaExtrasChooser, SIGNAL(currentIndexChanged(int)), SIGNAL(comNokiaExtrasChanged())); + item = new OptionsItem(tr("Choose com.nokia.extras platform"), mComNokiaExtrasChooser); + item->setTags(QStringList() << "extras"); + optionsList << item; + setTitle(tr("Application")); setOptions(optionsList); } @@ -100,3 +109,30 @@ QIcon ApplicationUi::icon() const { return QIcon(":/ui/icons/application.png"); } + +QtSimulatorPrivate::ComNokiaExtrasPlatform ApplicationUi::comNokiaExtrasPlatform() const +{ + return static_cast<QtSimulatorPrivate::ComNokiaExtrasPlatform>( + mComNokiaExtrasChooser->itemData(mComNokiaExtrasChooser->currentIndex()).toInt()); +} + +void ApplicationUi::writeSettings(QSettings &settings) const +{ + ToolBoxPage::writeSettings(settings); + + settings.beginGroup("ApplicationUiWidget"); + settings.setValue("comNokiaExtrasChooser", mComNokiaExtrasChooser->currentIndex()); + settings.endGroup(); +} + +void ApplicationUi::readSettings(QSettings &settings) +{ + ToolBoxPage::readSettings(settings); + + settings.beginGroup("ApplicationUiWidget"); + if (settings.contains("comNokiaExtrasChooser")) { + int index = settings.value("comNokiaExtrasChooser").toInt(); + if (index >= 0 && index <= 1) + mComNokiaExtrasChooser->setCurrentIndex(index); + } +} diff --git a/src/ui/applicationui.h b/src/ui/applicationui.h index 707c163..5fd2484 100644 --- a/src/ui/applicationui.h +++ b/src/ui/applicationui.h @@ -36,10 +36,13 @@ #include <remotecontrolwidget/toolbox.h> #include <QtCore/QPointer> +#include <qsimulatordata_p.h> + class QLineEdit; class QHBoxLayout; class Widget; class QMenuBar; +class QComboBox; class ApplicationUi : public ToolBoxPage { @@ -48,18 +51,23 @@ public: explicit ApplicationUi(QWidget *parent = 0); QIcon icon() const; + QtSimulatorPrivate::ComNokiaExtrasPlatform comNokiaExtrasPlatform() const; + + void writeSettings(QSettings &) const; + void readSettings(QSettings &); + public slots: void updateMenuBarWidget(Widget *menuBarWidget); signals: void exitButtonClicked(); + void comNokiaExtrasChanged(); private: QLineEdit *mWidgetTitle; QHBoxLayout *mMenuLayout; QPointer<QMenuBar> mMenuBar; - - + QComboBox *mComNokiaExtrasChooser; }; #endif // APPLICATIONUI_H diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 1f5f685..b4df6db 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -87,7 +87,7 @@ #endif // VERSION UPDATE -const VersionStruct simulatorVersion(1, 2, 0, 0); +const VersionStruct simulatorVersion(1, 2, 0, 1); // Increment this value if the scripts that come bundled with the Simulator // have changed and the user should be asked whether he wants to copy them @@ -205,6 +205,8 @@ MainWindow::MainWindow(QWidget *parent) config->addPage(applicationUi); connect(applicationUi, SIGNAL(exitButtonClicked()), applicationManager, SLOT(killCurrentApplication())); connect(widgetManager, SIGNAL(topWidgetChanged(Widget *)), applicationUi, SLOT(updateMenuBarWidget(Widget *))); + connect(applicationUi, SIGNAL(comNokiaExtrasChanged()), applicationManager, SLOT(recommendRestartIfAppRunning())); + applicationManager->setApplicationUi(applicationUi); GenericSystemInfoUi *genericSystemInfoUi = new GenericSystemInfoUi(this); mobility->mSystemInfoGenericUi = genericSystemInfoUi; |
