diff --git a/settingswidget.cpp b/settingswidget.cpp index 375d408fdf549c104bf90b2ba73c6cdde9688228..708ba10f5142b58be000532bf6bf9572616158b1 100644 --- a/settingswidget.cpp +++ b/settingswidget.cpp @@ -772,7 +772,13 @@ void SettingsWidget::setConnections() // audio / visual settings - connect(ui->recordPathButton, &QPushButton::clicked, this, &SettingsWidget::openRecordFolderSlot); + connect(ui->alwaysRecordingCheckBox, &QAbstractButton::clicked, this, &SettingsWidget::slotAlwaysRecordingClicked); + + connect(ui->recordPreviewCheckBox, &QAbstractButton::clicked, this, &SettingsWidget::slotRecordPreviewClicked); + + connect(ui->recordPathButton, &QAbstractButton::clicked, this, &SettingsWidget::openRecordFolderSlot); + + connect(ui->recordQualitySlider, &QAbstractSlider::valueChanged, this, &SettingsWidget::slotRecordQualityChanged); connect(ui->hardwareAccelCheckBox, &QAbstractButton::clicked, this, &SettingsWidget::slotSetHardwareAccel); } @@ -795,7 +801,17 @@ void SettingsWidget::populateGeneralSettings() auto notifs = settings.value(SettingsKey::enableNotifications).toBool(); ui->notificationCheckBox->setChecked(notifs); - //recordings + // recording + auto alwaysRecord = LRCInstance::avModel().getAlwaysRecord(); + ui->alwaysRecordingCheckBox->setChecked(alwaysRecord); + + auto recordPreview = LRCInstance::avModel().getRecordPreview(); + ui->recordPreviewCheckBox->setChecked(recordPreview); + + auto recordQuality = LRCInstance::avModel().getRecordQuality(); + ui->recordQualityValueLabel->setText(QString::number(recordQuality / 1000) + " MB/s"); + ui->recordQualitySlider->setValue(recordQuality); + if (LRCInstance::avModel().getRecordPath().empty()) { QString recordPath = QDir::toNativeSeparators( QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation)); @@ -805,6 +821,7 @@ void SettingsWidget::populateGeneralSettings() Utils::setElidedText(ui->recordPathButton, QString::fromStdString(LRCInstance::avModel().getRecordPath())); + // updates #ifdef Q_OS_WIN ui->autoUpdateCheckBox->setChecked(settings.value(SettingsKey::autoUpdate).toBool()); #endif @@ -867,7 +884,23 @@ void SettingsWidget::openRecordFolderSlot() } } -// ************************* Audio/Visual Settings ************************* +void SettingsWidget::slotAlwaysRecordingClicked(bool state) +{ + LRCInstance::avModel().setAlwaysRecord(state); +} + +void SettingsWidget::slotRecordPreviewClicked(bool state) +{ + LRCInstance::avModel().setRecordPreview(state); +} + +void SettingsWidget::slotRecordQualityChanged(int value) +{ + ui->recordQualityValueLabel->setText(QString::number(value / 1000) + " MB/s"); + LRCInstance::avModel().setRecordQuality(value); +} + +// ************************* Audio/Visual Settings ************recordQuality************* void SettingsWidget::populateAVSettings() { diff --git a/settingswidget.h b/settingswidget.h index 7c7f9ee11d1aeeae0d025539556d1b1dd4a7dfb1..36d080c902a5363f21e76389b2879856a3c095fb 100644 --- a/settingswidget.h +++ b/settingswidget.h @@ -115,7 +115,7 @@ private slots: void verifyRegisteredNameSlot(); void beforeNameLookup(); void receiveRegNameSlot(const std::string& accountID, lrc::api::account::LookupStatus status, - const std::string& address, const std::string& name); + const std::string& address, const std::string& name); void slotRegisterName(); void setAccEnableSlot(int state); void delAccountSlot(); @@ -131,6 +131,9 @@ private slots: void slotSetClosedOrMin(bool state); void openDownloadFolderSlot(); void openRecordFolderSlot(); + void slotAlwaysRecordingClicked(bool state); + void slotRecordPreviewClicked(bool state); + void slotRecordQualityChanged(int value); void slotSetUpdateAutomatic(bool state); void outputDevIndexChangedSlot(int index); void inputdevIndexChangedSlot(int index); diff --git a/settingswidget.ui b/settingswidget.ui index 0dc9b7466f768f882ecaa366c15899a4c96ea5e8..ffb67f2040426710294a4d0e19790c4fa07be7f7 100644 --- a/settingswidget.ui +++ b/settingswidget.ui @@ -753,7 +753,7 @@ <item> <widget class="QLabel" name="label_2"> <property name="enabled"> - <bool>false</bool> + <bool>true</bool> </property> <property name="font"> <font> @@ -789,6 +789,212 @@ <property name="bottomMargin"> <number>0</number> </property> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_18"> + <property name="topMargin"> + <number>0</number> + </property> + <item> + <widget class="ToggleSwitch" name="alwaysRecordingCheckBox" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>30</height> + </size> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + </font> + </property> + <property name="acceptDrops"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Toggle automatic updates</string> + </property> + <property name="text" stdset="0"> + <string>Always record calls</string> + </property> + <property name="checked" stdset="0"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_19"> + <property name="topMargin"> + <number>0</number> + </property> + <item> + <widget class="ToggleSwitch" name="recordPreviewCheckBox" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>30</height> + </size> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + </font> + </property> + <property name="acceptDrops"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Toggle automatic updates</string> + </property> + <property name="text" stdset="0"> + <string>Record preview video for a call</string> + </property> + <property name="checked" stdset="0"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_20"> + <property name="topMargin"> + <number>0</number> + </property> + <item> + <widget class="QLabel" name="label_8"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + </font> + </property> + <property name="text"> + <string>Quality</string> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_26"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::MinimumExpanding</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <layout class="QVBoxLayout" name="verticalLayout_33"> + <property name="spacing"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <item> + <spacer name="verticalSpacer_38"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>1</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="recordQualityValueLabel"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + </font> + </property> + <property name="text"> + <string>VALUE</string> + </property> + </widget> + </item> + <item> + <spacer name="verticalSpacer_37"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>8</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <widget class="QSlider" name="recordQualitySlider"> + <property name="minimumSize"> + <size> + <width>320</width> + <height>30</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>180</width> + <height>30</height> + </size> + </property> + <property name="maximum"> + <number>50000</number> + </property> + <property name="singleStep"> + <number>10</number> + </property> + <property name="pageStep"> + <number>500</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="invertedAppearance"> + <bool>false</bool> + </property> + <property name="tickPosition"> + <enum>QSlider::TicksBothSides</enum> + </property> + <property name="tickInterval"> + <number>5000</number> + </property> + </widget> + </item> + </layout> + </item> <item> <layout class="QHBoxLayout" name="horizontalLayout_29"> <property name="leftMargin"> @@ -800,7 +1006,7 @@ <item> <widget class="QLabel" name="label_5"> <property name="enabled"> - <bool>false</bool> + <bool>true</bool> </property> <property name="font"> <font> @@ -831,7 +1037,7 @@ <item> <widget class="QPushButton" name="recordPathButton"> <property name="enabled"> - <bool>false</bool> + <bool>true</bool> </property> <property name="minimumSize"> <size> diff --git a/videooverlay.cpp b/videooverlay.cpp index 820065c2edf742d6a0cfa3283b6c3848a7560a3b..30cb5dc2bf7dec861ac5c552cd92947de2465eda 100644 --- a/videooverlay.cpp +++ b/videooverlay.cpp @@ -43,8 +43,6 @@ VideoOverlay::VideoOverlay(QWidget* parent) : ui->onHoldLabel->setVisible(false); - ui->recButton->setVisible(false); - ui->transferCallButton->setVisible(false); ui->transferCallButton->setCheckable(true);