summaryrefslogtreecommitdiffstats
path: root/src/library/recording
diff options
context:
space:
mode:
Diffstat (limited to 'src/library/recording')
-rw-r--r--src/library/recording/dlgrecording.cpp84
-rw-r--r--src/library/recording/dlgrecording.h9
-rw-r--r--src/library/recording/dlgrecording.ui15
3 files changed, 64 insertions, 44 deletions
diff --git a/src/library/recording/dlgrecording.cpp b/src/library/recording/dlgrecording.cpp
index 014674d93f..86acf6d293 100644
--- a/src/library/recording/dlgrecording.cpp
+++ b/src/library/recording/dlgrecording.cpp
@@ -5,15 +5,25 @@
#include "library/trackcollectionmanager.h"
#include "widget/wwidget.h"
#include "widget/wskincolor.h"
+#include "widget/wlibrary.h"
#include "widget/wtracktableview.h"
#include "util/assert.h"
-DlgRecording::DlgRecording(QWidget* parent, UserSettingsPointer pConfig,
- Library* pLibrary,
- RecordingManager* pRecordingManager, KeyboardEventFilter* pKeyboard)
+DlgRecording::DlgRecording(
+ WLibrary* parent,
+ UserSettingsPointer pConfig,
+ Library* pLibrary,
+ RecordingManager* pRecordingManager,
+ KeyboardEventFilter* pKeyboard)
: QWidget(parent),
m_pConfig(pConfig),
- m_pTrackTableView(new WTrackTableView(this, pConfig, pLibrary->trackCollections(), true)),
+ m_pTrackTableView(
+ new WTrackTableView(
+ this,
+ pConfig,
+ pLibrary->trackCollections(),
+ parent->getTrackTableBackgroundColorOpacity(),
+ true)),
m_browseModel(this, pLibrary->trackCollections(), pRecordingManager),
m_proxyModel(&m_browseModel),
m_bytesRecordedStr("--"),
@@ -47,7 +57,8 @@ DlgRecording::DlgRecording(QWidget* parent, UserSettingsPointer pConfig,
connect(m_pRecordingManager,
&RecordingManager::isRecording,
this,
- &DlgRecording::slotRecordingEnabled);
+ &DlgRecording::slotRecordingStateChanged);
+
connect(m_pRecordingManager,
&RecordingManager::bytesRecorded,
this,
@@ -74,11 +85,17 @@ DlgRecording::DlgRecording(QWidget* parent, UserSettingsPointer pConfig,
m_pTrackTableView->loadTrackModel(&m_proxyModel);
connect(pushButtonRecording,
- &QPushButton::toggled,
+ &QPushButton::clicked,
this,
- &DlgRecording::toggleRecording);
- label->setText("");
- label->setEnabled(false);
+ &DlgRecording::slotRecButtonClicked);
+
+ labelRecPrefix->hide();
+ labelRecFilename->hide();
+ labelRecStatistics->hide();
+ labelRecPrefix->setText(tr("Recording to file:"));
+
+ // Sync GUI with recording state, also refreshes labels
+ slotRecordingStateChanged(m_pRecordingManager->isRecordingActive());
}
DlgRecording::~DlgRecording() {
@@ -129,28 +146,24 @@ void DlgRecording::moveSelection(int delta) {
m_pTrackTableView->moveSelection(delta);
}
-void DlgRecording::toggleRecording(bool toggle) {
+void DlgRecording::slotRecButtonClicked(bool toggle) {
Q_UNUSED(toggle);
- if (!m_pRecordingManager->isRecordingActive()) //If recording is enabled
- {
- //pushButtonRecording->setText(tr("Stop Recording"));
- m_pRecordingManager->startRecording();
- }
- else if(m_pRecordingManager->isRecordingActive()) //If we disable recording
- {
- //pushButtonRecording->setText(tr("Start Recording"));
- m_pRecordingManager->stopRecording();
- }
+ m_pRecordingManager->slotToggleRecording(1);
}
-void DlgRecording::slotRecordingEnabled(bool isRecording) {
+void DlgRecording::slotRecordingStateChanged(bool isRecording) {
if (isRecording) {
- pushButtonRecording->setText((tr("Stop Recording")));
- label->setEnabled(true);
+ pushButtonRecording->setChecked(true);
+ pushButtonRecording->setText(tr("Stop Recording"));
+ labelRecPrefix->show();
+ labelRecFilename->show();
+ labelRecStatistics->show();
} else {
- pushButtonRecording->setText((tr("Start Recording")));
- label->setText("");
- label->setEnabled(false);
+ pushButtonRecording->setChecked(false);
+ pushButtonRecording->setText(tr("Start Recording"));
+ labelRecPrefix->hide();
+ labelRecFilename->hide();
+ labelRecStatistics->hide();
}
//This will update the recorded track table view
m_browseModel.setPath(m_recordingDir);
@@ -160,20 +173,21 @@ void DlgRecording::slotRecordingEnabled(bool isRecording) {
void DlgRecording::slotBytesRecorded(int bytes) {
double megabytes = bytes / 1048576.0;
m_bytesRecordedStr = QString::number(megabytes,'f',2);
- refreshLabel();
+ refreshLabels();
}
// gets recorded duration and update label
void DlgRecording::slotDurationRecorded(QString durationRecorded) {
m_durationRecordedStr = durationRecorded;
- refreshLabel();
+ refreshLabels();
}
// update label besides start/stop button
-void DlgRecording::refreshLabel() {
- QString text = tr("Recording to file: %1 (%2 MiB written in %3)")
- .arg(m_pRecordingManager->getRecordingFile())
- .arg(m_bytesRecordedStr)
- .arg(m_durationRecordedStr);
- label->setText(text);
- }
+void DlgRecording::refreshLabels() {
+ QString recFile = m_pRecordingManager->getRecordingFile();
+ QString recData = QString(QStringLiteral("(") + tr("%1 MiB written in %2") + QStringLiteral(")"))
+ .arg(m_bytesRecordedStr)
+ .arg(m_durationRecordedStr);
+ labelRecFilename->setText(recFile);
+ labelRecStatistics->setText(recData);
+}
diff --git a/src/library/recording/dlgrecording.h b/src/library/recording/dlgrecording.h
index fc9045e8e4..1e00224064 100644
--- a/src/library/recording/dlgrecording.h
+++ b/src/library/recording/dlgrecording.h
@@ -14,12 +14,13 @@
class PlaylistTableModel;
class QSqlTableModel;
+class WLibrary;
class WTrackTableView;
class DlgRecording : public QWidget, public Ui::DlgRecording, public virtual LibraryView {
Q_OBJECT
public:
- DlgRecording(QWidget *parent, UserSettingsPointer pConfig,
+ DlgRecording(WLibrary *parent, UserSettingsPointer pConfig,
Library* pLibrary,
RecordingManager* pRecManager, KeyboardEventFilter* pKeyboard);
~DlgRecording() override;
@@ -36,8 +37,7 @@ class DlgRecording : public QWidget, public Ui::DlgRecording, public virtual Lib
inline const QString currentSearch() { return m_proxyModel.currentSearch(); }
public slots:
- void toggleRecording(bool toggle);
- void slotRecordingEnabled(bool);
+ void slotRecordingStateChanged(bool);
void slotBytesRecorded(int);
void refreshBrowseModel();
void slotRestoreSearch();
@@ -55,7 +55,8 @@ class DlgRecording : public QWidget, public Ui::DlgRecording, public virtual Lib
ProxyTrackModel m_proxyModel;
QString m_recordingDir;
- void refreshLabel();
+ void refreshLabels();
+ void slotRecButtonClicked(bool checked);
QString m_bytesRecordedStr;
QString m_durationRecordedStr;
diff --git a/src/library/recording/dlgrecording.ui b/src/library/recording/dlgrecording.ui
index c0b0fd90e5..98b23c4393 100644
--- a/src/library/recording/dlgrecording.ui
+++ b/src/library/recording/dlgrecording.ui
@@ -48,6 +48,9 @@
</property>
<item>
<widget class="QPushButton" name="pushButtonRecording">
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
<property name="text">
<string>Start Recording</string>
</property>
@@ -57,11 +60,13 @@
</widget>
</item>
<item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Status:</string>
- </property>
- </widget>
+ <widget class="QLabel" name="labelRecPrefix"/>
+ </item>
+ <item>
+ <widget class="QLabel" name="labelRecFilename"/>
+ </item>
+ <item>
+ <widget class="QLabel" name="labelRecStatistics"/>
</item>
<item>
<spacer name="horizontalSpacer">