--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/infowidget/src/infowidget.cpp Fri Apr 16 14:58:25 2010 +0300
@@ -0,0 +1,833 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+#include "infowidget.h"
+
+#include <hbanchorlayout.h>
+#include <hbiconitem.h>
+#include <hbmarqueeitem.h>
+#include <hbfontspec.h>
+#include <hbdialog.h>
+#include <hblabel.h>
+#include <hbaction.h>
+#include <hbcheckbox.h>
+#include <hbpushbutton.h>
+#include <hbevent.h>
+#include <hbcolorscheme.h>
+#include <QPainter>
+#include <QPainterPath>
+#include <QBrush>
+#include <QGraphicsLinearLayout>
+#include <QApplication>
+#include <QLocale>
+#include <QTranslator>
+#include "infowidgetlogging.h"
+#include "infowidgetengine.h"
+#include "infowidgetlayoutmanager.h"
+#include "infowidgetpreferences.h"
+
+const int INFOWIDGET_LINE_WIDTH = 0;
+const int INFOWIDGET_MARGIN = 5;
+const int INFOWIDGET_ROUNDING = 15;
+
+
+/*!
+ InfoWidget::InfoWidget()
+*/
+InfoWidget::InfoWidget(QGraphicsItem* parent, Qt::WindowFlags flags)
+ : HbWidget(parent, flags),
+ m_engine(NULL),
+ m_preferences(NULL),
+ m_layoutManager(NULL),
+ m_layout(NULL),
+ m_layoutChanging(false),
+ m_isDragEvent(false)
+{
+ INSTALL_TRACE_MSG_HANDLER;
+
+ DPRINT << ": IN";
+
+ // Localization file loading
+ QTranslator translator;
+ QString lang = QLocale::system().name();
+ QString path = "z:/resource/qt/translations/";
+ DPRINT << ": loading translation: " << QString(path + "operator_widget_" + lang);
+ bool translatorLoaded = translator.load(path + "operator_widget_" + lang);
+ DPRINT << ": translator loaded: " << translatorLoaded;
+ if (translatorLoaded) {
+ qApp->installTranslator(&translator);
+ DPRINT << ": translator installed";
+ }
+
+ m_layoutManager = new InfoWidgetLayoutManager(this);
+ Q_ASSERT(m_layoutManager);
+
+ // Create network engine
+ m_engine = new InfoWidgetEngine(this);
+
+ // Create widget preference handler
+ m_preferences = new InfoWidgetPreferences(this);
+
+ DPRINT << ": reading preferences from meta-object properties";
+ initializePreferences();
+
+ // Create widget main layout
+ m_layout = new QGraphicsLinearLayout;
+ m_layout->setSpacing(0);
+ m_layout->setContentsMargins(0,0,0,0);
+
+ // Layout info display
+ layoutInfoDisplay();
+
+ setLayout(m_layout);
+
+ // Read initial data from model
+ updateInfoDisplay();
+
+ QObject::connect(m_engine, SIGNAL(modelChanged()),
+ this, SLOT(readModel()));
+
+ m_backGroundColor = HbColorScheme::color("popupbackground");
+
+ DPRINT << ": OUT";
+}
+
+/*!
+ InfoWidget::~InfoWidget()
+*/
+InfoWidget::~InfoWidget()
+{
+ DPRINT << ": IN";
+
+ // Clean layout container,
+ // layout manager handles layout item cleanup
+ for (int i=0; i < m_layout->count(); i++) {
+ DPRINT << ": item(" << i << ") removed from layout";
+ m_layout->removeAt(i);
+ }
+
+ DPRINT << ": OUT";
+ UNINSTALL_TRACE_MSG_HANDLER;
+}
+
+/*!
+ InfoWidget::boundingRect() const
+*/
+QRectF InfoWidget::boundingRect() const
+{
+ DPRINT;
+
+ QRectF rectF = rect();
+ rectF.adjust(-INFOWIDGET_MARGIN, -INFOWIDGET_MARGIN,
+ INFOWIDGET_MARGIN, INFOWIDGET_MARGIN);
+
+ return rectF;
+}
+
+/*!
+ InfoWidget::shape() const
+ Return shape
+*/
+QPainterPath InfoWidget::shape() const
+{
+ DPRINT;
+
+ QPainterPath path;
+ path.addRoundRect(boundingRect(), INFOWIDGET_ROUNDING, INFOWIDGET_ROUNDING);
+ return path;
+}
+
+/*!
+ InfoWidget::sizeHint()
+*/
+QSizeF InfoWidget::sizeHint(Qt::SizeHint which, const QSizeF & constraint) const
+{
+ Q_UNUSED(which);
+ Q_UNUSED(constraint);
+
+ QSizeF requiredSize(70,160);
+
+ // Try to get size hint from docml content, if not found use default
+ // size preference
+ if (m_layoutManager->currentDisplayRole() ==
+ InfoWidgetLayoutManager::InfoDisplay) {
+ if (m_layoutManager->contentWidget()) {
+ requiredSize = m_layoutManager->contentWidget()->minimumSize();
+ }
+ }
+ else if (m_layoutManager->currentDisplayRole() ==
+ InfoWidgetLayoutManager::SettingsDisplay) {
+ requiredSize = QSizeF(250,250);
+ if (m_layoutManager->contentWidget()) {
+ requiredSize = m_layoutManager->contentWidget()->preferredSize();
+ }
+ }
+
+ DPRINT << ": returning size: " << requiredSize;
+ return requiredSize;
+}
+
+/*!
+ InfoWidget::sizePolicy()
+*/
+QSizePolicy InfoWidget::sizePolicy () const
+{
+ DPRINT;
+
+ // Size tells the exact size for the widget
+ return QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+}
+
+/*!
+ InfoWidget::onInitialize()
+*/
+void InfoWidget::onInitialize()
+{
+ DPRINT << ": IN";
+
+ // Initialize preferences from meta-object data
+ // set by homescreen framework. Homescreen framework
+ // has restored the properties before calling onInitialize
+ DPRINT << ": reading preferences from meta-object properties";
+ initializePreferences();
+
+ DPRINT << ": OUT";
+}
+
+/*!
+ InfoWidget::onUninitialize()
+*/
+void InfoWidget::onUninitialize()
+{
+ DPRINT;
+}
+
+/*!
+ InfoWidget::onShow()
+*/
+void InfoWidget::onShow()
+{
+ DPRINT;
+}
+
+/*!
+ InfoWidget::onHide()
+*/
+void InfoWidget::onHide()
+{
+ DPRINT;
+}
+
+/*!
+ InfoWidget::updateItemsVisibility()
+*/
+void InfoWidget::updateItemsVisibility()
+{
+ DPRINT <<": IN";
+ int layoutRows = 0;
+ QList<QGraphicsWidget *> widgetsToHide;
+
+ // Update layout according to item visibility settings
+ // 1. read visible items
+ if (m_preferences->preference(InfoWidgetPreferences::DisplayHomeZone).compare(
+ DISPLAY_SETTING_ON) == 0) {
+ layoutRows++;
+ } else if (m_layoutManager->currentDisplayRole() != InfoWidgetLayoutManager::SettingsDisplay) {
+ m_layoutManager->hideWidget(InfoWidgetLayoutManager::RoleHomeZoneLabel);
+ m_layoutManager->hideWidget(InfoWidgetLayoutManager::RoleHomeZoneIcon);
+ }
+
+ if (m_preferences->preference(InfoWidgetPreferences::DisplayMcn).compare(
+ DISPLAY_SETTING_ON) == 0) {
+ layoutRows++;
+ } else if (m_layoutManager->currentDisplayRole() != InfoWidgetLayoutManager::SettingsDisplay) {
+ m_layoutManager->hideWidget(InfoWidgetLayoutManager::RoleMcnMarqueeItem);
+ m_layoutManager->hideWidget(InfoWidgetLayoutManager::RoleMcnIcon);
+ }
+
+ if (m_preferences->preference(InfoWidgetPreferences::DisplayActiveLine).compare(
+ DISPLAY_SETTING_ON) == 0) {
+ layoutRows++;
+ } else if (m_layoutManager->currentDisplayRole() != InfoWidgetLayoutManager::SettingsDisplay) {
+ m_layoutManager->hideWidget(InfoWidgetLayoutManager::RoleActiveLineLabel);
+ m_layoutManager->hideWidget(InfoWidgetLayoutManager::RoleActiveLineIcon);
+ }
+
+ if (m_preferences->preference(InfoWidgetPreferences::DisplaySatText).compare(
+ DISPLAY_SETTING_ON) == 0) {
+ layoutRows++;
+ } else if (m_layoutManager->currentDisplayRole() != InfoWidgetLayoutManager::SettingsDisplay) {
+ m_layoutManager->hideWidget(InfoWidgetLayoutManager::RoleSatTextLabel);
+ m_layoutManager->hideWidget(InfoWidgetLayoutManager::RoleSatTextIcon);
+ }
+
+ DPRINT << ": visible layout rows count: " << layoutRows;
+ m_layoutManager->setLayoutRows(layoutRows);
+}
+
+/*!
+ InfoWidget::layoutInfoDisplay()
+
+ Layout info display
+*/
+void InfoWidget::layoutInfoDisplay()
+{
+ startChanges();
+
+ QGraphicsLayout *infoDisplayLayout =
+ m_layoutManager->layoutInfoDisplay();
+
+ DPRINT << ": IN";
+ if (infoDisplayLayout) {
+ DPRINT << ": infoDisplayLayout has been returned from layout manager";
+
+ QGraphicsWidget *contentWidget = m_layoutManager->contentWidget();
+ if (contentWidget) {
+ DPRINT << ": contentWidget has been returned from layout manager";
+
+ // Remove old data from layout.
+ for (int i=0; i < m_layout->count(); i++) {
+ DPRINT << ": item(" << i << ") removed from layout";
+ m_layout->removeAt(i);
+ }
+
+ // Add content widget to main layout
+ m_layout->addItem(contentWidget);
+
+ resize(contentWidget->preferredSize());
+ }
+ }
+
+ m_layoutManager->showAll();
+ updateItemsVisibility();
+
+ endChanges();
+
+ DPRINT << ": OUT";
+}
+
+/*!
+ InfoWidget::layoutSettingsDisplay()
+
+ Switch to settings display layout
+*/
+void InfoWidget::layoutSettingsDisplay()
+{
+ startChanges();
+
+ QGraphicsLayout *settingDisplayLayout =
+ m_layoutManager->layoutSettingsDisplay();
+
+ DPRINT << ": IN";
+ if (settingDisplayLayout) {
+ DPRINT << ": settingDisplayLayout has been returned from layout manager";
+
+ QGraphicsWidget *contentWidget = m_layoutManager->contentWidget();
+ if (contentWidget) {
+ DPRINT << ": contentWidget has been returned from layout manager";
+
+ // Remove old data from layout.
+ for (int i=0; i < m_layout->count(); i++) {
+ DPRINT << ": item(" << i << ") removed from layout";
+ m_layout->removeAt(i);
+ }
+
+ // Add content widget to main layout
+ m_layout->addItem(contentWidget);
+
+ resize(contentWidget->preferredSize());
+ }
+
+ // Connect settings display widget signals
+ initializeSettingsDisplayItems();
+ }
+
+ m_layoutManager->showAll();
+
+ endChanges();
+
+ DPRINT << ": OUT";
+}
+
+/*!
+ InfoWidget::initializeInfoDisplayItems()
+*/
+void InfoWidget::initializeInfoDisplayItems()
+{
+ DPRINT;
+}
+
+/*!
+ InfoWidget::initializeSettingsDisplayItems()
+
+ Set up initial check box states, lock check boxes
+ if needed and connect signals to local slots
+*/
+void InfoWidget::initializeSettingsDisplayItems()
+{
+ DPRINT << ": IN";
+
+ HbPushButton *okButton = qobject_cast<HbPushButton *>(m_layoutManager->getWidget(
+ InfoWidgetLayoutManager::RoleOkButton));
+ if (okButton) {
+ DPRINT << ": okButton has been returned from layout manager, connecting signal";
+ QObject::connect(okButton, SIGNAL(clicked()),
+ this, SLOT(settingsEditingFinished()));
+ }
+
+ // Connect display setting check boxes
+ HbCheckBox *homeZoneBox = qobject_cast<HbCheckBox *>(m_layoutManager->getWidget(
+ InfoWidgetLayoutManager::RoleHomeZoneCheckBox));
+ if (homeZoneBox) {
+ DPRINT << ": homeZoneBox has been returned from layout manager, initializing";
+ // Make checkable when home zone display is supported
+ homeZoneBox->setCheckable(false);
+ QObject::connect(homeZoneBox, SIGNAL(stateChanged(int)),
+ this, SLOT(homeZoneDisplaySettingChanged(int)));
+ }
+
+ HbCheckBox *mcnCheckBox = qobject_cast<HbCheckBox *>(m_layoutManager->getWidget(
+ InfoWidgetLayoutManager::RoleMcnCheckBox));
+ if (mcnCheckBox) {
+ mcnCheckBox->setChecked(true);
+
+ DPRINT << ": mcnCheckBox has been returned from layout manager, connecting signal";
+ QObject::connect(mcnCheckBox, SIGNAL(stateChanged(int)),
+ this, SLOT(mcnDisplaySettingChanged(int)));
+ }
+
+ HbCheckBox *activeLineCheckBox = qobject_cast<HbCheckBox *>(m_layoutManager->getWidget(
+ InfoWidgetLayoutManager::RoleActiveLineCheckBox));
+ if (activeLineCheckBox) {
+ // Make checkable when active line display is supported
+ activeLineCheckBox->setCheckable(false);
+
+ DPRINT << ": activeLineCheckBox has been returned from layout manager, connecting signal";
+ QObject::connect(activeLineCheckBox, SIGNAL(stateChanged(int)),
+ this, SLOT(activeLineDisplaySettingChanged(int)));
+ }
+
+ HbCheckBox *satTextCheckBox = qobject_cast<HbCheckBox *>(m_layoutManager->getWidget(
+ InfoWidgetLayoutManager::RoleSatTextCheckBox));
+ if (satTextCheckBox) {
+ // Make checkable when sat text display is supported
+ satTextCheckBox->setCheckable(false);
+
+ DPRINT << ": satTextCheckBox has been returned from layout manager, connecting signal";
+ QObject::connect(satTextCheckBox, SIGNAL(stateChanged(int)),
+ this, SLOT(satDisplaySettingChanged(int)));
+ }
+
+ DPRINT << ": OUT";
+}
+
+/*!
+ InfoWidget::updateInfoDisplay()
+*/
+void InfoWidget::updateInfoDisplay()
+{
+ DPRINT;
+
+ QString text;
+ InfoWidgetEngine::ModelData modelData = m_engine->modelData();
+
+ HbLabel *homeZoneLabel = qobject_cast<HbLabel *>(m_layoutManager->getWidget(
+ InfoWidgetLayoutManager::RoleHomeZoneLabel));
+ if (homeZoneLabel &&
+ m_layoutManager->currentDisplayRole() == InfoWidgetLayoutManager::InfoDisplay) {
+ text = modelData.homeZoneTextTag();
+ homeZoneLabel->setPlainText(text);
+ }
+
+ HbMarqueeItem *mcnMarqueeItem = qobject_cast<HbMarqueeItem *>(m_layoutManager->getWidget(
+ InfoWidgetLayoutManager::RoleMcnMarqueeItem));
+ if (mcnMarqueeItem &&
+ m_layoutManager->currentDisplayRole() == InfoWidgetLayoutManager::InfoDisplay) {
+ text = modelData.mcnName();
+ if (text.length()) {
+ mcnMarqueeItem->setText(text);
+
+ // Set marquee animation looping mode to infinite
+ mcnMarqueeItem->setLoopCount(-1);
+
+ // Finally, start marquee animation
+ DPRINT << ": mcnMarqueeItem->isAnimating()";
+ if (!mcnMarqueeItem->isAnimating()) {
+ DPRINT << ": mcnMarqueeItem->startAnimation()";
+ mcnMarqueeItem->startAnimation();
+ }
+ }
+ }
+
+ HbLabel *activeLineLabel = qobject_cast<HbLabel *>(m_layoutManager->getWidget(
+ InfoWidgetLayoutManager::RoleActiveLineLabel));
+ if (activeLineLabel &&
+ m_layoutManager->currentDisplayRole() == InfoWidgetLayoutManager::InfoDisplay) {
+ text.setNum(modelData.activeLine());
+ text.insert(0, hbTrId("Line: "));
+
+ if (text.length()) {
+ activeLineLabel->setPlainText(text);
+ }
+ }
+
+ HbLabel *satTextLabel = qobject_cast<HbLabel *>(m_layoutManager->getWidget(
+ InfoWidgetLayoutManager::RoleSatTextLabel));
+ if (satTextLabel &&
+ m_layoutManager->currentDisplayRole() == InfoWidgetLayoutManager::InfoDisplay) {
+
+ text = modelData.satDisplayText();
+
+ if (text.length()) {
+ satTextLabel->setPlainText(text);
+ }
+ }
+
+}
+
+/*!
+ InfoWidget::readModel()
+
+ Read model data. Model's modelChanged - signal is connected to this slot.
+*/
+void InfoWidget::readModel()
+{
+ DPRINT << ": IN";
+
+ if (m_layoutManager->currentDisplayRole() == InfoWidgetLayoutManager::InfoDisplay) {
+ updateInfoDisplay();
+ }
+ DPRINT << ": OUT";
+}
+
+/*!
+ InfoWidget::handleModelError()
+
+ Model error signal is connected to this slot
+*/
+void InfoWidget::handleModelError(int operation,int errorCode)
+{
+ Q_UNUSED(operation);
+ Q_UNUSED(errorCode);
+ DPRINT;
+}
+
+/*!
+ InfoWidget::paint()
+*/
+void InfoWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+{
+ Q_UNUSED(option);
+ Q_UNUSED(widget);
+ DPRINT;
+
+ if (!m_layoutChanging) {
+ QBrush brush(Qt::white);
+ if (m_backGroundColor.isValid()) {
+ brush.setColor(m_backGroundColor);
+ }
+ QRectF drawRect = boundingRect();
+ drawRect.adjust( INFOWIDGET_LINE_WIDTH, INFOWIDGET_LINE_WIDTH,
+ -INFOWIDGET_LINE_WIDTH, -INFOWIDGET_LINE_WIDTH );
+
+ QPainterPath path;
+ path.addRoundRect(drawRect, INFOWIDGET_ROUNDING, INFOWIDGET_ROUNDING);
+
+ painter->save();
+ painter->fillPath(path, brush);
+ painter->restore();
+ }
+}
+
+/*!
+ InfoWidget::mousePressEvent()
+*/
+
+void InfoWidget::mousePressEvent(QGraphicsSceneMouseEvent *event)
+{
+ Q_UNUSED(event);
+ DPRINT;
+
+ // Initialize flag
+ m_isDragEvent = false;
+
+ DPRINT;
+}
+
+/*!
+ InfoWidget::mouseReleaseEvent()
+*/
+void InfoWidget::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
+{
+ Q_UNUSED(event);
+
+ // If in info display and widget wasn't dragged
+ // change to settings display
+ if ((!m_isDragEvent) &&
+ m_layoutManager->currentDisplayRole() ==
+ InfoWidgetLayoutManager::InfoDisplay) {
+ DPRINT << ": layout settings display";
+ layoutSettingsDisplay();
+ }
+
+ m_isDragEvent = false;
+}
+
+/*!
+ InfoWidget::mouseMoveEvent()
+*/
+void InfoWidget::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
+{
+ Q_UNUSED(event);
+
+ // Mouse is moving after mouse press event
+ m_isDragEvent = true;
+}
+
+/*!
+ InfoWidget::homeZoneDisplaySettingChanged()
+*/
+void InfoWidget::homeZoneDisplaySettingChanged(int state)
+{
+ DPRINT << ": state: " << state;
+ if (state == Qt::Checked){
+ m_preferences->setPreference(InfoWidgetPreferences::DisplayHomeZone, DISPLAY_SETTING_ON);
+ } else {
+ m_preferences->setPreference(InfoWidgetPreferences::DisplayHomeZone, DISPLAY_SETTING_OFF);
+ }
+}
+
+/*!
+ InfoWidget::mcnDisplaySettingChanged()
+*/
+void InfoWidget::mcnDisplaySettingChanged(int state)
+{
+ DPRINT << ": state: " << state;
+ if (state == Qt::Checked){
+ m_preferences->setPreference(InfoWidgetPreferences::DisplayMcn, DISPLAY_SETTING_ON);
+ } else {
+ m_preferences->setPreference(InfoWidgetPreferences::DisplayMcn, DISPLAY_SETTING_OFF);
+ }
+}
+
+/*!
+ InfoWidget::activeLineDisplaySettingChanged()
+*/
+void InfoWidget::activeLineDisplaySettingChanged(int state)
+{
+ DPRINT << ": state: " << state;
+ if (state == Qt::Checked){
+ m_preferences->setPreference(InfoWidgetPreferences::DisplayActiveLine, DISPLAY_SETTING_ON);
+ } else {
+ m_preferences->setPreference(InfoWidgetPreferences::DisplayActiveLine, DISPLAY_SETTING_OFF);
+ }
+}
+
+/*!
+ InfoWidget::satDisplaySettingChanged()
+*/
+void InfoWidget::satDisplaySettingChanged(int state)
+{
+ DPRINT << ": state: " << state;
+ if (state == Qt::Checked){
+ m_preferences->setPreference(InfoWidgetPreferences::DisplaySatText, DISPLAY_SETTING_ON);
+ } else {
+ m_preferences->setPreference(InfoWidgetPreferences::DisplaySatText, DISPLAY_SETTING_OFF);
+ }
+}
+
+/*!
+ InfoWidget::mcnDisplay()
+
+ Getter function for Meta-object property "mcnDisplay"
+*/
+QString InfoWidget::mcnDisplay()
+{
+ DPRINT;
+ return m_preferences->preference(InfoWidgetPreferences::DisplayMcn);
+}
+
+/*!
+ InfoWidget::setMcnDisplay()
+
+ Setter function for Meta-object property "mcnDisplay"
+*/
+void InfoWidget::setMcnDisplay(QString value)
+{
+ DPRINT;
+ m_preferences->setPreference(InfoWidgetPreferences::DisplayMcn, value);
+ }
+
+/*!
+ InfoWidget::homeZoneDisplay()
+
+ Getter function for Meta-object property "homeZoneDisplay"
+*/
+QString InfoWidget::homeZoneDisplay()
+{
+ DPRINT;
+ return m_preferences->preference(InfoWidgetPreferences::DisplayHomeZone);
+}
+
+/*!
+ InfoWidget::setHomeZoneDisplay()
+
+ Setter function for Meta-object property "homeZoneDisplay"
+*/
+void InfoWidget::setHomeZoneDisplay(QString value)
+{
+ DPRINT;
+ m_preferences->setPreference(InfoWidgetPreferences::DisplayHomeZone, value);
+}
+
+/*!
+ InfoWidget::activeLineDisplay()
+
+ Getter function for Meta-object property "activeLineDisplay"
+*/
+QString InfoWidget::activeLineDisplay()
+{
+ DPRINT;
+ return m_preferences->preference(InfoWidgetPreferences::DisplayActiveLine);
+}
+
+/*!
+ InfoWidget::setActiveLineDisplay()
+
+ Setter function for Meta-object property "activeLineDisplay"
+*/
+void InfoWidget::setActiveLineDisplay(QString value)
+{
+ DPRINT;
+ m_preferences->setPreference(InfoWidgetPreferences::DisplayActiveLine, value);
+}
+
+/*!
+ InfoWidget::satDisplay()
+
+ Getter function for Meta-object property "satDisplay"
+*/
+QString InfoWidget::satDisplay()
+{
+ DPRINT;
+ return m_preferences->preference(InfoWidgetPreferences::DisplaySatText);
+}
+
+/*!
+ InfoWidget::setSatDisplay()
+
+ Setter function for Meta-object property "satDisplay"
+*/
+void InfoWidget::setSatDisplay(QString value)
+{
+ DPRINT;
+ m_preferences->setPreference(InfoWidgetPreferences::DisplaySatText, value);
+}
+
+/*!
+ InfoWidget::initializePreferences()
+
+ Read initial Meta-object properties and store to preference handler.
+ Restores preferences from previous session.
+*/
+void InfoWidget::initializePreferences()
+{
+ DPRINT << ": IN";
+ QString propertyValue;
+
+ propertyValue = QObject::property("homeZoneDisplay").toString();
+ m_preferences->setPreference(InfoWidgetPreferences::DisplayHomeZone,
+ propertyValue);
+
+ propertyValue = QObject::property("mcnDisplay").toString();
+ m_preferences->setPreference(InfoWidgetPreferences::DisplayMcn,
+ propertyValue);
+
+ propertyValue = QObject::property("activeLineDisplay").toString();
+ m_preferences->setPreference(InfoWidgetPreferences::DisplayActiveLine,
+ propertyValue);
+
+ propertyValue = QObject::property("satDisplay").toString();
+ m_preferences->setPreference(InfoWidgetPreferences::DisplaySatText,
+ propertyValue);
+
+ // Check that at least one item is set visible. If not
+ // set default item(s) visible. TBD which items and how selected.
+ if (m_preferences->visibleItemCount() == 0) {
+ DPRINT << ": no visible items initially, setting MCN on by default";
+ m_preferences->setPreference(InfoWidgetPreferences::DisplayMcn,
+ DISPLAY_SETTING_ON);
+ }
+
+ DPRINT << ": OUT";
+}
+
+/*!
+ InfoWidget::settingsEditingFinished()
+*/
+void InfoWidget::settingsEditingFinished()
+{
+ DPRINT << ": IN";
+
+ layoutInfoDisplay();
+
+ updateInfoDisplay();
+
+ DPRINT << ": OUT";
+}
+
+/*!
+ InfoWidget::startChanges()
+*/
+void InfoWidget::startChanges()
+{
+ DPRINT << ": IN";
+
+ m_layoutChanging = true;
+
+ DPRINT << ": OUT";
+}
+
+/*!
+ InfoWidget::endChanges()
+*/
+void InfoWidget::endChanges()
+{
+ DPRINT << ": IN";
+
+ m_layoutChanging = false;
+
+ DPRINT << ": OUT";
+}
+
+/*!
+ \reimp
+*/
+void InfoWidget::changeEvent(QEvent *event)
+{
+ DPRINT << ": IN";
+
+ if (event->type() == HbEvent::ThemeChanged) {
+ m_backGroundColor = HbColorScheme::color("popupbackground");
+ }
+ HbWidget::changeEvent( event );
+
+ DPRINT << ": OUT";
+}
+
+// End of File.
+