diff -r 73a1feb507fb -r bc78a40cd63c mmsharing/livecommsui/lcui/src/lcuicomponentrepository.cpp --- a/mmsharing/livecommsui/lcui/src/lcuicomponentrepository.cpp Tue Aug 31 15:12:07 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,589 +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: -* -*/ - -//USER -#include "lcuicomponentrepository.h" -#include "lcview.h" -#include "lcuidefs.h" -#include "lclogger.h" -#include "lcuiengine.h" -#include "lcvideowidget.h" - -//SYSTEM -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::LcUiComponentRepository -// ----------------------------------------------------------------------------- -// -LcUiComponentRepository::LcUiComponentRepository(LcUiEngine& engine) - : HbDocumentLoader(), - mEngine(engine), - mSlots(0), - mIdleView(0), - mReceiveView(0), - mSendView(0), - mTwowayView(0), - mAllInOneView(0), - mReceiveOnlyView(0), - mAcceptQuery(0), - mInvitingNote(0), - mWaitingNote(0), - mRecipientQuery(0), - mShareOwnVideoQuery(0) -{ - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::LcUiComponentRepository()" ) - - mSlots = new QHash; - mSlots->insert( lcActFullscreenId, SLOT( notSupported() ) ); - mSlots->insert( lcActVideopreferenceId, SLOT( notSupported() ) ); - mSlots->insert( lcActDialerId, SLOT( notSupported() ) ); - mSlots->insert( lcActEndactivecallId, SLOT( notSupported() ) ); - mSlots->insert( lcActStopSharingId, SLOT( endVideoSession() ) ); - mSlots->insert( lcActEnableCameraId, SLOT( disableCamera() ) ); - mSlots->insert( lcActMuteId, SLOT( mute() ) ); - mSlots->insert( lcActGalleryId, SLOT( notSupported() ) ); - mSlots->insert( lcActChangeCameraId, SLOT( changeCamera() ) ); - mSlots->insert( lcActAdjustVideoId, SLOT( notSupported() ) ); - mSlots->insert( lcActShareImageId, SLOT( notSupported() ) ); - mSlots->insert( lcActSwapViewsId, SLOT( swap() ) ); - mSlots->insert( lcActSwitchToVoiceCallId, SLOT( switchToVoiceCall() ) ); - mSlots->insert( lcActOpenKeypadId, SLOT( openDialpad() ) ); - mSlots->insert( lcActDisableCameraId, SLOT( disableCamera() ) ); - mSlots->insert( lcActSpeakerId, SLOT( speaker() ) ); - - mSlots->insert( lcActMenuDisableCameraId, SLOT( disableCamera() ) ); - mSlots->insert( lcActMenuChangeCameraId, SLOT( changeCamera() ) ); - - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::LcUiComponentRepository()" ) -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::~LcUiComponentRepository -// ----------------------------------------------------------------------------- -// -LcUiComponentRepository::~LcUiComponentRepository() -{ - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::~LcUiComponentRepository()" ) - - delete mSlots; - - mIdleViewComponents.clear(); - mReceiveViewComponents.clear(); - mSendViewComponents.clear(); - mTwowayViewComponents.clear(); - mAllInOneViewComponents.clear(); - mReceiveOnlyViewComponents.clear(); - - delete mAcceptQuery; - delete mInvitingNote; - delete mWaitingNote; - delete mRecipientQuery; - delete mShareOwnVideoQuery; - - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::~LcUiComponentRepository()" ) -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::createObject -// ----------------------------------------------------------------------------- -// -QObject* LcUiComponentRepository::createObject( - const QString& type, const QString &name) -{ - QObject* object = 0; - - if ( type == lcLcViewTypeName || - name == lcViewIdleId || - name == lcViewReceiveId || - name == lcViewReceiveOnlyId || - name == lcViewAllInOneId || - name == lcViewSendId || - name == lcViewTwowayId ) { - LC_QDEBUG_2( "-> LcUiComponentRepository::createObject() ", - "- creating LcView -" ) - object = new LcView( mEngine, *this ); - } - else if ( name == lcWidgetSendVideoId ) { - LC_QDEBUG_2( "-> LcUiComponentRepository::createObject() ", - "- creating shared video widget -" ) - object = new LcVideoWidget(); - static_cast(object)->setLocalPlayer(true); - } - else if ( name == lcWidgetSendVideoId2 ) { - LC_QDEBUG_2( "-> LcUiComponentRepository::createObject() ", - "- creating shared video widget effect overlay -" ) - object = new LcVideoWidget(0, false); - static_cast(object)->setLocalPlayer(true); - } - else if ( name == lcWidgetRecvVideoId ) { - LC_QDEBUG_2( "-> LcUiComponentRepository::createObject() ", - "- creating received video widget -" ) - object = new LcVideoWidget(); - static_cast(object)->setLocalPlayer(false); - - } - else if ( name == lcWidgetRecvVideoId2 ) { - LC_QDEBUG_2( "-> LcUiComponentRepository::createObject() ", - "- creating received video widget effect overlay -" ) - object = new LcVideoWidget(0, false); - static_cast(object)->setLocalPlayer(false); - } - else if ( name == lcButtonEndCall ){ - object = HbDocumentLoader::createObject( type, name ); - HbFrameDrawer*frameDrawer = new HbFrameDrawer("qtg_fr_btn_red_normal",HbFrameDrawer::NinePieces); - static_cast(object)->setFrameBackground(frameDrawer); - HbStyleLoader::registerFilePath(":/hbpushbutton_color.css"); - } - else if ( name == lcWidgetDialpad ){ - HbMainWindow* pWindow = HbInstance::instance()->allMainWindows().at(0); - if( pWindow ){ - object = new Dialpad( *pWindow ); - } - } - else { - object = HbDocumentLoader::createObject( type, name ); - } - if (object) { - object->setObjectName(name); - } - - LC_QDEBUG_2( "livecomms [UI] <- LcUiComponentRepository::createObject(), name=", name ) - - return object; -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::idleView -// ----------------------------------------------------------------------------- -// -LcView* LcUiComponentRepository::idleView() -{ - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::idleView()" ); - - reset(); - setObjectTree( mIdleViewComponents ); - - if ( !mIdleView ) { - mIdleView = loadView( - mIdleViewComponents, lcViewIdleId, lcIdleViewFile ); - } - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::idleView()" ); - return mIdleView; -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::receiveView -// ----------------------------------------------------------------------------- -// -LcView* LcUiComponentRepository::receiveView() -{ - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::receiveView()" ); - - reset(); - setObjectTree( mReceiveViewComponents ); - if ( !mReceiveView ) { - mReceiveView = loadView( - mReceiveViewComponents, lcViewReceiveId, lcReceiveViewFile ); - } - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::receiveView()" ); - return mReceiveView; -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::receiveOnlyView -// ----------------------------------------------------------------------------- -// -LcView* LcUiComponentRepository::receiveOnlyView() -{ - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::receiveOnlyView()" ); - - reset(); - setObjectTree( mReceiveOnlyViewComponents ); - if ( !mReceiveOnlyView ) { - mReceiveOnlyView = loadView( - mReceiveOnlyViewComponents, lcViewReceiveOnlyId, lcReceiveOnlyViewFile ); - } - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::receiveOnlyView()" ); - return mReceiveOnlyView; -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::twowayView -// ----------------------------------------------------------------------------- -// -LcView* LcUiComponentRepository::twowayView() -{ - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::twowayView()" ); - - reset(); - setObjectTree( mTwowayViewComponents ); - if ( !mTwowayView ) { - mTwowayView = loadView( - mTwowayViewComponents, lcViewTwowayId, lcTwowayViewFile ); - } - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::twowayView()" ); - return mTwowayView; -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::sendView -// ----------------------------------------------------------------------------- -// -LcView* LcUiComponentRepository::sendView() -{ - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::sendView()" ); - - reset(); - setObjectTree( mSendViewComponents ); - if ( !mSendView ) { - mSendView = - loadView( mSendViewComponents, lcViewSendId, lcSendViewFile ); - } - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::sendView()" ); - return mSendView; -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::allInOneView -// ----------------------------------------------------------------------------- -// -LcView* LcUiComponentRepository::allInOneView() -{ - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::allInOneView()" ); - - reset(); - setObjectTree( mAllInOneViewComponents ); - if ( !mAllInOneView ) { - mAllInOneView = loadView( - mAllInOneViewComponents, lcViewAllInOneId, lcAllInOneViewFile ); - } - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::allInOneView()" ); - return mAllInOneView; -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::acceptQuery -// ----------------------------------------------------------------------------- -// -HbDialog* LcUiComponentRepository::acceptQuery() -{ - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::acceptQuery()" ); - - if ( !mAcceptQuery ) { - mAcceptQuery = new HbDialog(); - HbAction* acceptAction = new HbAction( LC_OK ); - HbAction* rejectAction = new HbAction( LC_CANCEL ); - mAcceptQuery->addAction(acceptAction); - mAcceptQuery->addAction(rejectAction); - mAcceptQuery->setVisible(false); - HbLabel* label = new HbLabel( LC_ACCEPT_SESSION ); - mAcceptQuery->setHeadingWidget(label); - HbLabel* label2 = new HbLabel(); - mAcceptQuery->setContentWidget(label2); - mAcceptQuery->setTimeout(0); - mAcceptQuery->setDismissPolicy(HbDialog::NoDismiss); - } - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::acceptQuery()" ); - return mAcceptQuery; -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::invitingNote -// ----------------------------------------------------------------------------- -// -HbProgressDialog* LcUiComponentRepository::invitingNote() -{ - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::invitingNote()" ); - - if ( !mInvitingNote ) { - mInvitingNote = new HbProgressDialog(); - mInvitingNote->setVisible(false); - mInvitingNote->setText( LC_INVITING ); - HbAction* rejectAction = new HbAction( LC_CANCEL ); - mInvitingNote->addAction(rejectAction); - } - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::invitingNote()" ); - return mInvitingNote; -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::waitingNote -// ----------------------------------------------------------------------------- -// -HbProgressDialog* LcUiComponentRepository::waitingNote() -{ - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::waitingNote()" ); - - if ( !mWaitingNote ) { - mWaitingNote = new HbProgressDialog(); - mWaitingNote->setVisible(false); - HbAction* rejectAction = new HbAction( LC_CANCEL ); - mWaitingNote->addAction(rejectAction); - mWaitingNote->setText( LC_WAITING_VIDEO ); - } - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::waitingNote()" ); - return mWaitingNote; -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::recipientQuery -// ----------------------------------------------------------------------------- -// -HbDialog* LcUiComponentRepository::recipientQuery() -{ - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::recipientQuery()" ); - - if ( !mRecipientQuery ) { - mRecipientQuery = new HbDialog(); - HbLabel* label = new HbLabel( LC_RECIPIENT_QUERY ); - mRecipientQuery->setHeadingWidget(label); - mRecipientQuery->setTimeout(HbDialog::NoTimeout); - mRecipientQuery->setDismissPolicy(HbDialog::TapOutside); - HbAction* acceptAction = new HbAction( LC_OK ); - HbAction* rejectAction = new HbAction( LC_CANCEL ); - mRecipientQuery->addAction(acceptAction); - mRecipientQuery->addAction(rejectAction); - mRecipientQuery->setVisible(false); - } - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::recipientQuery()" ); - return mRecipientQuery; -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::shareOwnVideoQuery -// ----------------------------------------------------------------------------- -// -HbDialog* LcUiComponentRepository::shareOwnVideoQuery() -{ - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::shareOwnVideoQuery()" ); - - if ( !mShareOwnVideoQuery ) { - mShareOwnVideoQuery = new HbMessageBox( HbMessageBox::MessageTypeQuestion ); - mShareOwnVideoQuery->setStandardButtons( HbMessageBox::Yes | HbMessageBox::No ); - mShareOwnVideoQuery->setText( hbTrId( "txt_vt_info_allow_own_image_to_be_sent" )); - mShareOwnVideoQuery->setZValue(LC_NOTE_ON_TOP); - mShareOwnVideoQuery->setTimeout( HbDialog::NoTimeout ); - mShareOwnVideoQuery->setDismissPolicy( HbDialog::NoDismiss ); - mShareOwnVideoQuery->setVisible(false); - } - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::shareOwnVideoQuery()" ); - return mShareOwnVideoQuery; -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::sharedVideoContextMenuActions -// ----------------------------------------------------------------------------- -// -void LcUiComponentRepository::sharedVideoContextMenuActions( HbMenu* menu, LcView& view ) -{ - Q_UNUSED(view) - LC_QDEBUG( - "livecomms [UI] -> LcUiComponentRepository::sharedVideoContextMenuActions()" ); - - menu->actions().clear(); - //due stubs in unit tests, qobject_cast cannot be used. - //Using static_cast instead - HbAction* swap = static_cast( findObject( lcActSwapViewsId ) ); - HbAction* changeCamera = - static_cast( findObject( lcActMenuChangeCameraId ) ); - - HbAction* disableCamera = - static_cast( findObject( lcActMenuDisableCameraId ) ); - HbAction* enableCamera = - static_cast( findObject( lcActEnableCameraId ) ); - - if ( swap ) { - LC_QDEBUG_2( "Adding ", swap->text() ); - menu->addAction( swap ); - } - if ( changeCamera ) { - LC_QDEBUG_2( "Adding ", changeCamera->text() ); - menu->addAction( changeCamera ); - } - if ( mEngine.isLocalPlayerPlaying() ) { - if ( disableCamera ) { - LC_QDEBUG_2( "Adding ", disableCamera->text() ); - menu->addAction( disableCamera ); - } - } else { - if ( enableCamera ) { - LC_QDEBUG_2( "Adding ", enableCamera->text() ); - menu->addAction( enableCamera ); - } - } - - - LC_QDEBUG( - "livecomms [UI] <- LcUiComponentRepository::sharedVideoContextMenuActions()" ); -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::loadView -// ----------------------------------------------------------------------------- -// -LcView* LcUiComponentRepository::loadView( QObjectList& components, - const QString& viewId, - const QString& xmlFile ) -{ - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::loadView()" ); - - LcView* view = 0; - bool ok( false ); - // Load the XML file - components = load( xmlFile, &ok ); - - if ( !ok ) { - LC_QCRITICAL_3( "! loading of XML file ", xmlFile , " failed !" ) - return 0; - } - - mLastLoadedView = xmlFile; - - ok = loadLayout( lcLayoutLandscapeDefaultId ); - if ( !ok ) { - LC_QCRITICAL( "! loading of layout failed !" ) - return 0; - } - - view = qobject_cast( findWidget( viewId ) ); - if ( view ) { - connectActions( *view ); - view->init(); - } - - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::loadView()" ); - return view; -} - - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::connectActions -// ----------------------------------------------------------------------------- -// -void LcUiComponentRepository::connectActions( LcView& view ) const -{ - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::connectActions()" ); - foreach( QAction* hbAction, view.menu()->actions() ) { - connect( *hbAction, view ); - } - foreach( QAction* hbAction, view.toolBar()->actions() ) { - connect( *hbAction, view ); - } - - HbAction* changeCamera = - static_cast( findObject( lcActMenuChangeCameraId ) ); - HbAction* disableCamera = - static_cast( findObject( lcActMenuDisableCameraId ) ); - HbAction* enableCamera = - static_cast( findObject( lcActEnableCameraId ) ); - - QObject::connect( changeCamera, SIGNAL(triggered()), - &view, SLOT(changeCamera()) ); - - QObject::connect( disableCamera, SIGNAL(triggered()), - &view, SLOT(disableCamera()) ); - - QObject::connect( enableCamera, SIGNAL(triggered()), - &view, SLOT(disableCamera()) ); - - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::connectActions()" ) -} - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::connect -// ----------------------------------------------------------------------------- -// -bool LcUiComponentRepository::connect( QAction& hbAction, LcView& view ) const -{ - LC_QDEBUG_2( "livecomms [UI] -> LcUiComponentRepository::connect() action=", - hbAction.objectName() ) - - const char* method = mSlots->value( hbAction.objectName() ); - bool slotFound = ( QString( method ).length() > 0 ); - - if ( slotFound ) { - QObject::connect( &hbAction, SIGNAL(triggered()), &view, method ); - } - - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::connect()" ) - - return slotFound; -} - - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::loadLayout -// ----------------------------------------------------------------------------- -// -bool LcUiComponentRepository::loadLayout( const QString& layoutName ) - { - LC_QDEBUG( "livecomms [UI] -> LcUiComponentRepository::loadLayout()" ) - bool ok( false ); - - if ( mLastLoadedView.length() > 0) { - LC_QDEBUG_4( "layout = ", layoutName, ", view =", mLastLoadedView ) - - load( mLastLoadedView, layoutName, &ok ); - if (!ok) { - LC_QCRITICAL( "! loading of XML failed !" ) - } - else{ - mPreviousLayout = mLayout; - mLayout = layoutName; - } - } else { - LC_QCRITICAL( "! not loading layout, since view is not loaded!" ) - } - - LC_QDEBUG( "livecomms [UI] <- LcUiComponentRepository::loadLayout()" ) - return ok; - } - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::layout()const -// ----------------------------------------------------------------------------- -// -QString LcUiComponentRepository::layout()const - { - LC_QDEBUG_2( "livecomms [UI] -> LcUiComponentRepository::layout()",mLayout ) - return mLayout; - } - -// ----------------------------------------------------------------------------- -// LcUiComponentRepository::previousLayout()const -// ----------------------------------------------------------------------------- -// -QString LcUiComponentRepository::previousLayout()const - { - LC_QDEBUG_2( "livecomms [UI] -> LcUiComponentRepository::previousLayout()", - mPreviousLayout ) - return mPreviousLayout; - } -// End of file