phoneuis/bubblemanager2/tsrc/bubbletest2/bubbletestview.cpp
branchGCC_SURGE
changeset 51 f39ed5e045e0
parent 27 2f8f8080a020
parent 46 bc5a64e5bc3c
--- a/phoneuis/bubblemanager2/tsrc/bubbletest2/bubbletestview.cpp	Tue Jun 15 14:14:38 2010 +0100
+++ b/phoneuis/bubblemanager2/tsrc/bubbletest2/bubbletestview.cpp	Thu Jul 22 16:33:21 2010 +0100
@@ -22,9 +22,8 @@
 #include <bubblemanager2.h>
 #include <hbmenu.h>
 #include <hbmainwindow.h>
-
 #include "bubbletestview.h"
-#include "bubbletester.h"
+#include <hbeffect.h>
 
 BubbleTestView::BubbleTestView(HbMainWindow& window, QGraphicsItem *parent) :
     HbView (parent), mMainWindow(window), mMuted(0), mConfBubbleId(-1),
@@ -50,33 +49,13 @@
     // create actions for push buttons
     createBubbleActions();
 
-    // tester
-    mBubbleTester = new BubbleTester();
-    connect(mBubbleTester,SIGNAL(dataChanged()),this,SLOT(handleTesterDataChanged()));
-    mBubbleTester->connectToServer();
-
-    // create state map
-    mStateMap.insert("Idle", BubbleManagerIF::None );
-    mStateMap.insert("Incoming", BubbleManagerIF::Incoming );
-    mStateMap.insert("Active", BubbleManagerIF::Active );
-    mStateMap.insert("Disconnected", BubbleManagerIF::Disconnected );
-    mStateMap.insert("Outgoing", BubbleManagerIF::Outgoing );
-    mStateMap.insert("Waiting", BubbleManagerIF::Waiting );
-    mStateMap.insert("OnHold", BubbleManagerIF::OnHold );
-    // create label map
-    mLabelMap.insert("Idle", "" );
-    mLabelMap.insert("Incoming", "calling" );
-    mLabelMap.insert("Active", "" );
-    mLabelMap.insert("Disconnected", "disconnected" );
-    mLabelMap.insert("Outgoing", "Calling" );
-    mLabelMap.insert("Waiting", "waiting" );
-    mLabelMap.insert("OnHold", "on hold" );
+    // disable toolbar effects
+    HbEffect::disable(toolBar());
 }
 
 BubbleTestView::~BubbleTestView()
 {
     toolBar()->clearActions();
-    delete mBubbleTester;
 }
 
 void BubbleTestView::keyPressEvent(QKeyEvent *event)
@@ -338,7 +317,7 @@
             if (mCallTimer->isChecked()) {
                 bubbleManager().setCallTime( mConfBubbleId, "0:00" );
             }
-            bubbleManager().addAction(mConfBubbleId, mHold);
+            bubbleManager().addAction(mConfBubbleId, mMute);
             bubbleManager().addAction(mConfBubbleId, mEndConference);
             bubbleManager().clearParticipantListActions();
             bubbleManager().addParticipantListAction(mPrivate);
@@ -476,10 +455,8 @@
         if ( mContactName->isChecked() ) {
             bubbleManager().setCli(bubble, "Gloria Andersson", Qt::ElideRight);
             bubbleManager().setSecondaryCli( bubble, "+35850123456789" );
-            mPhoneNumber.clear();
         } else {
-            mPhoneNumber.append("+35850123456789");
-            bubbleManager().setCli(bubble, mPhoneNumber, Qt::ElideRight);
+            bubbleManager().setCli(bubble, "+35850123456789", Qt::ElideRight);
         }
 
         setCallObject(bubble, ":resources/contactpic.jpg");
@@ -500,14 +477,13 @@
                 bubbleManager().setCli(bubble, "John Doe", Qt::ElideRight);
                 bubbleManager().setSecondaryCli(bubble, "+35840987654321");
             }
-            mPhoneNumber.clear();
         } else {
             if (callCount()==2) {
-                mPhoneNumber.append("+35850232323232");
+                bubbleManager().setCli(bubble, "+35850232323232", Qt::ElideRight);
             } else {
-                mPhoneNumber.append("+35840987654321");
+                bubbleManager().setCli(bubble, "+35840987654321", Qt::ElideRight);
             }
-            bubbleManager().setCli(bubble, mPhoneNumber, Qt::ElideRight);
+
         }
         setCallObject(bubble, ":resources/contactpic3.png");
         bubbleManager().setNumberType(bubble, BubbleManager::Mobile);
