32 // Docml widget name mappings |
32 // Docml widget name mappings |
33 const char LAYOUT_PREFIX_INFO_DISPLAY[] = "id:"; |
33 const char LAYOUT_PREFIX_INFO_DISPLAY[] = "id:"; |
34 const char LAYOUT_PREFIX_SETTINGS_DISPLAY[] = "sd:"; |
34 const char LAYOUT_PREFIX_SETTINGS_DISPLAY[] = "sd:"; |
35 const char LAYOUT_NAME_CONTENT[] = "content"; |
35 const char LAYOUT_NAME_CONTENT[] = "content"; |
36 const char LAYOUT_NAME_MCNMARQUEEITEM[] = "mcnMarqueeItem"; |
36 const char LAYOUT_NAME_MCNMARQUEEITEM[] = "mcnMarqueeItem"; |
37 const char LAYOUT_NAME_MCNLABEL[] = "mcnLabel"; |
|
38 const char LAYOUT_NAME_SPNLABEL[] = "spnLabel"; |
37 const char LAYOUT_NAME_SPNLABEL[] = "spnLabel"; |
39 const char LAYOUT_NAME_SATMARQUEEITEM[] = "satMarqueeItem"; |
38 const char LAYOUT_NAME_SATMARQUEEITEM[] = "satMarqueeItem"; |
40 const char LAYOUT_NAME_SATTEXTLABEL[] = "satTextLabel"; |
|
41 const char LAYOUT_NAME_SPNICON[] = "spnIcon"; |
39 const char LAYOUT_NAME_SPNICON[] = "spnIcon"; |
42 const char LAYOUT_NAME_MCNICON[] = "mcnIcon"; |
40 const char LAYOUT_NAME_MCNICON[] = "mcnIcon"; |
43 const char LAYOUT_NAME_SATTEXTICON[] = "satTextIcon"; |
41 const char LAYOUT_NAME_SATTEXTICON[] = "satTextIcon"; |
44 const char LAYOUT_NAME_SPNCHECKBOX[] = "spnCheckBox"; |
42 const char LAYOUT_NAME_SPNCHECKBOX[] = "spnCheckBox"; |
45 const char LAYOUT_NAME_MCNCHECKBOX[] = "mcnCheckBox"; |
43 const char LAYOUT_NAME_MCNCHECKBOX[] = "mcnCheckBox"; |
138 DPRINT << ": IN"; |
136 DPRINT << ": IN"; |
139 |
137 |
140 if (m_documentLoader) { |
138 if (m_documentLoader) { |
141 delete m_documentLoader; |
139 delete m_documentLoader; |
142 } |
140 } |
143 |
141 |
144 DPRINT << ": OUT"; |
142 DPRINT << ": OUT"; |
145 } |
143 } |
|
144 |
|
145 /*! |
|
146 InfoWidgetLayoutManager::destroyObjects() |
|
147 |
|
148 Call on destruction for freeing |
|
149 loaded objects. Parent items are deleted |
|
150 causing deletion of corresponding object tree |
|
151 */ |
|
152 void InfoWidgetLayoutManager::destroyObjects() |
|
153 { |
|
154 DPRINT << ": IN"; |
|
155 |
|
156 // Destroy parent items |
|
157 QGraphicsWidget *contentInfoDisplay = |
|
158 m_infoDisplayWidgets.value(RoleContent); |
|
159 if (contentInfoDisplay) { |
|
160 delete contentInfoDisplay; |
|
161 m_infoDisplayWidgets.clear(); |
|
162 } |
|
163 |
|
164 QGraphicsWidget *contentSettingsDisplay= |
|
165 m_settingsDisplayWidgets.value(RoleContent); |
|
166 if (contentSettingsDisplay) { |
|
167 delete contentSettingsDisplay; |
|
168 m_settingsDisplayWidgets.clear(); |
|
169 } |
|
170 |
|
171 DPRINT << ": OUT"; |
|
172 } |
|
173 |
146 |
174 |
147 /*! |
175 /*! |
148 InfoWidgetLayoutManager::currentDisplayRole() |
176 InfoWidgetLayoutManager::currentDisplayRole() |
149 */ |
177 */ |
150 InfoWidgetLayoutManager::DisplayRole InfoWidgetLayoutManager::currentDisplayRole() |
178 InfoWidgetLayoutManager::DisplayRole InfoWidgetLayoutManager::currentDisplayRole() |
345 bool InfoWidgetLayoutManager::loadWidgets(const DisplayRole displayRole, |
373 bool InfoWidgetLayoutManager::loadWidgets(const DisplayRole displayRole, |
346 const QList<LayoutItemRole> &displayWidgets, |
374 const QList<LayoutItemRole> &displayWidgets, |
347 QMap<LayoutItemRole, QGraphicsWidget *> &widgetMap) |
375 QMap<LayoutItemRole, QGraphicsWidget *> &widgetMap) |
348 { |
376 { |
349 DPRINT << ": IN"; |
377 DPRINT << ": IN"; |
350 bool loadResult(true); |
378 bool loadResult(false); |
351 |
379 |
352 // Cleanup previously loaded content in case of any data |
380 // Cleanup previously loaded content in case of any data |
353 widgetMap.clear(); |
381 widgetMap.clear(); |
354 |
382 |
355 if (!m_documentLoader) { |
383 if (!m_documentLoader) { |
356 m_documentLoader = new InfoWidgetDocumentLoader; |
384 m_documentLoader = new InfoWidgetDocumentLoader; |
357 } |
385 } |
358 |
|
359 Q_ASSERT(m_documentLoader); |
386 Q_ASSERT(m_documentLoader); |
360 |
387 |
361 bool loaded = false; |
388 bool loaded = false; |
362 m_documentLoader->load(INFOWIDGET_DOCML_FILE, &loaded); |
389 m_documentLoader->load(INFOWIDGET_DOCML_FILE, &loaded); |
|
390 |
363 Q_ASSERT_X(loaded, |
391 Q_ASSERT_X(loaded, |
364 "InfoWidgetLayoutManager", |
392 "InfoWidgetLayoutManager", |
365 "Invalid docml file"); |
393 "Invalid docml file"); |
366 |
394 |
367 if (!loaded) { |
395 DPRINT << ": document " << INFOWIDGET_DOCML_FILE << " loaded successfully"; |
368 qWarning() << "Unable to load .docml: " << INFOWIDGET_DOCML_FILE; |
396 |
369 } |
397 QGraphicsWidget *widget(NULL); |
370 else { |
398 LayoutItemRole currentWidgetRole; |
371 DPRINT << ": document " << INFOWIDGET_DOCML_FILE << " loaded successfully"; |
399 |
372 |
400 foreach (currentWidgetRole, displayWidgets) { |
373 QGraphicsWidget *widget(NULL); |
401 DPRINT << ": iterating displayWidgets, current role: " << static_cast<int>(currentWidgetRole); |
374 LayoutItemRole currentWidgetRole; |
402 |
375 bool allWidgetsLoaded(true); |
403 widget = loadWidget(*m_documentLoader, displayRole, currentWidgetRole); |
376 |
404 if (widget) { |
377 foreach (currentWidgetRole, displayWidgets) { |
405 DPRINT << ": widget found, inserting to widget map"; |
378 DPRINT << ": iterating displayWidgets, current role: " << static_cast<int>(currentWidgetRole); |
406 widgetMap.insert(currentWidgetRole, widget); |
379 |
407 widget = NULL; |
380 widget = loadWidget(*m_documentLoader, displayRole, currentWidgetRole); |
408 } else { |
381 if (widget) { |
409 DCRITICAL << ": ERROR, widget not found!"; |
382 DPRINT << ": widget found, inserting to widget map"; |
|
383 widgetMap.insert(currentWidgetRole, widget); |
|
384 widget = NULL; |
|
385 } else { |
|
386 allWidgetsLoaded = false; |
|
387 DPRINT << ": ERROR, widget not found!"; |
|
388 } |
|
389 } |
410 } |
390 |
411 } |
391 DPRINT << ": allWidgetsLoaded: " << allWidgetsLoaded; |
412 |
392 |
413 if (widgetMap.count() == displayWidgets.count()) { |
393 int widgetCount = widgetMap.count(); |
414 DPRINT << ": all widgets loaded"; |
394 DPRINT << ": loaded widgets count: " << widgetCount; |
415 loadResult = true; |
395 if (widgetCount == displayWidgets.count()) { |
416 } else { |
396 DPRINT << ": all widgets loaded"; |
417 DCRITICAL << ": error, all widgets were not loaded"; |
397 loadResult = true; |
418 } |
398 } else { |
419 |
399 DPRINT << ": error, all widgets were not loaded"; |
|
400 loadResult = false; |
|
401 } |
|
402 } |
|
403 |
|
404 DPRINT << ": OUT"; |
420 DPRINT << ": OUT"; |
405 return loadResult; |
421 return loadResult; |
406 } |
422 } |
407 |
423 |
408 /*! |
424 /*! |
456 widgetName.append(LAYOUT_NAME_MCNMARQUEEITEM); |
472 widgetName.append(LAYOUT_NAME_MCNMARQUEEITEM); |
457 break; |
473 break; |
458 case RoleSpnLabel: |
474 case RoleSpnLabel: |
459 widgetName.append(LAYOUT_NAME_SPNLABEL); |
475 widgetName.append(LAYOUT_NAME_SPNLABEL); |
460 break; |
476 break; |
461 case RoleMcnLabel: |
|
462 widgetName.append(LAYOUT_NAME_MCNLABEL); |
|
463 break; |
|
464 case RoleSatMarqueeItem: |
477 case RoleSatMarqueeItem: |
465 widgetName.append(LAYOUT_NAME_SATMARQUEEITEM); |
478 widgetName.append(LAYOUT_NAME_SATMARQUEEITEM); |
466 break; |
|
467 case RoleSatTextLabel: |
|
468 widgetName.append(LAYOUT_NAME_SATTEXTLABEL); |
|
469 break; |
479 break; |
470 case RoleSpnIcon: |
480 case RoleSpnIcon: |
471 widgetName.append(LAYOUT_NAME_SPNICON); |
481 widgetName.append(LAYOUT_NAME_SPNICON); |
472 break; |
482 break; |
473 case RoleMcnIcon: |
483 case RoleMcnIcon: |
522 { |
529 { |
523 DPRINT << ": IN"; |
530 DPRINT << ": IN"; |
524 |
531 |
525 QList<LayoutItemRole> widgetRoles; |
532 QList<LayoutItemRole> widgetRoles; |
526 |
533 |
|
534 // Fill supported layout item roles for specific display |
527 switch (displayRole) { |
535 switch (displayRole) { |
528 case SettingsDisplay: |
536 case SettingsDisplay: |
529 // Fill supported layout item roles for settings display |
|
530 widgetRoles.append(RoleContent); |
537 widgetRoles.append(RoleContent); |
531 widgetRoles.append(RoleSpnCheckBox); |
538 widgetRoles.append(RoleSpnCheckBox); |
532 widgetRoles.append(RoleMcnCheckBox); |
539 widgetRoles.append(RoleMcnCheckBox); |
533 widgetRoles.append(RoleSatTextCheckBox); |
540 widgetRoles.append(RoleSatTextCheckBox); |
534 widgetRoles.append(RoleOkButton); |
541 widgetRoles.append(RoleOkButton); |
535 widgetRoles.append(RoleSettingsContainer); |
542 widgetRoles.append(RoleSettingsContainer); |
536 break; |
543 break; |
537 case InfoDisplay: |
544 case InfoDisplay: |
538 // Fill supported layout item roles for info display |
|
539 widgetRoles.append(RoleContent); |
545 widgetRoles.append(RoleContent); |
540 widgetRoles.append(RoleSpnIcon); |
546 widgetRoles.append(RoleSpnIcon); |
541 widgetRoles.append(RoleSpnLabel); |
547 widgetRoles.append(RoleSpnLabel); |
542 widgetRoles.append(RoleMcnIcon); |
548 widgetRoles.append(RoleMcnIcon); |
543 widgetRoles.append(RoleMcnMarqueeItem); |
549 widgetRoles.append(RoleMcnMarqueeItem); |