diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-03-02 17:52:04 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-03-02 17:52:04 +0000 |
| commit | 5e158baa2c05f45d124e3f63ac4a532005d4577d (patch) | |
| tree | 45867040dda06be537e6c29be0e75ba54955f8b2 /src/plugins | |
| parent | 9030c447f1e0f0cc390c4a3eafff20d60867955b (diff) | |
| download | qmmp-5e158baa2c05f45d124e3f63ac4a532005d4577d.tar.gz qmmp-5e158baa2c05f45d124e3f63ac4a532005d4577d.tar.bz2 qmmp-5e158baa2c05f45d124e3f63ac4a532005d4577d.zip | |
refactoring
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9257 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins')
| -rw-r--r-- | src/plugins/Ui/qsui/mainwindow.cpp | 53 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/mainwindow.h | 9 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/qsuiwaveformseekbar.cpp | 48 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/qsuiwaveformseekbar.h | 14 |
4 files changed, 78 insertions, 46 deletions
diff --git a/src/plugins/Ui/qsui/mainwindow.cpp b/src/plugins/Ui/qsui/mainwindow.cpp index c387269ba..63aff4b49 100644 --- a/src/plugins/Ui/qsui/mainwindow.cpp +++ b/src/plugins/Ui/qsui/mainwindow.cpp @@ -83,7 +83,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) //status connect(m_core, SIGNAL(elapsedChanged(qint64)), SLOT(updatePosition(qint64))); connect(m_core, SIGNAL(stateChanged(Qmmp::State)), SLOT(showState(Qmmp::State))); - connect(m_core, SIGNAL(bitrateChanged(int)), SLOT(updateStatus())); + connect(m_core, SIGNAL(bitrateChanged(int)), SLOT(updateBitrate(int))); connect(m_core, SIGNAL(audioParametersChanged(AudioParameters)), SLOT(updateStatus())); connect(m_core, SIGNAL(bufferingProgress(int)), SLOT(showBuffering(int))); connect(m_core, SIGNAL(trackInfoChanged()), SLOT(showMetaData())); @@ -126,13 +126,22 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) connect(m_tabWidget, SIGNAL(customContextMenuRequested(QPoint)), SLOT(showTabMenu(QPoint))); m_tab_menu = new QMenu(m_tabWidget); //status bar - m_timeLabel = new QLabel(this); m_statusLabel = new QLabel(this); + m_bitrateLabel = new QLabel(this); + m_bitrateLabel->setAlignment(Qt::AlignRight); + m_timeLabel = new QLabel(this); + m_timeLabel->setAlignment(Qt::AlignRight); m_ui.statusbar->addPermanentWidget(m_statusLabel, 0); - m_ui.statusbar->addPermanentWidget(m_timeLabel, 1); - m_ui.statusbar->setMinimumWidth(2); - m_statusLabel->setMinimumWidth(2); - m_ui.statusbar->setStyleSheet("QStatusBar::item { border: 0px solid black };"); + QFrame *l = new QFrame(this); + l->setFrameStyle(QFrame::VLine | QFrame::Raised); + m_ui.statusbar->addPermanentWidget(l); + m_ui.statusbar->addPermanentWidget(m_bitrateLabel, 0); + l = new QFrame(this); + l->setFrameStyle(QFrame::VLine | QFrame::Raised); + m_ui.statusbar->addPermanentWidget(l); + m_ui.statusbar->addPermanentWidget(m_timeLabel, 0); + m_ui.statusbar->addPermanentWidget(new QWidget(this), 1); //spacer + m_ui.statusbar->setStyleSheet("QStatusBar::item { border: 0px solid black; };"); //volume m_volumeSlider = new VolumeSlider(this); m_volumeSlider->setFocusPolicy(Qt::NoFocus); @@ -154,7 +163,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) m_ui.analyzerDockWidget->setWidget(m_analyzer); Visual::add(m_analyzer); //waveform seek bar - m_seekBar = new QSUIWaveformSeekBar(this); + m_seekBar = new QSUiWaveformSeekBar(this); m_ui.waveformSeekBarDockWidget->setWidget(m_seekBar); //filesystem browser m_ui.fileSystemDockWidget->setWidget(new FileSystemBrowser(this)); @@ -200,6 +209,21 @@ void MainWindow::addUrl() m_uiHelper->addUrl(this); } +void MainWindow::updateBitrate(int bitrate) +{ + QString text = tr("%1 kbps").arg(bitrate); + if(text.size() > m_bitrateLabel->text().size()) //label width tuning to avoid text jumping + { + QString tmp = text; + tmp.replace(QRegularExpression("\\d"), "4"); + int width = m_bitrateLabel->fontMetrics().horizontalAdvance(tmp); + m_bitrateLabel->setMinimumWidth(2); + m_bitrateLabel->setMargin(0); + m_bitrateLabel->setIndent(0); + } + m_bitrateLabel->setText(text); +} + void MainWindow::updatePosition(qint64 pos) { m_positionSlider->setMaximum(m_core->duration()/1000); @@ -212,6 +236,13 @@ void MainWindow::updatePosition(qint64 pos) text.append("/"); text.append(MetaDataFormatter::formatDuration(m_core->duration())); } + if(text.size() != m_timeLabel->text().size()) //label width tuning to avoid text jumping + { + QString tmp = text; + tmp.replace(QRegularExpression("\\d"), "4"); + int width = m_timeLabel->fontMetrics().horizontalAdvance(tmp); + m_timeLabel->setMinimumWidth(width); + } m_timeLabel->setText(text); } @@ -243,6 +274,7 @@ void MainWindow::showState(Qmmp::State state) break; case Qmmp::Stopped: updateStatus(); + m_bitrateLabel->clear(); m_timeLabel->clear(); m_positionSlider->setValue(0); m_analyzer->clearCover(); @@ -381,18 +413,17 @@ void MainWindow::updateStatus() if(m_core->state() == Qmmp::Playing || m_core->state() == Qmmp::Paused) { AudioParameters ap = m_core->audioParameters(); - m_statusLabel->setText(tr("<b>%1</b>|%2 bit|%3 ch|%4 Hz|tracks: %5|total time: %6|%7 kbps|") + m_statusLabel->setText(tr("<b>%1</b>|%2 bit|%3 ch|%4 Hz|tracks: %5|total time: %6|") .arg(m_core->state() == Qmmp::Playing ? tr("Playing") : tr("Paused")) .arg(ap.validBitsPerSample()) .arg(ap.channels()) .arg(ap.sampleRate()) .arg(tracks) - .arg(MetaDataFormatter::formatDuration(duration, false)) - .arg(m_core->bitrate())); + .arg(MetaDataFormatter::formatDuration(duration, false))); } else if(m_core->state() == Qmmp::Stopped) { - m_statusLabel->setText(tr("<b>%1</b>|tracks: %2|total time: %3|") + m_statusLabel->setText(tr("<b>%1</b>|tracks: %2|total time: %3") .arg(tr("Stopped")) .arg(tracks) .arg(MetaDataFormatter::formatDuration(duration, false))); diff --git a/src/plugins/Ui/qsui/mainwindow.h b/src/plugins/Ui/qsui/mainwindow.h index 90c14c978..cb78de8b2 100644 --- a/src/plugins/Ui/qsui/mainwindow.h +++ b/src/plugins/Ui/qsui/mainwindow.h @@ -43,7 +43,8 @@ class QSUIVisualization; class ListWidget; class QSUiTabWidget; class QSUiQuickSearch; -class QSUIWaveformSeekBar; +class QSUiWaveformSeekBar; +class QSUiStatusBar; /** @@ -62,6 +63,7 @@ private slots: void playFiles(); void record(bool enabled); void addUrl(); + void updateBitrate(int bitrate); void updatePosition(qint64 pos); void seek(); void showState(Qmmp::State); @@ -108,9 +110,8 @@ private: MediaPlayer *m_player; QmmpUiSettings *m_ui_settings; PositionSlider *m_positionSlider; - QLabel *m_timeLabel; + QLabel *m_statusLabel, *m_bitrateLabel, *m_timeLabel; SoundCore *m_core; - QLabel *m_statusLabel; VisualMenu *m_visMenu; UiHelper *m_uiHelper; QMenu *m_pl_menu; @@ -119,7 +120,7 @@ private: QSUiQuickSearch *m_quickSearch; KeyboardManager *m_key_manager; QSUIVisualization *m_analyzer; - QSUIWaveformSeekBar *m_seekBar; + QSUiWaveformSeekBar *m_seekBar; QToolButton *m_addListButton, *m_tabListMenuButton; ListWidget *m_listWidget; MetaDataFormatter m_titleFormatter; diff --git a/src/plugins/Ui/qsui/qsuiwaveformseekbar.cpp b/src/plugins/Ui/qsui/qsuiwaveformseekbar.cpp index 4a8c80211..ec60c6c5d 100644 --- a/src/plugins/Ui/qsui/qsuiwaveformseekbar.cpp +++ b/src/plugins/Ui/qsui/qsuiwaveformseekbar.cpp @@ -37,7 +37,7 @@ #define NUMBER_OF_VALUES (4096) -QSUIWaveformSeekBar::QSUIWaveformSeekBar(QWidget *parent) : QWidget(parent) +QSUiWaveformSeekBar::QSUiWaveformSeekBar(QWidget *parent) : QWidget(parent) { m_core = SoundCore::instance(); connect(m_core, SIGNAL(stateChanged(Qmmp::State)), SLOT(onStateChanged(Qmmp::State))); @@ -46,12 +46,12 @@ QSUIWaveformSeekBar::QSUIWaveformSeekBar(QWidget *parent) : QWidget(parent) readSettings(); } -QSize QSUIWaveformSeekBar::sizeHint() const +QSize QSUiWaveformSeekBar::sizeHint() const { return QSize(200, 100); } -void QSUIWaveformSeekBar::readSettings() +void QSUiWaveformSeekBar::readSettings() { QSettings settings(Qmmp::configFile(), QSettings::IniFormat); settings.beginGroup("Simple"); @@ -70,7 +70,7 @@ void QSUIWaveformSeekBar::readSettings() } -void QSUIWaveformSeekBar::onStateChanged(Qmmp::State state) +void QSUiWaveformSeekBar::onStateChanged(Qmmp::State state) { switch (state) { @@ -78,7 +78,7 @@ void QSUIWaveformSeekBar::onStateChanged(Qmmp::State state) { if(!m_scanner && isVisible()) { - m_scanner = new QSUIWaveformScanner(this); + m_scanner = new QSUiWaveformScanner(this); connect(m_scanner, SIGNAL(finished()), SLOT(onScanFinished())); connect(m_scanner, SIGNAL(dataChanged()), SLOT(onDataChanged())); } @@ -107,7 +107,7 @@ void QSUIWaveformSeekBar::onStateChanged(Qmmp::State state) } } -void QSUIWaveformSeekBar::onScanFinished() +void QSUiWaveformSeekBar::onScanFinished() { if(!m_scanner) return; @@ -119,7 +119,7 @@ void QSUIWaveformSeekBar::onScanFinished() drawWaveform(); } -void QSUIWaveformSeekBar::onDataChanged() +void QSUiWaveformSeekBar::onDataChanged() { if(!m_scanner || !m_scanner->isRunning()) return; @@ -129,7 +129,7 @@ void QSUIWaveformSeekBar::onDataChanged() drawWaveform(); } -void QSUIWaveformSeekBar::onElapsedChanged(qint64 elapsed) +void QSUiWaveformSeekBar::onElapsedChanged(qint64 elapsed) { m_elapsed = elapsed; m_duration = m_core->duration(); @@ -137,7 +137,7 @@ void QSUIWaveformSeekBar::onElapsedChanged(qint64 elapsed) update(); } -void QSUIWaveformSeekBar::writeSettings() +void QSUiWaveformSeekBar::writeSettings() { QSettings settings(Qmmp::configFile(), QSettings::IniFormat); settings.beginGroup("Simple"); @@ -147,7 +147,7 @@ void QSUIWaveformSeekBar::writeSettings() drawWaveform(); } -void QSUIWaveformSeekBar::paintEvent(QPaintEvent *e) +void QSUiWaveformSeekBar::paintEvent(QPaintEvent *e) { QPainter painter (this); painter.fillRect(e->rect(), m_bgColor); @@ -167,18 +167,18 @@ void QSUIWaveformSeekBar::paintEvent(QPaintEvent *e) } } -void QSUIWaveformSeekBar::resizeEvent(QResizeEvent *) +void QSUiWaveformSeekBar::resizeEvent(QResizeEvent *) { drawWaveform(); } -void QSUIWaveformSeekBar::showEvent(QShowEvent *) +void QSUiWaveformSeekBar::showEvent(QShowEvent *) { if(m_data.isEmpty() && (m_core->state() == Qmmp::Playing || m_core->state() == Qmmp::Paused)) onStateChanged(Qmmp::Playing); //force redraw } -void QSUIWaveformSeekBar::mousePressEvent(QMouseEvent *e) +void QSUiWaveformSeekBar::mousePressEvent(QMouseEvent *e) { if(e->button() == Qt::LeftButton) { @@ -189,7 +189,7 @@ void QSUIWaveformSeekBar::mousePressEvent(QMouseEvent *e) m_menu->exec(e->globalPos()); } -void QSUIWaveformSeekBar::mouseReleaseEvent(QMouseEvent *) +void QSUiWaveformSeekBar::mouseReleaseEvent(QMouseEvent *) { if(m_pressedPos >= 0) { @@ -199,7 +199,7 @@ void QSUIWaveformSeekBar::mouseReleaseEvent(QMouseEvent *) } } -void QSUIWaveformSeekBar::mouseMoveEvent(QMouseEvent *e) +void QSUiWaveformSeekBar::mouseMoveEvent(QMouseEvent *e) { if(m_pressedPos >= 0) { @@ -211,7 +211,7 @@ void QSUIWaveformSeekBar::mouseMoveEvent(QMouseEvent *e) } } -void QSUIWaveformSeekBar::drawWaveform() +void QSUiWaveformSeekBar::drawWaveform() { if(m_data.isEmpty()) { @@ -319,7 +319,7 @@ void QSUIWaveformSeekBar::drawWaveform() update(); } -void QSUIWaveformSeekBar::createMenu() +void QSUiWaveformSeekBar::createMenu() { m_menu = new QMenu(this); m_showTwoChannelsAction = m_menu->addAction(tr("2 Channels"), this, SLOT(writeSettings())); @@ -329,15 +329,15 @@ void QSUIWaveformSeekBar::createMenu() m_showRmsAction->setCheckable(true); } -QSUIWaveformScanner::QSUIWaveformScanner(QObject *parent) : QThread(parent) +QSUiWaveformScanner::QSUiWaveformScanner(QObject *parent) : QThread(parent) {} -QSUIWaveformScanner::~QSUIWaveformScanner() +QSUiWaveformScanner::~QSUiWaveformScanner() { stop(); } -bool QSUIWaveformScanner::scan(const QString &path) +bool QSUiWaveformScanner::scan(const QString &path) { InputSource *source = InputSource::create(path, this); if(!source->initialize()) @@ -392,7 +392,7 @@ bool QSUIWaveformScanner::scan(const QString &path) return true; } -void QSUIWaveformScanner::stop() +void QSUiWaveformScanner::stop() { if(isRunning()) { @@ -415,18 +415,18 @@ void QSUIWaveformScanner::stop() } } -const QList<int> &QSUIWaveformScanner::data() const +const QList<int> &QSUiWaveformScanner::data() const { QMutexLocker locker(&m_mutex); return m_data; } -const AudioParameters &QSUIWaveformScanner::audioParameters() const +const AudioParameters &QSUiWaveformScanner::audioParameters() const { return m_ap; } -void QSUIWaveformScanner::run() +void QSUiWaveformScanner::run() { m_ap = m_decoder->audioParameters(); unsigned char tmp[QMMP_BLOCK_FRAMES * m_ap.frameSize() * 4]; diff --git a/src/plugins/Ui/qsui/qsuiwaveformseekbar.h b/src/plugins/Ui/qsui/qsuiwaveformseekbar.h index 12e3a7a32..e8526e254 100644 --- a/src/plugins/Ui/qsui/qsuiwaveformseekbar.h +++ b/src/plugins/Ui/qsui/qsuiwaveformseekbar.h @@ -32,16 +32,16 @@ class QMenu; class SoundCore; class Decoder; class InputSource; -class QSUIWaveformScanner; +class QSUiWaveformScanner; /** @author Ilya Kotov <forkotov02@ya.ru> */ -class QSUIWaveformSeekBar : public QWidget +class QSUiWaveformSeekBar : public QWidget { Q_OBJECT public: - explicit QSUIWaveformSeekBar(QWidget *parent = nullptr); + explicit QSUiWaveformSeekBar(QWidget *parent = nullptr); QSize sizeHint() const override; void readSettings(); @@ -63,7 +63,7 @@ private: void createMenu(); SoundCore *m_core; - QSUIWaveformScanner *m_scanner = nullptr; + QSUiWaveformScanner *m_scanner = nullptr; QMenu *m_menu; QAction *m_showTwoChannelsAction, *m_showRmsAction; QList<int> m_data; @@ -76,12 +76,12 @@ private: bool m_update = false; }; -class QSUIWaveformScanner : public QThread +class QSUiWaveformScanner : public QThread { Q_OBJECT public: - explicit QSUIWaveformScanner(QObject *parent); - ~QSUIWaveformScanner(); + explicit QSUiWaveformScanner(QObject *parent); + ~QSUiWaveformScanner(); bool scan(const QString &path); void stop(); const QList<int> &data() const; |
