diff --git a/sflphone-client-kde/src/Account.cpp b/sflphone-client-kde/src/Account.cpp index e4cbead64c0b1c1c68c0b23bfaacdca60de756b1..0de2b732a4c2865059337240e229db9fdf8c46b2 100644 --- a/sflphone-client-kde/src/Account.cpp +++ b/sflphone-client-kde/src/Account.cpp @@ -53,7 +53,9 @@ const QString account_state_name(QString & s) //Constructors -Account::Account():accountId(NULL), item(NULL), itemWidget(NULL){} +Account::Account():accountId(NULL), item(NULL), itemWidget(NULL) +{ +} void Account::initAccountItem() @@ -90,6 +92,7 @@ void Account::initAccountItemWidget() { itemWidget->setState(AccountItemWidget::NotWorking); } + connect(itemWidget, SIGNAL(checkStateChanged(bool)), this, SLOT(setEnabled(bool))); } Account * Account::buildExistingAccountFromId(QString _accountId) @@ -147,13 +150,11 @@ MapStringString & Account::getAccountDetails() const QListWidgetItem * Account::getItem() { - if(!item) { qDebug() << "null" ; } return item; } AccountItemWidget * Account::getItemWidget() { - if(itemWidget == NULL) { qDebug() << "null"; } return itemWidget; } @@ -214,6 +215,12 @@ void Account::setAccountId(QString id) accountId = new QString(id); } +void Account::setEnabled(bool checked) +{ + qDebug() << "setEnabled = " << checked; + setAccountDetail(ACCOUNT_ENABLED, checked ? ACCOUNT_ENABLED_TRUE : ACCOUNT_ENABLED_FALSE); +} + void Account::updateState() { qDebug() << "updateState"; diff --git a/sflphone-client-kde/src/Account.h b/sflphone-client-kde/src/Account.h index e1463bb64e3b280999f25f7a14e1bc7b49392187..65456d57f1526ebd1d8601bd2f5550f349f43b34 100644 --- a/sflphone-client-kde/src/Account.h +++ b/sflphone-client-kde/src/Account.h @@ -31,8 +31,8 @@ const QString account_state_name(QString & s); -class Account{ - +class Account : public QObject{ +Q_OBJECT private: QString * accountId; @@ -76,6 +76,10 @@ public: //Operators bool operator==(const Account&)const; +private slots: + void setEnabled(bool checked); + + }; diff --git a/sflphone-client-kde/src/AccountItemWidget.cpp b/sflphone-client-kde/src/AccountItemWidget.cpp index ab841e83a60a089db27df0bae82344571972aa49..3549b5fd92f2da3398e394d35ec317e6606faebe 100644 --- a/sflphone-client-kde/src/AccountItemWidget.cpp +++ b/sflphone-client-kde/src/AccountItemWidget.cpp @@ -113,7 +113,8 @@ bool AccountItemWidget::getEnabled() return checkBox->checkState(); } -void AccountItemWidget::on_checkBox_stateChanged() +void AccountItemWidget::on_checkBox_stateChanged(int state) { - emit checkStateChanged(); + qDebug() << "on_checkBox_stateChanged"; + emit checkStateChanged(state == Qt::Checked); } diff --git a/sflphone-client-kde/src/AccountItemWidget.h b/sflphone-client-kde/src/AccountItemWidget.h index 25c1a688dc1fb7c88a753d793a1de68ce69db6f5..60055a3e5b09728a0bc886d9c152eecaee791294 100644 --- a/sflphone-client-kde/src/AccountItemWidget.h +++ b/sflphone-client-kde/src/AccountItemWidget.h @@ -65,11 +65,11 @@ public: void updateDisplay(); private slots: - void on_checkBox_stateChanged(); + void on_checkBox_stateChanged(int state); signals: - void checkStateChanged(); + void checkStateChanged(bool checked); }; diff --git a/sflphone-client-kde/src/Call.cpp b/sflphone-client-kde/src/Call.cpp index e5f2e94c1f6cad8eee3ad25a3f2a25f44867b283..5539577e4f1e8c408083326099d7b3c35a4636ff 100644 --- a/sflphone-client-kde/src/Call.cpp +++ b/sflphone-client-kde/src/Call.cpp @@ -54,7 +54,7 @@ const function Call::actionPerformedFunctionMap[11][5] = /*INCOMING */ {&Call::accept , &Call::refuse , &Call::acceptTransf , &Call::acceptHold , &Call::setRecord }, /*RINGING */ {&Call::nothing , &Call::hangUp , &Call::nothing , &Call::nothing , &Call::setRecord }, /*CURRENT */ {&Call::nothing , &Call::hangUp , &Call::nothing , &Call::hold , &Call::setRecord }, -/*DIALING */ {&Call::call , &Call::nothing , &Call::nothing , &Call::nothing , &Call::nothing }, +/*DIALING */ {&Call::call , &Call::cancel , &Call::nothing , &Call::nothing , &Call::nothing }, /*HOLD */ {&Call::nothing , &Call::hangUp , &Call::nothing , &Call::unhold , &Call::setRecord }, /*FAILURE */ {&Call::nothing , &Call::hangUp , &Call::nothing , &Call::nothing , &Call::nothing }, /*BUSY */ {&Call::nothing , &Call::hangUp , &Call::nothing , &Call::nothing , &Call::nothing }, @@ -275,6 +275,14 @@ call_state Call::getStartStateFromDaemonCallState(QString daemonCallState, QStri { return CALL_STATE_RINGING; } + else if(daemonCallState == DAEMON_CALL_STATE_INIT_INCOMING) + { + return CALL_STATE_INCOMING; + } + else if(daemonCallState == DAEMON_CALL_STATE_INIT_RINGING) + { + return CALL_STATE_RINGING; + } else { return CALL_STATE_FAILURE; @@ -558,6 +566,13 @@ void Call::hangUp() callManager.hangUp(callId); } +void Call::cancel() +{ + CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + qDebug() << "Canceling call. callId : " << callId; + callManager.hangUp(callId); +} + void Call::hold() { CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); diff --git a/sflphone-client-kde/src/Call.h b/sflphone-client-kde/src/Call.h index 143c0cb4ebfa5075e9cedeb6951bffe468a832ef..8ec2ca9a0f6c4b57aaa56506b816355f063ae522 100644 --- a/sflphone-client-kde/src/Call.h +++ b/sflphone-client-kde/src/Call.h @@ -167,6 +167,7 @@ private: void acceptTransf(); void acceptHold(); void hangUp(); + void cancel(); void hold(); void call(); void transfer(); diff --git a/sflphone-client-kde/src/CallList.cpp b/sflphone-client-kde/src/CallList.cpp index ca189dee7763918ddb9e57d6b23890d990d74bab..d3415983fbec25f2f037a9654ec968851c1bee41 100644 --- a/sflphone-client-kde/src/CallList.cpp +++ b/sflphone-client-kde/src/CallList.cpp @@ -31,7 +31,6 @@ CallList::CallList() ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); QStringList callList = callManager.getCallList(); qDebug() << "Call List = " << callList; - callIdCpt = 0; calls = new QVector<Call *>(); for(int i = 0 ; i < callList.size() ; i++) { @@ -49,7 +48,7 @@ CallList::CallList() QString name = param[2]; uint stopTimeStamp = param[3].toUInt(); QString account = param[4]; - calls->append(Call::buildHistoryCall(getAndIncCallId(), startTimeStamp, stopTimeStamp, account, name, number, type)); + calls->append(Call::buildHistoryCall(generateCallId(), startTimeStamp, stopTimeStamp, account, name, number, type)); } } @@ -127,10 +126,11 @@ Call * CallList::operator[](int ind) return (*calls)[ind]; } -QString CallList::getAndIncCallId() + +QString CallList::generateCallId() { - QString res = QString::number(callIdCpt++); - + int id = qrand(); + QString res = QString::number(id); return res; } @@ -141,7 +141,7 @@ int CallList::size() Call * CallList::addDialingCall(const QString & peerName, QString account) { - Call * call = Call::buildDialingCall(getAndIncCallId(), peerName, account); + Call * call = Call::buildDialingCall(generateCallId(), peerName, account); calls->append(call); return call; } diff --git a/sflphone-client-kde/src/CallList.h b/sflphone-client-kde/src/CallList.h index 2ca3dd10b1f0d304b276bbc1db4df9c7acdda67a..e9ff5341b32a19a4822620b7e63886495eb733c7 100644 --- a/sflphone-client-kde/src/CallList.h +++ b/sflphone-client-kde/src/CallList.h @@ -35,7 +35,6 @@ Q_OBJECT private: QVector<Call *> * calls; - int callIdCpt; public: @@ -58,7 +57,7 @@ public: Call * addRingingCall(const QString & callId); //GSetter - QString getAndIncCallId(); + QString generateCallId(); public slots: void clearHistory(); diff --git a/sflphone-client-kde/src/conf/dlgaccounts.cpp b/sflphone-client-kde/src/conf/dlgaccounts.cpp index f0732f85e8c26f9eff9d3a0e99da26b1cc1ffcdd..14a2089c95045ca1188f3ebd8114c61fae839d1a 100644 --- a/sflphone-client-kde/src/conf/dlgaccounts.cpp +++ b/sflphone-client-kde/src/conf/dlgaccounts.cpp @@ -109,7 +109,6 @@ void DlgAccounts::saveAccountList() } } qDebug() << currentId << " : " << current.isChecked(); - configurationManager.sendRegister(currentId, current.isChecked() ? 1 : 0 ); } //remove accounts that are in the configurationManager but not in the client for (int i = 0; i < accountIds.size(); i++) @@ -205,7 +204,7 @@ void DlgAccounts::addAccountToAccountList(Account * account) qDebug() << "addAccountToAccountList"; QListWidgetItem * item = account->getItem(); QWidget * widget = account->getItemWidget(); - connect(widget, SIGNAL(checkStateChanged()), + connect(widget, SIGNAL(checkStateChanged(bool)), this, SLOT(changedAccountList())); qDebug() << "item->isHidden()" << item->isHidden(); listWidget_accountList->addItem(item); @@ -215,6 +214,7 @@ void DlgAccounts::addAccountToAccountList(Account * account) void DlgAccounts::changedAccountList() { + qDebug() << "changedAccountList"; accountListHasChanged = true; emit updateButtons(); toolButton_accountsApply->setEnabled(hasChanged()); diff --git a/sflphone-client-kde/src/main.cpp b/sflphone-client-kde/src/main.cpp index ae4bd9142787bf43d2ba0ce85881f4f0fe06606d..23853b339751d74b5fcc37be72497c252f6a15aa 100644 --- a/sflphone-client-kde/src/main.cpp +++ b/sflphone-client-kde/src/main.cpp @@ -39,9 +39,7 @@ int main(int argc, char **argv) KLocalizedString(), "http://www.sflphone.org.", "sflphone@lists.savoirfairelinux.net"); - about.setProgramLogo(QVariant(QImage(ICON_SFLPHONE))); about.addAuthor( ki18n("Jérémy Quentin"), KLocalizedString(), "jeremy.quentin@savoirfairelinux.com" ); - about.setProgramIconName(ICON_SFLPHONE); about.setTranslator( ki18nc("NAME OF TRANSLATORS","Your names"), ki18nc("EMAIL OF TRANSLATORS","Your emails") ); KCmdLineArgs::init(argc, argv, &about); KCmdLineOptions options; diff --git a/sflphone-client-kde/src/sflphone_const.h b/sflphone-client-kde/src/sflphone_const.h index 06d67cef2b1cd91e6d654cf6e066bc06db16a8ce..aa08c6e4e096ca92afacc8df1b30fdad59b25621 100644 --- a/sflphone-client-kde/src/sflphone_const.h +++ b/sflphone-client-kde/src/sflphone_const.h @@ -167,6 +167,8 @@ #define DAEMON_CALL_STATE_INIT_CURRENT "CURRENT" #define DAEMON_CALL_STATE_INIT_HOLD "HOLD" #define DAEMON_CALL_STATE_INIT_BUSY "BUSY" +#define DAEMON_CALL_STATE_INIT_INCOMING "INCOMING" +#define DAEMON_CALL_STATE_INIT_RINGING "RINGING" #define DAEMON_CALL_STATE_INIT_INACTIVE "INACTIVE" #define DAEMON_CALL_TYPE_INCOMING "0"