diff options
author | Philippe Lelong <lelong.ph@meltemus.com> | 2016-12-14 11:58:20 +0100 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2016-12-16 09:08:31 +0100 |
commit | dd7bb40b885efbde6ca7121194403857ef263208 (patch) | |
tree | 137b2ef02b0775090fa81b7ca426299f6be6bfae /HomeScreen/src2 | |
parent | a8414c772521b330d950dedc7f5b25f8ebff6e23 (diff) |
Home screen translation changes
Signed-off-by: Philippe Lelong <lelong.ph@meltemus.com>
Diffstat (limited to 'HomeScreen/src2')
-rw-r--r-- | HomeScreen/src2/appinfo.cpp | 4 | ||||
-rw-r--r-- | HomeScreen/src2/appinfo.h | 1 | ||||
-rw-r--r-- | HomeScreen/src2/applicationmodel.cpp | 25 | ||||
-rw-r--r-- | HomeScreen/src2/applicationmodel.h | 2 | ||||
-rw-r--r-- | HomeScreen/src2/usermanagement.cpp | 34 | ||||
-rw-r--r-- | HomeScreen/src2/usermanagement.h | 26 |
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 |