Merge branch 'qt-client'

This commit is contained in:
Emmanuel Milou
2009-05-29 17:38:46 -04:00
24 changed files with 912 additions and 394 deletions

2
.gitignore vendored
View File

@ -116,7 +116,7 @@ sflphone-client-gnome/man/Makefile
/sflphone-client-gnome/src/dbus/marshaller.h
# Ignore sflphone_kde stuff
/sflphone_kde/build
/sflphone-client-kde/build
# Ignore sub-modules stuff
## libiax2

View File

@ -59,6 +59,7 @@ IF (UNIX)
src/*_automoc.cpp
src/sflphone-client-kde
src/sflphone-client-kde.shell
src/*.moc
)
SET(DISTCLEANED_REC

View File

@ -1,38 +1,12 @@
[Desktop Entry]
# Name=KApp4
# Name[nds]=KProg4
# Name[sv]=KDE 4-program
# Name[zh_TW]=KApp4 程式
# Exec=kapp4 %i -caption "%c"
# Icon=kapp4
Type=Application
X-DocPath=sflphone-client-kde/index.html
# GenericName=A KDE4 Application
# GenericName[ca]=Una aplicació del KDE4
# GenericName[da]=Et KDE4-program
# GenericName[de]=Eine KDE 4-Anwendung
# GenericName[el]=Μία εφαρμογή του KDE4
# GenericName[es]=Una aplicación para KDE4
# GenericName[et]=KDE4 rakendus
# GenericName[hu]=KDE4-alapú alkalmazás
# GenericName[it]=Applicazione KDE4
# GenericName[nds]=En KDE4-Programm
# GenericName[nl]=Een KDE4-programma
# GenericName[pl]=Program dla KDE4
# GenericName[pt]=Uma Aplicação do KDE4
# GenericName[pt_BR]=Uma Aplicação do KDE4
# GenericName[ru]=Приложение KDE 4
# GenericName[sk]=KDE4 aplikácia
# GenericName[sr]=KDE4 програм
# GenericName[sr@Latn]=KDE4 program
# GenericName[sv]=Ett KDE 4-program
# GenericName[zh_TW]=KDE4 應用程式
Terminal=false
Name=SFLphone VoIP KDE4 client
GenericName=Telephone
Comment=Call and receive calls with SIP or IAX protocols
Exec=sflphone-client-kde
Icon=sflphone.png
Icon=sflphone.svg
StartupNotify=true
Categories=Network;Telephony;

View File

@ -20,6 +20,8 @@
<Separator />
<Action name="action_mailBox" />
<Separator />
<Action name="action_close" />
<Separator />
<Action name="action_quit" />
</Menu>
<Menu name="Settings" >

View File

@ -52,14 +52,27 @@ const QString account_state_name(QString & s)
//Constructors
Account::Account():accountId(NULL){}
Account::Account():accountId(NULL), item(NULL), itemWidget(NULL){}
void Account::initAccountItem()
{
if(item != NULL)
{
delete item;
}
item = new QListWidgetItem();
item->setSizeHint(QSize(140,25));
item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsDragEnabled|Qt::ItemIsDropEnabled|Qt::ItemIsEnabled);
initAccountItemWidget();
}
void Account::initAccountItemWidget()
{
if(itemWidget != NULL)
{
delete itemWidget;
}
bool enabled = getAccountDetail(ACCOUNT_ENABLED) == ACCOUNT_ENABLED_TRUE;
itemWidget = new AccountItemWidget();
itemWidget->setEnabled(enabled);
@ -137,34 +150,10 @@ QListWidgetItem * Account::getItem()
return item;
}
QListWidgetItem * Account::renewItem()
{
if(!item)
qDebug() << "null" ;
item = new QListWidgetItem(*item);
return item;
}
AccountItemWidget * Account::getItemWidget()
{
delete itemWidget;
bool enabled = getAccountDetail(ACCOUNT_ENABLED) == ACCOUNT_ENABLED_TRUE;
QString alias = getAccountDetail(ACCOUNT_ALIAS);
itemWidget = new AccountItemWidget();
itemWidget->setEnabled(enabled);
itemWidget->setAccountText(alias);
if(isNew() || !enabled)
{
itemWidget->setState(AccountItemWidget::Unregistered);
}
else if(getAccountDetail(ACCOUNT_STATUS) == ACCOUNT_STATE_REGISTERED)
{
itemWidget->setState(AccountItemWidget::Registered);
}
else
{
itemWidget->setState(AccountItemWidget::NotWorking);
}
if(itemWidget == NULL)
qDebug() << "null";
return itemWidget;
}
@ -225,6 +214,34 @@ void Account::setAccountId(QString id)
accountId = new QString(id);
}
void Account::updateState()
{
qDebug() << "updateState";
if(! isNew())
{
ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
MapStringString details = configurationManager.getAccountDetails(getAccountId()).value();
AccountItemWidget * itemWidget = getItemWidget();
QString status = details[ACCOUNT_STATUS];
setAccountDetail(ACCOUNT_STATUS, status);
if(getAccountDetail(ACCOUNT_ENABLED) != ACCOUNT_ENABLED_TRUE )
{
qDebug() << "itemWidget->setState(AccountItemWidget::Unregistered);";
itemWidget->setState(AccountItemWidget::Unregistered);
}
else if(getAccountDetail(ACCOUNT_STATUS) == ACCOUNT_STATE_REGISTERED)
{
qDebug() << "itemWidget->setState(AccountItemWidget::Registered);";
itemWidget->setState(AccountItemWidget::Registered);
}
else
{
qDebug() << "itemWidget->setState(AccountItemWidget::NotWorking);";
itemWidget->setState(AccountItemWidget::NotWorking);
}
}
}
//Operators
bool Account::operator==(const Account& a)const
{

View File

@ -26,11 +26,9 @@
#include <QtGui/QListWidgetItem>
#include <QtGui/QColor>
// #include "metatypes.h"
#include "typedefs.h"
#include "AccountItemWidget.h"
typedef QMap<QString, QString> MapStringString;
const QString account_state_name(QString & s);
class Account{
@ -58,7 +56,6 @@ public:
QString & getAccountId();
MapStringString & getAccountDetails() const;
QListWidgetItem * getItem();
QListWidgetItem * renewItem();
AccountItemWidget * getItemWidget();
QString getStateName(QString & state);
QColor getStateColor();
@ -67,11 +64,15 @@ public:
QString getAlias();
//Setters
void initAccountItem();
void setAccountId(QString id);
void setAccountDetails(MapStringString m);
void setAccountDetail(QString param, QString val);
//Updates
void initAccountItem();
void initAccountItemWidget();
void updateState();
//Operators
bool operator==(const Account&)const;

View File

@ -30,7 +30,7 @@ AccountItemWidget::AccountItemWidget(QWidget *parent)
: QWidget(parent)
{
checkBox = new QCheckBox(this);
led = new KLed(this);
led = new QLabel();
led->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
textLabel = new QLabel();
@ -61,16 +61,13 @@ void AccountItemWidget::updateStateDisplay()
switch(state)
{
case Registered:
led->setState(KLed::On);
led->setColor(QColor(0,255,0));
led->setPixmap(QPixmap(ICON_ACCOUNT_LED_GREEN));
break;
case Unregistered:
led->setState(KLed::Off);
led->setColor(QColor(0,255,0));
led->setPixmap(QPixmap(ICON_ACCOUNT_LED_GRAY));
break;
case NotWorking:
led->setState(KLed::On);
led->setColor(QColor(255,0,0));
led->setPixmap(QPixmap(ICON_ACCOUNT_LED_RED));
break;
default:
qDebug() << "Calling AccountItemWidget::setState with value " << state << ", not part of enum AccountItemWidget::State.";

View File

@ -38,7 +38,7 @@ private:
int state;
bool enabled;
KLed * led;
QLabel * led;
QCheckBox * checkBox;
QLabel * textLabel;

View File

@ -35,7 +35,7 @@ QT4_ADD_RESOURCES(QtApp_RCC_SRCS ${QtApp_RCCS})
# Build dbus interfaces
SET ( dbus_xml_introspecs_path ${CMAKE_CURRENT_SOURCE_DIR}/../../sflphone-common/src/dbus/)
SET ( dbus_xml_introspecs_path ${CMAKE_CURRENT_SOURCE_DIR}/dbus/)
# configuration manager interface
SET ( configurationmanager_xml ${dbus_xml_introspecs_path}/configurationmanager-introspec.xml )

View File

@ -30,11 +30,9 @@
#include "sflphone_const.h"
// #include "metatypes.h"
#include "typedefs.h"
#include "configurationmanager_interface_singleton.h"
typedef QMap<QString, QString> MapStringString;
typedef QMap<QString, int> MapStringInt;
AccountList * ConfigurationDialog::accountList;
@ -462,7 +460,7 @@ void ConfigurationDialog::loadAccount(QListWidgetItem * item)
QString status = account->getAccountDetail(ACCOUNT_STATUS);
qDebug() << "Color : " << account->getStateColorName();
edit7_state->setText( "<FONT COLOR=\"" + account->getStateColorName() + "\">" + status + "</FONT>" );
//edit7_Etat->setTextColor( account->getStateColor );
}
@ -673,24 +671,28 @@ void ConfigurationDialog::on_button_accountUp_clicked()
QListWidgetItem * prevItem = listWidget_accountList->takeItem(currentRow);
Account * account = accountList->getAccountByItem(prevItem);
//we need to build a new item to set the itemWidget back
QListWidgetItem * item = account->renewItem();
account->initAccountItem();
QListWidgetItem * item = account->getItem();
AccountItemWidget * widget = account->getItemWidget();
accountList->upAccount(currentRow);
delete prevItem;
listWidget_accountList->insertItem(currentRow - 1 , item);
listWidget_accountList->setItemWidget(item, account->getItemWidget());
listWidget_accountList->setItemWidget(item, widget);
listWidget_accountList->setCurrentItem(item);
}
void ConfigurationDialog::on_button_accountDown_clicked()
{
qDebug() << "on_button_accountDown_clicked";
int currentRow = listWidget_accountList->currentRow();
QListWidgetItem * prevItem = listWidget_accountList->takeItem(currentRow);
Account * account = accountList->getAccountByItem(prevItem);
QListWidgetItem * item = account->renewItem();
//we need to build a new item to set the itemWidget back
account->initAccountItem();
QListWidgetItem * item = account->getItem();
AccountItemWidget * widget = account->getItemWidget();
accountList->downAccount(currentRow);
delete prevItem;
listWidget_accountList->insertItem(currentRow + 1 , item);
listWidget_accountList->setItemWidget(item, account->getItemWidget());
listWidget_accountList->setItemWidget(item, widget);
listWidget_accountList->setCurrentItem(item);
}
@ -760,9 +762,19 @@ void ConfigurationDialog::on_tableWidget_codecs_currentCellChanged(int currentRo
updateCodecListCommands();
}
void ConfigurationDialog::updateAccountStates()
{
for (int i = 0; i < accountList->size(); i++)
{
Account & current = accountList->getAccount(i);
current.updateState();
}
}
void ConfigurationDialog::on1_accountsChanged()
{
qDebug() << "on1_accountsChanged";
updateAccountStates();
// ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
// disconnect(&configurationManager, SIGNAL(accountsChanged()),
// this, SLOT(on1_accountsChanged()));

View File

@ -73,6 +73,7 @@ public:
//Updates
void updateCodecListCommands();
void updateAccountListCommands();
void updateAccountStates();
private slots:
void changedAccountList();

View File

@ -64,11 +64,12 @@ SFLPhone::SFLPhone(QWidget *parent)
{
QDir dir;
dir.cdUp();
dir.cd("data");
rcFilePath = dir.filePath("sflphone-client-kdeui.rc");
}
qDebug() << "rcFilePath = " << rcFilePath ;
createGUI(rcFilePath);
QMetaObject::connectSlotsByName(this);
}
@ -89,7 +90,9 @@ void SFLPhone::setupActions()
actionCollection()->addAction("action_history", view->action_history);
actionCollection()->addAction("action_addressBook", view->action_addressBook);
actionCollection()->addAction("action_mailBox", view->action_mailBox);
KAction * action_quit = KStandardAction::quit(qApp, SLOT(closeAllWindows()), 0);
KAction * action_close = KStandardAction::close(this, SLOT(close()), 0);
actionCollection()->addAction("action_close", action_close);
KAction * action_quit = KStandardAction::quit(this, SLOT(quitButton()), 0);
actionCollection()->addAction("action_quit", action_quit);
@ -131,21 +134,27 @@ void SFLPhone::setupActions()
}
bool SFLPhone::queryClose()
{
qDebug() << "queryClose";
hide();
return false;
}
void SFLPhone::quitButton()
{
InstanceInterface & instance = InstanceInterfaceSingleton::getInstance();
qDebug() << "queryClose : " << view->listWidget_callList->count() << " calls open.";
qDebug() << "quitButton : " << view->listWidget_callList->count() << " calls open.";
if(view->listWidget_callList->count() > 0 && instance.getRegistrationCount() <= 1)
{
qDebug() << "Attempting to quit when still having some calls open.";
view->getErrorWindow()->showMessage(tr2i18n("You still have some calls open. Please close all calls before quitting.", 0));
return false;
}
instance.Unregister(getpid());
return true;
qApp->quit();
}
void SFLPhone::putForeground()
{
activateWindow();

View File

@ -56,6 +56,7 @@ private:
protected:
virtual bool queryClose();
virtual void changeEvent(QEvent * event);
public:
SFLPhone(QWidget *parent = 0);
@ -70,6 +71,7 @@ private slots:
void on_trayIcon_activated(QSystemTrayIcon::ActivationReason reason);
void on_trayIcon_messageClicked();
void quitButton();
};

View File

@ -1,48 +0,0 @@
MESSAGE("Yeeeeaaaaah : rentre dans dbus!!!!!")
# Build dbus interfaces
# configuration manager interface
SET ( configurationmanager_xml ${CMAKE_CURRENT_SOURCE_DIR}/../sflphone-common/src/dbus/configurationmanager-introspec.xml )
SET_SOURCE_FILES_PROPERTIES(
${configurationmanager_xml}
PROPERTIES
CLASSNAME ConfigurationManagerInterface
INCLUDE "metatypes.h")
QT4_ADD_DBUS_INTERFACE(
sflphone_client_kde_SRCS
${configurationmanager_xml}
configurationmanager_dbus_interface)
# call manager interface
SET ( callmanager_xml ${CMAKE_CURRENT_SOURCE_DIR}/../sflphone-common/src/dbus/callmanager-introspec.xml )
SET_SOURCE_FILES_PROPERTIES(
${callmanager_xml}
PROPERTIES
CLASSNAME CallManagerInterface
INCLUDE "metatypes.h")
QT4_ADD_DBUS_INTERFACE(
sflphone_client_kde_SRCS
${callmanager_xml}
callmanager_dbus_interface)
# instance interface
SET ( instance_xml ${CMAKE_CURRENT_SOURCE_DIR}/../sflphone-common/src/dbus/instance-introspec.xml )
SET_SOURCE_FILES_PROPERTIES(
${instance_xml}
PROPERTIES
CLASSNAME InstanceInterface
INCLUDE "metatypes.h")
QT4_ADD_DBUS_INTERFACE(
sflphone_client_kde_SRCS
${instance_xml}
instance_dbus_interface)

View File

@ -0,0 +1,120 @@
<?xml version="1.0" ?>
<node name="/org/sflphone/SFLphone">
<interface name="org.sflphone.SFLphone.CallManager">
<method name="placeCall">
<arg type="s" name="accountID" direction="in"/>
<arg type="s" name="callID" direction="in"/>
<arg type="s" name="to" direction="in"/>
</method>
<method name="refuse">
<arg type="s" name="callID" direction="in"/>
</method>
<method name="accept">
<arg type="s" name="callID" direction="in"/>
</method>
<method name="hangUp">
<arg type="s" name="callID" direction="in"/>
</method>
<method name="hold">
<arg type="s" name="callID" direction="in"/>
</method>
<method name="unhold">
<arg type="s" name="callID" direction="in"/>
</method>
<method name="transfert">
<arg type="s" name="callID" direction="in"/>
<arg type="s" name="to" direction="in"/>
</method>
<method name="playDTMF">
<arg type="s" name="key" direction="in"/>
</method>
<method name="startTone">
<arg type="i" name="start" direction="in"/>
<arg type="i" name="type" direction="in"/>
</method>
<method name="setVolume">
<arg type="s" name="device" direction="in"/>
<arg type="d" name="value" direction="in"/>
</method>
<method name="getVolume">
<arg type="s" name="device" direction="in"/>
<arg type="d" name="value" direction="out"/>
</method>
<method name="setRecording">
<arg type="s" name="callID" direction="in"/>
</method>
<method name="getIsRecording">
<arg type="s" name="callID" direction="in"/>
<arg type="b" name="isRecording" direction="out"/>
</method>
<method name="getCallDetails">
<arg type="s" name="callID" direction="in"/>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="infos" direction="out"/>
</method>
<method name="getCurrentCallID">
<arg type="s" name="callID" direction="out"/>
</method>
<method name="getCurrentCodecName">
<arg type="s" name="callID" direction="in"/>
<arg type="s" name="codecName" direction="out"/>
</method>
<signal name="currentSelectedCodec">
<arg type="s" name="callID" direction="out" />
<arg type="s" name="codecName" direction="out"/>
</signal>
<signal name="incomingCall">
<arg type="s" name="accountID" />
<arg type="s" name="callID" />
<arg type="s" name="from" />
</signal>
<signal name="incomingMessage">
<arg type="s" name="accountID" direction="out" />
<arg type="s" name="message" direction="out"/>
</signal>
<signal name="callStateChanged">
<arg type="s" name="callID" direction="out"/>
<arg type="s" name="state" direction="out"/>
</signal>
<signal name="voiceMailNotify">
<arg type="s" name="accountID" direction="out"/>
<arg type="i" name="count" direction="out"/>
</signal>
<signal name="volumeChanged">
<arg type="s" name="device" direction="out"/>
<arg type="d" name="value" direction="out"/>
</signal>
<!--
<signal name="error">
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="out"/>
</signal>
-->
</interface>
</node>

View File

@ -0,0 +1,323 @@
<?xml version="1.0" ?>
<node name="/org/sflphone/SFLphone">
<interface name="org.sflphone.SFLphone.ConfigurationManager">
<!-- Accounts-related methods -->
<method name="getAccountDetails">
<arg type="s" name="accountID" direction="in"/>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="out"/>
</method>
<method name="setAccountDetails">
<annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="MapStringString"/>
<arg type="s" name="accountID" direction="in"/>
<arg type="a{ss}" name="details" direction="in"/>
</method>
<method name="addAccount">
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="in"/>
<arg type="s" name="createdAccountId" direction="out"/>
</method>
<method name="setAccountsOrder">
<arg type="s" name="order" direction="in"/>
</method>
<method name="removeAccount">
<arg type="s" name="accoundID" direction="in"/>
</method>
<method name="getAccountList">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out"/>
</method>
<method name="sendRegister">
<arg type="s" name="accountID" direction="in"/>
<arg type="i" name="expire" direction="in"/>
</method>
<!-- /////////////////////// -->
<!-- Various audio-related methods -->
<method name="getToneLocaleList">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out"/>
</method>
<method name="getVersion">
<arg type="s" name="version" direction="out"/>
</method>
<method name="getRingtoneList">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out"/>
</method>
<method name="getPlaybackDeviceList">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out"/>
</method>
<method name="getRecordDeviceList">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out"/>
</method>
<method name="isRingtoneEnabled">
<arg type="i" name="bool" direction="out"/>
</method>
<method name="ringtoneEnabled">
</method>
<method name="getRingtoneChoice">
<arg type="s" name="tone" direction="out"/>
</method>
<method name="setRingtoneChoice">
<arg type="s" name="tone" direction="in"/>
</method>
<method name="getAudioManager">
<arg type="i" name="api" direction="out"/>
</method>
<method name="setAudioManager">
<arg type="i" name="api" direction="in"/>
</method>
<method name="getRecordPath">
<arg type="s" name="rec" direction="out"/>
</method>
<method name="setRecordPath">
<arg type="s" name="rec" direction="in"/>
</method>
<!-- /////////////////////// -->
<!-- Codecs-related methods -->
<method name="getCodecList">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out"/>
</method>
<method name="getCodecDetails">
<arg type="i" name="payload" direction="in"/>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="details" direction="out"/>
</method>
<method name="getActiveCodecList">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out"/>
</method>
<method name="setActiveCodecList">
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="VectorString"/>
<arg type="as" name="list" direction="in"/>
</method>
<!-- Audio devices methods -->
<method name="getInputAudioPluginList">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out"/>
</method>
<method name="getOutputAudioPluginList">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out"/>
</method>
<method name="setInputAudioPlugin">
<arg type="s" name="audioPlugin" direction="in"/>
</method>
<method name="setOutputAudioPlugin">
<arg type="s" name="audioPlugin" direction="in"/>
</method>
<method name="getAudioOutputDeviceList">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out"/>
</method>
<method name="setAudioOutputDevice">
<arg type="i" name="index" direction="in"/>
</method>
<method name="getAudioInputDeviceList">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out"/>
</method>
<method name="setAudioInputDevice">
<arg type="i" name="index" direction="in"/>
</method>
<method name="getCurrentAudioDevicesIndex">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out"/>
</method>
<method name="getAudioDeviceIndex">
<arg type="s" name="name" direction="in"/>
<arg type="i" name="index" direction="out"/>
</method>
<method name="getCurrentAudioOutputPlugin">
<arg type="s" name="plugin" direction="out"/>
</method>
<!-- General Settings Panel -->
<method name="isIax2Enabled">
<arg type="i" name="res" direction="out"/>
</method>
<method name="setNotify">
</method>
<method name="getNotify">
<arg type="i" name="level" direction="out"/>
</method>
<method name="setMailNotify">
</method>
<method name="getMailNotify">
<arg type="i" name="level" direction="out"/>
</method>
<method name="getDialpad">
<arg type="i" name="state" direction="out"/>
</method>
<method name="setDialpad">
</method>
<method name="getSearchbar">
<arg type="i" name="state" direction="out"/>
</method>
<method name="setSearchbar">
</method>
<method name="getVolumeControls">
<arg type="i" name="state" direction="out"/>
</method>
<method name="setVolumeControls">
</method>
<method name="getMaxCalls">
<arg type="i" name="calls" direction="out"/>
</method>
<method name="setMaxCalls">
<arg type="i" name="calls" direction="in"/>
</method>
<method name="startHidden">
</method>
<method name="isStartHidden">
<arg type="i" name="state" direction="out"/>
</method>
<method name="popupMode">
<arg type="i" name="state" direction="out"/>
</method>
<method name="switchPopupMode">
</method>
<method name="setPulseAppVolumeControl">
</method>
<method name="getPulseAppVolumeControl">
<arg type="i" name="state" direction="out"/>
</method>
<method name="setSipPort">
<arg type="i" name="port" direction="in"/>
</method>
<method name="getSipPort">
<arg type="i" name="port" direction="out"/>
</method>
<method name="setStunServer">
<arg type="s" name="server" direction="in"/>
</method>
<method name="getStunServer">
<arg type="s" name="server" direction="out"/>
</method>
<method name="enableStun">
</method>
<method name="isStunEnabled">
<arg type="i" name="state" direction="out"/>
</method>
<!-- Addressbook configuration -->
<method name="getAddressbookSettings">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringInt"/>
<arg type="a{si}" name="settings" direction="out"/>
</method>
<method name="setAddressbookSettings">
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringInt"/>
<arg type="a{si}" name="settings" direction="in"/>
</method>
<!-- Addressbook list -->
<method name="getAddressbookList">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="settings" direction="out"/>
</method>
<method name="setAddressbookList">
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="VectorString"/>
<arg type="as" name="settings" direction="in"/>
</method>
<!-- Hook configuration -->
<method name="getHookSettings">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="settings" direction="out"/>
</method>
<method name="setHookSettings">
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
<arg type="a{ss}" name="settings" direction="in"/>
</method>
<!-- ///////////////////////////// -->
<!--
<signal name="parametersChanged">
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="out"/>
</signal>
-->
<signal name="accountsChanged">
</signal>
<signal name="errorAlert">
<arg type="i" name="code" direction="out"/>
</signal>
</interface>
</node>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" ?>
<node name="/org/sflphone/SFLphone">
<interface name="org.sflphone.SFLphone.Instance">
<method name="Register">
<arg type="i" name="pid" direction="in"/>
<arg type="s" name="name" direction="in"/>
</method>
<method name="Unregister">
<arg type="i" name="pid" direction="in"/>
</method>
<method name="getRegistrationCount">
<arg type="i" name="count" direction="out"/>
</method>
</interface>
</node>

View File

@ -9,122 +9,141 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="744.09448819"
height="1052.3622047"
width="24"
height="24"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docbase="/home/plbeaudoin/SFLPhone/sflphone/sflphone-gtk/pixmaps"
sodipodi:docname="led-gray.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:modified="true">
<defs
id="defs4">
<linearGradient
id="linearGradient5185">
id="linearGradient3198">
<stop
style="stop-color:#969995;stop-opacity:1;"
style="stop-color:#f00000;stop-opacity:1;"
offset="0"
id="stop5187" />
id="stop3200" />
<stop
style="stop-color:#252525;stop-opacity:0.97647059;"
style="stop-color:#6e0000;stop-opacity:0;"
offset="1"
id="stop5189" />
id="stop3202" />
</linearGradient>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lstart"
style="overflow:visible">
<path
id="path3376"
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Sstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Sstart"
style="overflow:visible">
<path
id="path3370"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
transform="scale(0.2) translate(6,0)" />
</marker>
<linearGradient
inkscape:collect="always"
id="linearGradient3165">
id="linearGradient2772">
<stop
style="stop-color:#e16300;stop-opacity:1;"
style="stop-color:#008000;stop-opacity:1;"
offset="0"
id="stop3167" />
id="stop2774" />
<stop
style="stop-color:#e16300;stop-opacity:0;"
style="stop-color:#008000;stop-opacity:0;"
offset="1"
id="stop3169" />
id="stop2776" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_x="0 : 12 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
inkscape:vp_z="24 : 12 : 1"
inkscape:persp3d-origin="12 : 8 : 1"
id="perspective4177" />
<linearGradient
id="linearGradient4269">
<stop
style="stop-color:#bebebe;stop-opacity:1;"
offset="0"
id="stop4271" />
<stop
style="stop-color:#393939;stop-opacity:1;"
offset="1"
id="stop4273" />
</linearGradient>
<linearGradient
id="linearGradient4183">
<stop
id="stop4185"
offset="0"
style="stop-color:#00fe00;stop-opacity:0" />
<stop
style="stop-color:#0aae00;stop-opacity:0.49803922;"
offset="0.5"
id="stop3252" />
<stop
id="stop4187"
offset="1"
style="stop-color:#145f00;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4167">
<stop
style="stop-color:#80000e;stop-opacity:1;"
offset="0"
id="stop4169" />
<stop
style="stop-color:#b00014;stop-opacity:0;"
offset="1"
id="stop4171" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2772"
id="linearGradient2778"
x1="26.420586"
y1="3.4565225"
x2="20.291727"
y2="-5.2758617"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3165"
id="radialGradient3181"
xlink:href="#linearGradient4269"
id="radialGradient3212"
cx="13.96536"
cy="9.4733086"
fx="13.96536"
fy="9.4733086"
r="11.578874"
gradientTransform="matrix(1,0,0,1.0229008,0,-0.2743328)"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.2682705,3.3175707,-3.0169525,0.2439616,1420.6017,-661.5798)"
cx="277.22891"
cy="368.62262"
fx="277.22891"
fy="368.62262"
r="62.857143" />
spreadMethod="pad" />
<filter
inkscape:collect="always"
id="filter3351">
id="filter4712">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="3.7100165"
id="feGaussianBlur3353" />
stdDeviation="0.23393594"
id="feGaussianBlur4714" />
</filter>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5185"
id="radialGradient5191"
cx="574.9386"
cy="668.12408"
fx="574.9386"
fy="668.12408"
r="235.64999"
gradientTransform="matrix(-0.7572557,-0.504794,0.5925778,-0.8889426,623.74572,1505.0832)"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.6005537"
inkscape:cx="67.328445"
inkscape:cy="526.18109"
inkscape:zoom="11.313708"
inkscape:cx="-4.3721765"
inkscape:cy="-1.1958053"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
width="32px"
height="32px"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1440"
inkscape:window-height="840"
inkscape:window-x="-5"
inkscape:window-y="-3" />
inkscape:window-y="-3"
showgrid="false">
<sodipodi:guide
orientation="vertical"
position="15.982143"
id="guide3146" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
@ -137,20 +156,18 @@
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g3178" />
<path
sodipodi:type="arc"
style="opacity:1;fill:url(#radialGradient5191);fill-opacity:1.0;fill-rule:evenodd;stroke:#000000;stroke-width:11.30000019000000044;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;stroke-miterlimit:16.79999923999999822;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter3351)"
id="path3185"
sodipodi:cx="535.71429"
sodipodi:cy="680.93359"
sodipodi:rx="234.28572"
sodipodi:ry="234.28572"
d="M 770.00002,680.93359 A 234.28572,234.28572 0 1 1 301.42857,680.93359 A 234.28572,234.28572 0 1 1 770.00002,680.93359 z"
transform="translate(-156.52222,-149.8617)" />
style="opacity:1;fill:url(#radialGradient3212);fill-opacity:1.0;stroke:#000000;stroke-opacity:1;filter:url(#filter4712)"
id="path2424"
sodipodi:cx="12.197593"
sodipodi:cy="11.979184"
sodipodi:rx="11.578874"
sodipodi:ry="11.844039"
d="M 23.776466,11.979184 A 11.578874,11.844039 0 1 1 0.6187191,11.979184 A 11.578874,11.844039 0 1 1 23.776466,11.979184 z"
transform="matrix(0.8282777,0,0,0.8097343,1.8970055,2.3000423)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -9,122 +9,141 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="744.09448819"
height="1052.3622047"
width="24"
height="24"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docbase="/home/plbeaudoin/SFLPhone/sflphone/sflphone-gtk/pixmaps"
sodipodi:docname="led-green.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:modified="true">
<defs
id="defs4">
<linearGradient
id="linearGradient5185">
id="linearGradient3198">
<stop
style="stop-color:#39f400;stop-opacity:1;"
style="stop-color:#f00000;stop-opacity:1;"
offset="0"
id="stop5187" />
id="stop3200" />
<stop
style="stop-color:#004b05;stop-opacity:0.97647059;"
style="stop-color:#6e0000;stop-opacity:0;"
offset="1"
id="stop5189" />
id="stop3202" />
</linearGradient>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lstart"
style="overflow:visible">
<path
id="path3376"
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Sstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Sstart"
style="overflow:visible">
<path
id="path3370"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
transform="scale(0.2) translate(6,0)" />
</marker>
<linearGradient
inkscape:collect="always"
id="linearGradient3165">
id="linearGradient2772">
<stop
style="stop-color:#e16300;stop-opacity:1;"
style="stop-color:#008000;stop-opacity:1;"
offset="0"
id="stop3167" />
id="stop2774" />
<stop
style="stop-color:#e16300;stop-opacity:0;"
style="stop-color:#008000;stop-opacity:0;"
offset="1"
id="stop3169" />
id="stop2776" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_x="0 : 12 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
inkscape:vp_z="24 : 12 : 1"
inkscape:persp3d-origin="12 : 8 : 1"
id="perspective4177" />
<linearGradient
id="linearGradient4269">
<stop
style="stop-color:#8bff35;stop-opacity:1;"
offset="0"
id="stop4271" />
<stop
style="stop-color:#197800;stop-opacity:1;"
offset="1"
id="stop4273" />
</linearGradient>
<linearGradient
id="linearGradient4183">
<stop
id="stop4185"
offset="0"
style="stop-color:#00fe00;stop-opacity:0" />
<stop
style="stop-color:#0aae00;stop-opacity:0.49803922;"
offset="0.5"
id="stop3252" />
<stop
id="stop4187"
offset="1"
style="stop-color:#145f00;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4167">
<stop
style="stop-color:#80000e;stop-opacity:1;"
offset="0"
id="stop4169" />
<stop
style="stop-color:#b00014;stop-opacity:0;"
offset="1"
id="stop4171" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2772"
id="linearGradient2778"
x1="26.420586"
y1="3.4565225"
x2="20.291727"
y2="-5.2758617"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3165"
id="radialGradient3181"
xlink:href="#linearGradient4269"
id="radialGradient3212"
cx="13.96536"
cy="9.4733086"
fx="13.96536"
fy="9.4733086"
r="11.578874"
gradientTransform="matrix(1,0,0,1.0229008,0,-0.2743328)"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.2682705,3.3175707,-3.0169525,0.2439616,1420.6017,-661.5798)"
cx="277.22891"
cy="368.62262"
fx="277.22891"
fy="368.62262"
r="62.857143" />
spreadMethod="pad" />
<filter
inkscape:collect="always"
id="filter3351">
id="filter4712">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="3.7100165"
id="feGaussianBlur3353" />
stdDeviation="0.23393594"
id="feGaussianBlur4714" />
</filter>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5185"
id="radialGradient5191"
cx="574.9386"
cy="668.12408"
fx="574.9386"
fy="668.12408"
r="235.64999"
gradientTransform="matrix(-0.7572557,-0.504794,0.5925778,-0.8889426,623.74572,1505.0832)"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.6005537"
inkscape:cx="67.328445"
inkscape:cy="526.18109"
inkscape:zoom="11.313708"
inkscape:cx="-4.3721765"
inkscape:cy="-1.1958053"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
width="32px"
height="32px"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1440"
inkscape:window-height="840"
inkscape:window-x="-5"
inkscape:window-y="-3" />
inkscape:window-y="-3"
showgrid="false">
<sodipodi:guide
orientation="vertical"
position="15.982143"
id="guide3146" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
@ -137,20 +156,18 @@
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g3178" />
<path
sodipodi:type="arc"
style="opacity:1;fill:url(#radialGradient5191);fill-opacity:1.0;fill-rule:evenodd;stroke:#000000;stroke-width:11.30000019000000044;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;stroke-miterlimit:16.79999923999999822;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter3351)"
id="path3185"
sodipodi:cx="535.71429"
sodipodi:cy="680.93359"
sodipodi:rx="234.28572"
sodipodi:ry="234.28572"
d="M 770.00002,680.93359 A 234.28572,234.28572 0 1 1 301.42857,680.93359 A 234.28572,234.28572 0 1 1 770.00002,680.93359 z"
transform="translate(-156.52222,-149.8617)" />
style="opacity:1;fill:url(#radialGradient3212);fill-opacity:1;stroke:#000000;stroke-opacity:1;filter:url(#filter4712)"
id="path2424"
sodipodi:cx="12.197593"
sodipodi:cy="11.979184"
sodipodi:rx="11.578874"
sodipodi:ry="11.844039"
d="M 23.776466,11.979184 A 11.578874,11.844039 0 1 1 0.6187191,11.979184 A 11.578874,11.844039 0 1 1 23.776466,11.979184 z"
transform="matrix(0.8282777,0,0,0.8097343,1.8970055,2.3000423)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -9,122 +9,173 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="744.09448819"
height="1052.3622047"
width="24"
height="24"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docbase="/home/plbeaudoin/SFLPhone/sflphone/sflphone-gtk/pixmaps"
sodipodi:docname="led-red.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:modified="true">
<defs
id="defs4">
<linearGradient
id="linearGradient5185">
<stop
style="stop-color:#f40800;stop-opacity:1;"
offset="0"
id="stop5187" />
<stop
style="stop-color:#6c0000;stop-opacity:0.97647059;"
offset="1"
id="stop5189" />
</linearGradient>
<marker
inkscape:stockid="Arrow2Lstart"
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lstart"
id="Arrow1Mstart"
style="overflow:visible">
<path
id="path3376"
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Sstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Sstart"
style="overflow:visible">
<path
id="path3370"
id="path5147"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
transform="scale(0.2) translate(6,0)" />
transform="scale(0.4) translate(10,0)" />
</marker>
<linearGradient
inkscape:collect="always"
id="linearGradient3165">
id="linearGradient3181">
<stop
style="stop-color:#e16300;stop-opacity:1;"
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3167" />
id="stop3183" />
<stop
style="stop-color:#e16300;stop-opacity:0;"
id="stop3189"
offset="0.93000001"
style="stop-color:#000000;stop-opacity:1;" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0.95285714"
id="stop3191" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3169" />
id="stop3185" />
</linearGradient>
<linearGradient
id="linearGradient3198">
<stop
style="stop-color:#f00000;stop-opacity:1;"
offset="0"
id="stop3200" />
<stop
style="stop-color:#6e0000;stop-opacity:0;"
offset="1"
id="stop3202" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient2772">
<stop
style="stop-color:#008000;stop-opacity:1;"
offset="0"
id="stop2774" />
<stop
style="stop-color:#008000;stop-opacity:0;"
offset="1"
id="stop2776" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_x="0 : 12 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
inkscape:vp_z="24 : 12 : 1"
inkscape:persp3d-origin="12 : 8 : 1"
id="perspective4177" />
<linearGradient
id="linearGradient4269">
<stop
style="stop-color:#ff3535;stop-opacity:1;"
offset="0"
id="stop4271" />
<stop
style="stop-color:#780000;stop-opacity:1;"
offset="1"
id="stop4273" />
</linearGradient>
<linearGradient
id="linearGradient4183">
<stop
id="stop4185"
offset="0"
style="stop-color:#00fe00;stop-opacity:0" />
<stop
style="stop-color:#0aae00;stop-opacity:0.49803922;"
offset="0.5"
id="stop3252" />
<stop
id="stop4187"
offset="1"
style="stop-color:#145f00;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4167">
<stop
style="stop-color:#80000e;stop-opacity:1;"
offset="0"
id="stop4169" />
<stop
style="stop-color:#b00014;stop-opacity:0;"
offset="1"
id="stop4171" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2772"
id="linearGradient2778"
x1="26.420586"
y1="3.4565225"
x2="20.291727"
y2="-5.2758617"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3165"
id="radialGradient3181"
xlink:href="#linearGradient4269"
id="radialGradient3212"
cx="13.96536"
cy="9.4733086"
fx="13.96536"
fy="9.4733086"
r="11.578874"
gradientTransform="matrix(1,0,0,1.0229008,0,-0.2743328)"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.2682705,3.3175707,-3.0169525,0.2439616,1420.6017,-661.5798)"
cx="277.22891"
cy="368.62262"
fx="277.22891"
fy="368.62262"
r="62.857143" />
spreadMethod="pad" />
<filter
inkscape:collect="always"
id="filter3351">
id="filter4712">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="3.7100165"
id="feGaussianBlur3353" />
stdDeviation="0.23393594"
id="feGaussianBlur4714" />
</filter>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5185"
id="radialGradient5191"
cx="574.9386"
cy="668.12408"
fx="574.9386"
fy="668.12408"
r="235.64999"
gradientTransform="matrix(-0.7572557,-0.504794,0.5925778,-0.8889426,623.74572,1505.0832)"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.6005537"
inkscape:cx="372.04724"
inkscape:cy="526.18109"
inkscape:zoom="11.313708"
inkscape:cx="7.36622"
inkscape:cy="-1.1958053"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1440"
inkscape:window-height="840"
inkscape:window-x="-5"
inkscape:window-y="-3" />
width="32px"
height="32px"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="950"
inkscape:window-height="774"
inkscape:window-x="393"
inkscape:window-y="27"
showgrid="false">
<sodipodi:guide
orientation="vertical"
position="15.982143"
id="guide3146" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
@ -137,20 +188,18 @@
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g3178" />
<path
sodipodi:type="arc"
style="opacity:1;fill:url(#radialGradient5191);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:11.30000019;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;stroke-miterlimit:16.79999924;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter3351)"
id="path3185"
sodipodi:cx="535.71429"
sodipodi:cy="680.93359"
sodipodi:rx="234.28572"
sodipodi:ry="234.28572"
d="M 770.00002,680.93359 A 234.28572,234.28572 0 1 1 301.42857,680.93359 A 234.28572,234.28572 0 1 1 770.00002,680.93359 z"
transform="translate(-156.52222,-149.8617)" />
style="opacity:1;fill:url(#radialGradient3212);fill-opacity:1;stroke:#000000;stroke-opacity:1;filter:url(#filter4712);stroke-width:1.00005676;stroke-miterlimit:1.29999995;stroke-dasharray:none;stroke-linecap:butt;marker-start:none;stroke-dashoffset:9.00051082999999785"
id="path2424"
sodipodi:cx="12.197593"
sodipodi:cy="11.979184"
sodipodi:rx="11.578874"
sodipodi:ry="11.844039"
d="M 23.776466,11.979184 A 11.578874,11.844039 0 1 1 0.6187191,11.979184 A 11.578874,11.844039 0 1 1 23.776466,11.979184 z"
transform="matrix(0.8282777,0,0,0.8097343,1.8970055,2.3000423)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -41,7 +41,6 @@
<file>../icons/rec_call.svg</file>
<file>../icons/refuse.svg</file>
<file>../icons/ring.svg</file>
<file>../icons/sflphone.png</file>
<file>../icons/speaker_25.svg</file>
<file>../icons/speaker_50.svg</file>
<file>../icons/speaker_75.svg</file>
@ -80,7 +79,6 @@
<file>../icons/rec_call.svg</file>
<file>../icons/refuse.svg</file>
<file>../icons/ring.svg</file>
<file>../icons/sflphone.png</file>
<file>../icons/speaker_25.svg</file>
<file>../icons/speaker_50.svg</file>
<file>../icons/speaker_75.svg</file>
@ -88,5 +86,9 @@
<file>../icons/stock_person.svg</file>
<file>../icons/transfert.svg</file>
<file>../icons/unhold.svg</file>
<file>../icons/led-red.svg</file>
<file>../icons/led-green.svg</file>
<file>../icons/led-gray.svg</file>
<file>../icons/test.svg</file>
</qresource>
</RCC>

View File

@ -98,6 +98,10 @@
#define ICON_HISTORY_OUTGOING ":/images/icons/outgoing.svg"
#define ICON_HISTORY_MISSED ":/images/icons/missed.svg"
#define ICON_ACCOUNT_LED_RED ":/images/icons/led-red.svg"
#define ICON_ACCOUNT_LED_GREEN ":/images/icons/led-green.svg"
#define ICON_ACCOUNT_LED_GRAY ":/images/icons/led-gray.svg"
#define ICON_QUIT ":/images/icons/application-exit.png"
#define ICON_SFLPHONE ":/images/icons/sflphone.svg"

View File

@ -7,7 +7,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>708</width>
<width>747</width>
<height>476</height>
</rect>
</property>
@ -21,7 +21,7 @@
<string>Configuration Dialog</string>
</property>
<property name="windowIcon">
<iconset resource="resources.qrc">
<iconset resource="../qrc/resources.qrc">
<normaloff>:/images/icons/sflphone.svg</normaloff>:/images/icons/sflphone.svg</iconset>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
@ -605,7 +605,7 @@
<string>Remove this account</string>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<iconset resource="../qrc/resources.qrc">
<normaloff>:/images/icons/remove.png</normaloff>:/images/icons/remove.png</iconset>
</property>
<property name="shortcut">
@ -631,7 +631,7 @@
<string>Add a new account</string>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<iconset resource="../qrc/resources.qrc">
<normaloff>:/images/icons/add.png</normaloff>:/images/icons/add.png</iconset>
</property>
</widget>
@ -787,7 +787,7 @@
<item row="4" column="1">
<widget class="QLineEdit" name="edit5_password">
<property name="echoMode">
<enum>QLineEdit::PasswordEchoOnEdit</enum>
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
@ -1525,7 +1525,7 @@
</customwidget>
</customwidgets>
<resources>
<include location="resources.qrc"/>
<include location="../qrc/resources.qrc"/>
</resources>
<connections>
<connection>