From 03d715cadb6eb822e4b60195c15a27eef847e833 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Quentin?= <jquentin@jquentin-laptop-kub2.(none)> Date: Mon, 6 Jul 2009 12:46:49 -0400 Subject: [PATCH] [#1795] Crashes when adding a new account, checking it and applying --- sflphone-client-kde/src/Account.cpp | 13 ++++++++++--- sflphone-client-kde/src/Account.h | 8 ++++++-- sflphone-client-kde/src/AccountItemWidget.cpp | 5 +++-- sflphone-client-kde/src/AccountItemWidget.h | 4 ++-- sflphone-client-kde/src/conf/dlgaccounts.cpp | 4 ++-- 5 files changed, 23 insertions(+), 11 deletions(-) diff --git a/sflphone-client-kde/src/Account.cpp b/sflphone-client-kde/src/Account.cpp index e4cbead64c..0de2b732a4 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 e1463bb64e..65456d57f1 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 ab841e83a6..3549b5fd92 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 25c1a688dc..60055a3e5b 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/conf/dlgaccounts.cpp b/sflphone-client-kde/src/conf/dlgaccounts.cpp index f0732f85e8..14a2089c95 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()); -- GitLab