diff --git a/configurationwidget.cpp b/configurationwidget.cpp index 3bdd3c9029bb4650b369e69484412b66568144a0..0308cf58950d95dd94f7beab1a5b11804633e84d 100644 --- a/configurationwidget.cpp +++ b/configurationwidget.cpp @@ -20,6 +20,9 @@ #include "ui_configurationwidget.h" #include <QMessageBox> +#include <QDir> +#include <QStandardPaths> +#include <QFileDialog> #include "video/devicemodel.h" #include "video/channel.h" @@ -27,6 +30,8 @@ #include "video/rate.h" #include "video/previewmanager.h" +#include "media/recordingmodel.h" + #include "accountserializationadapter.h" #include "accountstatedelegate.h" #include "settingskey.h" @@ -87,6 +92,19 @@ ConfigurationWidget::ConfigurationWidget(QWidget *parent) : }); ui->videoView->setIsFullPreview(true); + + auto recordPath = Media::RecordingModel::instance().recordPath(); + if (recordPath.isEmpty()) { + recordPath = QDir::toNativeSeparators(QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation)); + Media::RecordingModel::instance().setRecordPath(recordPath); + } + ui->recordPath->setText(Media::RecordingModel::instance().recordPath()); + + ui->alwaysRecordCheckBox->setChecked(Media::RecordingModel::instance().isAlwaysRecording()); + connect(ui->alwaysRecordCheckBox, &QCheckBox::clicked, [](bool checked){ + Media::RecordingModel::instance().setAlwaysRecording(checked); + }); + #ifndef ENABLE_AUTOUPDATE ui->checkUpdateButton->hide(); ui->intervalUpdateCheckSpinBox->hide(); @@ -272,3 +290,16 @@ ConfigurationWidget::on_tabWidget_currentChanged(int index) Q_UNUSED(index) showPreview(); } + +void +ConfigurationWidget::on_recordPath_clicked() +{ + QString dir = QFileDialog::getExistingDirectory(this, tr("Choose Directory"), + Media::RecordingModel::instance().recordPath(), + QFileDialog::ShowDirsOnly + | QFileDialog::DontResolveSymlinks); + if (not dir.isEmpty()) { + Media::RecordingModel::instance().setRecordPath(dir); + ui->recordPath->setText(dir); + } +} diff --git a/configurationwidget.h b/configurationwidget.h index a7a0d4850080ff18758915a24da703007c3fd150..ca56d28f2b55406084a02b287063183c0dc756b0 100644 --- a/configurationwidget.h +++ b/configurationwidget.h @@ -60,6 +60,7 @@ private slots: void on_autoUpdateCheckBox_toggled(bool checked); void on_intervalUpdateCheckSpinBox_valueChanged(int arg1); void on_tabWidget_currentChanged(int index); + void on_recordPath_clicked(); private slots: void accountSelected(QItemSelection itemSel); diff --git a/configurationwidget.ui b/configurationwidget.ui index 1ccd9173752215f83e9a1daba10a725b8b57239b..926e3242b10dcf6a1a44ed853088fd9a23dadafd 100644 --- a/configurationwidget.ui +++ b/configurationwidget.ui @@ -107,6 +107,73 @@ </item> </layout> </item> + <item> + <widget class="QLabel" name="label_3"> + <property name="font"> + <font> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="text"> + <string>Record Settings</string> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_4"> + <property name="topMargin"> + <number>0</number> + </property> + <item> + <widget class="QLabel" name="label_6"> + <property name="text"> + <string>Save in :</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="recordPath"> + <property name="font"> + <font> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="layoutDirection"> + <enum>Qt::RightToLeft</enum> + </property> + <property name="text"> + <string/> + </property> + <property name="icon"> + <iconset resource="ressources.qrc"> + <normaloff>:/images/folder-download.png</normaloff>:/images/folder-download.png</iconset> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_3"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <widget class="QCheckBox" name="alwaysRecordCheckBox"> + <property name="text"> + <string>Always Record</string> + </property> + </widget> + </item> <item> <widget class="QLabel" name="label_5"> <property name="font">