diff -r d9aefe59d544 -r fa6d9f75d6a6 camerauis/cameraxui/cxui/src/cxuisettingbutton.cpp --- a/camerauis/cameraxui/cxui/src/cxuisettingbutton.cpp Fri Apr 16 14:51:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,243 +0,0 @@ -/* -* 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 -#include //HbDeviceProfile - -#include -#include - -#include "cxuisettingbutton.h" -#include "cxutils.h" -#include "cxuidocumentloader.h" -#include "cxeengine.h" -#include "cxesettings.h" - - -CxuiSettingButton::CxuiSettingButton(QGraphicsItem *parent, CxeEngine *engine) -: HbPushButton(parent), mSettingId(), mSettingValue(0), mSettingPopupXml(), mEngine(engine) -{ - connect(this, SIGNAL(pressed()), this, SLOT(handleClicked())); - -} - -CxuiSettingButton::~CxuiSettingButton() -{ - CX_DEBUG_ENTER_FUNCTION(); - CX_DEBUG_EXIT_FUNCTION(); -} - -void CxuiSettingButton::updateIcon(const QString& key, QVariant newValue) -{ - CX_DEBUG_ENTER_FUNCTION(); - // we're only interested in the setting changes that match our id - if (key == mSettingId){ - int value = newValue.toInt(); - // so we wont overindex - if (value < mIcons.size()){ - // for this to work the icons need to be in the correct order in the XML - QString newIcon = mIcons.at(value); - - // to make sure that for some reason there isn't an empty string - if (!newIcon.isEmpty()){ - CX_DEBUG(("setting icon to: %s",newIcon.toAscii().constData())); - setIcon(HbIcon(newIcon)); - setBackground(HbIcon(newIcon)); - }else{ - CX_DEBUG(("empty string")); - } - - }else{ - CX_DEBUG((("index %d is out of bounds"), value)); - } - - - } - CX_DEBUG_EXIT_FUNCTION(); -} - -QString CxuiSettingButton::settingId() const -{ - return mSettingId; -} - -void CxuiSettingButton::setSettingId(const QString &id) -{ - mSettingId = id; -} - -QString CxuiSettingButton::scenemodeId() const -{ - return mScenemode; -} - -void CxuiSettingButton::setScenemodeId(const QString &scenemode) -{ - mScenemode = scenemode; -} - - -int CxuiSettingButton::settingValue() const -{ - return mSettingValue; -} - -void CxuiSettingButton::setSettingValue(int value) -{ - mSettingValue = value; -} - -void CxuiSettingButton::setIconList(const QString &iconList) -{ - CX_DEBUG_ENTER_FUNCTION(); - mIconList = iconList; - CX_DEBUG(("%s", mIconList.toAscii().data())); - mIcons = mIconList.split("+"); - CX_DEBUG((("%d"), mIcons.size())); - - // we connect the signal to update the button - // this is done here so that only those buttons that have an iconlist are connected - // to the signal - QObject::connect(&(mEngine->settings()), SIGNAL(settingValueChanged(const QString&,QVariant)), - this, SLOT(updateIcon(const QString&, QVariant))); - - - CX_DEBUG_EXIT_FUNCTION(); -} - -QString CxuiSettingButton::iconList() const -{ - return mIconList; -} - -QString CxuiSettingButton::settingPopupXml() const -{ - return mSettingPopupXml; -} - -void CxuiSettingButton::setSettingPopupXml(const QString &popupXml) -{ - mSettingPopupXml = popupXml; -} - -void CxuiSettingButton::handleClicked() -{ - CX_DEBUG_ENTER_FUNCTION(); - - if (!mSettingPopupXml.isEmpty()) { - // If a settings popup XML reference is given, launch popup - - CX_DEBUG(("CxuiSettingButton::handleClicked() - launching popup %s", mSettingPopupXml.toAscii().constData())); - - CxuiDocumentLoader* documentLoader = new CxuiDocumentLoader(mEngine); - bool ok = false; - - // Use document loader to create popup - QObjectList objects = documentLoader->load(mSettingPopupXml, &ok); - - CX_DEBUG(("load ok=%d", ok)); - - // Set parameters for all loaded popups (almost always only one match, though) - foreach(QObject* o, objects) { - HbDialog* popup = qobject_cast(o); - if (popup) { - popup->setTimeout(HbDialog::NoTimeout); - popup->setBackgroundFaded(false); - popup->setAttribute(Qt::WA_DeleteOnClose, true); - - // set the popup place to be at the bottom of the screen - QRectF popupRect = popup->boundingRect(); - QSizeF screenSize = HbDeviceProfile::profile(popup).logicalSize(); - QRectF screenRect = QRectF(QPointF(0,0), screenSize); - - popupRect.moveBottom(screenRect.bottom()); - popup->setPos(popupRect.topLeft()); - - popup->show(); - - } - } - - delete documentLoader; - documentLoader = NULL; - TInt trash; - TInt heapSize; - User::Heap().Compress(); - heapSize = User::Available( trash ); - RDebug::Print( _L( "showHeapSize <=> heapSize: %d" ),heapSize); - - } else { - // Set the setting value directly to the engine - CxeSettings *settings = NULL; - if (mEngine) { - settings = &mEngine->settings(); - } - - CX_DEBUG_ASSERT(settings); - CX_DEBUG_ASSERT(!mSettingId.isEmpty()); - - if (settings && !mSettingId.isEmpty()) { - CX_DEBUG(("CxuiSettingButton::handleClicked() - setting %s to %d", mSettingId.toAscii().constData(), mSettingValue)); - settings->set(mSettingId, mSettingValue); - } - } - emit clickHandled(); - - - CX_DEBUG_EXIT_FUNCTION(); -} - -void CxuiSettingButton::setSetting() -{ - CxeSettings *settings = NULL; - if (mEngine) { - settings = &mEngine->settings(); - } - - CX_DEBUG_ASSERT(settings); - CX_DEBUG_ASSERT(!mSettingId.isEmpty()); - - if (settings && !mSettingId.isEmpty()) { - CX_DEBUG(("CxuiSettingButton::handleClicked() - setting %s to %d", mSettingId.toAscii().constData(), mSettingValue)); - settings->set(mSettingId, mSettingValue); - } - -} - - - -/* -void CxuiSettingButton::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - CX_DEBUG_ENTER_FUNCTION(); - CX_DEBUG(("CxuiSettingButton::mouseMoveEvent() - %s to %d", mSettingId.toAscii().constData(), mSettingValue)); - QPointF pos = event->pos(); - QPoint pos2 = pos.toPoint(); - CX_DEBUG(("itemPos: %d %d", pos2.x(), pos2.y())); - if (!hitButton(pos)){ - CX_DEBUG(("Left the button area")); - this->clearFocus(); - - } - - - - CX_DEBUG_EXIT_FUNCTION(); -} - - -*/