diff --git a/sflphone_kde/Call.cpp b/sflphone_kde/Call.cpp index 4f2ad96ab9832604d03c1903e728941fded9630e..f9edbac64780ba379995ea37dc4faac574bb4881 100644 --- a/sflphone_kde/Call.cpp +++ b/sflphone_kde/Call.cpp @@ -8,6 +8,14 @@ Call::Call(call_state startState, QString callId) this->item = new QListWidgetItem(""); } +Call::Call(call_state startState, QString callId, QString from, Account & account) +{ + this->automate = new Automate(startState); + this->id = callId; + this->item = new QListWidgetItem(from); + this->account = & account; +} + Call::~Call() { delete item; @@ -20,6 +28,12 @@ Call * Call::buildDialingCall(QString callId) return call; } +Call * Call::buildIncomingCall(QString callId, QString from, Account & account) +{ + Call * call = new Call(CALL_STATE_INCOMING, callId, from, account); + return call; +} + QListWidgetItem * Call::getItem() { return item; diff --git a/sflphone_kde/Call.h b/sflphone_kde/Call.h index cd03f6f6ea2e8143fff1b79fce16cb08e02bd540..2a8a25ef62b947f0f6b4cd7e61ac8c266dfc48f9 100644 --- a/sflphone_kde/Call.h +++ b/sflphone_kde/Call.h @@ -10,7 +10,7 @@ class Call { private: - //Account * account; + Account * account; QString id; QString from; QString to; @@ -25,7 +25,8 @@ private: public: ~Call(); - static Call * buildDialingCall(QString calllId); + static Call * buildDialingCall(QString callId); + static Call * buildIncomingCall(QString callId, QString from, Account & account); QListWidgetItem * getItem(); call_state getState() const; QString getCallId(); diff --git a/sflphone_kde/CallList.cpp b/sflphone_kde/CallList.cpp index 7d39d88af372aad050c7e5dd536a3f60ccfbe7d1..d4461fdb4cdf8aecdfeb178a408872aa0070f835 100644 --- a/sflphone_kde/CallList.cpp +++ b/sflphone_kde/CallList.cpp @@ -36,4 +36,11 @@ QListWidgetItem * CallList::addDialingCall() Call * call = Call::buildDialingCall(getAndIncCallId()); calls->append(call); return call->getItem(); +} + +QListWidgetItem * CallList::addIncomingCall(QString callId, QString from, Account & account) +{ + Call * call = Call::buildIncomingCall(callId, from, account); + calls->append(call); + return call->getItem(); } \ No newline at end of file diff --git a/sflphone_kde/CallList.h b/sflphone_kde/CallList.h index 2817f5c74f567b729d197e0d6ed7448b8e23d992..7f43e6dc6deb1d23ffcd53a4fdac1cc9ef1a4441 100644 --- a/sflphone_kde/CallList.h +++ b/sflphone_kde/CallList.h @@ -17,6 +17,7 @@ public: Call * operator[](QListWidgetItem * item); QListWidgetItem * addDialingCall(); + QListWidgetItem * addIncomingCall(QString callId, QString from, Account & account); QString getAndIncCallId(); int size(); diff --git a/sflphone_kde/SFLPhone.cpp b/sflphone_kde/SFLPhone.cpp index 53b0b86b7cf55082605f2782708709ed9436bc6d..95cab2bbc4985804f044eb9ba871f396a086d542 100644 --- a/sflphone_kde/SFLPhone.cpp +++ b/sflphone_kde/SFLPhone.cpp @@ -12,6 +12,23 @@ SFLPhone::SFLPhone(QMainWindow *parent) : QMainWindow(parent) configDialog = new ConfigurationDialog(this); configDialog->setModal(true); + + CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + connect(&callManager, SIGNAL(callStateChanged(const QString &, const QString &)), + this, SLOT(on_callStateChanged(const QString &, const QString &))); + connect(&callManager, SIGNAL(error(MapStringString)), + this, SLOT(on_error(MapStringString))); + connect(&callManager, SIGNAL(incomingCall(const QString &, const QString &, const QString &)), + this, SLOT(on_incomingCall(const QString &, const QString &, const QString &))); + connect(&callManager, SIGNAL(incomingMessage(const QString &, const QString &)), + this, SLOT(on_incomingMessage(const QString &, const QString &))); + connect(&callManager, SIGNAL(voiceMailNotify(const QString &, int)), + this, SLOT(on_voiceMailNotify(const QString &, int))); + connect(&callManager, SIGNAL(volumeChanged(const QString &, double)), + this, SLOT(on_volumeChanged(const QString &, double))); + //QDBusConnection::sessionBus().connect("org.sflphone.SFLphone", "/org/sflphone/SFLphone/CallManager", "org.sflphone.SFLphone.CallManager", "incomingCall", + // this, SLOT(on_incomingCall(const QString &accountID, const QString &callID, const QString &from))); + loadWindow(); @@ -28,22 +45,55 @@ void SFLPhone::loadWindow() actionAfficher_les_barres_de_volume->setChecked(daemon.getVolumeControls()); actionAfficher_le_clavier->setChecked(daemon.getDialpad()); updateWindowCallState(); + updateRecordButton(); + updateVolumeButton(); + updateRecordBar(); + updateVolumeBar(); + updateVolumeControls(); + updateDialpad(); } -void SFLPhone::on_actionAfficher_les_barres_de_volume_toggled() +QString SFLPhone::firstAccount() { ConfigurationManagerInterface & daemon = ConfigurationManagerInterfaceSingleton::getInstance(); - daemon.setVolumeControls(); + //ask for the list of accounts ids to the daemon + QStringList accountIds = daemon.getAccountList().value(); + for (int i = 0; i < accountIds.size(); ++i){ + MapStringString accountDetails = daemon.getAccountDetails(accountIds[i]); + if(accountDetails[QString(ACCOUNT_STATUS)] == QString(ACCOUNT_STATE_REGISTERED)) + { + return accountIds[i]; + } + } + return ""; } -void SFLPhone::on_actionAfficher_le_clavier_toggled() +void SFLPhone::typeChar(QChar c) { - ConfigurationManagerInterface & daemon = ConfigurationManagerInterfaceSingleton::getInstance(); - daemon.setDialpad(); + QListWidgetItem * item = listWidget_callList->currentItem(); + if(!item) + { + qDebug() << "Typing when no item is selected. Opening an item."; + item = callList->addDialingCall(); + listWidget_callList->addItem(item); + listWidget_callList->setCurrentRow(listWidget_callList->count() - 1); + } + listWidget_callList->currentItem()->setText(listWidget_callList->currentItem()->text() + c); +} + +void SFLPhone::action(QListWidgetItem * item, call_action action) +{ + (*callList)[item]->action(action, item->text()); + updateWindowCallState(); } +/******************************************* +******** Update Display Functions ********** +*******************************************/ + void SFLPhone::updateWindowCallState() { + qDebug() << "updateWindowCallState"; QListWidgetItem * item = listWidget_callList->currentItem(); bool enabledActions[5]= {true,true,true,true,true}; @@ -151,27 +201,108 @@ void SFLPhone::updateWindowCallState() actionRaccrocher->setIcon(QIcon(buttonIconFiles[1])); actionMettre_en_attente->setIcon(QIcon(buttonIconFiles[2])); - //actionTransferer->setChecked(transfer); + actionTransferer->setChecked(transfer); //actionRecord->setChecked(record); } -void SFLPhone::typeChar(QChar c) +void SFLPhone::updateRecordButton() { - QListWidgetItem * item = listWidget_callList->currentItem(); - if(!item) + qDebug() << "updateRecordButton"; + CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + double recVol = callManager.getVolume(RECORD_DEVICE); + if(recVol == 0.00) { - qDebug() << "Typing when no item is selected. Opening an item."; - item = callList->addDialingCall(); - listWidget_callList->addItem(item); - listWidget_callList->setCurrentRow(listWidget_callList->count() - 1); + toolButton_recVol->setIcon(QIcon(ICON_REC_VOL_0)); } - listWidget_callList->currentItem()->setText(listWidget_callList->currentItem()->text() + c); + else if(recVol < 0.33) + { + toolButton_recVol->setIcon(QIcon(ICON_REC_VOL_1)); + } + else if(recVol < 0.67) + { + toolButton_recVol->setIcon(QIcon(ICON_REC_VOL_2)); + } + else + { + toolButton_recVol->setIcon(QIcon(ICON_REC_VOL_3)); + } + if(recVol > 0) + toolButton_recVol->setChecked(false); +} +void SFLPhone::updateVolumeButton() +{ + qDebug() << "updateVolumeButton"; + CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + double sndVol = callManager.getVolume(SOUND_DEVICE); + if(sndVol == 0.00) + { + toolButton_sndVol->setIcon(QIcon(ICON_SND_VOL_0)); + } + else if(sndVol < 0.33) + { + toolButton_sndVol->setIcon(QIcon(ICON_SND_VOL_1)); + } + else if(sndVol < 0.67) + { + toolButton_sndVol->setIcon(QIcon(ICON_SND_VOL_2)); + } + else + { + toolButton_sndVol->setIcon(QIcon(ICON_SND_VOL_3)); + } + if(sndVol > 0) + toolButton_sndVol->setChecked(false); +} +void SFLPhone::updateRecordBar() +{ + qDebug() << "updateRecordBar"; + CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + double recVol = callManager.getVolume(RECORD_DEVICE); + slider_recVol->setValue((int)(recVol * 100)); +} +void SFLPhone::updateVolumeBar() +{ + qDebug() << "updateVolumeBar"; + CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + double sndVol = callManager.getVolume(SOUND_DEVICE); + slider_sndVol->setValue((int)(sndVol * 100)); } -void SFLPhone::action(QListWidgetItem * item, call_action action) +void SFLPhone::updateVolumeControls() { - (*callList)[item]->action(action, item->text()); - updateWindowCallState(); + qDebug() << "updateVolumeControls"; + ConfigurationManagerInterface & daemon = ConfigurationManagerInterfaceSingleton::getInstance(); + int display = daemon.getVolumeControls(); + widget_recVol->setVisible(display); + widget_sndVol->setVisible(display); +} + +void SFLPhone::updateDialpad() +{ + qDebug() << "updateDialpad"; + ConfigurationManagerInterface & daemon = ConfigurationManagerInterfaceSingleton::getInstance(); + int display = daemon.getDialpad(); + widget_dialpad->setVisible(display); +} + + + +/************************************************************ +************ Autoconnect ************* +************************************************************/ + +void SFLPhone::on_actionAfficher_les_barres_de_volume_toggled() +{ + ConfigurationManagerInterface & daemon = ConfigurationManagerInterfaceSingleton::getInstance(); + daemon.setVolumeControls(); + updateVolumeControls(); +} + +void SFLPhone::on_actionAfficher_le_clavier_toggled() +{ + ConfigurationManagerInterface & daemon = ConfigurationManagerInterfaceSingleton::getInstance(); + daemon.setDialpad(); + updateDialpad(); } void SFLPhone::on_pushButton_1_clicked() { typeChar('1'); } @@ -187,6 +318,82 @@ void SFLPhone::on_pushButton_0_clicked() { typeChar('0'); } void SFLPhone::on_pushButton_diese_clicked() { typeChar('#'); } void SFLPhone::on_pushButton_etoile_clicked() { typeChar('*'); } +void SFLPhone::on_slider_recVol_valueChanged(int value) +{ + qDebug() << "on_slider_recVol_valueChanged(" << value << ")"; + CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + callManager.setVolume(RECORD_DEVICE, (double)value / 100.0); + updateRecordButton(); +} +void SFLPhone::on_slider_sndVol_valueChanged(int value) +{ + qDebug() << "on_slider_sndVol_valueChanged(" << value << ")"; + CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + callManager.setVolume(SOUND_DEVICE, (double)value / 100.0); + updateVolumeButton(); +} + +void SFLPhone::on_toolButton_recVol_clicked() +{ + CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + qDebug() << "on_toolButton_recVol_clicked()."; + if(! toolButton_recVol->isChecked()) + { + qDebug() << "checked"; + toolButton_recVol->setChecked(false); + slider_recVol->setEnabled(true); + callManager.setVolume(RECORD_DEVICE, (double)slider_recVol->value() / 100.0); + } + else + { + qDebug() << "unchecked"; + toolButton_recVol->setChecked(true); + slider_recVol->setEnabled(false); + callManager.setVolume(RECORD_DEVICE, 0.0); + } + updateRecordButton(); + /* + qDebug() << "on_toolButton_recVol_clicked(). checked = " << toolButton_recVol->isChecked(); + CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + toolButton_recVol->setChecked(toolButton_recVol->isChecked()); + //toolButton_recVol->setChecked(true); + slider_recVol->setEnabled(! toolButton_recVol->isChecked()); + callManager.setVolume(RECORD_DEVICE, toolButton_recVol->isChecked() ? (double)slider_recVol->value() / 100.0 : 0.0); + updateRecordButton(); + */ +} + +void SFLPhone::on_toolButton_sndVol_clicked() +{ + CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + qDebug() << "on_toolButton_sndVol_clicked()."; + if(! toolButton_sndVol->isChecked()) + { + qDebug() << "checked"; + toolButton_sndVol->setChecked(false); + slider_sndVol->setEnabled(true); + callManager.setVolume(SOUND_DEVICE, (double)slider_sndVol->value() / 100.0); + } + else + { + qDebug() << "unchecked"; + toolButton_sndVol->setChecked(true); + slider_sndVol->setEnabled(false); + callManager.setVolume(SOUND_DEVICE, 0.0); + } + updateVolumeButton(); + /* + qDebug() << "on_toolButton_sndVol_clicked(). checked = " << toolButton_recVol->isChecked(); + CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + toolButton_sndVol->setChecked(toolButton_sndVol->isChecked()); + slider_sndVol->setEnabled(! toolButton_sndVol->isChecked()); + //callManager.setVolume(SOUND_DEVICE, toolButton_recVol->isChecked() ? 0.0 : (double)slider_sndVol->value() / 100.0); + callManager.setVolume(SOUND_DEVICE, 0.0); + updateVolumeButton(); + */ +} + + void SFLPhone::on_listWidget_callList_currentItemChanged() { updateWindowCallState(); @@ -291,24 +498,46 @@ void SFLPhone::on_actionBoite_vocale_triggered() } -void SFLPhone::on_actionAbout() +void SFLPhone::on_callStateChanged(const QString &callID, const QString &state) { + qDebug() << "on_callStateChanged !"; +} +void SFLPhone::on_error(MapStringString details) +{ + qDebug() << "on_error !"; } -QString SFLPhone::firstAccount() +void SFLPhone::on_incomingCall(const QString &accountID, const QString &callID, const QString &from) { - ConfigurationManagerInterface & daemon = ConfigurationManagerInterfaceSingleton::getInstance(); - //ask for the list of accounts ids to the daemon - QStringList accountIds = daemon.getAccountList().value(); - for (int i = 0; i < accountIds.size(); ++i){ - MapStringString accountDetails = daemon.getAccountDetails(accountIds[i]); - if(accountDetails[QString(ACCOUNT_STATUS)] == QString(ACCOUNT_STATE_REGISTERED)) - { - return accountIds[i]; - } - } - return ""; + qDebug() << "Incoming Call !"; +} + +void SFLPhone::on_incomingMessage(const QString &accountID, const QString &message) +{ + qDebug() << "on_incomingMessage !"; } +void SFLPhone::on_voiceMailNotify(const QString &accountID, int count) +{ + qDebug() << "on_voiceMailNotify !"; +} + +void SFLPhone::on_volumeChanged(const QString &device, double value) +{ + qDebug() << "on_volumeChanged !"; + if(! (toolButton_recVol->isChecked() && value == 0.0)) + updateRecordBar(); + if(! (toolButton_sndVol->isChecked() && value == 0.0)) + updateVolumeBar(); +} + + +/*void SFLPhone::on_actionAbout() +{ + +}*/ + + + diff --git a/sflphone_kde/SFLPhone.h b/sflphone_kde/SFLPhone.h index 3ae81d393f62be27a1e0fff084e2676f475975f7..2502d7bb91d6d3ecb7cb57d01bcf12d651b414c1 100644 --- a/sflphone_kde/SFLPhone.h +++ b/sflphone_kde/SFLPhone.h @@ -21,14 +21,20 @@ public: SFLPhone(QMainWindow *parent = 0); ~SFLPhone(); void loadWindow(); - QAbstractButton * getDialpadButton(int ind); static QString firstAccount(); private slots: void typeChar(QChar c); void action(QListWidgetItem * item, call_action action); + void updateWindowCallState(); - + void updateRecordButton(); + void updateVolumeButton(); + void updateRecordBar(); + void updateVolumeBar(); + void updateVolumeControls(); + void updateDialpad(); + void on_actionAfficher_les_barres_de_volume_toggled(); void on_actionAfficher_le_clavier_toggled(); void on_actionConfigurer_les_comptes_triggered(); @@ -41,7 +47,9 @@ private slots: void on_actionRecord_triggered(); void on_actionHistorique_triggered(); void on_actionBoite_vocale_triggered(); - void on_actionAbout(); + //void on_actionAbout(); + + void on_pushButton_1_clicked(); void on_pushButton_2_clicked(); @@ -56,8 +64,21 @@ private slots: void on_pushButton_diese_clicked(); void on_pushButton_etoile_clicked(); + void on_slider_recVol_valueChanged(int value); + void on_slider_sndVol_valueChanged(int value); + + void on_toolButton_recVol_clicked(); + void on_toolButton_sndVol_clicked(); + void on_listWidget_callList_currentItemChanged(); + void on_callStateChanged(const QString &callID, const QString &state); + void on_error(MapStringString details); + void on_incomingCall(const QString &accountID, const QString &callID, const QString &from); + void on_incomingMessage(const QString &accountID, const QString &message); + void on_voiceMailNotify(const QString &accountID, int count); + void on_volumeChanged(const QString &device, double value); + }; #endif diff --git a/sflphone_kde/main.cpp b/sflphone_kde/main.cpp index 1ea20a93f077c932268db05df9dd5a837ca4850e..da4fa231ffab1fbf77f8a6ccd23904fbcea4d385 100644 --- a/sflphone_kde/main.cpp +++ b/sflphone_kde/main.cpp @@ -16,6 +16,8 @@ int main(int argc, char *argv[]) app.installTranslator(&translator); SFLPhone fenetre; + + fenetre.show(); return app.exec(); diff --git a/sflphone_kde/resources.qrc b/sflphone_kde/resources.qrc new file mode 100644 index 0000000000000000000000000000000000000000..5a7a305aab08d9d5de3eb871a314de5efaacc8f5 --- /dev/null +++ b/sflphone_kde/resources.qrc @@ -0,0 +1,88 @@ +<RCC> + <qresource prefix="images" > + <file>icons/accept.svg</file> + <file>icons/busy.svg</file> + <file>icons/call.svg</file> + <file>icons/current.svg</file> + <file>icons/dial.svg</file> + <file>icons/fail.svg</file> + <file>icons/hang_up.svg</file> + <file>icons/history2.svg</file> + <file>icons/history.svg</file> + <file>icons/hold.svg</file> + <file>icons/icon_accept.svg</file> + <file>icons/icon_call.svg</file> + <file>icons/icon_dialpad_off.svg</file> + <file>icons/icon_dialpad.svg</file> + <file>icons/icon_hangup.svg</file> + <file>icons/icon_hold.svg</file> + <file>icons/icon_rec.svg</file> + <file>icons/icon_unhold.svg</file> + <file>icons/icon_volume_off.svg</file> + <file>icons/icon_volume.svg</file> + <file>icons/incoming.svg</file> + <file>icons/mailbox.svg</file> + <file>icons/Makefile</file> + <file>icons/Makefile.am</file> + <file>icons/Makefile.in</file> + <file>icons/mic_25.svg</file> + <file>icons/mic_50.svg</file> + <file>icons/mic_75.svg</file> + <file>icons/mic.svg</file> + <file>icons/missed.svg</file> + <file>icons/outgoing.svg</file> + <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> + <file>icons/speaker.svg</file> + <file>icons/stock_person.svg</file> + <file>icons/transfert.svg</file> + <file>icons/unhold.svg</file> + <file>icons/accept.svg</file> + <file>icons/busy.svg</file> + <file>icons/call.svg</file> + <file>icons/current.svg</file> + <file>icons/dial.svg</file> + <file>icons/fail.svg</file> + <file>icons/hang_up.svg</file> + <file>icons/history2.svg</file> + <file>icons/history.svg</file> + <file>icons/hold.svg</file> + <file>icons/icon_accept.svg</file> + <file>icons/icon_call.svg</file> + <file>icons/icon_dialpad_off.svg</file> + <file>icons/icon_dialpad.svg</file> + <file>icons/icon_hangup.svg</file> + <file>icons/icon_hold.svg</file> + <file>icons/icon_rec.svg</file> + <file>icons/icon_unhold.svg</file> + <file>icons/icon_volume_off.svg</file> + <file>icons/icon_volume.svg</file> + <file>icons/incoming.svg</file> + <file>icons/mailbox.svg</file> + <file>icons/Makefile</file> + <file>icons/Makefile.am</file> + <file>icons/Makefile.in</file> + <file>icons/mic_25.svg</file> + <file>icons/mic_50.svg</file> + <file>icons/mic_75.svg</file> + <file>icons/mic.svg</file> + <file>icons/missed.svg</file> + <file>icons/outgoing.svg</file> + <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> + <file>icons/speaker.svg</file> + <file>icons/stock_person.svg</file> + <file>icons/transfert.svg</file> + <file>icons/unhold.svg</file> + </qresource> +</RCC> diff --git a/sflphone_kde/sflphone-qt.ui b/sflphone_kde/sflphone-qt.ui index 944f60098dadf3a9b741ee2f2faf04ff90fce903..90b148150684c226080f586d2a7bf56d3640be57 100644 --- a/sflphone_kde/sflphone-qt.ui +++ b/sflphone_kde/sflphone-qt.ui @@ -26,67 +26,77 @@ <number>0</number> </property> <item> - <layout class="QVBoxLayout" name="verticalLayout_2" > - <property name="spacing" > - <number>0</number> + <widget class="QWidget" native="1" name="widget_recVol" > + <property name="layoutDirection" > + <enum>Qt::RightToLeft</enum> </property> - <property name="sizeConstraint" > - <enum>QLayout::SetDefaultConstraint</enum> - </property> - <property name="rightMargin" > - <number>0</number> - </property> - <item> - <widget class="QSlider" name="verticalSlider_2" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Expanding" hsizetype="Fixed" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize" > - <size> - <width>0</width> - <height>50</height> - </size> - </property> - <property name="layoutDirection" > - <enum>Qt::RightToLeft</enum> - </property> - <property name="autoFillBackground" > - <bool>false</bool> - </property> - <property name="orientation" > - <enum>Qt::Vertical</enum> - </property> - <property name="invertedAppearance" > - <bool>false</bool> - </property> - <property name="invertedControls" > - <bool>false</bool> - </property> - <property name="tickPosition" > - <enum>QSlider::NoTicks</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="toolButton" > - <property name="text" > - <string>...</string> - </property> - <property name="icon" > - <iconset> - <normaloff>:/Images/mic_75.svg</normaloff>:/Images/mic_75.svg</iconset> - </property> - </widget> - </item> - </layout> + <layout class="QVBoxLayout" name="verticalLayout_4" > + <property name="spacing" > + <number>0</number> + </property> + <property name="margin" > + <number>0</number> + </property> + <item> + <widget class="QSlider" name="slider_recVol" > + <property name="sizePolicy" > + <sizepolicy vsizetype="Expanding" hsizetype="Fixed" > + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>0</width> + <height>50</height> + </size> + </property> + <property name="layoutDirection" > + <enum>Qt::RightToLeft</enum> + </property> + <property name="autoFillBackground" > + <bool>false</bool> + </property> + <property name="maximum" > + <number>100</number> + </property> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="invertedAppearance" > + <bool>false</bool> + </property> + <property name="invertedControls" > + <bool>false</bool> + </property> + <property name="tickPosition" > + <enum>QSlider::NoTicks</enum> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="toolButton_recVol" > + <property name="text" > + <string>...</string> + </property> + <property name="icon" > + <iconset> + <normaloff>:/Images/mic_75.svg</normaloff>:/Images/mic_75.svg</iconset> + </property> + <property name="checkable" > + <bool>true</bool> + </property> + </widget> + </item> + </layout> + <zorder>toolButton_recVol</zorder> + <zorder>slider_recVol</zorder> + </widget> </item> <item> - <widget class="QWidget" native="1" name="widget" > + <widget class="QWidget" native="1" name="widget_dialpad" > <layout class="QGridLayout" name="gridLayout" > - <item row="0" column="0" > + <item row="0" column="1" > <widget class="QPushButton" name="pushButton_1" > <property name="sizePolicy" > <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > @@ -99,7 +109,7 @@ </property> </widget> </item> - <item row="0" column="1" > + <item row="0" column="2" > <widget class="QPushButton" name="pushButton_2" > <property name="sizePolicy" > <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > @@ -115,7 +125,7 @@ </property> </widget> </item> - <item row="0" column="2" > + <item row="0" column="3" > <widget class="QPushButton" name="pushButton_3" > <property name="sizePolicy" > <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > @@ -128,7 +138,7 @@ </property> </widget> </item> - <item row="1" column="0" > + <item row="1" column="1" > <widget class="QPushButton" name="pushButton_4" > <property name="sizePolicy" > <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > @@ -141,7 +151,7 @@ </property> </widget> </item> - <item row="1" column="1" > + <item row="1" column="2" > <widget class="QPushButton" name="pushButton_5" > <property name="sizePolicy" > <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > @@ -154,7 +164,7 @@ </property> </widget> </item> - <item row="1" column="2" > + <item row="1" column="3" > <widget class="QPushButton" name="pushButton_6" > <property name="sizePolicy" > <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > @@ -167,7 +177,7 @@ </property> </widget> </item> - <item row="2" column="0" > + <item row="2" column="1" > <widget class="QPushButton" name="pushButton_7" > <property name="sizePolicy" > <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > @@ -180,7 +190,7 @@ </property> </widget> </item> - <item row="2" column="1" > + <item row="2" column="2" > <widget class="QPushButton" name="pushButton_8" > <property name="sizePolicy" > <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > @@ -193,7 +203,7 @@ </property> </widget> </item> - <item row="2" column="2" > + <item row="2" column="3" > <widget class="QPushButton" name="pushButton_9" > <property name="sizePolicy" > <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > @@ -206,7 +216,7 @@ </property> </widget> </item> - <item row="3" column="0" > + <item row="3" column="1" > <widget class="QPushButton" name="pushButton_etoile" > <property name="sizePolicy" > <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > @@ -219,7 +229,7 @@ </property> </widget> </item> - <item row="3" column="1" > + <item row="3" column="2" > <widget class="QPushButton" name="pushButton_0" > <property name="sizePolicy" > <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > @@ -232,7 +242,7 @@ </property> </widget> </item> - <item row="3" column="2" > + <item row="3" column="3" > <widget class="QPushButton" name="pushButton_diese" > <property name="sizePolicy" > <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > @@ -249,56 +259,64 @@ </widget> </item> <item> - <layout class="QVBoxLayout" name="verticalLayout_3" > - <property name="spacing" > - <number>4</number> - </property> - <property name="sizeConstraint" > - <enum>QLayout::SetDefaultConstraint</enum> - </property> - <property name="rightMargin" > - <number>0</number> - </property> - <item> - <widget class="QSlider" name="verticalSlider_3" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Expanding" hsizetype="Fixed" > - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize" > - <size> - <width>0</width> - <height>50</height> - </size> - </property> - <property name="layoutDirection" > - <enum>Qt::LeftToRight</enum> - </property> - <property name="autoFillBackground" > - <bool>false</bool> - </property> - <property name="orientation" > - <enum>Qt::Vertical</enum> - </property> - <property name="tickPosition" > - <enum>QSlider::NoTicks</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="toolButton_2" > - <property name="text" > - <string>...</string> - </property> - <property name="icon" > - <iconset> - <normaloff>:/Images/speaker_75.svg</normaloff>:/Images/speaker_75.svg</iconset> - </property> - </widget> - </item> - </layout> + <widget class="QWidget" native="1" name="widget_sndVol" > + <layout class="QVBoxLayout" name="verticalLayout_2" > + <property name="spacing" > + <number>0</number> + </property> + <property name="margin" > + <number>0</number> + </property> + <item> + <widget class="QSlider" name="slider_sndVol" > + <property name="sizePolicy" > + <sizepolicy vsizetype="Expanding" hsizetype="Fixed" > + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>0</width> + <height>50</height> + </size> + </property> + <property name="layoutDirection" > + <enum>Qt::LeftToRight</enum> + </property> + <property name="autoFillBackground" > + <bool>false</bool> + </property> + <property name="maximum" > + <number>100</number> + </property> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="tickPosition" > + <enum>QSlider::NoTicks</enum> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="toolButton_sndVol" > + <property name="text" > + <string>...</string> + </property> + <property name="icon" > + <iconset> + <normaloff>:/Images/speaker_75.svg</normaloff>:/Images/speaker_75.svg</iconset> + </property> + <property name="checkable" > + <bool>true</bool> + </property> + <property name="checked" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> </item> </layout> </item> diff --git a/sflphone_kde/sflphone_const.h b/sflphone_kde/sflphone_const.h index 93f56bbc128777c890c6234a1c24321410cf02ac..6712987d46da39236b2864a0c5eb9f6d085ba394 100644 --- a/sflphone_kde/sflphone_const.h +++ b/sflphone_kde/sflphone_const.h @@ -57,6 +57,19 @@ #define ICON_REFUSE ":/images/icons/refuse.svg" #define ICON_EXEC_TRANSF ":/images/icons/call.svg" +#define ICON_REC_VOL_0 ":/images/icons/mic.svg" +#define ICON_REC_VOL_1 ":/images/icons/mic_25.svg" +#define ICON_REC_VOL_2 ":/images/icons/mic_50.svg" +#define ICON_REC_VOL_3 ":/images/icons/mic_75.svg" + +#define ICON_SND_VOL_0 ":/images/icons/speaker.svg" +#define ICON_SND_VOL_1 ":/images/icons/speaker_25.svg" +#define ICON_SND_VOL_2 ":/images/icons/speaker_50.svg" +#define ICON_SND_VOL_3 ":/images/icons/speaker_75.svg" + +#define RECORD_DEVICE "mic" +#define SOUND_DEVICE "speaker" + #define ACCOUNT_TYPE "Account.type" #define ACCOUNT_ALIAS "Account.alias" #define ACCOUNT_ENABLED "Account.enable" diff --git a/sflphone_kde/sflphone_kde.kdevelop.pcs b/sflphone_kde/sflphone_kde.kdevelop.pcs index c5020e28ff72d6064ad325af97884b8f7e129b73..138d43272375023ed724ff6185edf28f20cf4bae 100644 Binary files a/sflphone_kde/sflphone_kde.kdevelop.pcs and b/sflphone_kde/sflphone_kde.kdevelop.pcs differ diff --git a/sflphone_kde/sflphone_kde.kdevses b/sflphone_kde/sflphone_kde.kdevses index d7f8147c1accdf4876f19cbede90b1da6f5d0c0a..4e3fa3cbed4e3bd42862f85cb218fe3d2a328dcd 100644 --- a/sflphone_kde/sflphone_kde.kdevses +++ b/sflphone_kde/sflphone_kde.kdevses @@ -1,37 +1,31 @@ <?xml version = '1.0' encoding = 'UTF-8'?> <!DOCTYPE KDevPrjSession> <KDevPrjSession> - <DocsAndViews NumberOfDocuments="10" > + <DocsAndViews NumberOfDocuments="8" > <Doc0 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/SFLPhone.cpp" > - <View0 Encoding="" Type="Source" /> + <View0 Encoding="" line="526" Type="Source" /> </Doc0> - <Doc1 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/SFLPhone.h" > - <View0 Encoding="" Type="Source" /> + <Doc1 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/callmanager_interface_singleton.cpp" > + <View0 Encoding="" line="0" Type="Source" /> </Doc1> - <Doc2 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/Automate.cpp" > - <View0 Encoding="" Type="Source" /> + <Doc2 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/callmanager_interface_p.h" > + <View0 Encoding="" line="135" Type="Source" /> </Doc2> - <Doc3 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/Automate.h" > - <View0 Encoding="" Type="Source" /> + <Doc3 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/callmanager_interface.cpp" > + <View0 Encoding="" line="17" Type="Source" /> </Doc3> - <Doc4 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/CallList.h" > - <View0 Encoding="" Type="Source" /> + <Doc4 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/main.cpp" > + <View0 Encoding="" line="19" Type="Source" /> </Doc4> - <Doc5 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/CallList.cpp" > - <View0 Encoding="" Type="Source" /> + <Doc5 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/SFLPhone.h" > + <View0 Encoding="" line="74" Type="Source" /> </Doc5> - <Doc6 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/Call.h" > - <View0 Encoding="" Type="Source" /> + <Doc6 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/callmanager-introspec.xml" > + <View0 Encoding="" line="78" Type="Source" /> </Doc6> - <Doc7 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/Call.cpp" > - <View0 Encoding="" Type="Source" /> + <Doc7 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/build/moc_SFLPhone.cpp" > + <View0 Encoding="" line="191" Type="Source" /> </Doc7> - <Doc8 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/sflphone_const.h" > - <View0 Encoding="" Type="Source" /> - </Doc8> - <Doc9 NumberOfViews="1" URL="file:///home/jquentin/sflphone/sflphone_kde/CMakeLists.txt" > - <View0 Encoding="" line="22" Type="Source" /> - </Doc9> </DocsAndViews> <pluginList> <kdevdebugger>