diff options
| -rw-r--r-- | src/plugins/Ui/qsui/mainwindow.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/qsuianalyzer.cpp | 17 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/qsuianalyzer.h | 3 |
3 files changed, 21 insertions, 1 deletions
diff --git a/src/plugins/Ui/qsui/mainwindow.cpp b/src/plugins/Ui/qsui/mainwindow.cpp index 399eff06a..794e4505e 100644 --- a/src/plugins/Ui/qsui/mainwindow.cpp +++ b/src/plugins/Ui/qsui/mainwindow.cpp @@ -214,6 +214,7 @@ void MainWindow::showState(Qmmp::State state) case Qmmp::Playing: { updateStatus(); + m_analyzer->start(); m_analyzer->setCover(MetaDataManager::instance()->getCover(m_core->url())); CoverWidget *cw = qobject_cast<CoverWidget *>(m_ui.coverDockWidget->widget()); cw->setCover(MetaDataManager::instance()->getCover(m_core->url())); @@ -224,6 +225,7 @@ void MainWindow::showState(Qmmp::State state) break; case Qmmp::Stopped: updateStatus(); + m_analyzer->stop(); m_timeLabel->clear(); m_slider->setValue(0); m_analyzer->clearCover(); diff --git a/src/plugins/Ui/qsui/qsuianalyzer.cpp b/src/plugins/Ui/qsui/qsuianalyzer.cpp index 3df0b7935..04c867ce7 100644 --- a/src/plugins/Ui/qsui/qsuianalyzer.cpp +++ b/src/plugins/Ui/qsui/qsuianalyzer.cpp @@ -45,6 +45,7 @@ QSUiAnalyzer::QSUiAnalyzer (QWidget *parent) : Visual (parent) m_offset = 0; m_update = false; m_show_cover = false; + m_running = false; m_pixLabel = new QLabel(this); createMenu(); @@ -156,7 +157,8 @@ void QSUiAnalyzer::hideEvent (QHideEvent *) void QSUiAnalyzer::showEvent (QShowEvent *) { - m_timer->start(); + if(m_running) + m_timer->start(); } void QSUiAnalyzer::resizeEvent(QResizeEvent *) @@ -402,3 +404,16 @@ void QSUiAnalyzer::writeSettings() settings.setValue("vis_show_cover", m_coverAction->isChecked()); settings.endGroup(); } + +void QSUiAnalyzer::start() +{ + m_running = true; + if(isVisible()) + m_timer->start(); +} + +void QSUiAnalyzer::stop() +{ + m_running = false; + m_timer->stop(); +} diff --git a/src/plugins/Ui/qsui/qsuianalyzer.h b/src/plugins/Ui/qsui/qsuianalyzer.h index c2032f402..1c68e84f9 100644 --- a/src/plugins/Ui/qsui/qsuianalyzer.h +++ b/src/plugins/Ui/qsui/qsuianalyzer.h @@ -42,6 +42,8 @@ public: void clear(); void clearCover(); QSize sizeHint() const; + void start(); + void stop(); public slots: void readSettings(); @@ -91,6 +93,7 @@ private: QActionGroup *m_fpsGroup; QActionGroup *m_analyzerFalloffGroup; QActionGroup *m_peaksFalloffGroup; + bool m_running; }; |
