From f879204aaf32551fe6ae7b8624d9110dba2f3931 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Quentin?= <jquentin@jquentin-laptop-kub2.(none)> Date: Mon, 16 Mar 2009 11:26:06 -0400 Subject: [PATCH] Commiting before putting Automate class in Call class. --- sflphone_kde/Call.cpp | 14 ++ sflphone_kde/Call.h | 5 +- sflphone_kde/CallList.cpp | 7 + sflphone_kde/CallList.h | 1 + sflphone_kde/SFLPhone.cpp | 289 ++++++++++++++++++++++--- sflphone_kde/SFLPhone.h | 27 ++- sflphone_kde/main.cpp | 2 + sflphone_kde/resources.qrc | 88 ++++++++ sflphone_kde/sflphone-qt.ui | 254 ++++++++++++---------- sflphone_kde/sflphone_const.h | 13 ++ sflphone_kde/sflphone_kde.kdevelop.pcs | Bin 165570 -> 180763 bytes sflphone_kde/sflphone_kde.kdevses | 38 ++-- 12 files changed, 563 insertions(+), 175 deletions(-) create mode 100644 sflphone_kde/resources.qrc diff --git a/sflphone_kde/Call.cpp b/sflphone_kde/Call.cpp index 4f2ad96ab9..f9edbac647 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 cd03f6f6ea..2a8a25ef62 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 7d39d88af3..d4461fdb4c 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 2817f5c74f..7f43e6dc6d 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 53b0b86b7c..95cab2bbc4 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 3ae81d393f..2502d7bb91 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 1ea20a93f0..da4fa231ff 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 0000000000..5a7a305aab --- /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 944f60098d..90b1481506 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 93f56bbc12..6712987d46 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 GIT binary patch delta 11240 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 M?ga{eSh8aP0H!&}-~a#s delta 4485 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 W>F*aXae$h7@{DrZRhKY5;{^aP*S2Q> diff --git a/sflphone_kde/sflphone_kde.kdevses b/sflphone_kde/sflphone_kde.kdevses index d7f8147c1a..4e3fa3cbed 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> -- GitLab