diff --git a/configurationwidget.cpp b/configurationwidget.cpp index 9457200e03ee5ad14884fc24e574dc79ccabf7d4..8006156c2e7de63a27a2b108c6c00f3c8daa8191 100644 --- a/configurationwidget.cpp +++ b/configurationwidget.cpp @@ -31,6 +31,10 @@ #include "video/rate.h" #include "video/previewmanager.h" +#include "audio/settings.h" +#include "audio/outputdevicemodel.h" +#include "audio/inputdevicemodel.h" + #include "media/recordingmodel.h" #include "accountserializationadapter.h" @@ -152,6 +156,17 @@ ConfigurationWidget::ConfigurationWidget(QWidget *parent) : ui->generalTabButton->setChecked(true); + auto inputModel = Audio::Settings::instance().inputDeviceModel(); + auto outputModel = Audio::Settings::instance().outputDeviceModel(); + + ui->outputComboBox->setModel(outputModel); + ui->inputComboBox->setModel(inputModel); + ui->outputComboBox->setCurrentIndex(outputModel->selectionModel()->currentIndex().row()); + ui->inputComboBox->setCurrentIndex(inputModel->selectionModel()->currentIndex().row()); + connect(ui->outputComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(outputIndexChanged(int))); + connect(ui->inputComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(inputIndexChanged(int))); + + #ifndef ENABLE_AUTOUPDATE ui->checkUpdateButton->hide(); ui->intervalUpdateCheckSpinBox->hide(); @@ -331,3 +346,17 @@ ConfigurationWidget::on_recordPath_clicked() ui->recordPath->setText(dir); } } + +void +ConfigurationWidget::outputIndexChanged(int index) +{ + auto outputModel = Audio::Settings::instance().outputDeviceModel(); + outputModel->selectionModel()->setCurrentIndex(outputModel->index(index), QItemSelectionModel::ClearAndSelect); +} + +void +ConfigurationWidget::inputIndexChanged(int index) +{ + auto inputModel = Audio::Settings::instance().inputDeviceModel(); + inputModel->selectionModel()->setCurrentIndex(inputModel->index(index), QItemSelectionModel::ClearAndSelect); +} diff --git a/configurationwidget.h b/configurationwidget.h index 826d133e0317377a2ebcb99660cf130ae79c9827..f68009823019d4bb0b09f2863fabca53d8515c99 100644 --- a/configurationwidget.h +++ b/configurationwidget.h @@ -63,7 +63,8 @@ private slots: private slots: void accountSelected(QItemSelection itemSel); void deviceIndexChanged(int index); - + void outputIndexChanged(int index); + void inputIndexChanged(int index); private: Ui::ConfigurationWidget *ui; AccountModel* accountModel_; diff --git a/configurationwidget.ui b/configurationwidget.ui index df017af93b731c339b2bcf96df578d590e8a0cec..7c460da370ddb4fca084fa247c8528675dc1f2ad 100644 --- a/configurationwidget.ui +++ b/configurationwidget.ui @@ -200,7 +200,7 @@ <bool>true</bool> </property> <property name="currentIndex"> - <number>0</number> + <number>1</number> </property> <widget class="QWidget" name="generalPage"> <layout class="QHBoxLayout" name="verticalLayout_2"> @@ -718,7 +718,7 @@ </layout> </widget> <widget class="QWidget" name="videoPage"> - <layout class="QGridLayout" name="gridLayout" rowstretch="0,1" columnstretch="0,0"> + <layout class="QGridLayout" name="gridLayout" rowstretch="0,1" columnstretch="0,0,0"> <property name="leftMargin"> <number>10</number> </property> @@ -734,6 +734,59 @@ <property name="spacing"> <number>10</number> </property> + <item row="0" column="2"> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::MinimumExpanding</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>10</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="0" colspan="3"> + <layout class="QVBoxLayout" name="verticalLayout_4"> + <item> + <widget class="VideoWidget" name="videoView" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + </widget> + </item> + <item alignment="Qt::AlignHCenter|Qt::AlignVCenter"> + <widget class="QLabel" name="previewUnavailable"> + <property name="font"> + <font> + <pointsize>13</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="styleSheet"> + <string notr="true">color: rgb(77, 77, 77);</string> + </property> + <property name="text"> + <string>Preview unavailable during call</string> + </property> + </widget> + </item> + </layout> + </item> <item row="0" column="0"> <layout class="QVBoxLayout" name="verticalLayout_3"> <property name="spacing"> @@ -814,6 +867,9 @@ <property name="sizeConstraint"> <enum>QLayout::SetDefaultConstraint</enum> </property> + <property name="formAlignment"> + <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set> + </property> <property name="horizontalSpacing"> <number>15</number> </property> @@ -886,59 +942,62 @@ </item> </layout> </item> - <item row="1" column="0" colspan="2"> - <layout class="QVBoxLayout" name="verticalLayout_4"> - <item> - <widget class="VideoWidget" name="videoView" native="true"> - <property name="sizePolicy"> - <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> + <item row="0" column="1"> + <layout class="QFormLayout" name="formLayout_2"> + <property name="formAlignment"> + <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set> + </property> + <property name="horizontalSpacing"> + <number>15</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <item row="1" column="0"> + <widget class="QLabel" name="label_7"> + <property name="font"> + <font> + <pointsize>11</pointsize> + </font> </property> - <property name="minimumSize"> - <size> - <width>0</width> - <height>0</height> - </size> + <property name="text"> + <string>Output Device</string> </property> </widget> </item> - <item alignment="Qt::AlignHCenter|Qt::AlignVCenter"> - <widget class="QLabel" name="previewUnavailable"> + <item row="1" column="1"> + <widget class="QComboBox" name="outputComboBox"/> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_8"> <property name="font"> <font> - <pointsize>13</pointsize> - <weight>75</weight> - <bold>true</bold> + <pointsize>11</pointsize> </font> </property> - <property name="styleSheet"> - <string notr="true">color: rgb(77, 77, 77);</string> - </property> <property name="text"> - <string>Preview unavailable during call</string> + <string>Input Device</string> </property> </widget> </item> + <item row="2" column="1"> + <widget class="QComboBox" name="inputComboBox"/> + </item> + <item row="0" column="0"> + <spacer name="verticalSpacer_6"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> </layout> </item> - <item row="0" column="1"> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::MinimumExpanding</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>10</width> - <height>20</height> - </size> - </property> - </spacer> - </item> </layout> </widget> <widget class="QWidget" name="accountPage">