diff --git a/sflphone_kde/Account.cpp b/sflphone_kde/Account.cpp index d0ca036b12842152dc0ce171d34b955520021643..1247e392adaf1062886456772cf1f04c7a2db97c 100644 --- a/sflphone_kde/Account.cpp +++ b/sflphone_kde/Account.cpp @@ -64,19 +64,15 @@ void Account::initAccountItem() ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); item = new QListWidgetItem(); item->setSizeHint(QSize(140,25)); - //item->setTextAlignment(Qt::AlignCenter); item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsDragEnabled|Qt::ItemIsDropEnabled|Qt::ItemIsEnabled); bool enabled = getAccountDetail(*(new QString(ACCOUNT_ENABLED))) == ACCOUNT_ENABLED_TRUE; - //item->setCheckState(enabled ? Qt::Checked : Qt::Unchecked); setItemText(getAccountDetail(*(new QString(ACCOUNT_ALIAS)))); itemWidget = new QWidget(); QCheckBox * checkbox = new QCheckBox(itemWidget); checkbox->setObjectName(QString(ACCOUNT_ITEM_CHECKBOX)); checkbox->setCheckState(enabled ? Qt::Checked : Qt::Unchecked); - //QLabel* name = new QLabel(getAccountDetail(*(new QString(ACCOUNT_ALIAS))), itemWidget); - //QLabel* name = new QLabel("", itemWidget); KLed * led = new KLed(itemWidget); - led->setObjectName("led"); + led->setObjectName(QString(ACCOUNT_ITEM_LED)); led->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); if(! isNew() && enabled) { @@ -97,12 +93,9 @@ void Account::initAccountItem() QHBoxLayout* hlayout = new QHBoxLayout(); hlayout->setContentsMargins(0,0,0,0); hlayout->addWidget(checkbox); - //hlayout->addWidget(name); hlayout->addWidget(led); itemWidget->setLayoutDirection(Qt::LeftToRight); itemWidget->setLayout(hlayout); - //itemWidget->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); - //item->parent()->setItemWidget(item, widget); } Account * Account::buildExistingAccountFromId(QString _accountId) @@ -196,29 +189,15 @@ QString Account::getAccountDetail(QString & param) { return (*accountDetails)[param]; } -/* -QString Account::getAccountDetail(std::string param) -{ - return (*accountDetails)[QString(param)]; -} -*/ + + //Setters -/* -void Account::setAccountId(QString id) -{ - accountId = id; -} -*/ + void Account::setAccountDetails(MapStringString m) { *accountDetails = m; } -/* -void Account::setState(account_state_t s) -{ - -} -*/ + void Account::setAccountDetail(QString param, QString val) { (*accountDetails)[param] = val; diff --git a/sflphone_kde/Call.cpp b/sflphone_kde/Call.cpp index dc6b7a62f01070b1c815777238c5e70de1ef5432..4dde1b94326228522a3e6ce809dbe3be12a2623d 100644 --- a/sflphone_kde/Call.cpp +++ b/sflphone_kde/Call.cpp @@ -55,17 +55,47 @@ const function Call::actionPerformedFunctionMap[11][5] = const char * Call::historyIcons[3] = {ICON_HISTORY_INCOMING, ICON_HISTORY_OUTGOING, ICON_HISTORY_MISSED}; +void Call::initCallItem() +{ + item = new QListWidgetItem(); + item->setSizeHint(QSize(140,25)); + item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsDragEnabled|Qt::ItemIsDropEnabled|Qt::ItemIsEnabled); + itemWidget = new QWidget(); + QLabel * labelIcon = new QLabel("", itemWidget); + QLabel * labelCallNumber = new QLabel(peer, itemWidget); + QLabel * labelTransferTo = new QLabel("Transfer to : ", itemWidget); + QLabel * labelTransferNumber = new QLabel("", itemWidget); + labelIcon->setObjectName(QString(CALL_ITEM_ICON)); + labelCallNumber->setObjectName(QString(CALL_ITEM_CALL_NUMBER)); + labelTransferNumber->setObjectName(QString(CALL_ITEM_TRANSFER_NUMBER)); + QGridLayout * layout = new QGridLayout(); + layout->setContentsMargins(0,0,0,0); + layout->setSpacing(1); + layout->addWidget(labelIcon, 0, 0, 1, 0); + layout->addWidget(labelCallNumber, 0, 1, 0, 2); + layout->addWidget(labelTransferTo, 1, 1); + layout->addWidget(labelTransferNumber, 1, 2); + itemWidget->setLayoutDirection(Qt::LeftToRight); + itemWidget->setLayout(layout); + item->setSizeHint(itemWidget->sizeHint()); + setItemIcon(QString(ICON_REFUSE)); +} + +void Call::setItemIcon(const QString & pixmap) +{ + itemWidget->findChild<QLabel * >(QString(CALL_ITEM_ICON))->setPixmap(QPixmap(pixmap)); +} Call::Call(call_state startState, QString callId, QString from, QString account) { this->callId = callId; this->peer = from; - this->item = new QListWidgetItem(from); + initCallItem(); + //this->item = new QListWidgetItem(from); this->account = account; this->recording = false; - this->currentState = startState; + changeCurrentState(startState); this->historyItem = NULL; - } Call::~Call() @@ -130,6 +160,11 @@ QListWidgetItem * Call::getItem() return item; } +QWidget * Call::getItemWidget() +{ + return itemWidget; +} + QListWidgetItem * Call::getHistoryItem() { if(historyItem == NULL) @@ -145,22 +180,22 @@ call_state Call::getState() const return currentState; } -call_state Call::stateChanged(const QString & newState) +call_state Call::stateChanged(const QString & newStateName) { call_state previousState = currentState; - daemon_call_state dcs = toDaemonCallState(newState); - currentState = stateChangedStateMap[currentState][dcs]; - qDebug() << "Calling stateChanged " << newState << " -> " << toDaemonCallState(newState) << " on call with state " << previousState << ". Become " << currentState; + daemon_call_state dcs = toDaemonCallState(newStateName); + changeCurrentState(stateChangedStateMap[currentState][dcs]); + qDebug() << "Calling stateChanged " << newStateName << " -> " << toDaemonCallState(newState) << " on call with state " << previousState << ". Become " << currentState; return currentState; } -call_state Call::actionPerformed(call_action action, QString number) +call_state Call::actionPerformed(call_action action) { call_state previousState = currentState; //execute the action associated with this transition - (this->*(actionPerformedFunctionMap[currentState][action]))(number); + (this->*(actionPerformedFunctionMap[currentState][action]))(); //update the state - currentState = actionPerformedStateMap[currentState][action]; + changeCurrentState(actionPerformedStateMap[currentState][action]); qDebug() << "Calling action " << action << " on call with state " << previousState << ". Become " << currentState; //return the new state return currentState; @@ -199,11 +234,11 @@ void Call::putRecording() *************************************************/ -void Call::nothing(QString number) +void Call::nothing() { } -void Call::accept(QString number) +void Call::accept() { CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); qDebug() << "Accepting call. callId : " << callId; @@ -212,7 +247,7 @@ void Call::accept(QString number) this->historyState = INCOMING; } -void Call::refuse(QString number) +void Call::refuse() { CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); qDebug() << "Refusing call. callId : " << callId; @@ -221,16 +256,18 @@ void Call::refuse(QString number) this->historyState = MISSED; } -void Call::acceptTransf(QString number) +void Call::acceptTransf() { CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + QLabel * transferNumber = itemWidget->findChild<QLabel *>(QString(CALL_ITEM_TRANSFER_NUMBER)); + QString number = transferNumber->text(); qDebug() << "Accepting call and transfering it to number : " << number << ". callId : " << callId; callManager.accept(callId); callManager.transfert(callId, number); //this->historyState = TRANSFERED; } -void Call::acceptHold(QString number) +void Call::acceptHold() { CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); qDebug() << "Accepting call and holding it. callId : " << callId; @@ -239,23 +276,25 @@ void Call::acceptHold(QString number) this->historyState = INCOMING; } -void Call::hangUp(QString number) +void Call::hangUp() { CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); qDebug() << "Hanging up call. callId : " << callId; callManager.hangUp(callId); } -void Call::hold(QString number) +void Call::hold() { CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); qDebug() << "Holding call. callId : " << callId; callManager.hold(callId); } -void Call::call(QString number) +void Call::call() { CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + QLabel * callNumber = itemWidget->findChild<QLabel *>(QString(CALL_ITEM_CALL_NUMBER)); + QString number = callNumber->text(); this->account = SFLPhone::firstAccount(); if(!account.isEmpty()) { @@ -273,15 +312,17 @@ void Call::call(QString number) } } -void Call::transfer(QString number) +void Call::transfer() { CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + QLabel * transferNumber = itemWidget->findChild<QLabel *>(QString(CALL_ITEM_TRANSFER_NUMBER)); + QString number = transferNumber->text(); qDebug() << "Transfering call to number : " << number << ". callId : " << callId; callManager.transfert(callId, number); this->stopTime = new QDateTime(QDateTime::currentDateTime()); } -void Call::unhold(QString number) +void Call::unhold() { CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); qDebug() << "Unholding call. callId : " << callId; @@ -289,14 +330,14 @@ void Call::unhold(QString number) } /* -void Call::switchRecord(QString number) +void Call::switchRecord() { qDebug() << "Switching record state for call automate. callId : " << callId; recording = !recording; } */ -void Call::setRecord(QString number) +void Call::setRecord() { CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); qDebug() << "Setting record for call. callId : " << callId; @@ -304,3 +345,28 @@ void Call::setRecord(QString number) recording = !recording; } +void Call::appendItemText(QString text) +{ + if(currentState == CALL_STATE_TRANSFER || currentState == CALL_STATE_TRANSF_HOLD) + { + QLabel * transferNumber = itemWidget->findChild<QLabel *>(QString(CALL_ITEM_TRANSFER_NUMBER)); + transferNumber->setText(transferNumber->text() + text); + } + else + { + QLabel * callNumber = itemWidget->findChild<QLabel *>(QString(CALL_ITEM_CALL_NUMBER)); + callNumber->setText(callNumber->text() + text); + } +} + +void Call::changeCurrentState(call_state newState) +{ + currentState = newState; + updateItem(); +} + +void Call::updateItem() +{ + setItemIcon(QString(callStateIcons[currentState])); + +} diff --git a/sflphone_kde/Call.h b/sflphone_kde/Call.h index 37d0beb648c91e0e339cb619de1dfc815b357eb4..ede26d8e788a0835649eeee2a498b92eb355f077 100644 --- a/sflphone_kde/Call.h +++ b/sflphone_kde/Call.h @@ -83,7 +83,7 @@ typedef enum class Call; -typedef void (Call::*function)(QString number); +typedef void (Call::*function)(); class Call { @@ -97,6 +97,7 @@ private: QDateTime * startTime; QDateTime * stopTime; QListWidgetItem * item; + QWidget * itemWidget; QListWidgetItem * historyItem; //Automate attributes @@ -113,33 +114,40 @@ private: static daemon_call_state toDaemonCallState(const QString & stateName); //Automate functions - void nothing(QString number); - void accept(QString number); - void refuse(QString number); - void acceptTransf(QString number); - void acceptHold(QString number); - void hangUp(QString number); - void hold(QString number); - void call(QString number); - void transfer(QString number); - void unhold(QString number); - void switchRecord(QString number); - void setRecord(QString number); + void nothing(); + void accept(); + void refuse(); + void acceptTransf(); + void acceptHold(); + void hangUp(); + void hold(); + void call(); + void transfer(); + void unhold(); + void switchRecord(); + void setRecord(); public: ~Call(); + void initCallItem(); static Call * buildDialingCall(QString callId); static Call * buildIncomingCall(const QString & callId, const QString & from, const QString & account); QListWidgetItem * getItem(); + QWidget * getItemWidget(); QListWidgetItem * getHistoryItem(); call_state getState() const; QString getCallId(); call_state stateChanged(const QString & newState); - call_state actionPerformed(call_action action, QString number = NULL); + call_state actionPerformed(call_action action); call_state getCurrentState() const; history_state getHistoryState() const; bool getRecording() const; + void appendItemText(QString text); + void setItemIcon(const QString & pixmap); + void changeCurrentState(call_state newState); + void updateItem(); + }; diff --git a/sflphone_kde/CallList.cpp b/sflphone_kde/CallList.cpp index ca09b473d4fca04f487a48ccbe5a6c3558fedb9d..cf8a00a3bb012715b6b45188b8b71f10978370f9 100644 --- a/sflphone_kde/CallList.cpp +++ b/sflphone_kde/CallList.cpp @@ -19,6 +19,18 @@ Call * CallList::operator[](const QListWidgetItem * item) return NULL; } +Call * CallList::getCallByItem(const QListWidgetItem * item) +{ + for(int i = 0 ; i < size() ; i++) + { + if ((*calls)[i]->getItem() == item) + { + return (*calls)[i]; + } + } + return NULL; +} + Call * CallList::operator[](const QString & callId) { for(int i = 0 ; i < size() ; i++) @@ -48,16 +60,16 @@ int CallList::size() return calls->size(); } -QListWidgetItem * CallList::addDialingCall() +Call * CallList::addDialingCall() { Call * call = Call::buildDialingCall(getAndIncCallId()); calls->append(call); - return call->getItem(); + return call; } -QListWidgetItem * CallList::addIncomingCall(const QString & callId, const QString & from, const QString & account) +Call * CallList::addIncomingCall(const QString & callId, const QString & from, const QString & account) { Call * call = Call::buildIncomingCall(callId, from, account); calls->append(call); - return call->getItem(); + return call; } \ No newline at end of file diff --git a/sflphone_kde/CallList.h b/sflphone_kde/CallList.h index a99268b38bcc297ad7b915c9eb963f1ab588fdb5..5980252bb224ccda6ba0bb840321bf7849856fcf 100644 --- a/sflphone_kde/CallList.h +++ b/sflphone_kde/CallList.h @@ -14,12 +14,13 @@ public: CallList(); ~CallList(); + Call * getCallByItem(const QListWidgetItem * item); Call * operator[](const QListWidgetItem * item); Call * operator[](const QString & callId); Call * operator[](int ind); - QListWidgetItem * addDialingCall(); - QListWidgetItem * addIncomingCall(const QString & callId, const QString & from, const QString & account); + Call * addDialingCall(); + Call * addIncomingCall(const QString & callId, const QString & from, const QString & account); QString getAndIncCallId(); int size(); diff --git a/sflphone_kde/ConfigDialog.ui b/sflphone_kde/ConfigDialog.ui index 3e9d6154b9b682b842d93a54b1a95d4a6388f914..a629a712e9be7f42641bf54751fe797833e3be0b 100644 --- a/sflphone_kde/ConfigDialog.ui +++ b/sflphone_kde/ConfigDialog.ui @@ -6,7 +6,7 @@ <rect> <x>0</x> <y>0</y> - <width>504</width> + <width>681</width> <height>455</height> </rect> </property> @@ -637,6 +637,20 @@ </property> </widget> </item> + <item row="1" column="1" > + <widget class="QComboBox" name="edit2_protocol" > + <item> + <property name="text" > + <string>SIP</string> + </property> + </item> + <item> + <property name="text" > + <string>IAX</string> + </property> + </item> + </widget> + </item> <item row="2" column="0" > <widget class="QLabel" name="label3_server" > <property name="text" > @@ -647,6 +661,16 @@ </property> </widget> </item> + <item row="2" column="1" > + <widget class="QLineEdit" name="edit3_server" > + <property name="minimumSize" > + <size> + <width>0</width> + <height>0</height> + </size> + </property> + </widget> + </item> <item row="3" column="0" > <widget class="QLabel" name="label4_user" > <property name="text" > @@ -657,6 +681,9 @@ </property> </widget> </item> + <item row="3" column="1" > + <widget class="QLineEdit" name="edit4_user" /> + </item> <item row="4" column="0" > <widget class="QLabel" name="label5_password" > <property name="text" > @@ -667,6 +694,13 @@ </property> </widget> </item> + <item row="4" column="1" > + <widget class="QLineEdit" name="edit5_password" > + <property name="echoMode" > + <enum>QLineEdit::Password</enum> + </property> + </widget> + </item> <item row="5" column="0" > <widget class="QLabel" name="label6_mailbox" > <property name="text" > @@ -677,41 +711,14 @@ </property> </widget> </item> - <item row="2" column="1" > - <widget class="QLineEdit" name="edit3_server" > - <property name="minimumSize" > - <size> - <width>0</width> - <height>0</height> - </size> - </property> - </widget> - </item> - <item row="3" column="1" > - <widget class="QLineEdit" name="edit4_user" /> - </item> - <item row="4" column="1" > - <widget class="QLineEdit" name="edit5_password" > - <property name="echoMode" > - <enum>QLineEdit::Password</enum> - </property> - </widget> - </item> <item row="5" column="1" > <widget class="QLineEdit" name="edit6_mailbox" /> </item> - <item row="1" column="1" > - <widget class="QComboBox" name="edit2_protocol" > - <item> - <property name="text" > - <string>SIP</string> - </property> - </item> - <item> - <property name="text" > - <string>IAX</string> - </property> - </item> + <item row="6" column="0" > + <widget class="QLabel" name="label7_state" > + <property name="text" > + <string>État </string> + </property> </widget> </item> <item row="6" column="1" > @@ -721,11 +728,124 @@ </property> </widget> </item> - <item row="6" column="0" > - <widget class="QLabel" name="label7_state" > - <property name="text" > - <string>État </string> - </property> + <item row="7" column="0" > + <widget class="QWidget" native="1" name="widget_3" > + <layout class="QHBoxLayout" name="horizontalLayout_7" > + <property name="spacing" > + <number>0</number> + </property> + <property name="margin" > + <number>0</number> + </property> + <item> + <widget class="QLabel" name="label_4" > + <property name="text" > + <string/> + </property> + <property name="pixmap" > + <pixmap resource="resources.qrc" >:/images/icons/hang_up.svg</pixmap> + </property> + </widget> + </item> + <item> + <layout class="QVBoxLayout" name="verticalLayout_4" > + <property name="spacing" > + <number>0</number> + </property> + <property name="leftMargin" > + <number>0</number> + </property> + <property name="rightMargin" > + <number>0</number> + </property> + <item> + <widget class="QLabel" name="label_2" > + <property name="text" > + <string>144</string> + </property> + <property name="indent" > + <number>5</number> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_8" > + <property name="spacing" > + <number>0</number> + </property> + <property name="topMargin" > + <number>0</number> + </property> + <item> + <widget class="QLabel" name="label" > + <property name="text" > + <string><FONT SIZE=2>Transfer to :</FONT></string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_3" > + <property name="text" > + <string><FONT SIZE=2>122</FONT></string> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item row="8" column="0" > + <widget class="QWidget" native="1" name="widget_4" > + <layout class="QGridLayout" name="gridLayout_2" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item rowspan="2" row="0" column="0" > + <widget class="QLabel" name="label_5" > + <property name="text" > + <string/> + </property> + <property name="pixmap" > + <pixmap resource="resources.qrc" >:/images/icons/hang_up.svg</pixmap> + </property> + </widget> + </item> + <item row="1" column="1" > + <widget class="QLabel" name="label_7" > + <property name="text" > + <string><FONT SIZE=2>Transfer to :</FONT></string> + </property> + </widget> + </item> + <item row="1" column="2" > + <widget class="QLabel" name="label_8" > + <property name="text" > + <string><FONT SIZE=2>122</FONT></string> + </property> + </widget> + </item> + <item row="0" column="1" colspan="2" > + <widget class="QLabel" name="label_6" > + <property name="text" > + <string>144</string> + </property> + <property name="indent" > + <number>5</number> + </property> + </widget> + </item> + </layout> + <zorder>label_5</zorder> + <zorder>label_5</zorder> + <zorder>label_7</zorder> + <zorder>label_8</zorder> + <zorder>label_6</zorder> </widget> </item> </layout> diff --git a/sflphone_kde/SFLPhone.cpp b/sflphone_kde/SFLPhone.cpp index 7538cdb3957c1e8b186512c1522f13d49de84474..d4ff43f186b470e7fe1e319447952761987b3679 100644 --- a/sflphone_kde/SFLPhone.cpp +++ b/sflphone_kde/SFLPhone.cpp @@ -70,19 +70,18 @@ QString SFLPhone::firstAccount() return QString(); } -/* -void SFLPhone::typeChar(QChar c) +void SFLPhone::addCallToCallList(Call * call) { - QListWidgetItem * item = listWidget_callList->currentItem(); - if(!item) - { - qDebug() << "Typing when no item is selected. Opening an item."; - item = callList->addDialingCall(); - listWidget_callList->addItem(item); - listWidget_callList->setCurrentRow(listWidget_callList->count() - 1); - } - listWidget_callList->currentItem()->setText(listWidget_callList->currentItem()->text() + c); -}*/ + qDebug() << "addCallToCallList"; + QListWidgetItem * item = call->getItem(); + qDebug() << "addCallToCallList2"; + QWidget * widget = call->getItemWidget(); + qDebug() << "addCallToCallList3"; + listWidget_callList->addItem(item); + qDebug() << "addCallToCallList4"; + listWidget_callList->setItemWidget(item, widget); + qDebug() << "addCallToCallList5"; +} void SFLPhone::typeString(QString str) { @@ -95,11 +94,12 @@ void SFLPhone::typeString(QString str) if(!item) { qDebug() << "Typing when no item is selected. Opening an item."; - item = callList->addDialingCall(); - listWidget_callList->addItem(item); + Call * call = callList->addDialingCall(); + addCallToCallList(call); listWidget_callList->setCurrentRow(listWidget_callList->count() - 1); } - listWidget_callList->currentItem()->setText(listWidget_callList->currentItem()->text() + str); + callList->getCallByItem(listWidget_callList->currentItem())->appendItemText(str); + //listWidget_callList->currentItem()->setText(listWidget_callList->currentItem()->text() + str); } if(stackedWidget_screen->currentWidget() == page_callHistory) { @@ -109,11 +109,11 @@ void SFLPhone::typeString(QString str) } } -void SFLPhone::action(QListWidgetItem * item, call_action action) +void SFLPhone::actionb(Call * call, call_action action) { try { - (*callList)[item]->actionPerformed(action, item->text()); + call->actionPerformed(action); } catch(const char * msg) { @@ -122,6 +122,10 @@ void SFLPhone::action(QListWidgetItem * item, call_action action) updateWindowCallState(); } +void SFLPhone::action(QListWidgetItem * item, call_action action) +{ + actionb(callList->getCallByItem(item), action); +} /******************************************* ******** Update Display Functions ********** @@ -560,8 +564,8 @@ void SFLPhone::on_action_accept_triggered() if(!item || (*callList)[item]->getState() == CALL_STATE_RINGING || (*callList)[item]->getState() == CALL_STATE_CURRENT || (*callList)[item]->getState() == CALL_STATE_HOLD || (*callList)[item]->getState() == CALL_STATE_BUSY) { qDebug() << "Calling when no item is selected or item currently ringing, current, hold or busy. Opening an item."; - item = callList->addDialingCall(); - listWidget_callList->addItem(item); + Call * call = callList->addDialingCall(); + addCallToCallList(call); listWidget_callList->setCurrentRow(listWidget_callList->count() - 1); } else @@ -572,11 +576,11 @@ void SFLPhone::on_action_accept_triggered() if(stackedWidget_screen->currentWidget() == page_callHistory) { action_history->setChecked(false); - QListWidgetItem * item = callList->addDialingCall(); - item->setText(listWidget_callHistory->currentItem()->text()); - listWidget_callList->addItem(item); + Call * call = callList->addDialingCall(); + call->appendItemText(listWidget_callHistory->currentItem()->text()); + addCallToCallList(call); listWidget_callList->setCurrentRow(listWidget_callList->count() - 1); - action(item, CALL_ACTION_ACCEPT); + actionb(call, CALL_ACTION_ACCEPT); } } @@ -656,11 +660,11 @@ void SFLPhone::on_action_mailBox_triggered() else { QString mailBoxNumber = configurationManager.getAccountDetails(account).value()[ACCOUNT_MAILBOX]; - QListWidgetItem * item = callList->addDialingCall(); - item->setText(mailBoxNumber); - listWidget_callList->addItem(item); + Call * call = callList->addDialingCall(); + call->appendItemText(mailBoxNumber); + addCallToCallList(call); listWidget_callList->setCurrentRow(listWidget_callList->count() - 1); - action(item, CALL_ACTION_ACCEPT); + actionb(call, CALL_ACTION_ACCEPT); } } @@ -687,8 +691,8 @@ void SFLPhone::on1_error(MapStringString details) void SFLPhone::on1_incomingCall(const QString &accountID, const QString & callID, const QString &from) { qDebug() << "Incoming Call !"; - QListWidgetItem * item = callList->addIncomingCall(callID, from, accountID); - listWidget_callList->addItem(item); + Call * call = callList->addIncomingCall(callID, from, accountID); + addCallToCallList(call); listWidget_callList->setCurrentRow(listWidget_callList->count() - 1); } diff --git a/sflphone_kde/SFLPhone.h b/sflphone_kde/SFLPhone.h index 5f725590ee583a0679ab2b323b524cabeb4d4ffc..b7eb4f0733fe800a7c8d0c67dbcec12000fd9979 100644 --- a/sflphone_kde/SFLPhone.h +++ b/sflphone_kde/SFLPhone.h @@ -27,8 +27,11 @@ public: private slots: //void typeChar(QChar c); void typeString(QString str); + void actionb(Call * call, call_action action); void action(QListWidgetItem * item, call_action action); + void addCallToCallList(Call * call); + void updateWindowCallState(); void updateSearchHistory(); void updateCallHistory(); diff --git a/sflphone_kde/resources.qrc b/sflphone_kde/resources.qrc index f4b96db5f23069f3ddcbcff0729c7621e3eec7e3..97ac5653919b9eb9655ee13bc8dc132fe8c244c5 100644 --- a/sflphone_kde/resources.qrc +++ b/sflphone_kde/resources.qrc @@ -26,9 +26,6 @@ <file>icons/icon_volume.svg</file> <file>icons/incoming.svg</file> <file>icons/mailbox.svg</file> - <file>icons/Makefile</file> - <file>icons/Makefile.am</file> - <file>icons/Makefile.in</file> <file>icons/mic_25.svg</file> <file>icons/mic_50.svg</file> <file>icons/mic_75.svg</file> @@ -68,9 +65,6 @@ <file>icons/icon_volume.svg</file> <file>icons/incoming.svg</file> <file>icons/mailbox.svg</file> - <file>icons/Makefile</file> - <file>icons/Makefile.am</file> - <file>icons/Makefile.in</file> <file>icons/mic_25.svg</file> <file>icons/mic_50.svg</file> <file>icons/mic_75.svg</file> diff --git a/sflphone_kde/sflphone_const.h b/sflphone_kde/sflphone_const.h index a4caa7a204942604d7d8b4f1a5f94c75afa843d4..192c8c10364e44b9c4317f9b1e748b91f7115599 100644 --- a/sflphone_kde/sflphone_const.h +++ b/sflphone_kde/sflphone_const.h @@ -35,72 +35,78 @@ #define UNUSED __attribute__((__unused__)) -#define PAGE_GENERAL 0 -#define PAGE_DISPLAY 1 -#define PAGE_ACCOUNTS 2 -#define PAGE_AUDIO 3 - -#define ICON_INCOMING ":/images/icons/ring.svg" -#define ICON_RINGING ":/images/icons/ring.svg" -#define ICON_CURRENT ":/images/icons/current.svg" -#define ICON_DIALING ":/images/icons/dial.svg" -#define ICON_HOLD ":/images/icons/hold.svg" -#define ICON_FAILURE ":/images/icons/fail.svg" -#define ICON_BUSY ":/images/icons/busy.svg" -#define ICON_TRANSFER ":/images/icons/transfert.svg" -#define ICON_TRANSF_HOLD ":/images/icons/transfert.svg" - -#define ICON_CALL ":/images/icons/call.svg" -#define ICON_HANGUP ":/images/icons/hang_up.svg" -#define ICON_UNHOLD ":/images/icons/unhold.svg" -#define ICON_ACCEPT ":/images/icons/accept.svg" -#define ICON_REFUSE ":/images/icons/refuse.svg" -#define ICON_EXEC_TRANSF ":/images/icons/call.svg" -#define ICON_REC_DEL_OFF ":/images/icons/del_off.png" -#define ICON_REC_DEL_ON ":/images/icons/del_on.png" - -#define ICON_REC_VOL_0 ":/images/icons/mic.svg" -#define ICON_REC_VOL_1 ":/images/icons/mic_25.svg" -#define ICON_REC_VOL_2 ":/images/icons/mic_50.svg" -#define ICON_REC_VOL_3 ":/images/icons/mic_75.svg" - -#define ICON_SND_VOL_0 ":/images/icons/speaker.svg" -#define ICON_SND_VOL_1 ":/images/icons/speaker_25.svg" -#define ICON_SND_VOL_2 ":/images/icons/speaker_50.svg" -#define ICON_SND_VOL_3 ":/images/icons/speaker_75.svg" - -#define ICON_HISTORY_INCOMING ":/images/icons/incoming.svg" -#define ICON_HISTORY_OUTGOING ":/images/icons/outgoing.svg" -#define ICON_HISTORY_MISSED ":/images/icons/missed.svg" - -#define RECORD_DEVICE "mic" -#define SOUND_DEVICE "speaker" - -#define ACCOUNT_TYPE "Account.type" -#define ACCOUNT_ALIAS "Account.alias" -#define ACCOUNT_ENABLED "Account.enable" -#define ACCOUNT_MAILBOX "Account.mailbox" -#define ACCOUNT_HOSTNAME "hostname" -#define ACCOUNT_USERNAME "username" -#define ACCOUNT_PASSWORD "password" -#define ACCOUNT_STATUS "Status" -#define ACCOUNT_SIP_STUN_SERVER "STUN.server" -#define ACCOUNT_SIP_STUN_ENABLED "STUN.enable" - -#define ACCOUNT_ENABLED_TRUE "TRUE" -#define ACCOUNT_ENABLED_FALSE "FALSE" - -#define ACCOUNT_STATE_REGISTERED "REGISTERED" -#define ACCOUNT_STATE_UNREGISTERED "UNREGISTERED" -#define ACCOUNT_STATE_TRYING "TRYING" -#define ACCOUNT_STATE_ERROR "ERROR" -#define ACCOUNT_STATE_ERROR_AUTH "ERROR_AUTH" -#define ACCOUNT_STATE_ERROR_NETWORK "ERROR_NETWORK" -#define ACCOUNT_STATE_ERROR_HOST "ERROR_HOST" -#define ACCOUNT_STATE_ERROR_CONF_STUN "ERROR_CONF_STUN" -#define ACCOUNT_STATE_ERROR_EXIST_STUN "ERROR_EXIST_STUN" - -#define ACCOUNT_ITEM_CHECKBOX "checkbox" + +#define PAGE_GENERAL 0 +#define PAGE_DISPLAY 1 +#define PAGE_ACCOUNTS 2 +#define PAGE_AUDIO 3 + + +#define ICON_INCOMING ":/images/icons/ring.svg" +#define ICON_RINGING ":/images/icons/ring.svg" +#define ICON_CURRENT ":/images/icons/current.svg" +#define ICON_DIALING ":/images/icons/dial.svg" +#define ICON_HOLD ":/images/icons/hold.svg" +#define ICON_FAILURE ":/images/icons/fail.svg" +#define ICON_BUSY ":/images/icons/busy.svg" +#define ICON_TRANSFER ":/images/icons/transfert.svg" +#define ICON_TRANSF_HOLD ":/images/icons/transfert.svg" + +#define ICON_CALL ":/images/icons/call.svg" +#define ICON_HANGUP ":/images/icons/hang_up.svg" +#define ICON_UNHOLD ":/images/icons/unhold.svg" +#define ICON_ACCEPT ":/images/icons/accept.svg" +#define ICON_REFUSE ":/images/icons/refuse.svg" +#define ICON_EXEC_TRANSF ":/images/icons/call.svg" +#define ICON_REC_DEL_OFF ":/images/icons/del_off.png" +#define ICON_REC_DEL_ON ":/images/icons/del_on.png" + +#define ICON_REC_VOL_0 ":/images/icons/mic.svg" +#define ICON_REC_VOL_1 ":/images/icons/mic_25.svg" +#define ICON_REC_VOL_2 ":/images/icons/mic_50.svg" +#define ICON_REC_VOL_3 ":/images/icons/mic_75.svg" + +#define ICON_SND_VOL_0 ":/images/icons/speaker.svg" +#define ICON_SND_VOL_1 ":/images/icons/speaker_25.svg" +#define ICON_SND_VOL_2 ":/images/icons/speaker_50.svg" +#define ICON_SND_VOL_3 ":/images/icons/speaker_75.svg" + +#define ICON_HISTORY_INCOMING ":/images/icons/incoming.svg" +#define ICON_HISTORY_OUTGOING ":/images/icons/outgoing.svg" +#define ICON_HISTORY_MISSED ":/images/icons/missed.svg" + + +#define RECORD_DEVICE "mic" +#define SOUND_DEVICE "speaker" + + +#define ACCOUNT_TYPE "Account.type" +#define ACCOUNT_ALIAS "Account.alias" +#define ACCOUNT_ENABLED "Account.enable" +#define ACCOUNT_MAILBOX "Account.mailbox" +#define ACCOUNT_HOSTNAME "hostname" +#define ACCOUNT_USERNAME "username" +#define ACCOUNT_PASSWORD "password" +#define ACCOUNT_STATUS "Status" +#define ACCOUNT_SIP_STUN_SERVER "STUN.server" +#define ACCOUNT_SIP_STUN_ENABLED "STUN.enable" + +#define ACCOUNT_ENABLED_TRUE "TRUE" +#define ACCOUNT_ENABLED_FALSE "FALSE" + +#define ACCOUNT_STATE_REGISTERED "REGISTERED" +#define ACCOUNT_STATE_UNREGISTERED "UNREGISTERED" +#define ACCOUNT_STATE_TRYING "TRYING" +#define ACCOUNT_STATE_ERROR "ERROR" +#define ACCOUNT_STATE_ERROR_AUTH "ERROR_AUTH" +#define ACCOUNT_STATE_ERROR_NETWORK "ERROR_NETWORK" +#define ACCOUNT_STATE_ERROR_HOST "ERROR_HOST" +#define ACCOUNT_STATE_ERROR_CONF_STUN "ERROR_CONF_STUN" +#define ACCOUNT_STATE_ERROR_EXIST_STUN "ERROR_EXIST_STUN" + +#define ACCOUNT_ITEM_CHECKBOX "checkbox" +#define ACCOUNT_ITEM_LED "led" + #define CALL_STATE_CHANGE_HUNG_UP "HUNGUP" #define CALL_STATE_CHANGE_RINGING "RINGING" @@ -109,27 +115,32 @@ #define CALL_STATE_CHANGE_BUSY "BUSY" #define CALL_STATE_CHANGE_FAILURE "FAILURE" #define CALL_STATE_CHANGE_UNHOLD_CURRENT "UNHOLD_CURRENT" -#define CALL_STATE_CHANGE_UNHOLD_RECORD "UNHOLD_RECORD" +#define CALL_STATE_CHANGE_UNHOLD_RECORD "UNHOLD_RECORD" + +#define CALL_ITEM_CALL_NUMBER "callNumber" +#define CALL_ITEM_TRANSFER_NUMBER "transferNumber" +#define CALL_ITEM_ICON "icon" -#define MAX_HISTORY_CAPACITY 60 -#define CODEC_NAME 0 -#define CODEC_SAMPLE_RATE 1 -#define CODEC_BIT_RATE 2 -#define CODEC_BANDWIDTH 3 +#define MAX_HISTORY_CAPACITY 60 + + +#define CODEC_NAME 0 +#define CODEC_SAMPLE_RATE 1 +#define CODEC_BIT_RATE 2 +#define CODEC_BANDWIDTH 3 /** Error while opening capture device */ -#define ALSA_CAPTURE_DEVICE 0x0001 +#define ALSA_CAPTURE_DEVICE 0x0001 /** Error while opening playback device */ -#define ALSA_PLAYBACK_DEVICE 0x0010 +#define ALSA_PLAYBACK_DEVICE 0x0010 /** Error pulseaudio */ -#define PULSEAUDIO_NOT_RUNNING 0x0100 - +#define PULSEAUDIO_NOT_RUNNING 0x0100 /** Tone to play when no voice mails */ -#define TONE_WITHOUT_MESSAGE 0 +#define TONE_WITHOUT_MESSAGE 0 /** Tone to play when voice mails */ #define TONE_WITH_MESSAGE 1 /** Tells if the main window is reduced to the system tray or not */