aboutsummaryrefslogtreecommitdiffstats
path: root/HomeScreen/src2
diff options
context:
space:
mode:
Diffstat (limited to 'HomeScreen/src2')
-rw-r--r--HomeScreen/src2/appinfo.cpp4
-rw-r--r--HomeScreen/src2/appinfo.h1
-rw-r--r--HomeScreen/src2/applicationmodel.cpp25
-rw-r--r--HomeScreen/src2/applicationmodel.h2
-rw-r--r--HomeScreen/src2/usermanagement.cpp34
-rw-r--r--HomeScreen/src2/usermanagement.h26
6 files changed, 91 insertions, 1 deletions
diff --git a/HomeScreen/src2/appinfo.cpp b/HomeScreen/src2/appinfo.cpp
index 6b61632..4792b52 100644
--- a/HomeScreen/src2/appinfo.cpp
+++ b/HomeScreen/src2/appinfo.cpp
@@ -108,6 +108,10 @@ QString AppInfo::name() const
{
return d->name;
}
+void AppInfo::setName(const QString &name)
+{
+ d->name = name;
+}
QString AppInfo::description() const
{
diff --git a/HomeScreen/src2/appinfo.h b/HomeScreen/src2/appinfo.h
index a800a80..a108d85 100644
--- a/HomeScreen/src2/appinfo.h
+++ b/HomeScreen/src2/appinfo.h
@@ -56,6 +56,7 @@ public:
friend QDBusArgument &operator <<(QDBusArgument &argument, const AppInfo &appInfo);
friend const QDBusArgument &operator >>(const QDBusArgument &argument, AppInfo &appInfo);
+ void setName(const QString &name);
private:
class Private;
QSharedDataPointer<Private> d;
diff --git a/HomeScreen/src2/applicationmodel.cpp b/HomeScreen/src2/applicationmodel.cpp
index 2a16ace..136161a 100644
--- a/HomeScreen/src2/applicationmodel.cpp
+++ b/HomeScreen/src2/applicationmodel.cpp
@@ -52,11 +52,36 @@ ApplicationModel::Private::Private(ApplicationModel *parent)
data.append(AppInfo(QStringLiteral("POI"), QStringLiteral("POINT OF\nINTEREST"), QStringLiteral("poi@0.1")));
}
}
+void ApplicationModel::changeLanguage(const QString &lang)
+{ //todo: use QT translator instead of hardcoded strings.
+ if(lang == "fr") {
+ d->data[0].setName("CLIMATISATION");
+ d->data[1].setName("NAVIGATION");
+ d->data[2].setName("TÉLÉPHONE");
+ d->data[3].setName("RADIO");
+ d->data[4].setName("MULTIMÉDIA");
+ d->data[5].setName("CONNEXIONS");
+ d->data[6].setName("TABLEAU DE\nBORD");
+ d->data[7].setName("PARAMÈTRES");
+ d->data[8].setName("POINT D'INTÉRÊT");
+ } else {
+ d->data[0].setName("HVAC");
+ d->data[1].setName("NAVIGATION");
+ d->data[2].setName("PHONE");
+ d->data[3].setName("RADIO");
+ d->data[4].setName("MULTIMEDIA");
+ d->data[5].setName("CONNECTIVITY");
+ d->data[6].setName("DASHBOARD");
+ d->data[7].setName("SETTINGS");
+ d->data[8].setName("POINT OF\nINTEREST");
+ }
+}
ApplicationModel::ApplicationModel(QObject *parent)
: QAbstractListModel(parent)
, d(new Private(this))
{
+ setObjectName("ApplicationModel");
}
ApplicationModel::~ApplicationModel()
diff --git a/HomeScreen/src2/applicationmodel.h b/HomeScreen/src2/applicationmodel.h
index bffc4c9..40741bd 100644
--- a/HomeScreen/src2/applicationmodel.h
+++ b/HomeScreen/src2/applicationmodel.h
@@ -30,7 +30,7 @@ public:
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
QHash<int, QByteArray> roleNames() const override;
-
+ void changeLanguage(const QString &lang);
private:
class Private;
Private *d;
diff --git a/HomeScreen/src2/usermanagement.cpp b/HomeScreen/src2/usermanagement.cpp
new file mode 100644
index 0000000..bbbbac1
--- /dev/null
+++ b/HomeScreen/src2/usermanagement.cpp
@@ -0,0 +1,34 @@
+#include "usermanagement.h"
+#include <QApplication>
+#include <QDebug>
+UserManagement::UserManagement(QObject *home, QObject *shortcutArea, QObject *statusArea) : QObject()
+{
+ this->home = home;
+ this->appModel = home->findChild<ApplicationModel *>("ApplicationModel");
+ this->shortcutArea = shortcutArea;
+ this->statusArea = statusArea;
+ this->currentLanguage = "en";
+ connect(&timerTest, SIGNAL(timeout()), this, SLOT(slot_timerTest()));
+ timerTest.setSingleShot(false);
+ timerTest.start(5000);
+}
+void UserManagement::slot_timerTest()
+{
+ if(currentLanguage == "fr")
+ currentLanguage = "en";
+ else
+ currentLanguage = "fr";
+ appModel->changeLanguage(currentLanguage);
+ QMetaObject::invokeMethod(home, "languageChanged");
+ QMetaObject::invokeMethod(shortcutArea, "languageChanged", Q_ARG(QVariant, currentLanguage));
+ QMetaObject::invokeMethod(statusArea, "languageChanged", Q_ARG(QVariant, currentLanguage));
+ if(currentLanguage == "fr") {
+ QLocale::setDefault(QLocale("fr_FR"));
+ QMetaObject::invokeMethod(home, "showSign90", Q_ARG(QVariant, true));
+ QMetaObject::invokeMethod(home, "showHello", Q_ARG(QVariant, "Bonjour José!"));
+ } else {
+ QLocale::setDefault(QLocale("en_US"));
+ QMetaObject::invokeMethod(home, "showSign90", Q_ARG(QVariant, false));
+ QMetaObject::invokeMethod(home, "showHello", Q_ARG(QVariant, "Hello José!"));
+ }
+}
diff --git a/HomeScreen/src2/usermanagement.h b/HomeScreen/src2/usermanagement.h
new file mode 100644
index 0000000..804df22
--- /dev/null
+++ b/HomeScreen/src2/usermanagement.h
@@ -0,0 +1,26 @@
+#ifndef USERMANAGEMENT_H
+#define USERMANAGEMENT_H
+
+#include <QObject>
+#include "applicationmodel.h"
+#include <QTimer>
+class UserManagement : public QObject
+{
+ Q_OBJECT
+public:
+ explicit UserManagement(QObject *home, QObject *shortcutArea, QObject *statusArea);
+
+signals:
+
+public slots:
+ void slot_timerTest();
+private:
+ QObject *home;
+ QObject *shortcutArea;
+ QObject *statusArea;
+ ApplicationModel *appModel;
+ QTimer timerTest;
+ QString currentLanguage;
+};
+
+#endif // USERMANAGEMENT_H