17 |
17 |
18 #include <QTranslator> |
18 #include <QTranslator> |
19 #include <QCoreApplication> |
19 #include <QCoreApplication> |
20 #include <QLocale> |
20 #include <QLocale> |
21 #include <QtPlugin> |
21 #include <QtPlugin> |
22 |
|
23 #include <qservicemanager.h> |
22 #include <qservicemanager.h> |
24 |
|
25 #include <hbdevicedialog.h> |
23 #include <hbdevicedialog.h> |
26 #include <HbMainWindow> |
24 #include <HbMainWindow> |
27 |
25 |
28 #include "tsdevicedialogplugin.h" |
26 #include "tsdevicedialogplugin.h" |
29 #include "tsdevicedialogcontainer.h" |
27 #include "tsdevicedialogcontainer.h" |
40 |
38 |
41 namespace |
39 namespace |
42 { |
40 { |
43 const char KTranslationPath[] = "resource/qt/translations"; |
41 const char KTranslationPath[] = "resource/qt/translations"; |
44 const char KTsDialogType[] = "com.nokia.taskswitcher.tsdevicedialogplugin/1.0"; |
42 const char KTsDialogType[] = "com.nokia.taskswitcher.tsdevicedialogplugin/1.0"; |
|
43 const char KActivityManaged [] = "com.nokia.qt.activities.ActivityManager"; |
45 } |
44 } |
46 |
45 |
47 /*! |
46 /*! |
48 Constructor. |
47 Constructor. |
49 */ |
48 */ |
50 TsDeviceDialogPlugin::TsDeviceDialogPlugin() : mError(0), mModel(0), mStorage(0), mTriedToLoadTranslation(false) |
49 TsDeviceDialogPlugin::TsDeviceDialogPlugin() |
|
50 : |
|
51 mModel(0), |
|
52 mStorage(0), |
|
53 mTriedToLoadTranslation(false) |
51 { |
54 { |
52 } |
55 } |
53 |
56 |
54 TsDeviceDialogPlugin::~TsDeviceDialogPlugin() |
57 TsDeviceDialogPlugin::~TsDeviceDialogPlugin() |
55 { |
58 { |
56 delete mModel; |
59 delete mModel; |
57 } |
60 } |
58 /*! |
61 /*! |
59 \reimp |
62 \reimp |
60 */ |
63 */ |
61 bool TsDeviceDialogPlugin::accessAllowed(const QString &deviceDialogType, const QVariantMap ¶meters, const QVariantMap &securityInfo) const |
64 bool TsDeviceDialogPlugin::accessAllowed(const QString &deviceDialogType, |
|
65 const QVariantMap ¶meters, |
|
66 const QVariantMap &securityInfo) const |
62 { |
67 { |
63 Q_UNUSED(deviceDialogType) |
68 Q_UNUSED(deviceDialogType) |
64 Q_UNUSED(parameters) |
69 Q_UNUSED(parameters) |
65 Q_UNUSED(securityInfo) |
70 Q_UNUSED(securityInfo) |
66 |
71 |
70 } |
75 } |
71 |
76 |
72 /*! |
77 /*! |
73 \reimp |
78 \reimp |
74 */ |
79 */ |
75 HbDeviceDialogInterface *TsDeviceDialogPlugin::createDeviceDialog(const QString &deviceDialogType, const QVariantMap ¶meters) |
80 HbDeviceDialogInterface * |
|
81 TsDeviceDialogPlugin::createDeviceDialog(const QString &deviceDialogType, |
|
82 const QVariantMap ¶meters) |
76 { |
83 { |
77 Q_UNUSED(parameters) |
84 Q_UNUSED(parameters) |
78 HbDeviceDialogInterface *dialogInterface(0); |
85 HbDeviceDialogInterface *dialogInterface(0); |
79 if (deviceDialogType == QString(KTsDialogType)) { |
86 if (deviceDialogType == QString(KTsDialogType)) { |
80 // lazy loading of translation |
87 // lazy loading of translation |
81 if (!mTriedToLoadTranslation) { |
88 if (!mTriedToLoadTranslation) { |
82 mTriedToLoadTranslation = true; |
89 mTriedToLoadTranslation = true; |
83 |
90 |
84 QTranslator *translator = new QTranslator(this); |
91 QTranslator *translator = new QTranslator(this); |
85 QString translationFile = QString("taskswitcher_%1").arg(QLocale::system().name()); |
92 QString translationFile = |
|
93 QString("taskswitcher_%1").arg(QLocale::system().name()); |
86 |
94 |
87 bool translationLoaded(false); |
95 bool translationLoaded(false); |
88 #ifdef Q_OS_SYMBIAN |
96 #ifdef Q_OS_SYMBIAN |
89 translationLoaded = translator->load(translationFile, QString("z:/") + KTranslationPath); |
97 translationLoaded = |
|
98 translator->load(translationFile, |
|
99 QString("z:/") + KTranslationPath); |
90 if (!translationLoaded) { |
100 if (!translationLoaded) { |
91 translationLoaded = translator->load(translationFile, QString("c:/") + KTranslationPath); |
101 translationLoaded = |
|
102 translator->load(translationFile, |
|
103 QString("c:/") + KTranslationPath); |
92 } |
104 } |
93 #else |
105 #else |
94 translationLoaded = translator->load(translationFile, QString(KTranslationPath)); |
106 translationLoaded = |
|
107 translator->load(translationFile, |
|
108 QString(KTranslationPath)); |
95 #endif //Q_OS_SYMBIAN |
109 #endif //Q_OS_SYMBIAN |
96 |
110 |
97 Q_ASSERT(translationLoaded); |
111 Q_ASSERT(translationLoaded); |
98 qApp->installTranslator(translator); |
112 qApp->installTranslator(translator); |
99 } |
113 } |
104 if (0 == mStorage) { |
118 if (0 == mStorage) { |
105 return 0; // provider of running application list is critical |
119 return 0; // provider of running application list is critical |
106 } |
120 } |
107 |
121 |
108 QtMobility::QServiceManager serviceManager; |
122 QtMobility::QServiceManager serviceManager; |
109 QObject *activityManager(serviceManager.loadInterface("com.nokia.qt.activities.ActivityManager")); |
123 QObject *activityManager(serviceManager.loadInterface(KActivityManaged)); |
110 if (activityManager) { |
124 if (0 != activityManager) { |
111 activityManager->setParent(this); //make it autodestructed |
125 activityManager->setParent(this); //make it autodestructed |
112 } else { |
126 } else { |
113 activityManager = this; //activity plugin is not present. provide invalid instance because its not critical functionality. |
127 activityManager = this; //activity plugin is not present. provide invalid instance because its not critical functionality. |
114 //QMetaObject::invokeMethod is safe to use in such a case. |
128 //QMetaObject::invokeMethod is safe to use in such a case. |
115 } |
129 } |
122 } |
136 } |
123 |
137 |
124 /*! |
138 /*! |
125 \reimp |
139 \reimp |
126 */ |
140 */ |
127 bool TsDeviceDialogPlugin::deviceDialogInfo(const QString &deviceDialogType, const QVariantMap ¶meters, DeviceDialogInfo *info) const |
141 bool TsDeviceDialogPlugin::deviceDialogInfo(const QString &deviceDialogType, |
|
142 const QVariantMap ¶meters, |
|
143 DeviceDialogInfo *info) const |
128 { |
144 { |
129 Q_UNUSED(parameters) |
145 Q_UNUSED(parameters) |
130 Q_UNUSED(deviceDialogType) |
146 Q_UNUSED(deviceDialogType) |
131 |
147 |
132 info->group = GenericDeviceDialogGroup; |
148 info->group = GenericDeviceDialogGroup; |
133 info->flags = NoDeviceDialogFlags; |
149 info->flags = SingleInstance; |
134 info->priority = DefaultPriority; |
150 info->priority = DefaultPriority; |
135 |
151 |
136 return true; |
152 return true; |
137 } |
153 } |
138 |
154 |