[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [sflphone-kde] src: [ #30839 ] Better handling of KeyExchnage categories
From: Emmanuel Lepage Vallee <emmanuel.lepage () savoirfairelinux ! com>
Date: 2013-09-30 19:50:51
Message-ID: E1VQjUZ-0006P3-IV () scm ! kde ! org
[Download RAW message or body]
Git commit 255047f94652ea4fe87aa671f8c0d242068e571a by Emmanuel Lepage Vallee.
Committed on 30/09/2013 at 16:35.
Pushed by lepagevalleeemmanuel into branch 'master'.
[ #30839 ] Better handling of KeyExchnage categories
This helped discover a serious bug in security handling. It cannot
be explpoited because the feature is downright broken. Will be fixed
next.
M +6 -6 src/accountwizard.cpp
M +36 -33 src/conf/dlgaccounts.cpp
M +0 -15 src/conf/dlgaccountsbase.ui
M +2 -0 src/lib/CMakeLists.txt
M +54 -51 src/lib/account.cpp
M +36 -35 src/lib/account.h
M +6 -6 src/lib/accountlistmodel.cpp
M +1 -1 src/lib/call.cpp
A +77 -0 src/lib/keyexchangemodel.cpp [License: LGPL (v2.1+)]
A +65 -0 src/lib/keyexchangemodel.h [License: LGPL (v2.1+)]
M +2 -2 src/lib/sflphone_const.h
M +5 -5 src/sflphoneview.cpp
M +2 -2 src/widgets/bookmarkdock.cpp
http://commits.kde.org/sflphone-kde/255047f94652ea4fe87aa671f8c0d242068e571a
diff --git a/src/accountwizard.cpp b/src/accountwizard.cpp
index b457eb5..63de55b 100644
--- a/src/accountwizard.cpp
+++ b/src/accountwizard.cpp
@@ -302,12 +302,12 @@ void AccountWizard::accept()
}
if(field(FIELD_ZRTP_ENABLED).toBool()) {
- srtp_enabled = QString( REGISTRATION_ENABLED_TRUE );
- key_exchange = QString( ZRTP );
- zrtp_display_sas = QString( REGISTRATION_ENABLED_TRUE );
- zrtp_not_supp_warning = QString( REGISTRATION_ENABLED_TRUE );
- zrtp_hello_hash = QString( REGISTRATION_ENABLED_TRUE );
- display_sas_once = QString( REGISTRATION_ENABLED_FALSE );
+ srtp_enabled = QString( REGISTRATION_ENABLED_TRUE );
+ key_exchange = QString( KeyExchangeModel::Name::ZRTP );
+ zrtp_display_sas = QString( REGISTRATION_ENABLED_TRUE );
+ zrtp_not_supp_warning = QString( REGISTRATION_ENABLED_TRUE );
+ zrtp_hello_hash = QString( REGISTRATION_ENABLED_TRUE );
+ display_sas_once = QString( REGISTRATION_ENABLED_FALSE );
}
QStringList ifaceList = configurationManager.getAllIpInterface();
diff --git a/src/conf/dlgaccounts.cpp b/src/conf/dlgaccounts.cpp
index a2ab4ad..ce72f36 100644
--- a/src/conf/dlgaccounts.cpp
+++ b/src/conf/dlgaccounts.cpp
@@ -42,6 +42,7 @@
#include "lib/credentialmodel.h"
#include "lib/audiocodecmodel.h"
#include "lib/accountlistmodel.h"
+#include "lib/keyexchangemodel.h"
//OS
#ifdef Q_WS_WIN // MS Windows version
@@ -80,6 +81,8 @@ DlgAccounts::DlgAccounts(KConfigDialog* parent)
loadAccountList();
accountListHasChanged = false;
+ combo_security_STRP->setModel(KeyExchangeModel::instance());
+
//SLOTS
// SENDER SIGNAL RECEIVER \
SLOT / /**/connect(edit1_alias, \
SIGNAL(textEdited(QString)) , this , SLOT(changedAccountList()) ); @@ -194,24 \
+197,24 @@ void DlgAccounts::saveAccount(QModelIndex item) return;
}
m_IsLoading++;
-
+
if (!m_pProxyCK->isChecked()) {
m_pProxyLE->setText("");
}
-
+
QString protocolsTab[] = ACCOUNT_TYPES_TAB;
-
+
//ACCOUNT DETAILS
// WIDGET VALUE \
/
- /**/account->setAccountType ( protocolsTab[edit2_protocol->currentIndex()] \
); + /**/account->setType ( protocolsTab[edit2_protocol->currentIndex()] \
); /**/account->setAlias ( edit1_alias->text() \
); /**/account->setHostname ( edit3_server->text() \
); /**/account->setUsername ( edit4_user->text() \
);
- /**/account->setAccountPassword ( edit5_password->text() \
); + /**/account->setPassword ( edit5_password->text() \
); /**/account->setMailbox ( edit6_mailbox->text() \
); /**/account->setProxy ( m_pProxyLE->text() \
); /**/account->setEnabled ( item.data(Qt::CheckStateRole).toBool() \
);
- /**/account->setAccountRegistrationExpire ( spinbox_regExpire->value() \
); + /**/account->setRegistrationExpire ( spinbox_regExpire->value() \
); /**/ \
/**/ /* Security \
*/ /**/account->setTlsPassword ( edit_tls_private_key_password->text() \
); @@ -219,7 +222,7 @@ void DlgAccounts::saveAccount(QModelIndex item)
/**/account->setTlsCaListFile ( file_tls_authority->text() \
); /**/account->setTlsCertificateFile ( file_tls_endpoint->text() \
); /**/account->setTlsPrivateKeyFile ( file_tls_private_key->text() \
);
- /**/account->setTlsMethod ( combo_tls_method->currentIndex() \
); + /**/account->setTlsMethod ( \
static_cast<KeyExchangeModel::Type>(combo_tls_method->currentIndex()) ); /**/account->setTlsCiphers \
( edit_tls_cipher->text() ); \
/**/account->setTlsServerName ( edit_tls_outgoing->text() \
); /**/account->setTlsNegotiationTimeoutSec ( spinbox_tls_timeout_sec->value() \
); @@ -229,14 +232,14 @@ void DlgAccounts::saveAccount(QModelIndex item)
/**/account->setTlsVerifyClient ( check_tls_answer->isChecked() \
); /**/account->setTlsRequireClientCertificate ( check_tls_requier_cert->isChecked() \
); /**/account->setTlsEnable ( group_security_tls->isChecked() \
);
- /**/account->setAccountDisplaySasOnce ( checkbox_ZRTP_Ask_user->isChecked() \
);
- /**/account->setAccountSrtpRtpFallback ( checkbox_SDES_fallback_rtp->isChecked() \
);
- /**/account->setAccountZrtpDisplaySas ( checkbox_ZRTP_display_SAS->isChecked() \
);
- /**/account->setAccountZrtpNotSuppWarning ( checkbox_ZRTP_warn_supported->isChecked() \
);
- /**/account->setAccountZrtpHelloHash ( checkbox_ZTRP_send_hello->isChecked() \
);
- /**/account->setAccountSipStunEnabled ( checkbox_stun->isChecked() \
); + /**/account->setDisplaySasOnce ( checkbox_ZRTP_Ask_user->isChecked() \
); + /**/account->setSrtpRtpFallback ( checkbox_SDES_fallback_rtp->isChecked() \
); + /**/account->setZrtpDisplaySas ( checkbox_ZRTP_display_SAS->isChecked() \
); + /**/account->setZrtpNotSuppWarning ( checkbox_ZRTP_warn_supported->isChecked() \
); + /**/account->setZrtpHelloHash ( checkbox_ZTRP_send_hello->isChecked() \
); + /**/account->setSipStunEnabled ( checkbox_stun->isChecked() \
); /**/account->setPublishedSameAsLocal ( radioButton_pa_same_as_local->isChecked() \
);
- /**/account->setAccountSipStunServer ( line_stun->text() \
); + /**/account->setSipStunServer ( line_stun->text() \
); /**/account->setPublishedPort ( spinBox_pa_published_port->value() \
); /**/account->setPublishedAddress ( lineEdit_pa_published_address ->text() \
); /**/account->setLocalPort ( spinBox_pa_published_port->value() \
); @@ -299,8 +302,8 @@ void DlgAccounts::loadAccount(QModelIndex item)
protocolsList->append(protocolsTab[i]);
}
- const QString accountName = account->accountType();
- int protocolIndex = protocolsList->indexOf(accountName);
+ const QString accountType = account->type();
+ const int protocolIndex = protocolsList->indexOf(accountType);
delete protocolsList;
@@ -317,21 +320,21 @@ void DlgAccounts::loadAccount(QModelIndex item)
connect(account,SIGNAL(aliasChanged(QString)),this,SLOT(aliasChanged(QString)));
switch (account->tlsMethod()) {
- case 0: //KEY_EXCHANGE_NONE
+ case KeyExchangeModel::Type::NONE:
checkbox_SDES_fallback_rtp->setVisible ( false );
checkbox_ZRTP_Ask_user->setVisible ( false );
checkbox_ZRTP_display_SAS->setVisible ( false );
checkbox_ZRTP_warn_supported->setVisible ( false );
checkbox_ZTRP_send_hello->setVisible ( false );
break;
- case 1: //ZRTP
+ case KeyExchangeModel::Type::ZRTP:
checkbox_SDES_fallback_rtp->setVisible ( false );
checkbox_ZRTP_Ask_user->setVisible ( true );
checkbox_ZRTP_display_SAS->setVisible ( true );
checkbox_ZRTP_warn_supported->setVisible ( true );
checkbox_ZTRP_send_hello->setVisible ( true );
break;
- case 2: //SDES
+ case KeyExchangeModel::Type::SDES:
checkbox_SDES_fallback_rtp->setVisible ( true );
checkbox_ZRTP_Ask_user->setVisible ( false );
checkbox_ZRTP_display_SAS->setVisible ( false );
@@ -346,14 +349,14 @@ void DlgAccounts::loadAccount(QModelIndex item)
/**/edit4_user->setText ( account->username ());
/**/edit6_mailbox->setText ( account->mailbox ());
/**/m_pProxyLE->setText ( account->proxy ());
- /**/checkbox_ZRTP_Ask_user->setChecked ( account->isAccountDisplaySasOnce ());
- /**/checkbox_SDES_fallback_rtp->setChecked ( account->isAccountSrtpRtpFallback ());
- /**/checkbox_ZRTP_display_SAS->setChecked ( account->isAccountZrtpDisplaySas ());
- /**/checkbox_ZRTP_warn_supported->setChecked ( account->isAccountZrtpNotSuppWarning ());
- /**/checkbox_ZTRP_send_hello->setChecked ( account->isAccountZrtpHelloHash ());
- /**/checkbox_stun->setChecked ( account->isAccountSipStunEnabled ());
- /**/line_stun->setText ( account->accountSipStunServer ());
- /**/spinbox_regExpire->setValue ( account->accountRegistrationExpire ());
+ /**/checkbox_ZRTP_Ask_user->setChecked ( account->isDisplaySasOnce ());
+ /**/checkbox_SDES_fallback_rtp->setChecked ( account->isSrtpRtpFallback ());
+ /**/checkbox_ZRTP_display_SAS->setChecked ( account->isZrtpDisplaySas ());
+ /**/checkbox_ZRTP_warn_supported->setChecked ( account->isZrtpNotSuppWarning ());
+ /**/checkbox_ZTRP_send_hello->setChecked ( account->isZrtpHelloHash ());
+ /**/checkbox_stun->setChecked ( account->isSipStunEnabled ());
+ /**/line_stun->setText ( account->sipStunServer ());
+ /**/spinbox_regExpire->setValue ( account->registrationExpire ());
/**/radioButton_pa_same_as_local->setChecked ( account->isPublishedSameAsLocal ());
/**/radioButton_pa_custom->setChecked ( !account->isPublishedSameAsLocal ());
/**/lineEdit_pa_published_address->setText ( account->publishedAddress ());
@@ -372,8 +375,8 @@ void DlgAccounts::loadAccount(QModelIndex item)
/**/check_tls_answer->setChecked ( account->isTlsVerifyClient ());
/**/check_tls_requier_cert->setChecked ( account->isTlsRequireClientCertificate ());
/**/group_security_tls->setChecked ( account->isTlsEnable ());
- /**/combo_security_STRP->setCurrentIndex ( account->tlsMethod ());
/**/m_pAutoAnswer->setChecked ( account->isAutoAnswer ());
+ /**/combo_security_STRP->setCurrentIndex ( \
KeyExchangeModel::instance()->toIndex(account->tlsMethod()).row()); /* \
*/
m_pDTMFOverRTP->setChecked(account->DTMFType()==DtmfType::OverRtp);
@@ -435,7 +438,7 @@ void DlgAccounts::loadAccount(QModelIndex item)
m_pRingTonePath->setUrl( ringtonePath );
- combo_tls_method->setCurrentIndex( account->tlsMethod() );
+ combo_tls_method->setCurrentIndex( KeyExchangeModel::instance()->toIndex(account->tlsMethod()).row() \
); ConfigurationManagerInterface& configurationManager = DBus::ConfigurationManager::instance();
m_pRingtoneListLW->clear();
@@ -480,8 +483,8 @@ void DlgAccounts::loadAccount(QModelIndex item)
comboBox_ni_local_address->setCurrentIndex(0);
if(protocolIndex == 0 || account->isNew()) { // if sip selected
- checkbox_stun->setChecked(account->isAccountSipStunEnabled());
- line_stun->setText( account->accountSipStunServer() );
+ checkbox_stun->setChecked(account->isSipStunEnabled());
+ line_stun->setText( account->sipStunServer() );
//checkbox_zrtp->setChecked(account->accountDetail(ACCOUNT_SRTP_ENABLED) == \
REGISTRATION_ENABLED_TRUE);
tab_advanced-> setEnabled ( true );
@@ -492,7 +495,7 @@ void DlgAccounts::loadAccount(QModelIndex item)
else {
checkbox_stun->setChecked(false);
tab_advanced->setEnabled (false);
- line_stun->setText( account->accountSipStunServer() );
+ line_stun->setText( account->sipStunServer() );
//checkbox_zrtp->setChecked(false);
}
@@ -719,7 +722,7 @@ void DlgAccounts::updateStatusLabel(Account* account)
{
if(!account || AccountListModel::instance()->getAccountByModelIndex(listView_accountList->currentIndex()) \
!= account) return;
- const QString status = account->accountRegistrationStatus();
+ const QString status = account->registrationStatus();
edit7_state->setText( "<FONT COLOR=\"" + account->stateColorName() + "\">" + status + "</FONT>" );
}
diff --git a/src/conf/dlgaccountsbase.ui b/src/conf/dlgaccountsbase.ui
index 22541b0..3206bbf 100644
--- a/src/conf/dlgaccountsbase.ui
+++ b/src/conf/dlgaccountsbase.ui
@@ -1322,21 +1322,6 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <item>
- <property name="text">
- <string comment="Disabled security">Disabled</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>ZRTP</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>SDES</string>
- </property>
- </item>
</widget>
</item>
<item>
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
index 465d437..6447521 100644
--- a/src/lib/CMakeLists.txt
+++ b/src/lib/CMakeLists.txt
@@ -65,6 +65,7 @@ set( qtsflphone_LIB_SRCS
phonedirectorymodel.cpp
historytimecategorymodel.cpp
numbercategorymodel.cpp
+ keyexchangemodel.cpp
#Communication
dbus/configurationmanager.cpp
@@ -106,6 +107,7 @@ set( qtsflphone_LIB_HDRS
historytimecategorymodel.h
numbercategorymodel.h
videocodec.h
+ keyexchangemodel.h
)
set( qtsflphone_extra_LIB_HDRS
diff --git a/src/lib/account.cpp b/src/lib/account.cpp
index ea70795..3c2f8a1 100644
--- a/src/lib/account.cpp
+++ b/src/lib/account.cpp
@@ -233,9 +233,9 @@ QModelIndex Account::index()
///Return status color name
QString Account::stateColorName() const
{
- if(accountRegistrationStatus() == Account::State::UNREGISTERED)
+ if(registrationStatus() == Account::State::UNREGISTERED)
return "black";
- if(accountRegistrationStatus() == Account::State::REGISTERED || accountRegistrationStatus() == \
Account::State::READY) + if(registrationStatus() == Account::State::REGISTERED || registrationStatus() \
== Account::State::READY) return "darkGreen";
return "red";
}
@@ -318,49 +318,49 @@ QString Account::proxy() const
}
///
-bool Account::isAccountDisplaySasOnce() const
+bool Account::isDisplaySasOnce() const
{
return (accountDetail(ACCOUNT_DISPLAY_SAS_ONCE) == "true")?1:0 ;
}
///Return the account security fallback
-bool Account::isAccountSrtpRtpFallback() const
+bool Account::isSrtpRtpFallback() const
{
return (accountDetail(ACCOUNT_SRTP_RTP_FALLBACK) == "true")?1:0 ;
}
///
-bool Account::isAccountZrtpDisplaySas () const
+bool Account::isZrtpDisplaySas () const
{
return (accountDetail(ACCOUNT_ZRTP_DISPLAY_SAS) == "true")?1:0 ;
}
///Return if the other side support warning
-bool Account::isAccountZrtpNotSuppWarning() const
+bool Account::isZrtpNotSuppWarning() const
{
return (accountDetail(ACCOUNT_ZRTP_NOT_SUPP_WARNING) == "true")?1:0 ;
}
///
-bool Account::isAccountZrtpHelloHash() const
+bool Account::isZrtpHelloHash() const
{
return (accountDetail(ACCOUNT_ZRTP_HELLO_HASH) == "true")?1:0 ;
}
///Return if the account is using a STUN server
-bool Account::isAccountSipStunEnabled() const
+bool Account::isSipStunEnabled() const
{
return (accountDetail(ACCOUNT_SIP_STUN_ENABLED) == "true")?1:0 ;
}
///Return the account STUN server
-QString Account::accountSipStunServer() const
+QString Account::sipStunServer() const
{
return accountDetail(ACCOUNT_SIP_STUN_SERVER);
}
///Return when the account expire (require renewal)
-int Account::accountRegistrationExpire() const
+int Account::registrationExpire() const
{
return accountDetail(Account::MapField::Registration::EXPIRE).toInt();
}
@@ -462,9 +462,10 @@ bool Account::isTlsEnable() const
}
///Return the account the TLS encryption method
-int Account::tlsMethod() const
+KeyExchangeModel::Type Account::tlsMethod() const
{
- return accountDetail(TLS_METHOD).toInt();
+ const int value = accountDetail(TLS_METHOD).toInt();
+ return value<=2?static_cast<KeyExchangeModel::Type>(value):KeyExchangeModel::Type::NONE;
}
///Return if the ringtone are enabled
@@ -492,13 +493,13 @@ QString Account::localInterface() const
}
///Return the account registration status
-QString Account::accountRegistrationStatus() const
+QString Account::registrationStatus() const
{
return accountDetail(Account::MapField::Registration::STATUS);
}
///Return the account type
-QString Account::accountType() const
+QString Account::type() const
{
return accountDetail(Account::MapField::TYPE);
}
@@ -527,7 +528,7 @@ QVariant Account::roleData(int role) const
case Account::Role::Alias:
return alias();
case Account::Role::Type:
- return accountType();
+ return type();
case Account::Role::Hostname:
return hostname();
case Account::Role::Username:
@@ -551,7 +552,7 @@ QVariant Account::roleData(int role) const
case Account::Role::TlsServerName:
return tlsServerName();
case Account::Role::SipStunServer:
- return accountSipStunServer();
+ return sipStunServer();
case Account::Role::PublishedAddress:
return publishedAddress();
case Account::Role::LocalInterface:
@@ -559,9 +560,9 @@ QVariant Account::roleData(int role) const
case Account::Role::RingtonePath:
return ringtonePath();
case Account::Role::TlsMethod:
- return tlsMethod();
- case Account::Role::AccountRegistrationExpire:
- return accountRegistrationExpire();
+ return static_cast<int>(tlsMethod());
+ case Account::Role::RegistrationExpire:
+ return registrationExpire();
case Account::Role::TlsNegotiationTimeoutSec:
return tlsNegotiationTimeoutSec();
case Account::Role::TlsNegotiationTimeoutMsec:
@@ -585,17 +586,17 @@ QVariant Account::roleData(int role) const
case Account::Role::TlsEnable:
return isTlsEnable();
case Account::Role::DisplaySasOnce:
- return isAccountDisplaySasOnce();
+ return isDisplaySasOnce();
case Account::Role::SrtpRtpFallback:
- return isAccountSrtpRtpFallback();
+ return isSrtpRtpFallback();
case Account::Role::ZrtpDisplaySas:
- return isAccountZrtpDisplaySas();
+ return isZrtpDisplaySas();
case Account::Role::ZrtpNotSuppWarning:
- return isAccountZrtpNotSuppWarning();
+ return isZrtpNotSuppWarning();
case Account::Role::ZrtpHelloHash:
- return isAccountZrtpHelloHash();
+ return isZrtpHelloHash();
case Account::Role::SipStunEnabled:
- return isAccountSipStunEnabled();
+ return isSipStunEnabled();
case Account::Role::PublishedSameAsLocal:
return isPublishedSameAsLocal();
case Account::Role::RingtoneEnabled:
@@ -610,7 +611,7 @@ QVariant Account::roleData(int role) const
return var;
}
case Account::Role::TypeName:
- return accountType();
+ return type();
case Account::Role::PresenceStatus:
return PresenceStatusModel::instance()->currentStatus();
case Account::Role::PresenceMessage:
@@ -668,7 +669,7 @@ void Account::setId(const QString& id)
}
///Set the account type, SIP or IAX
-void Account::setAccountType(const QString& detail)
+void Account::setType(const QString& detail)
{
setAccountDetail(Account::MapField::TYPE ,detail);
}
@@ -701,7 +702,7 @@ void Account::setProxy(const QString& detail)
}
///Set the main credential password
-void Account::setAccountPassword(const QString& detail)
+void Account::setPassword(const QString& detail)
{
setAccountDetail(Account::MapField::PASSWORD, detail);
}
@@ -743,7 +744,7 @@ void Account::setTlsServerName(const QString& detail)
}
///Set the stun server
-void Account::setAccountSipStunServer(const QString& detail)
+void Account::setSipStunServer(const QString& detail)
{
setAccountDetail(ACCOUNT_SIP_STUN_SERVER, detail);
}
@@ -767,13 +768,13 @@ void Account::setRingtonePath(const QString& detail)
}
///Set the Tls method
-void Account::setTlsMethod(int detail)
+void Account::setTlsMethod(KeyExchangeModel::Type detail)
{
- setAccountDetail(TLS_METHOD ,QString::number(detail));
+ setAccountDetail(TLS_METHOD ,QString::number(static_cast<int>(detail)));
}
///Set the account timeout, it will be renegotiated when that timeout occur
-void Account::setAccountRegistrationExpire(int detail)
+void Account::setRegistrationExpire(int detail)
{
setAccountDetail(Account::MapField::Registration::EXPIRE, QString::number(detail));
}
@@ -844,32 +845,32 @@ void Account::setTlsEnable(bool detail)
setAccountDetail(TLS_ENABLE ,detail?"true":"false");
}
-void Account::setAccountDisplaySasOnce(bool detail)
+void Account::setDisplaySasOnce(bool detail)
{
setAccountDetail(ACCOUNT_DISPLAY_SAS_ONCE, detail?"true":"false");
}
-void Account::setAccountSrtpRtpFallback(bool detail)
+void Account::setSrtpRtpFallback(bool detail)
{
setAccountDetail(ACCOUNT_SRTP_RTP_FALLBACK, detail?"true":"false");
}
-void Account::setAccountZrtpDisplaySas(bool detail)
+void Account::setZrtpDisplaySas(bool detail)
{
setAccountDetail(ACCOUNT_ZRTP_DISPLAY_SAS, detail?"true":"false");
}
-void Account::setAccountZrtpNotSuppWarning(bool detail)
+void Account::setZrtpNotSuppWarning(bool detail)
{
setAccountDetail(ACCOUNT_ZRTP_NOT_SUPP_WARNING, detail?"true":"false");
}
-void Account::setAccountZrtpHelloHash(bool detail)
+void Account::setZrtpHelloHash(bool detail)
{
setAccountDetail(ACCOUNT_ZRTP_HELLO_HASH, detail?"true":"false");
}
-void Account::setAccountSipStunEnabled(bool detail)
+void Account::setSipStunEnabled(bool detail)
{
setAccountDetail(ACCOUNT_SIP_STUN_ENABLED, detail?"true":"false");
}
@@ -897,7 +898,7 @@ void Account::setRoleData(int role, const QVariant& value)
case Account::Role::Alias:
setAlias(value.toString());
case Account::Role::Type:
- setAccountType(value.toString());
+ setType(value.toString());
case Account::Role::Hostname:
setHostname(value.toString());
case Account::Role::Username:
@@ -921,17 +922,19 @@ void Account::setRoleData(int role, const QVariant& value)
case Account::Role::TlsServerName:
setTlsServerName(value.toString());
case Account::Role::SipStunServer:
- setAccountSipStunServer(value.toString());
+ setSipStunServer(value.toString());
case Account::Role::PublishedAddress:
setPublishedAddress(value.toString());
case Account::Role::LocalInterface:
setLocalInterface(value.toString());
case Account::Role::RingtonePath:
setRingtonePath(value.toString());
- case Account::Role::TlsMethod:
- setTlsMethod(value.toInt());
- case Account::Role::AccountRegistrationExpire:
- setAccountRegistrationExpire(value.toInt());
+ case Account::Role::TlsMethod: {
+ const int method = value.toInt();
+ setTlsMethod(method<=2?static_cast<KeyExchangeModel::Type>(method):KeyExchangeModel::Type::NONE);
+ }
+ case Account::Role::RegistrationExpire:
+ setRegistrationExpire(value.toInt());
case Account::Role::TlsNegotiationTimeoutSec:
setTlsNegotiationTimeoutSec(value.toInt());
case Account::Role::TlsNegotiationTimeoutMsec:
@@ -955,17 +958,17 @@ void Account::setRoleData(int role, const QVariant& value)
case Account::Role::TlsEnable:
setTlsEnable(value.toBool());
case Account::Role::DisplaySasOnce:
- setAccountDisplaySasOnce(value.toBool());
+ setDisplaySasOnce(value.toBool());
case Account::Role::SrtpRtpFallback:
- setAccountSrtpRtpFallback(value.toBool());
+ setSrtpRtpFallback(value.toBool());
case Account::Role::ZrtpDisplaySas:
- setAccountZrtpDisplaySas(value.toBool());
+ setZrtpDisplaySas(value.toBool());
case Account::Role::ZrtpNotSuppWarning:
- setAccountZrtpNotSuppWarning(value.toBool());
+ setZrtpNotSuppWarning(value.toBool());
case Account::Role::ZrtpHelloHash:
- setAccountZrtpHelloHash(value.toBool());
+ setZrtpHelloHash(value.toBool());
case Account::Role::SipStunEnabled:
- setAccountSipStunEnabled(value.toBool());
+ setSipStunEnabled(value.toBool());
case Account::Role::PublishedSameAsLocal:
setPublishedSameAsLocal(value.toBool());
case Account::Role::RingtoneEnabled:
@@ -1005,7 +1008,7 @@ bool Account::updateState()
ConfigurationManagerInterface & configurationManager = DBus::ConfigurationManager::instance();
const MapStringString details = configurationManager.getAccountDetails(id()).value();
const QString status = details[Account::MapField::Registration::STATUS];
- const QString currentStatus = accountRegistrationStatus();
+ const QString currentStatus = registrationStatus();
setAccountDetail(Account::MapField::Registration::STATUS, status); //Update -internal- object \
state return status == currentStatus;
}
diff --git a/src/lib/account.h b/src/lib/account.h
index d83c0d3..63331c6 100644
--- a/src/lib/account.h
+++ b/src/lib/account.h
@@ -27,6 +27,7 @@ class QString;
//SFLPhone
#include "videocodecmodel.h"
+#include "keyexchangemodel.h"
#include "sflphone_const.h"
#include "typedefs.h"
// #include "dbus/metatypes.h"
@@ -54,7 +55,7 @@ class LIB_EXPORT Account : public QObject {
//Properties
Q_PROPERTY(QString alias READ alias WRITE \
setAlias )
- Q_PROPERTY(QString type READ accountType WRITE \
setAccountType ) + Q_PROPERTY(QString type READ type \
WRITE setType ) Q_PROPERTY(QString hostname READ \
hostname WRITE setHostname ) Q_PROPERTY(QString username \
READ username WRITE setUsername ) Q_PROPERTY(QString \
mailbox READ mailbox WRITE setMailbox ) @@ \
-65,12 +66,12 @@ class LIB_EXPORT Account : public QObject { Q_PROPERTY(QString tlsPrivateKeyFile \
READ tlsPrivateKeyFile WRITE setTlsPrivateKeyFile ) Q_PROPERTY(QString \
tlsCiphers READ tlsCiphers WRITE setTlsCiphers ) \
Q_PROPERTY(QString tlsServerName READ tlsServerName WRITE \
setTlsServerName )
- Q_PROPERTY(QString sipStunServer READ accountSipStunServer WRITE \
setAccountSipStunServer ) + Q_PROPERTY(QString sipStunServer READ \
sipStunServer WRITE setSipStunServer ) Q_PROPERTY(QString \
publishedAddress READ publishedAddress WRITE setPublishedAddress ) \
Q_PROPERTY(QString localInterface READ localInterface WRITE \
setLocalInterface ) Q_PROPERTY(QString ringtonePath READ \
ringtonePath WRITE setRingtonePath )
- Q_PROPERTY(int tlsMethod READ tlsMethod WRITE \
setTlsMethod )
- Q_PROPERTY(int accountRegistrationExpire READ accountRegistrationExpire WRITE \
setAccountRegistrationExpire ) + Q_PROPERTY(KeyExchangeModel::Type tlsMethod READ tlsMethod \
WRITE setTlsMethod ) + Q_PROPERTY(int registrationExpire READ \
registrationExpire WRITE setRegistrationExpire ) Q_PROPERTY(int \
tlsNegotiationTimeoutSec READ tlsNegotiationTimeoutSec WRITE setTlsNegotiationTimeoutSec ) \
Q_PROPERTY(int tlsNegotiationTimeoutMsec READ tlsNegotiationTimeoutMsec WRITE \
setTlsNegotiationTimeoutMsec ) Q_PROPERTY(int localPort READ localPort \
WRITE setLocalPort ) @@ -82,16 +83,16 @@ class LIB_EXPORT Account : public QObject {
Q_PROPERTY(bool tlsVerifyClient READ isTlsVerifyClient WRITE \
setTlsVerifyClient ) Q_PROPERTY(bool tlsRequireClientCertificate READ \
isTlsRequireClientCertificate WRITE setTlsRequireClientCertificate ) Q_PROPERTY(bool tlsEnable \
READ isTlsEnable WRITE setTlsEnable )
- Q_PROPERTY(bool displaySasOnce READ isAccountDisplaySasOnce WRITE \
setAccountDisplaySasOnce )
- Q_PROPERTY(bool srtpRtpFallback READ isAccountSrtpRtpFallback WRITE \
setAccountSrtpRtpFallback )
- Q_PROPERTY(bool zrtpDisplaySas READ isAccountZrtpDisplaySas WRITE \
setAccountZrtpDisplaySas )
- Q_PROPERTY(bool zrtpNotSuppWarning READ isAccountZrtpNotSuppWarning WRITE \
setAccountZrtpNotSuppWarning )
- Q_PROPERTY(bool zrtpHelloHash READ isAccountZrtpHelloHash WRITE \
setAccountZrtpHelloHash )
- Q_PROPERTY(bool sipStunEnabled READ isAccountSipStunEnabled WRITE \
setAccountSipStunEnabled ) + Q_PROPERTY(bool displaySasOnce READ \
isDisplaySasOnce WRITE setDisplaySasOnce ) + Q_PROPERTY(bool \
srtpRtpFallback READ isSrtpRtpFallback WRITE setSrtpRtpFallback ) + \
Q_PROPERTY(bool zrtpDisplaySas READ isZrtpDisplaySas WRITE \
setZrtpDisplaySas ) + Q_PROPERTY(bool zrtpNotSuppWarning READ \
isZrtpNotSuppWarning WRITE setZrtpNotSuppWarning ) + Q_PROPERTY(bool \
zrtpHelloHash READ isZrtpHelloHash WRITE setZrtpHelloHash ) + \
Q_PROPERTY(bool sipStunEnabled READ isSipStunEnabled WRITE \
setSipStunEnabled ) Q_PROPERTY(bool publishedSameAsLocal READ \
isPublishedSameAsLocal WRITE setPublishedSameAsLocal ) Q_PROPERTY(bool \
ringtoneEnabled READ isRingtoneEnabled WRITE setRingtoneEnabled ) \
Q_PROPERTY(DtmfType dTMFType READ DTMFType WRITE \
setDTMFType )
- Q_PROPERTY(QString typeName READ accountType WRITE \
setAccountType ) + Q_PROPERTY(QString typeName READ type \
WRITE setType ) Q_PROPERTY(bool presenceStatus READ \
presenceStatus ) Q_PROPERTY(QString \
presenceMessage READ presenceMessage )
@@ -154,7 +155,7 @@ class LIB_EXPORT Account : public QObject {
LocalInterface = 115,
RingtonePath = 116,
TlsMethod = 117,
- AccountRegistrationExpire = 118,
+ RegistrationExpire = 118,
TlsNegotiationTimeoutSec = 119,
TlsNegotiationTimeoutMsec = 120,
LocalPort = 121,
@@ -248,14 +249,14 @@ class LIB_EXPORT Account : public QObject {
QString username () const;
QString mailbox () const;
QString proxy () const;
- bool isAccountDisplaySasOnce () const;
- bool isAccountSrtpRtpFallback () const;
- bool isAccountZrtpDisplaySas () const;
- bool isAccountZrtpNotSuppWarning () const;
- bool isAccountZrtpHelloHash () const;
- bool isAccountSipStunEnabled () const;
- QString accountSipStunServer () const;
- int accountRegistrationExpire () const;
+ bool isDisplaySasOnce () const;
+ bool isSrtpRtpFallback () const;
+ bool isZrtpDisplaySas () const;
+ bool isZrtpNotSuppWarning () const;
+ bool isZrtpHelloHash () const;
+ bool isSipStunEnabled () const;
+ QString sipStunServer () const;
+ int registrationExpire () const;
bool isPublishedSameAsLocal () const;
QString publishedAddress () const;
int publishedPort () const;
@@ -272,39 +273,39 @@ class LIB_EXPORT Account : public QObject {
bool isTlsVerifyClient () const;
bool isTlsRequireClientCertificate() const;
bool isTlsEnable () const;
- int tlsMethod () const;
bool isRingtoneEnabled () const;
QString ringtonePath () const;
int localPort () const;
QString localInterface () const;
- QString accountRegistrationStatus () const;
- QString accountType () const;
+ QString registrationStatus () const;
+ QString type () const;
DtmfType DTMFType () const;
bool presenceStatus () const;
QString presenceMessage () const;
+ KeyExchangeModel::Type tlsMethod () const;
QVariant roleData (int role) const;
//Setters
void setId (const QString& id);
void setAlias (const QString& detail);
- void setAccountType (const QString& detail);
+ void setType (const QString& detail);
void setHostname (const QString& detail);
void setUsername (const QString& detail);
void setMailbox (const QString& detail);
void setProxy (const QString& detail);
- void setAccountPassword (const QString& detail);
+ void setPassword (const QString& detail);
void setTlsPassword (const QString& detail);
void setTlsCaListFile (const QString& detail);
void setTlsCertificateFile (const QString& detail);
void setTlsPrivateKeyFile (const QString& detail);
void setTlsCiphers (const QString& detail);
void setTlsServerName (const QString& detail);
- void setAccountSipStunServer (const QString& detail);
+ void setSipStunServer (const QString& detail);
void setPublishedAddress (const QString& detail);
void setLocalInterface (const QString& detail);
void setRingtonePath (const QString& detail);
- void setTlsMethod (int detail);
- void setAccountRegistrationExpire (int detail);
+ void setTlsMethod (KeyExchangeModel::Type detail);
+ void setRegistrationExpire (int detail);
void setTlsNegotiationTimeoutSec (int detail);
void setTlsNegotiationTimeoutMsec (int detail);
void setLocalPort (unsigned short detail);
@@ -315,15 +316,15 @@ class LIB_EXPORT Account : public QObject {
void setTlsVerifyClient (bool detail);
void setTlsRequireClientCertificate (bool detail);
void setTlsEnable (bool detail);
- void setAccountDisplaySasOnce (bool detail);
- void setAccountSrtpRtpFallback (bool detail);
- void setAccountZrtpDisplaySas (bool detail);
- void setAccountZrtpNotSuppWarning (bool detail);
- void setAccountZrtpHelloHash (bool detail);
- void setAccountSipStunEnabled (bool detail);
+ void setDisplaySasOnce (bool detail);
+ void setSrtpRtpFallback (bool detail);
+ void setZrtpDisplaySas (bool detail);
+ void setZrtpNotSuppWarning (bool detail);
+ void setZrtpHelloHash (bool detail);
+ void setSipStunEnabled (bool detail);
void setPublishedSameAsLocal (bool detail);
void setRingtoneEnabled (bool detail);
- void setDTMFType (DtmfType type );
+ void setDTMFType (DtmfType type);
void setRoleData(int role, const QVariant& value);
diff --git a/src/lib/accountlistmodel.cpp b/src/lib/accountlistmodel.cpp
index 6b0e307..a2b3c90 100644
--- a/src/lib/accountlistmodel.cpp
+++ b/src/lib/accountlistmodel.cpp
@@ -103,7 +103,7 @@ void AccountListModel::setupRoleName()
roles.insert(Account::Role::LocalInterface ,QByteArray("localInterface" ));
roles.insert(Account::Role::RingtonePath ,QByteArray("ringtonePath" ));
roles.insert(Account::Role::TlsMethod ,QByteArray("tlsMethod" ));
- roles.insert(Account::Role::AccountRegistrationExpire,QByteArray("accountRegistrationExpire" ));
+ roles.insert(Account::Role::RegistrationExpire ,QByteArray("registrationExpire" ));
roles.insert(Account::Role::TlsNegotiationTimeoutSec ,QByteArray("tlsNegotiationTimeoutSec" ));
roles.insert(Account::Role::TlsNegotiationTimeoutMsec,QByteArray("tlsNegotiationTimeoutMsec" ));
roles.insert(Account::Role::LocalPort ,QByteArray("localPort" ));
@@ -360,7 +360,7 @@ QVector<Account*> AccountListModel::getAccountsByState(const QString& state)
{
QVector<Account *> v;
for (int i = 0; i < m_lAccounts.size(); ++i) {
- if (m_lAccounts[i]->accountRegistrationStatus() == state)
+ if (m_lAccounts[i]->registrationStatus() == state)
v += m_lAccounts[i];
}
return v;
@@ -374,7 +374,7 @@ QVector<Account*> AccountListModel::registeredAccounts() const
Account* current;
for (int i = 0; i < m_lAccounts.count(); ++i) {
current = m_lAccounts[i];
- if(current->accountRegistrationStatus() == Account::State::REGISTERED) {
+ if(current->registrationStatus() == Account::State::REGISTERED) {
qDebug() << current->alias() << " : " << current;
registeredAccountsVector.append(current);
}
@@ -388,9 +388,9 @@ Account* AccountListModel::firstRegisteredAccount() const
Account* current;
for (int i = 0; i < m_lAccounts.count(); ++i) {
current = m_lAccounts[i];
- if(current && current->accountRegistrationStatus() == Account::State::REGISTERED && \
current->isEnabled()) + if(current && current->registrationStatus() == Account::State::REGISTERED && \
current->isEnabled()) return current;
- else if (current && (current->accountRegistrationStatus() == Account::State::READY) && \
m_lAccounts.count() == 1) + else if (current && (current->registrationStatus() == \
Account::State::READY) && m_lAccounts.count() == 1) return current;
// else if (current && !(current->accountRegistrationStatus()() == ACCOUNT_STATE_READY)) {
// qDebug() << "Account " << ((current)?current->accountId():"") << " is not registered ("
@@ -411,7 +411,7 @@ int AccountListModel::size() const
Account* AccountListModel::currentAccount()
{
Account* priorAccount = m_spPriorAccount;
- if(priorAccount && priorAccount->accountRegistrationStatus() == Account::State::REGISTERED && \
priorAccount->isEnabled() ) { + if(priorAccount && priorAccount->registrationStatus() == \
Account::State::REGISTERED && priorAccount->isEnabled() ) { return priorAccount;
}
else {
diff --git a/src/lib/call.cpp b/src/lib/call.cpp
index 2177ebc..e0a08f8 100644
--- a/src/lib/call.cpp
+++ b/src/lib/call.cpp
@@ -604,7 +604,7 @@ bool Call::isSecure() const {
return false;
}
- return m_Account && ((m_Account->isTlsEnable()) || (m_Account->tlsMethod()));
+ return m_Account && ((m_Account->isTlsEnable()) || (m_Account->tlsMethod() != \
KeyExchangeModel::Type::NONE)); } //isSecure
///Return the renderer associated with this call or nullptr
diff --git a/src/lib/keyexchangemodel.cpp b/src/lib/keyexchangemodel.cpp
new file mode 100644
index 0000000..67938ae
--- /dev/null
+++ b/src/lib/keyexchangemodel.cpp
@@ -0,0 +1,77 @@
+/****************************************************************************
+ * Copyright (C) 2013 by Savoir-Faire Linux *
+ * Author : Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Lesser General Public *
+ * License as published by the Free Software Foundation; either *
+ * version 2.1 of the License, or (at your option) any later version. *
+ * *
+ * This library is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. *
+ ***************************************************************************/
+#include "keyexchangemodel.h"
+
+#include <QtCore/QCoreApplication>
+
+KeyExchangeModel* KeyExchangeModel::m_spInstance = nullptr;
+
+KeyExchangeModel::KeyExchangeModel() : QAbstractListModel(QCoreApplication::instance()) {}
+
+//Model functions
+QVariant KeyExchangeModel::data( const QModelIndex& index, int role) const
+{
+ if (!index.isValid()) return QVariant();
+ KeyExchangeModel::Type mathod = static_cast<KeyExchangeModel::Type>(index.row());
+ if (role == Qt::DisplayRole) {
+ switch (mathod) {
+ case KeyExchangeModel::Type::NONE:
+ return KeyExchangeModel::Name::NONE;
+ break;
+ case KeyExchangeModel::Type::ZRTP:
+ return KeyExchangeModel::Name::ZRTP;
+ break;
+ case KeyExchangeModel::Type::SDES:
+ return KeyExchangeModel::Name::SDES;
+ break;
+ };
+ }
+ return QVariant();
+}
+
+int KeyExchangeModel::rowCount( const QModelIndex& parent ) const
+{
+ return parent.isValid()?0:3;
+}
+
+Qt::ItemFlags KeyExchangeModel::flags( const QModelIndex& index ) const
+{
+ if (!index.isValid()) return Qt::NoItemFlags;
+ return Qt::ItemIsEnabled|Qt::ItemIsSelectable;
+}
+
+bool KeyExchangeModel::setData( const QModelIndex& index, const QVariant &value, int role)
+{
+ Q_UNUSED(index)
+ Q_UNUSED(value)
+ Q_UNUSED(role )
+ return false;
+}
+
+KeyExchangeModel* KeyExchangeModel::instance()
+{
+ if (!m_spInstance)
+ m_spInstance = new KeyExchangeModel();
+ return m_spInstance;
+}
+
+///Translate enum type to QModelIndex
+QModelIndex KeyExchangeModel::toIndex(KeyExchangeModel::Type type)
+{
+ return index(static_cast<int>(type),0,QModelIndex());
+}
diff --git a/src/lib/keyexchangemodel.h b/src/lib/keyexchangemodel.h
new file mode 100644
index 0000000..2cf9e06
--- /dev/null
+++ b/src/lib/keyexchangemodel.h
@@ -0,0 +1,65 @@
+/****************************************************************************
+ * Copyright (C) 2013 by Savoir-Faire Linux *
+ * Author : Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Lesser General Public *
+ * License as published by the Free Software Foundation; either *
+ * version 2.1 of the License, or (at your option) any later version. *
+ * *
+ * This library is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. *
+ ***************************************************************************/
+#ifndef KEYEXCHANGEMODEL_H
+#define KEYEXCHANGEMODEL_H
+
+#include "typedefs.h"
+#include <QtCore/QAbstractListModel>
+
+///Static model for handling encryption types
+class LIB_EXPORT KeyExchangeModel : public QAbstractListModel {
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant"
+ Q_OBJECT
+ #pragma GCC diagnostic pop
+
+public:
+ ///@enum Type Every supported encryption types
+ enum class Type {
+ NONE = 0,
+ ZRTP = 1,
+ SDES = 2,
+ };
+
+ class Name {
+ public:
+ constexpr static const char* NONE = "none";
+ constexpr static const char* ZRTP = "zrtp";
+ constexpr static const char* SDES = "sdes";
+ };
+
+ //Private constructor, can only be called by 'Account'
+ explicit KeyExchangeModel();
+
+ //Model functions
+ QVariant data ( const QModelIndex& index, int role = Qt::DisplayRole ) const;
+ int rowCount ( const QModelIndex& parent = QModelIndex() ) const;
+ Qt::ItemFlags flags ( const QModelIndex& index ) const;
+ virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) ;
+
+ //Getters
+ QModelIndex toIndex (KeyExchangeModel::Type type);
+
+ //Singleton
+ static KeyExchangeModel* instance();
+
+private:
+ static KeyExchangeModel* m_spInstance;
+};
+Q_DECLARE_METATYPE(KeyExchangeModel*)
+#endif
diff --git a/src/lib/sflphone_const.h b/src/lib/sflphone_const.h
index 7865df3..2289dd1 100644
--- a/src/lib/sflphone_const.h
+++ b/src/lib/sflphone_const.h
@@ -88,8 +88,8 @@
#define ACCOUNT_ZRTP_HELLO_HASH "ZRTP.helloHashEnable"
#define ACCOUNT_DISPLAY_SAS_ONCE "ZRTP.displaySasOnce"
#define KEY_EXCHANGE_NONE "none"
-#define ZRTP "zrtp"
-#define SDES "sdes"
+// #define ZRTP "zrtp"
+// #define SDES "sdes"
diff --git a/src/sflphoneview.cpp b/src/sflphoneview.cpp
index 32ee0d1..b235ad9 100644
--- a/src/sflphoneview.cpp
+++ b/src/sflphoneview.cpp
@@ -117,12 +117,12 @@ public:
}
virtual QVariant getColor(const Account* a) {
- if(a->accountRegistrationStatus() == Account::State::UNREGISTERED || !a->isEnabled())
+ if(a->registrationStatus() == Account::State::UNREGISTERED || !a->isEnabled())
return m_Pal.color(QPalette::Base);
- if(a->accountRegistrationStatus() == Account::State::REGISTERED || a->accountRegistrationStatus() \
== Account::State::READY) { + if(a->registrationStatus() == Account::State::REGISTERED || \
a->registrationStatus() == Account::State::READY) { return m_Green;
}
- if(a->accountRegistrationStatus() == Account::State::TRYING)
+ if(a->registrationStatus() == Account::State::TRYING)
return m_Yellow;
return m_Red;
}
@@ -900,14 +900,14 @@ void SFLPhoneView::updateDialpad()
///Change the statusbar message
void SFLPhoneView::updateStatusMessage()
{
- Account * account = AccountListModel::currentAccount();
+ const Account* account = AccountListModel::currentAccount();
if(!account) {
emit statusMessageChangeAsked(i18n("No registered accounts"));
}
else {
emit statusMessageChangeAsked(i18n("Using account \'%1\' (%2)",
- account->alias(), account->accountRegistrationStatus()));
+ account->alias(), account->registrationStatus()));
}
}
diff --git a/src/widgets/bookmarkdock.cpp b/src/widgets/bookmarkdock.cpp
index 2557210..97251da 100644
--- a/src/widgets/bookmarkdock.cpp
+++ b/src/widgets/bookmarkdock.cpp
@@ -77,7 +77,7 @@ BookmarkDock::BookmarkDock(QWidget* parent) : QDockWidget(parent)
m_pFilterLE->setPlaceholderText(i18n("Filter"));
- m_pMostUsedCK->setChecked(ConfigurationSkeleton::displayContactCallHistory());
+ m_pMostUsedCK->setChecked(ConfigurationSkeleton::displayPopularAsBookmark());
setWidget(mainWidget);
@@ -113,7 +113,7 @@ BookmarkDock::~BookmarkDock()
///Show the most popular items
void BookmarkDock::reload()
{
- ConfigurationSkeleton::setDisplayContactCallHistory(m_pMostUsedCK->isChecked());
+ ConfigurationSkeleton::setDisplayPopularAsBookmark(m_pMostUsedCK->isChecked());
BookmarkModel::instance()->reloadCategories();
} //reload
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic