--- 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();
-}