@@ -528,10 +504,8 @@
             if ( mContactName->isChecked() ) {
                 bubbleManager().setCli( bubble, "Bart Simpson", Qt::ElideRight );
                 bubbleManager().setSecondaryCli( bubble, "+35890987654321" );
-                mPhoneNumber.clear();
             } else {
-                mPhoneNumber.append("+35890987654321");
-                bubbleManager().setCli( bubble, mPhoneNumber, Qt::ElideRight );
+                bubbleManager().setCli( bubble, "+35890987654321", Qt::ElideRight );
             }
             setCallObject(bubble, ":resources/contactpic2.jpg");
             bubbleManager().setLabel( bubble, "Calling", Qt::ElideRight );
@@ -541,16 +515,6 @@
 
     case BubbleManager::Alerting:
         {
-        if ( mPhoneNumber.length() ) {
-            QString cli("Call %1");
-            QString index;
-            index.setNum(bubble+1);
-            cli = cli.arg(index);
-            bubbleManager().setCli( bubble, cli, Qt::ElideRight );
-            bubbleManager().setSecondaryCli( bubble, mPhoneNumber );
-            mPhoneNumber.clear();
-        }
-
         if ( mEmergencyCall->isChecked() ) {
             bubbleManager().setCli( bubble, "Emergency call", Qt::ElideRight );
         }
@@ -559,16 +523,6 @@
 
     case BubbleManager::Active:
         {
-        if ( mPhoneNumber.length() && bubble!=mConfBubbleId ) {
-            QString cli("Call %1");
-            QString index;
-            index.setNum(bubble+1);
-            cli = cli.arg(index);
-            bubbleManager().setCli( bubble, cli, Qt::ElideRight );
-            bubbleManager().setSecondaryCli( bubble, mPhoneNumber );
-            mPhoneNumber.clear();
-        }
-
         if ( mCallTimer->isChecked() ) {
             bubbleManager().setCallTime( bubble, "0:00" );
         }
@@ -606,27 +560,8 @@
 void BubbleTestView::setBubbleActions(int bubble, BubbleManagerIF::PhoneCallState state )
 {
     if (bubble==mConfBubbleId) {
-        // check, if all call are in conference
-        bool swapButton = false;
-        QListIterator<TestCall> calls(mCalls);
-        while(calls.hasNext()) {
-            TestCall call = calls.next();
-            if (!call.isConf && !call.isInConf) {
-                swapButton = true;
-            }
-        }
-
         bubbleManager().clearActions(bubble);
-
-        if (swapButton) {
-            bubbleManager().addAction(bubble, mSwap);
-        } else {
-            if (state == BubbleManager::OnHold)
-                bubbleManager().addAction(bubble, mUnhold);
-            else
-                bubbleManager().addAction(bubble, mHold);
-        }
-
+        bubbleManager().addAction(bubble, mMute);
         bubbleManager().addAction(bubble, mEndConference);
         return;
     }
@@ -648,31 +583,27 @@
     case BubbleManager::Outgoing:
     case BubbleManager::Alerting: // flow through
         {
+        bubbleManager().addAction( bubble, mMute );
         bubbleManager().addAction( bubble, mEndCall );
         break;
         }
     case BubbleManager::OnHold:
         {
-        bubbleManager().addAction( bubble, mUnhold );
+        if (mMuted) {
+            bubbleManager().addAction( bubble, mUnmute );
+        } else {
+            bubbleManager().addAction( bubble, mMute );
+        }
         bubbleManager().addAction( bubble, mEndCall );
         }
         break;
     default: // Active call
         {
-        HbAction* action;
-
-        if (!mEmergencyCall->isChecked()) {
-            int i;
-            if ( (mCalls.count()>1 && !callIndexByState(BubbleManagerIF::Waiting,i))
-                  || (mCalls.count()> 1 && mProvideJoin) ) {
-                action = mJoin;
-            } else {
-                action = mHold;
-            }
-
-            bubbleManager().addAction( bubble, action );
+        if (mMuted) {
+            bubbleManager().addAction( bubble, mUnmute );
+        } else {
+            bubbleManager().addAction( bubble, mMute );
         }
-                    
         bubbleManager().addAction( bubble, mEndCall );
         break;
         }
@@ -765,7 +696,17 @@
 void BubbleTestView::setMuted()
 {
     mMuted = !mMuted;
-    updateToolBarActions();
+    int bubble = bubbleManager().expandedBubble();
+    QListIterator<TestCall> calls(mCalls);
+    while (calls.hasNext()) {
+        TestCall call = calls.next();
+        if (call.bubbleId==bubble) {
+            bubbleManager().startChanges();
+            setBubbleActions(bubble, (BubbleManagerIF::PhoneCallState)call.callState);
+            bubbleManager().endChanges();
+        }
+    }
+
     bubbleManager().setPhoneMuted( mMuted );
     setFocus(); // hack because toolbar steals the focus
 }
@@ -797,13 +738,17 @@
         mCalls.removeAt(i);
         mConfBubbleId = -1;
         callIndexByBubbleId(selection,i);
-        int held = (i==0) ? 1 : 0;
+        int held = (i==0) ? 1 : 0; // ??
         setBubbleActions(selection,BubbleManagerIF::Active);
         setBubbleData(selection,BubbleManagerIF::Active);
         setBubbleActions(held,BubbleManagerIF::OnHold);
         setBubbleData(held,BubbleManagerIF::OnHold);
-        mCalls[0].isInConf = false;
-        mCalls[1].isInConf = false;
+        mCalls[i].isInConf = false;
+        mCalls[i].callState = BubbleManagerIF::Active;
+        int callId;
+        callIndexByBubbleId(held, callId);
+        mCalls[callId].callState = BubbleManagerIF::OnHold;
+        mCalls[callId].isInConf = false;
         setExpandActions();
     }
     bubbleManager().endChanges();
@@ -870,6 +815,7 @@
 
     // not connected to anywhere
     mActivateLoudspeaker = new HbAction(HbIcon("qtg_mono_speaker"), "", this);
+    connect( mActivateLoudspeaker, SIGNAL(triggered()), this, SLOT(createIncomingCall()), Qt::QueuedConnection );
     mActivateHandset = new HbAction(HbIcon("qtg_mono_mobile"), "", this);
     mSendMessage = new HbAction(HbIcon("qtg_mono_send"), "", this);
     mSilence = new HbAction(HbIcon("qtg_mono_speaker_off"), "", this);
@@ -919,54 +865,61 @@
         toolBar()->addAction(mSendMessage);
         toolBar()->addAction(mSilence);
     } else {
+        toolBar()->addAction(mActivateLoudspeaker);
+
+        if (callCount()==1) {
+            toolBar()->addAction(mHold);
+        } else {
+            toolBar()->addAction(mSwap);            
+        }
+
+        if (callCount()==1) {
+            toolBar()->addAction(mOpenContacts);
+        } else {
+            toolBar()->addAction(mJoin);
+        }
+
         toolBar()->addAction(mOpenDialer);
-        if (!mMuted) {
-            toolBar()->addAction(mMute);
-        } else if (mMuted) {
-            toolBar()->addAction(mUnmute);
-        }
-        toolBar()->addAction(mActivateLoudspeaker);
-        toolBar()->addAction(mOpenContacts);
     }
 }
 
 void BubbleTestView::createBubbleActions()
 {
-    mAnswer = new HbAction( HbIcon("qtg_mono_call"),"Answer", this);
+    mAnswer = new HbAction( HbIcon("qtg_mono_call"),QString(), this);
     mAnswer->setSoftKeyRole(QAction::PositiveSoftKey);
     connect( mAnswer, SIGNAL( triggered() ), this, SLOT( answerCall() ) );
 
-    mReject= new HbAction( HbIcon("qtg_mono_reject_call"),"Reject", this);
+    mReject= new HbAction( HbIcon("qtg_mono_reject_call"),QString(), this);
     mReject->setSoftKeyRole(QAction::NegativeSoftKey);
     connect( mReject, SIGNAL( triggered() ), this, SLOT( rejectCall() ) );
 
-    mHold = new HbAction( HbIcon("qtg_mono_hold_call"),"Hold", this);
+    mHold = new HbAction( HbIcon("qtg_mono_hold_call"),QString(), this);
     connect( mHold, SIGNAL( triggered() ), this, SLOT( toggleHold() ) );
 
-    mUnhold = new HbAction( HbIcon("qtg_mono_call"),"Activate", this);
+    mUnhold = new HbAction( HbIcon("qtg_mono_call"),QString(), this);
     connect( mUnhold, SIGNAL( triggered() ), this, SLOT( toggleHold() ) );
 
-    mSwap = new HbAction( HbIcon("qtg_mono_hold_call"),"Swap", this);
+    mSwap = new HbAction( HbIcon("qtg_mono_hold_call"),QString(), this);
     connect( mSwap, SIGNAL( triggered() ), this, SLOT( toggleHold() ) );
 
-    mEndCall = new HbAction(HbIcon("qtg_mono_end_call"),"End call", this);
+    mEndCall = new HbAction(HbIcon("qtg_mono_end_call"),QString(), this);
     mEndCall->setSoftKeyRole(QAction::NegativeSoftKey);
     connect( mEndCall, SIGNAL( triggered() ), this, SLOT( endCall() ) );
 
-    mEndConference = new HbAction(HbIcon("qtg_mono_end_all_call"),"End conference", this);
+    mEndConference = new HbAction(HbIcon("qtg_mono_end_call"),QString(), this);
     mEndConference->setSoftKeyRole(QAction::NegativeSoftKey);
     connect( mEndConference, SIGNAL( triggered() ), this, SLOT( endConferenceCall() ) );
 
-    mJoin = new HbAction(HbIcon("qtg_mono_join_call"),"Join", this);
+    mJoin = new HbAction(HbIcon("qtg_mono_join_call"),QString(), this);
     connect( mJoin, SIGNAL( triggered() ), this, SLOT(joinToConference()) );
 
-    mPrivate = new HbAction(HbIcon("qtg_mono_private_call"),"Private", this);
+    mPrivate = new HbAction(HbIcon("qtg_mono_private_call"),QString(), this);
     connect( mPrivate, SIGNAL( triggered() ), this, SLOT(handlePrivate()) );
 
-    mDrop = new HbAction(HbIcon("qtg_mono_drop_call"),"Drop", this);
+    mDrop = new HbAction(HbIcon("qtg_mono_drop_call"),QString(), this);
     connect( mDrop, SIGNAL( triggered() ), this, SLOT(handleDrop()) );
 
-    mReplace = new HbAction(HbIcon("qtg_mono_replace_call"),"Replace", this);
+    mReplace = new HbAction(HbIcon("qtg_mono_replace_call"),QString(), this);
     connect( mReplace, SIGNAL( triggered() ), this, SLOT(replaceActiveCall()) );
 
     mUpdateUiControls = new HbAction(QString(), this);
@@ -1047,13 +1000,13 @@
     callIndexByBubbleId(mConfBubbleId, i);
     BubbleManagerIF::PhoneCallState confState =
         (BubbleManagerIF::PhoneCallState)mCalls[i].callState;
-    qDebug() << "toggleConferenceHoldDelayed state:" << confState;
+    // qDebug() << "toggleConferenceHoldDelayed state:" << confState;
 
     QListIterator<TestCall> calls(mCalls);
     int j=0;
     while(calls.hasNext()) {
         TestCall call = calls.next();
-        qDebug() << "toggleConferenceHoldDelayed callState:" << call.callState;
+        // qDebug() << "toggleConferenceHoldDelayed callState:" << call.callState;
         if (call.isInConf && call.callState!=confState) {
             bubbleManager().startChanges();
             setBubbleData(call.bubbleId, confState);
@@ -1068,52 +1021,3 @@
     }
 }
 
-void BubbleTestView::connectToTester()
-{
-    mBubbleTester->connectToServer();
-}
-
-void BubbleTestView::handleTesterDataChanged()
-{
-    bubbleManager().startChanges();
-
-    QString mute = mBubbleTester->dataField("mute");
-    bubbleManager().setPhoneMuted( mute == "On" );
-
-    QList<QString> testBubbles = mBubbleTester->bubbles();
-
-    foreach (QString bubbleId, testBubbles) {
-        QString state = mBubbleTester->dataField(bubbleId,"state");
-
-        // create or remove bubble
-        if ( mTestBubbleIds.contains(bubbleId) && state=="Idle" ) {
-            bubbleManager().removeCallHeader(mTestBubbleIds.value(bubbleId));
-            mTestBubbleIds.remove(bubbleId);
-        } else if (!mTestBubbleIds.contains(bubbleId) && state!="Idle" ) {
-            int id = bubbleManager().createCallHeader();
-            mTestBubbleIds.insert(bubbleId,id);
-        }
-
-        // set data
-        if (mTestBubbleIds.contains(bubbleId)) {
-            int id = mTestBubbleIds.value(bubbleId);
-
-            QString name = mBubbleTester->dataField(bubbleId,"name");
-            QString number = mBubbleTester->dataField(bubbleId,"number");
-            QString divert = mBubbleTester->dataField(bubbleId,"divert");
-
-            bubbleManager().setState(id, mStateMap.value(state));
-            bubbleManager().setCli(id, name, Qt::ElideRight);
-            bubbleManager().setSecondaryCli(id, number );
-            bubbleManager().setLabel(id, mLabelMap.value(state), Qt::ElideRight);
-
-            bubbleManager().setCallFlag(id, BubbleManager::Diverted, (divert == "On") );
-
-            setCallObject(id,":resources/contactpic.jpg");
-
-            setBubbleActions(id, mStateMap.value(state) );
-        }
-    }
-
-    bubbleManager().endChanges();
-}