summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kamm <christian.d.kamm@nokia.com>2011-09-12 11:09:18 +0200
committerChristian Kamm <christian.d.kamm@nokia.com>2011-09-12 11:10:16 +0200
commit57e1fac8bf74080c4b3614b400510606dba69c56 (patch)
tree0df58336abc1f502df5f8b4ad9903ce3410848be
parent09885bb1b583a616fc5ef61508e75565c5a7f93d (diff)
Allow choosing which com.nokia.extras QML module to use.
Done-with: owolff
-rw-r--r--src/main.cpp2
-rw-r--r--src/other/applicationmanager.cpp27
-rw-r--r--src/other/applicationmanager.h4
-rw-r--r--src/ui/applicationui.cpp40
-rw-r--r--src/ui/applicationui.h12
-rw-r--r--src/ui/mainwindow.cpp4
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;