diff --git a/sflphone-client-kde/data/sflphone-client-kde.desktop b/sflphone-client-kde/data/sflphone-client-kde.desktop index b3298aaca04a17141009e57adf5c7dd99a514098..1b74b87e517b7317ea7712fc8ad400ec93b94beb 100644 --- a/sflphone-client-kde/data/sflphone-client-kde.desktop +++ b/sflphone-client-kde/data/sflphone-client-kde.desktop @@ -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; diff --git a/sflphone-client-kde/src/Account.cpp b/sflphone-client-kde/src/Account.cpp index 5939416faca9bed141fe62ddfe2174bb6e9904cf..667da36bc487c45b68e5a79d615cb504ae827849 100644 --- a/sflphone-client-kde/src/Account.cpp +++ b/sflphone-client-kde/src/Account.cpp @@ -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 { diff --git a/sflphone-client-kde/src/Account.h b/sflphone-client-kde/src/Account.h index a31c9a2ba671a0157803cf9a8ece86f244852e8c..e1463bb64e3b280999f25f7a14e1bc7b49392187 100644 --- a/sflphone-client-kde/src/Account.h +++ b/sflphone-client-kde/src/Account.h @@ -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; diff --git a/sflphone-client-kde/src/AccountItemWidget.cpp b/sflphone-client-kde/src/AccountItemWidget.cpp index eb4beda0638cf8a6e17887b409c06ce0f2b18e3b..dd895adde61b486dfc880ef579d89bb5a51d5b6c 100644 --- a/sflphone-client-kde/src/AccountItemWidget.cpp +++ b/sflphone-client-kde/src/AccountItemWidget.cpp @@ -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."; diff --git a/sflphone-client-kde/src/AccountItemWidget.h b/sflphone-client-kde/src/AccountItemWidget.h index 7d26ccd616ba398578038849033f954d268cc790..dacfa39b843f2ba44946d9fb8cf904b9501be6f5 100644 --- a/sflphone-client-kde/src/AccountItemWidget.h +++ b/sflphone-client-kde/src/AccountItemWidget.h @@ -38,7 +38,7 @@ private: int state; bool enabled; - KLed * led; + QLabel * led; QCheckBox * checkBox; QLabel * textLabel; diff --git a/sflphone-client-kde/src/ConfigDialog.cpp b/sflphone-client-kde/src/ConfigDialog.cpp index 2e340c73fdc4e35bdffc9ca0d2e2b7534deefaca..0a51beea9f35b36a131d56b6970fa18d894ca9dd 100644 --- a/sflphone-client-kde/src/ConfigDialog.cpp +++ b/sflphone-client-kde/src/ConfigDialog.cpp @@ -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())); diff --git a/sflphone-client-kde/src/ConfigDialog.h b/sflphone-client-kde/src/ConfigDialog.h index 241ec75106d286e477cc99abb31e85aee76ed3e2..af0c2ffcae1274406466b2b5d8e8ad10867fbf5e 100644 --- a/sflphone-client-kde/src/ConfigDialog.h +++ b/sflphone-client-kde/src/ConfigDialog.h @@ -73,6 +73,7 @@ public: //Updates void updateCodecListCommands(); void updateAccountListCommands(); + void updateAccountStates(); private slots: void changedAccountList(); diff --git a/sflphone-client-kde/src/icons/led-gray.svg b/sflphone-client-kde/src/icons/led-gray.svg index 17de5519b0c9b47e996ab65c3cfe183724bb3cca..001edc090e61402ab778b223261d05adb2beda62 100644 --- a/sflphone-client-kde/src/icons/led-gray.svg +++ b/sflphone-client-kde/src/icons/led-gray.svg @@ -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> diff --git a/sflphone-client-kde/src/icons/led-green.svg b/sflphone-client-kde/src/icons/led-green.svg index 005cf124956dcfc5d124122b144d04a811f9e0ab..61236ed1f8da6a87aa45228ea6f111c0ee7051ec 100644 --- a/sflphone-client-kde/src/icons/led-green.svg +++ b/sflphone-client-kde/src/icons/led-green.svg @@ -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> diff --git a/sflphone-client-kde/src/icons/led-red.svg b/sflphone-client-kde/src/icons/led-red.svg index 6aa39f804da88a97b9393ebb068fd3f15270542b..097266799d7fad7e9e729467f2bcc5f3fa442de7 100644 --- a/sflphone-client-kde/src/icons/led-red.svg +++ b/sflphone-client-kde/src/icons/led-red.svg @@ -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" - 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" + inkscape:stockid="Arrow1Mstart" orient="auto" refY="0.0" refX="0.0" - id="Arrow1Sstart" + id="Arrow1Mstart" 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 + id="linearGradient3181"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop3183" /> + <stop + 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="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="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:#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> diff --git a/sflphone-client-kde/src/icons/sflphone.png b/sflphone-client-kde/src/icons/sflphone.png deleted file mode 100644 index 50c1483ac152972fa6d993b6823b5d247dd258bc..0000000000000000000000000000000000000000 Binary files a/sflphone-client-kde/src/icons/sflphone.png and /dev/null differ diff --git a/sflphone-client-kde/src/qrc/resources.qrc b/sflphone-client-kde/src/qrc/resources.qrc index 73424bd026acebd196e9286adf706eb2c68f6644..b12e851e7d035b8767aeab2cb19c2d0a10129098 100644 --- a/sflphone-client-kde/src/qrc/resources.qrc +++ b/sflphone-client-kde/src/qrc/resources.qrc @@ -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> diff --git a/sflphone-client-kde/src/sflphone_const.h b/sflphone-client-kde/src/sflphone_const.h index 3f17b89d1dede5dccce9b7a699a3fa1fd730cb71..52c5a348830dd5812a2ca1ec410fe1526642c2b3 100644 --- a/sflphone-client-kde/src/sflphone_const.h +++ b/sflphone-client-kde/src/sflphone_const.h @@ -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" diff --git a/sflphone-client-kde/src/ui/ConfigDialog.ui b/sflphone-client-kde/src/ui/ConfigDialog.ui index 98e4732e948e42ecc5d6aa8be45c29c4798771b1..f0e4585fb6aba8f158853954e3925773488e9a36 100644 --- a/sflphone-client-kde/src/ui/ConfigDialog.ui +++ b/sflphone-client-kde/src/ui/ConfigDialog.ui @@ -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>