1 /* |
1 /* |
2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
2 * Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies). |
3 * All rights reserved. |
3 * All rights reserved. |
4 * This component and the accompanying materials are made available |
4 * This component and the accompanying materials are made available |
5 * under the terms of "Eclipse Public License v1.0" |
5 * under the terms of "Eclipse Public License v1.0" |
6 * which accompanies this distribution, and is available |
6 * which accompanies this distribution, and is available |
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
13 * |
13 * |
14 * Description: Default Screensaver runtime. |
14 * Description: Default Screensaver runtime. |
15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
18 #include <HbMainWindow> |
|
19 #include <QGraphicsLinearLayout> |
18 #include <QGraphicsLinearLayout> |
|
19 #include <QGraphicsSceneResizeEvent> |
20 #include <QPainter> |
20 #include <QPainter> |
21 #include <QDebug> |
21 #include <QDebug> |
|
22 #include <QServiceManager> |
|
23 #include <QServiceFilter> |
|
24 #include <QServiceInterfaceDescriptor> |
|
25 #include <XQSettingsManager> |
|
26 #include <HbMainWindow> |
22 #include <HbIndicatorInterface> |
27 #include <HbIndicatorInterface> |
23 |
28 |
24 #include <qservicemanager.h> |
|
25 #include <qservicefilter.h> |
|
26 #include <qserviceinterfacedescriptor.h> |
|
27 |
|
28 #include <screensaver.h> |
29 #include <screensaver.h> |
29 |
30 #include <screensaverdomaincrkeys.h> |
30 #include "snsrdevicedialog.h" |
31 #include "snsrdevicedialog.h" |
31 #include <screensaverdomaincrkeys.h> |
|
32 #include <xqsettingsmanager.h> |
|
33 |
|
34 |
32 |
35 const char *gBigClockInterfaceName = "com.nokia.screensaver.ISnsrBigClockScreensaver"; |
33 const char *gBigClockInterfaceName = "com.nokia.screensaver.ISnsrBigClockScreensaver"; |
36 |
34 |
37 /*! |
35 /*! |
38 \class SnsrDeviceDialog |
36 \class SnsrDeviceDialog |
41 */ |
39 */ |
42 |
40 |
43 extern const char *lViewType; |
41 extern const char *lViewType; |
44 |
42 |
45 const char *SnsrDeviceDialog::dataKeyUnlock = "unlock"; |
43 const char *SnsrDeviceDialog::dataKeyUnlock = "unlock"; |
|
44 const char *SnsrDeviceDialog::dataKeySwitchLights = "switch_lights"; |
|
45 const char *SnsrDeviceDialog::dataKeySwitchLowPower = "switch_low_power"; |
46 |
46 |
47 QTM_USE_NAMESPACE |
47 QTM_USE_NAMESPACE |
48 |
48 |
49 /*! |
49 /*! |
50 Constructor. |
50 Constructor. |
51 \param viewType Initial view type (active or standby). |
51 \param viewType Initial view type (active or standby). |
52 \param parent Parent. |
52 \param parent Parent. |
53 */ |
53 */ |
54 SnsrDeviceDialog::SnsrDeviceDialog(const QVariantMap ¶meters, QGraphicsItem *parent) : |
54 SnsrDeviceDialog::SnsrDeviceDialog(const QVariantMap ¶meters, QGraphicsItem *parent) : |
55 HbPopup(parent) , mScreensaver(0), mLayout(0), m_setManager (0) |
55 HbPopup(parent), |
|
56 mScreensaver(0), |
|
57 mLayout(0), |
|
58 m_setManager(0) |
56 { |
59 { |
57 qDebug("SnsrDeviceDialog::SnsrDeviceDialog()"); |
60 qDebug("SnsrDeviceDialog::SnsrDeviceDialog()"); |
58 |
61 |
59 |
62 |
60 // load screensaver plugin |
63 // load screensaver plugin |
74 } |
77 } |
75 connect(mScreensaver, SIGNAL(viewChanged(QGraphicsWidget*)), |
78 connect(mScreensaver, SIGNAL(viewChanged(QGraphicsWidget*)), |
76 SLOT(changeView(QGraphicsWidget*))); |
79 SLOT(changeView(QGraphicsWidget*))); |
77 connect(mScreensaver, SIGNAL(faulted()), |
80 connect(mScreensaver, SIGNAL(faulted()), |
78 SLOT(screensaverFaulted())); |
81 SLOT(screensaverFaulted())); |
|
82 connect( mScreensaver, SIGNAL(unlockRequested()), |
|
83 SLOT(requestUnlock()) ); |
|
84 connect( mScreensaver, SIGNAL(screenPowerModeRequested(Screensaver::ScreenPowerMode)), |
|
85 SLOT(requestScreenMode(Screensaver::ScreenPowerMode)) ); |
79 |
86 |
80 mScreensaver->initialize(); |
87 mScreensaver->initialize(); |
81 |
88 |
82 setBackgroundItem(0); |
89 setBackgroundItem(0); |
83 |
90 |
84 setDismissPolicy(HbPopup::NoDismiss); |
91 setDismissPolicy(HbPopup::NoDismiss); |
85 setTimeout(HbPopup::NoTimeout); |
92 setTimeout(HbPopup::NoTimeout); |
|
93 |
|
94 mainWindow()->setAutomaticOrientationEffectEnabled(false); |
86 |
95 |
87 setDeviceDialogParameters( parameters ); |
96 setDeviceDialogParameters( parameters ); |
88 |
|
89 connect( mScreensaver, SIGNAL(unlockRequested()), SLOT(requestUnlock()) ); |
|
90 } |
97 } |
91 |
98 |
92 /*! |
99 /*! |
93 Destructor. |
100 Destructor. |
94 */ |
101 */ |
121 } |
128 } |
122 } |
129 } |
123 |
130 |
124 // Check initial view from repository |
131 // Check initial view from repository |
125 if (viewType == ViewTypeInitial ) { |
132 if (viewType == ViewTypeInitial ) { |
126 XQSettingsManager::Error error; |
133 XQSettingsManager::Error error; |
127 int startupView = 0; |
134 int startupView = 0; |
128 XQSettingsKey settingsKey( XQSettingsKey::TargetCentralRepository, |
135 XQCentralRepositorySettingsKey settingsKey( |
129 KCRUidScreensaverSettings.iUid, KScreensaverStartupView ); // TUid as same repository used in control panel via Symbian APIs |
136 KCRUidScreensaverSettings.iUid, KScreensaverStartupView ); // TUid as same repository used in control panel via Symbian APIs |
130 m_setManager = new XQSettingsManager(this); |
137 m_setManager = new XQSettingsManager(this); |
131 if (m_setManager) { |
138 if (m_setManager) { |
132 startupView = m_setManager->readItemValue(settingsKey, XQSettingsManager::TypeInt).toUInt(); |
139 startupView = m_setManager->readItemValue(settingsKey, XQSettingsManager::TypeInt).toInt(); |
133 error = m_setManager->error(); |
140 error = m_setManager->error(); |
134 if (error == XQSettingsManager::NoError) |
141 if (error == XQSettingsManager::NoError) { |
135 viewType = startupView; |
142 viewType = startupView; |
|
143 } |
136 delete m_setManager; |
144 delete m_setManager; |
137 } |
145 } |
138 } |
146 } |
139 |
147 |
140 switch (viewType) { |
148 switch (viewType) { |
141 case SnsrDeviceDialog::ViewTypeActive: |
149 case SnsrDeviceDialog::ViewTypeActive: |
142 mScreensaver->foreground(); |
150 mScreensaver->foreground(); |
278 Q_UNUSED(orientation) |
292 Q_UNUSED(orientation) |
279 |
293 |
280 QRectF rect = mainWindow()->layoutRect(); |
294 QRectF rect = mainWindow()->layoutRect(); |
281 setMinimumSize( rect.size() ); |
295 setMinimumSize( rect.size() ); |
282 setPreferredPos( QPointF(0,0) ); |
296 setPreferredPos( QPointF(0,0) ); |
|
297 QGraphicsSceneResizeEvent sceneResize; |
|
298 sceneResize.setNewSize( rect.size() ); |
|
299 event( &sceneResize ); |
|
300 mScreensaver->updateLayout(); |
283 } |
301 } |
284 |
302 |
285 /*! |
303 /*! |
286 Send unlock signal to autolock. |
304 Send unlock signal to autolock. |
287 */ |
305 */ |
289 { |
307 { |
290 QVariantMap data; |
308 QVariantMap data; |
291 data.insert(dataKeyUnlock, 1); |
309 data.insert(dataKeyUnlock, 1); |
292 emit deviceDialogData(data); |
310 emit deviceDialogData(data); |
293 } |
311 } |
|
312 |
|
313 /*! |
|
314 Send low power mode on/off request to autolock. |
|
315 */ |
|
316 void SnsrDeviceDialog::requestScreenMode(Screensaver::ScreenPowerMode mode) |
|
317 { |
|
318 /* TEMPORARY FIX for the "black screen jam" bug. To be re-enabled when proper fix is found. |
|
319 QVariantMap data; |
|
320 QVariantList rowLimits; |
|
321 if ( mode == Screensaver::ScreenModeOff ) { |
|
322 data.insert(dataKeySwitchLights, 0); |
|
323 data.insert(dataKeySwitchLowPower, rowLimits); // empty list means "low power off" |
|
324 } |
|
325 else if ( mode == Screensaver::ScreenModeLowPower ) { |
|
326 //data.insert(dataKeySwitchLights, 0); |
|
327 int firstRow; |
|
328 int lastRow; |
|
329 mScreensaver->getActiveScreenRows(&firstRow, &lastRow); |
|
330 rowLimits.append( firstRow ); |
|
331 rowLimits.append( lastRow ); |
|
332 data.insert(dataKeySwitchLowPower, rowLimits); |
|
333 } |
|
334 else if ( mode == Screensaver::ScreenModeFullPower ) { |
|
335 data.insert(dataKeySwitchLights, 30); |
|
336 data.insert(dataKeySwitchLowPower, rowLimits); // empty list means "low power off" |
|
337 } |
|
338 |
|
339 emit deviceDialogData(data); |
|
340 */ |
|
341 } |
|
342 |
294 /*! |
343 /*! |
295 Called when the dialog is created if they are any currently |
344 Called when the dialog is created if they are any currently |
296 activate universal indicators present. |
345 activate universal indicators present. |
297 */ |
346 */ |
298 void SnsrDeviceDialog::indicatorsActivated( |
347 void SnsrDeviceDialog::indicatorsActivated( |