diff options
Diffstat (limited to 'src')
66 files changed, 329 insertions, 461 deletions
diff --git a/src/plugins/Input/archive/archivetagreader.cpp b/src/plugins/Input/archive/archivetagreader.cpp index 2ec7fe524..8e9118ba8 100644 --- a/src/plugins/Input/archive/archivetagreader.cpp +++ b/src/plugins/Input/archive/archivetagreader.cpp @@ -99,12 +99,12 @@ public: {} private: + QIODevice *m_input; #ifdef Q_OS_WIN QString m_fileName; #else QByteArray m_fileName; #endif - QIODevice *m_input; }; ArchiveTagReader::ArchiveTagReader(QIODevice *input, const QString &url) diff --git a/src/plugins/Transports/http/httpinputsource.cpp b/src/plugins/Transports/http/httpinputsource.cpp index 8f8940997..14870cbdf 100644 --- a/src/plugins/Transports/http/httpinputsource.cpp +++ b/src/plugins/Transports/http/httpinputsource.cpp @@ -28,7 +28,7 @@ HTTPInputSource::HTTPInputSource(const QString &url, QObject *parent) : InputSou connect(m_reader, SIGNAL(error()),SIGNAL(error())); } -QIODevice *HTTPInputSource::ioDevice() +QIODevice *HTTPInputSource::ioDevice() const { return m_reader; } @@ -39,12 +39,12 @@ bool HTTPInputSource::initialize() return true; } -bool HTTPInputSource::isReady() +bool HTTPInputSource::isReady() const { return m_reader->isOpen(); } -bool HTTPInputSource::isWaiting() +bool HTTPInputSource::isWaiting() const { return (!m_reader->bytesAvailable() && m_reader->isOpen()); } diff --git a/src/plugins/Transports/http/httpinputsource.h b/src/plugins/Transports/http/httpinputsource.h index 515e7306b..0d5fa12ad 100644 --- a/src/plugins/Transports/http/httpinputsource.h +++ b/src/plugins/Transports/http/httpinputsource.h @@ -34,10 +34,10 @@ Q_OBJECT public: explicit HTTPInputSource(const QString &path, QObject *parent = nullptr); - QIODevice *ioDevice() override; + QIODevice *ioDevice() const override; bool initialize() override; - bool isReady() override; - bool isWaiting() override; + bool isReady() const override; + bool isWaiting() const override; QString contentType() const override; private: diff --git a/src/plugins/Transports/mms/mmsinputsource.cpp b/src/plugins/Transports/mms/mmsinputsource.cpp index dbc1075c3..2a021f405 100644 --- a/src/plugins/Transports/mms/mmsinputsource.cpp +++ b/src/plugins/Transports/mms/mmsinputsource.cpp @@ -28,7 +28,7 @@ MMSInputSource::MMSInputSource(const QString &url, QObject *parent) : InputSourc connect(m_reader, SIGNAL(error()),SIGNAL(error())); } -QIODevice *MMSInputSource::ioDevice() +QIODevice *MMSInputSource::ioDevice() const { return m_reader; } @@ -39,12 +39,12 @@ bool MMSInputSource::initialize() return true; } -bool MMSInputSource::isReady() +bool MMSInputSource::isReady() const { return m_reader->isOpen(); } -bool MMSInputSource::isWaiting() +bool MMSInputSource::isWaiting() const { return (!m_reader->bytesAvailable() && m_reader->isOpen()); } diff --git a/src/plugins/Transports/mms/mmsinputsource.h b/src/plugins/Transports/mms/mmsinputsource.h index afe8aaa61..df0bd637d 100644 --- a/src/plugins/Transports/mms/mmsinputsource.h +++ b/src/plugins/Transports/mms/mmsinputsource.h @@ -34,10 +34,10 @@ Q_OBJECT public: explicit MMSInputSource(const QString &path, QObject *parent = nullptr); - QIODevice *ioDevice() override; + QIODevice *ioDevice() const override; bool initialize() override; - bool isReady() override; - bool isWaiting() override; + bool isReady() const override; + bool isWaiting() const override; QString contentType() const override; private: diff --git a/src/plugins/Ui/skinned/skin.cpp b/src/plugins/Ui/skinned/skin.cpp index 979484495..33d3e1018 100644 --- a/src/plugins/Ui/skinned/skin.cpp +++ b/src/plugins/Ui/skinned/skin.cpp @@ -918,7 +918,7 @@ QRegion Skin::createRegion(const QString &path, const QString &group) for (int j = 0; j < numPoints.at(i).toInt() * 2 && n != numbers.constEnd(); j++) { lp << n->toInt(); - n ++; + ++n; } QVector<QPoint> points; diff --git a/src/plugins/Ui/skinned/skinnedsettings.cpp b/src/plugins/Ui/skinned/skinnedsettings.cpp index 12fb7c52d..1da0b8718 100644 --- a/src/plugins/Ui/skinned/skinnedsettings.cpp +++ b/src/plugins/Ui/skinned/skinnedsettings.cpp @@ -201,7 +201,7 @@ void SkinnedSettings::loadSkins() #endif for(const QString &path : m_reader->skins()) { - QListWidgetItem *item = new QListWidgetItem (path.section('/', -1)); + item = new QListWidgetItem (path.section('/', -1)); item->setIcon (m_reader->getPreview(path)); item->setToolTip(tr("Archived skin") + " " + path); m_ui.listWidget->addItem (item); diff --git a/src/plugins/Ui/skinned/skinreader.cpp b/src/plugins/Ui/skinned/skinreader.cpp index b3b63d898..52127c7e0 100644 --- a/src/plugins/Ui/skinned/skinreader.cpp +++ b/src/plugins/Ui/skinned/skinreader.cpp @@ -25,6 +25,7 @@ #include <QByteArray> #include <QApplication> #include <QFile> +#include <algorithm> #include <qmmp/qmmp.h> #include "skinreader.h" @@ -62,15 +63,9 @@ void SkinReader::generateThumbs() //clear removed skins from cache for(const QFileInfo &thumbFile : qAsConst(d)) { - bool del = true; - for(const QFileInfo &fileInfo : qAsConst(f)) - { - if (fileInfo.baseName () == thumbFile.baseName ()) - { - del = false; - break; - } - } + bool del = std::none_of(f.cbegin(), f.cend(), + [thumbFile](const QFileInfo &fileInfo){ return fileInfo.baseName() == thumbFile.baseName(); }); + if (del) { qDebug("SkinReader: deleting %s from cache", @@ -82,15 +77,9 @@ void SkinReader::generateThumbs() //add new skins to cache for(const QFileInfo &fileInfo : qAsConst(f)) { - bool create = true; - for(const QFileInfo &thumbInfo : qAsConst(d)) - { - if (fileInfo.baseName () == thumbInfo.baseName ()) - { - create = false; - break; - } - } + bool create = std::none_of(d.cbegin(), d.cend(), + [fileInfo](const QFileInfo &thumbInfo){ return fileInfo.baseName() == thumbInfo.baseName(); }); + if (create) { qDebug("SkinReader: adding %s to cache", @@ -108,15 +97,13 @@ void SkinReader::generateThumbs() d = cache_dir.entryInfoList(); for(const QFileInfo &fileInfo : qAsConst(f)) { - for(const QFileInfo &thumbInfo : qAsConst(d)) - { - if (fileInfo.baseName () == thumbInfo.baseName ()) - { - m_previewMap.insert(fileInfo.absoluteFilePath (), - thumbInfo.absoluteFilePath ()); - break; - } - } + auto it = std::find_if(d.cbegin(), d.cend(), + [fileInfo](const QFileInfo &thumbInfo){ return fileInfo.baseName() == thumbInfo.baseName(); }); + + if(it != d.cend()) + { + m_previewMap.insert(fileInfo.absoluteFilePath (), (*it).absoluteFilePath()); + } } } @@ -153,8 +140,7 @@ void SkinReader::untar(const QString &from, const QString &to, bool preview) m_process->start("tar", args); m_process->waitForFinished(); array = m_process->readAllStandardOutput (); - QString str = QString(array); - const QStringList outputList = str.split("\n", QString::SkipEmptyParts); + const QStringList outputList = QString(array).split("\n", QString::SkipEmptyParts); for(QString str : qAsConst(outputList)) { str = str.trimmed(); diff --git a/src/plugins/Ui/skinned/skinreader.h b/src/plugins/Ui/skinned/skinreader.h index cebda0cb7..e74f1afb4 100644 --- a/src/plugins/Ui/skinned/skinreader.h +++ b/src/plugins/Ui/skinned/skinreader.h @@ -33,7 +33,7 @@ class SkinReader : public QObject { Q_OBJECT public: - SkinReader(QObject *parent = nullptr); + explicit SkinReader(QObject *parent = nullptr); ~SkinReader(); diff --git a/src/plugins/Ui/skinned/symboldisplay.cpp b/src/plugins/Ui/skinned/symboldisplay.cpp index 28608b9de..a3f1436d4 100644 --- a/src/plugins/Ui/skinned/symboldisplay.cpp +++ b/src/plugins/Ui/skinned/symboldisplay.cpp @@ -22,13 +22,10 @@ #include "skin.h" #include "symboldisplay.h" -SymbolDisplay::SymbolDisplay (QWidget *parent, int digits) - : PixmapWidget (parent) +SymbolDisplay::SymbolDisplay (QWidget *parent, int digits) : PixmapWidget (parent), + m_digits(digits) { - m_alignment = Qt::AlignRight; m_skin = Skin::instance(); - m_digits = digits; - m_max = 0; connect (m_skin, SIGNAL (skinChanged()), this, SLOT (draw())); draw(); for (int i = 0; i < m_digits; ++i) diff --git a/src/plugins/Ui/skinned/symboldisplay.h b/src/plugins/Ui/skinned/symboldisplay.h index 4f232ae01..34dc7cac8 100644 --- a/src/plugins/Ui/skinned/symboldisplay.h +++ b/src/plugins/Ui/skinned/symboldisplay.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2013 by Ilya Kotov * + * Copyright (C) 2006-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -32,7 +32,7 @@ class SymbolDisplay : public PixmapWidget { Q_OBJECT public: - SymbolDisplay(QWidget *parent = nullptr, int digits = 3); + explicit SymbolDisplay(QWidget *parent = nullptr, int digits = 3); virtual ~SymbolDisplay(); @@ -49,9 +49,9 @@ private slots: private: Skin* m_skin; QString m_text; - Qt::Alignment m_alignment; + Qt::Alignment m_alignment = Qt::AlignRight; int m_digits; - int m_max; + int m_max = 0; }; #endif diff --git a/src/plugins/Ui/skinned/textscroller.cpp b/src/plugins/Ui/skinned/textscroller.cpp index f2fb7cbda..ec479bb1b 100644 --- a/src/plugins/Ui/skinned/textscroller.cpp +++ b/src/plugins/Ui/skinned/textscroller.cpp @@ -42,9 +42,9 @@ #define SCROLL_SEP " *** " #define TITLE_FORMAT "%p%if(%p&%t, - ,)%t%if(%p,,%if(%t,,%f))%if(%l, - %l,)" -TextScroller::TextScroller (QWidget *parent) : QWidget (parent) +TextScroller::TextScroller (QWidget *parent) : QWidget (parent), + m_defautText(QString("Qmmp ") + Qmmp::strVersion()) { - m_defautText = QString("Qmmp ") + Qmmp::strVersion(); m_formater.setPattern(TITLE_FORMAT); m_core = SoundCore::instance(); m_skin = Skin::instance(); diff --git a/src/plugins/Ui/skinned/textscroller.h b/src/plugins/Ui/skinned/textscroller.h index 9b46adafd..d0bd7092b 100644 --- a/src/plugins/Ui/skinned/textscroller.h +++ b/src/plugins/Ui/skinned/textscroller.h @@ -37,7 +37,7 @@ class TextScroller : public QWidget { Q_OBJECT public: - TextScroller(QWidget *parent = nullptr); + explicit TextScroller(QWidget *parent = nullptr); virtual ~TextScroller(); void setText(const QString &text); diff --git a/src/plugins/Ui/skinned/togglebutton.cpp b/src/plugins/Ui/skinned/togglebutton.cpp index 3e20cf18b..805a8319a 100644 --- a/src/plugins/Ui/skinned/togglebutton.cpp +++ b/src/plugins/Ui/skinned/togglebutton.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2007-2008 by Ilya Kotov * + * Copyright (C) 2007-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * Based on Promoe, an XMMS2 Client * @@ -25,32 +25,29 @@ #include "togglebutton.h" #include <QMouseEvent> -ToggleButton::ToggleButton ( QWidget *parent,uint on_n,uint on_p,uint off_n,uint off_p ) - : PixmapWidget ( parent ) +ToggleButton::ToggleButton(QWidget *parent,uint on_n,uint on_p,uint off_n,uint off_p) : PixmapWidget(parent), + m_on_n(on_n), + m_on_p(on_p), + m_off_n(off_n), + m_off_p(off_p) { - m_on_n = on_n; - m_on_p = on_p; - m_off_n = off_n; - m_off_p = off_p; - m_on = false; - skin = Skin::instance(); - setChecked ( false ); - connect ( skin, SIGNAL ( skinChanged() ), this, SLOT ( updateSkin() ) ); + m_skin = Skin::instance(); + setChecked(false); + connect(m_skin, SIGNAL(skinChanged()), this, SLOT(updateSkin())); } - ToggleButton::~ToggleButton() {} -bool ToggleButton::isChecked() +bool ToggleButton::isChecked() const { return m_on; } void ToggleButton::updateSkin() { - //setPixmap ( skin->getButton ( name_normal ) ); - setChecked ( m_on ); + //setPixmap(skin->getButton(name_normal)); + setChecked(m_on); } void ToggleButton::click() @@ -60,49 +57,49 @@ void ToggleButton::click() emit clicked(m_on); } -void ToggleButton::setChecked ( bool on ) +void ToggleButton::setChecked(bool on) { m_on = on; - if ( on ) - setPixmap ( skin->getButton ( m_on_n ) ); + if(on) + setPixmap(m_skin->getButton(m_on_n)); else - setPixmap ( skin->getButton ( m_off_n ) ); + setPixmap(m_skin->getButton(m_off_n)); } -void ToggleButton::mousePressEvent ( QMouseEvent* ) +void ToggleButton::mousePressEvent(QMouseEvent*) { m_cursorin = true; m_old_on = m_on; - if ( m_on ) - setPixmap ( skin->getButton ( m_off_p ) ); + if(m_on) + setPixmap(m_skin->getButton(m_off_p)); else - setPixmap ( skin->getButton ( m_on_p ) ); + setPixmap(m_skin->getButton(m_on_p)); } -void ToggleButton::mouseReleaseEvent ( QMouseEvent* ) +void ToggleButton::mouseReleaseEvent(QMouseEvent*) { - if ( m_cursorin ) { + if(m_cursorin) { m_on = !m_old_on; - setChecked ( m_on ); - emit clicked( m_on ); + setChecked(m_on); + emit clicked( m_on); } else { m_on = m_old_on; - setChecked ( m_on ); + setChecked(m_on); } } void ToggleButton::mouseMoveEvent (QMouseEvent *e) { - if ( !m_cursorin && rect().contains(e->pos()) ) { + if(!m_cursorin && rect().contains(e->pos())) { m_cursorin = true; - if ( m_old_on ) - setPixmap ( skin->getButton ( m_off_p ) ); + if(m_old_on) + setPixmap(m_skin->getButton(m_off_p)); else - setPixmap ( skin->getButton ( m_on_p ) ); - } else if ( m_cursorin && !rect().contains(e->pos()) ) { + setPixmap(m_skin->getButton(m_on_p)); + } else if(m_cursorin && !rect().contains(e->pos())) { m_cursorin = false; - if ( m_old_on ) - setPixmap ( skin->getButton ( m_on_n ) ); + if(m_old_on) + setPixmap(m_skin->getButton(m_on_n)); else - setPixmap ( skin->getButton ( m_off_n ) ); + setPixmap(m_skin->getButton(m_off_n)); } } diff --git a/src/plugins/Ui/skinned/togglebutton.h b/src/plugins/Ui/skinned/togglebutton.h index b46fd4fbc..0ddca9308 100644 --- a/src/plugins/Ui/skinned/togglebutton.h +++ b/src/plugins/Ui/skinned/togglebutton.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006 by Ilya Kotov * + * Copyright (C) 2006-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -31,10 +31,10 @@ class ToggleButton : public PixmapWidget { Q_OBJECT public: - ToggleButton( QWidget *parent, uint on_n, uint on_p, uint off_n, uint off_p ); + ToggleButton(QWidget *parent, uint on_n, uint on_p, uint off_n, uint off_p); ~ToggleButton(); - bool isChecked(); + bool isChecked() const; public slots: void setChecked(bool); @@ -47,10 +47,10 @@ private slots: void updateSkin(); private: - Skin *skin; + Skin *m_skin; bool m_cursorin, m_old_on; uint m_on_n, m_on_p, m_off_n, m_off_p; - bool m_on; + bool m_on = false; protected: void mousePressEvent(QMouseEvent*) override; diff --git a/src/plugins/Visual/analyzer/analyzer.cpp b/src/plugins/Visual/analyzer/analyzer.cpp index 30708f676..75b305a86 100644 --- a/src/plugins/Visual/analyzer/analyzer.cpp +++ b/src/plugins/Visual/analyzer/analyzer.cpp @@ -33,14 +33,6 @@ Analyzer::Analyzer (QWidget *parent) : Visual (parent) { - m_intern_vis_data = nullptr; - m_peaks = nullptr; - m_x_scale = nullptr; - m_rows = 0; - m_cols = 0; - m_update = false; - m_running = false; - setWindowTitle (tr("Qmmp Analyzer")); setMinimumSize(2*300-30,105); m_timer = new QTimer (this); @@ -234,8 +226,6 @@ void Analyzer::process() short dest_l[256]; short dest_r[256]; - short yl, yr; - int j, k, magnitude_l, magnitude_r; calc_freq (dest_l, m_left_buffer); calc_freq (dest_r, m_right_buffer); @@ -244,16 +234,18 @@ void Analyzer::process() for (int i = 0; i < m_cols; i++) { - j = m_cols * 2 - i - 1; //mirror index - yl = yr = 0; - magnitude_l = magnitude_r = 0; + int j = m_cols * 2 - i - 1; //mirror index + short yl = 0; + short yr = 0; + int magnitude_l = 0; + int magnitude_r = 0; if(m_x_scale[i] == m_x_scale[i + 1]) { yl = dest_l[i]; yr = dest_r[i]; } - for (k = m_x_scale[i]; k < m_x_scale[i + 1]; k++) + for (int k = m_x_scale[i]; k < m_x_scale[i + 1]; k++) { yl = qMax(dest_l[k], yl); yr = qMax(dest_r[k], yr); @@ -293,12 +285,11 @@ void Analyzer::process() void Analyzer::draw(QPainter *p) { QBrush brush(Qt::SolidPattern); - int x = 0; int rdx = qMax(0, width() - 2 * m_cell_size.width() * m_cols); for (int j = 0; j < m_cols * 2; ++j) { - x = j * m_cell_size.width() + 1; + int x = j * m_cell_size.width() + 1; if(j >= m_cols) x += rdx; //correct right part position diff --git a/src/plugins/Visual/analyzer/analyzer.h b/src/plugins/Visual/analyzer/analyzer.h index 076948adb..3d77d30f1 100644 --- a/src/plugins/Visual/analyzer/analyzer.h +++ b/src/plugins/Visual/analyzer/analyzer.h @@ -37,7 +37,7 @@ class Analyzer : public Visual Q_OBJECT public: - Analyzer( QWidget *parent = nullptr); + explicit Analyzer( QWidget *parent = nullptr); virtual ~Analyzer(); public slots: @@ -61,17 +61,17 @@ private: void draw(QPainter *p); void createMenu(); QTimer *m_timer; - double *m_intern_vis_data; - double *m_peaks; - int *m_x_scale; + double *m_intern_vis_data = nullptr; + double *m_peaks = nullptr; + int *m_x_scale = nullptr; double m_peaks_falloff; double m_analyzer_falloff; bool m_show_peaks; float m_left_buffer[QMMP_VISUAL_NODE_SIZE]; float m_right_buffer[QMMP_VISUAL_NODE_SIZE]; - int m_cols, m_rows; - bool m_update; - bool m_running; + int m_cols = 0, m_rows = 0; + bool m_update = false; + bool m_running = false; //colors QColor m_color1; QColor m_color2; diff --git a/src/plugins/Visual/projectm/projectmwidget.h b/src/plugins/Visual/projectm/projectmwidget.h index 7dbdc2594..d67742a07 100644 --- a/src/plugins/Visual/projectm/projectmwidget.h +++ b/src/plugins/Visual/projectm/projectmwidget.h @@ -35,7 +35,7 @@ class ProjectMWidget : public QOpenGLWidget { Q_OBJECT public: - ProjectMWidget(QListWidget *listWidget, QWidget *parent = nullptr); + explicit ProjectMWidget(QListWidget *listWidget, QWidget *parent = nullptr); ~ProjectMWidget(); diff --git a/src/plugins/Visual/projectm/projectmwrapper.cpp b/src/plugins/Visual/projectm/projectmwrapper.cpp index 5078cffe2..16449a432 100644 --- a/src/plugins/Visual/projectm/projectmwrapper.cpp +++ b/src/plugins/Visual/projectm/projectmwrapper.cpp @@ -20,12 +20,12 @@ #include "projectmwrapper.h" -ProjectMWrapper::ProjectMWrapper(std::string config_file, int flags, QObject *parent) : +ProjectMWrapper::ProjectMWrapper(const std::string &config_file, int flags, QObject *parent) : QObject(parent), projectM(config_file, flags) { } -ProjectMWrapper::ProjectMWrapper(projectM::Settings settings, int flags, QObject *parent) : +ProjectMWrapper::ProjectMWrapper(const projectM::Settings &settings, int flags, QObject *parent) : QObject(parent), projectM(settings, flags) { } diff --git a/src/plugins/Visual/projectm/projectmwrapper.h b/src/plugins/Visual/projectm/projectmwrapper.h index 99b226ac7..fead927ed 100644 --- a/src/plugins/Visual/projectm/projectmwrapper.h +++ b/src/plugins/Visual/projectm/projectmwrapper.h @@ -28,8 +28,8 @@ class ProjectMWrapper : public QObject, public projectM { Q_OBJECT public: - explicit ProjectMWrapper(std::string config_file, int flags, QObject *parent = nullptr); - explicit ProjectMWrapper(Settings settings, int flags, QObject *parent = nullptr); + explicit ProjectMWrapper(const std::string &config_file, int flags, QObject *parent = nullptr); + explicit ProjectMWrapper(const Settings &settings, int flags, QObject *parent = nullptr); virtual ~ProjectMWrapper(); diff --git a/src/qmmp/audioparameters.cpp b/src/qmmp/audioparameters.cpp index 4af261625..4789b5014 100644 --- a/src/qmmp/audioparameters.cpp +++ b/src/qmmp/audioparameters.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009-2016 by Ilya Kotov * + * Copyright (C) 2009-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -22,30 +22,22 @@ #include "audioparameters.h" AudioParameters::AudioParameters() -{ - m_srate = 0; - m_format = Qmmp::PCM_S16LE; - m_sz = 2; - m_precision = 16; -} - -AudioParameters::AudioParameters(const AudioParameters &other) -{ - m_srate = other.sampleRate(); - m_chan_map = other.channelMap(); - m_format = other.format(); - m_sz = other.sampleSize(); - m_precision = other.validBitsPerSample(); -} - -AudioParameters::AudioParameters(quint32 srate, const ChannelMap &map, Qmmp::AudioFormat format) -{ - m_srate = srate; - m_chan_map = map; - m_format = format; - m_sz = sampleSize(format); - m_precision = validBitsPerSample(format); -} +{} + +AudioParameters::AudioParameters(const AudioParameters &other) : m_srate(other.sampleRate()), + m_chan_map(other.channelMap()), + m_format(other.format()), + m_sz(other.sampleSize()), + m_precision(other.validBitsPerSample()) +{} + +AudioParameters::AudioParameters(quint32 srate, const ChannelMap &map, Qmmp::AudioFormat format) : + m_srate(srate), + m_chan_map(map), + m_format(format), + m_sz(sampleSize(format)), + m_precision(validBitsPerSample(format)) +{} AudioParameters &AudioParameters::operator=(const AudioParameters &p) { diff --git a/src/qmmp/audioparameters.h b/src/qmmp/audioparameters.h index a3f992157..dab8ea3fd 100644 --- a/src/qmmp/audioparameters.h +++ b/src/qmmp/audioparameters.h @@ -132,11 +132,11 @@ public: static Qmmp::AudioFormat findAudioFormat(int bits, ByteOrder byteOrder = LittleEndian); private: - quint32 m_srate; + quint32 m_srate = 0; ChannelMap m_chan_map; - Qmmp::AudioFormat m_format; - int m_sz; - int m_precision; + Qmmp::AudioFormat m_format = Qmmp::PCM_S16LE; + int m_sz = 2; + int m_precision = 16; }; #endif // AUDIOPARAMETERS_H diff --git a/src/qmmp/channelmap.cpp b/src/qmmp/channelmap.cpp index 92b7f86b6..1eb09aa3c 100644 --- a/src/qmmp/channelmap.cpp +++ b/src/qmmp/channelmap.cpp @@ -66,18 +66,18 @@ const ChannelMap ChannelMap::remaped() const const QString ChannelMap::toString() const { QStringList list; - QHash <Qmmp::ChannelPosition, QString> names; - names.insert(Qmmp::CHAN_NULL, "NA"); - names.insert(Qmmp::CHAN_FRONT_LEFT, "FL"); - names.insert(Qmmp::CHAN_FRONT_RIGHT, "FR"); - names.insert(Qmmp::CHAN_REAR_LEFT, "RL"); - names.insert(Qmmp::CHAN_REAR_RIGHT, "RR"); - names.insert(Qmmp::CHAN_FRONT_CENTER, "FC"); - names.insert(Qmmp::CHAN_REAR_CENTER, "RC"); - names.insert(Qmmp::CHAN_LFE, "LFE"); - names.insert(Qmmp::CHAN_SIDE_LEFT, "SL"); - names.insert(Qmmp::CHAN_SIDE_RIGHT, "SR"); - + QHash <Qmmp::ChannelPosition, QString> names = { + { Qmmp::CHAN_NULL, "NA" }, + { Qmmp::CHAN_FRONT_LEFT, "FL" }, + { Qmmp::CHAN_FRONT_RIGHT, "FR" }, + { Qmmp::CHAN_REAR_LEFT, "RL" }, + { Qmmp::CHAN_REAR_RIGHT, "RR" }, + { Qmmp::CHAN_FRONT_CENTER, "FC" }, + { Qmmp::CHAN_REAR_CENTER, "RC" }, + { Qmmp::CHAN_LFE, "LFE" }, + { Qmmp::CHAN_SIDE_LEFT, "SL" }, + { Qmmp::CHAN_SIDE_RIGHT, "SR" } + }; for(const Qmmp::ChannelPosition channel : qAsConst(*this)) { diff --git a/src/qmmp/channelmap.h b/src/qmmp/channelmap.h index 2bc232916..7cbb35975 100644 --- a/src/qmmp/channelmap.h +++ b/src/qmmp/channelmap.h @@ -28,7 +28,7 @@ class QMMP_EXPORT ChannelMap : public QList<Qmmp::ChannelPosition> { public: ChannelMap(); - ChannelMap(int channels); + explicit ChannelMap(int channels); int mask() const; const ChannelMap remaped() const; diff --git a/src/qmmp/emptyinputsource.cpp b/src/qmmp/emptyinputsource.cpp index e9a082d38..1266c3c23 100644 --- a/src/qmmp/emptyinputsource.cpp +++ b/src/qmmp/emptyinputsource.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009 by Ilya Kotov * + * Copyright (C) 2009-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -21,11 +21,9 @@ #include "emptyinputsource_p.h" EmptyInputSource::EmptyInputSource(const QString &url, QObject *parent) : InputSource(url,parent) -{ - m_ok = false; -} +{} -QIODevice *EmptyInputSource::ioDevice() +QIODevice *EmptyInputSource::ioDevice() const { return nullptr; } @@ -38,7 +36,7 @@ bool EmptyInputSource::initialize() return m_ok; } -bool EmptyInputSource::isReady() +bool EmptyInputSource::isReady() const { return m_ok; } diff --git a/src/qmmp/emptyinputsource_p.h b/src/qmmp/emptyinputsource_p.h index 874a8f83a..8c085269d 100644 --- a/src/qmmp/emptyinputsource_p.h +++ b/src/qmmp/emptyinputsource_p.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009 by Ilya Kotov * + * Copyright (C) 2009-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -30,14 +30,14 @@ class EmptyInputSource : public InputSource { Q_OBJECT public: - EmptyInputSource(const QString &path, QObject *parent = nullptr); + explicit EmptyInputSource(const QString &path, QObject *parent = nullptr); - QIODevice *ioDevice() override; + QIODevice *ioDevice() const override; bool initialize() override; - bool isReady() override; + bool isReady() const override; private: - bool m_ok; + bool m_ok = false; }; #endif // EMPTYINPUTSOURCE_P_H diff --git a/src/qmmp/fileinputsource.cpp b/src/qmmp/fileinputsource.cpp index 4bff28707..3f331fe93 100644 --- a/src/qmmp/fileinputsource.cpp +++ b/src/qmmp/fileinputsource.cpp @@ -26,7 +26,7 @@ FileInputSource::FileInputSource(const QString &url, QObject *parent) : InputSou m_file = new QFile(url, this); } -QIODevice *FileInputSource::ioDevice() +QIODevice *FileInputSource::ioDevice() const { return m_file; } @@ -37,7 +37,7 @@ bool FileInputSource::initialize() return true; } -bool FileInputSource::isReady() +bool FileInputSource::isReady() const { return m_file->isOpen(); } diff --git a/src/qmmp/fileinputsource_p.h b/src/qmmp/fileinputsource_p.h index d8e14e093..8ce763e75 100644 --- a/src/qmmp/fileinputsource_p.h +++ b/src/qmmp/fileinputsource_p.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009 by Ilya Kotov * + * Copyright (C) 2009-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -32,11 +32,11 @@ class FileInputSource : public InputSource { Q_OBJECT public: - FileInputSource(const QString &path, QObject *parent = nullptr); + explicit FileInputSource(const QString &path, QObject *parent = nullptr); - QIODevice *ioDevice() override; + QIODevice *ioDevice() const override; bool initialize() override; - bool isReady() override; + bool isReady() const override; private: QFile *m_file; diff --git a/src/qmmp/inputsource.cpp b/src/qmmp/inputsource.cpp index ff6303cc7..8403c4596 100644 --- a/src/qmmp/inputsource.cpp +++ b/src/qmmp/inputsource.cpp @@ -20,21 +20,18 @@ #include <QFile> #include <QDir> +#include <algorithm> #include "qmmpplugincache_p.h" #include "qmmp.h" #include "fileinputsource_p.h" #include "emptyinputsource_p.h" #include "inputsource.h" -InputSource::InputSource(const QString &source, QObject *parent) : QObject(parent) -{ - m_path = source; - m_offset = -1; - m_hasMetaData = false; - m_hasStreamInfo = false; -} +InputSource::InputSource(const QString &source, QObject *parent) : QObject(parent), + m_path(source) +{} -bool InputSource::isWaiting() +bool InputSource::isWaiting() const { return false; } @@ -170,12 +167,9 @@ QList<InputSourceFactory *> InputSource::enabledFactories() QString InputSource::file(const InputSourceFactory *factory) { loadPlugins(); - for(const QmmpPluginCache *item : qAsConst(*m_cache)) - { - if(item->shortName() == factory->properties().shortName) - return item->file(); - } - return QString(); + auto it = std::find_if(m_cache->cbegin(), m_cache->cend(), + [factory](QmmpPluginCache *item) { return item->shortName() == factory->properties().shortName; } ); + return it == m_cache->cend() ? QString() : (*it)->file(); } QStringList InputSource::protocols() diff --git a/src/qmmp/inputsource.h b/src/qmmp/inputsource.h index c4da56d37..6caa73b55 100644 --- a/src/qmmp/inputsource.h +++ b/src/qmmp/inputsource.h @@ -44,12 +44,12 @@ public: * @param path Input source path or url. * @param parent Parent object. */ - InputSource(const QString &path, QObject *parent = nullptr); + explicit InputSource(const QString &path, QObject *parent = nullptr); /*! * Returns QIODevice-based object for I/O operations. * Subclass shoud reimplement this function. */ - virtual QIODevice *ioDevice() = 0; + virtual QIODevice *ioDevice() const = 0; /*! * Prepares input data source for usage. * Subclass shoud reimplement this function. @@ -58,13 +58,13 @@ public: /*! * Returns \b true if transport is ready for usage; otherwise returns \b false. */ - virtual bool isReady() = 0; + virtual bool isReady() const = 0; /*! * Returns \b true if the transport is waiting more data; otherwise returns \b false. * Reader should wait until this function returns \b false. * Default implementation allways returns \b false. */ - virtual bool isWaiting(); + virtual bool isWaiting() const; /*! * Returns content type of the input stream. Default implementation returns empty string. */ @@ -182,11 +182,11 @@ signals: private: QString m_path; - qint64 m_offset; + qint64 m_offset = -1; QMap<Qmmp::MetaData, QString> m_metaData; QMap<Qmmp::TrackProperty, QString> m_properties; QHash<QString, QString> m_streamInfo; - bool m_hasMetaData, m_hasStreamInfo; + bool m_hasMetaData = false, m_hasStreamInfo = false; static void loadPlugins(); static QList<QmmpPluginCache*> *m_cache; static QStringList m_disabledNames; diff --git a/src/qmmp/qmmpplugincache.cpp b/src/qmmp/qmmpplugincache.cpp index 6b9f83508..2f05c9b36 100644 --- a/src/qmmp/qmmpplugincache.cpp +++ b/src/qmmp/qmmpplugincache.cpp @@ -33,14 +33,6 @@ QmmpPluginCache::QmmpPluginCache(const QString &file, QSettings *settings) { - m_error = false; - m_instance = nullptr; - m_decoderFactory = nullptr; - m_outputFactory = nullptr; - m_engineFactory = nullptr; - m_effectFactory = nullptr; - m_inputSourceFactory = nullptr; - m_priority = 0; bool update = false; QFileInfo info(file); m_path = info.QFileInfo::canonicalFilePath(); diff --git a/src/qmmp/qmmpplugincache_p.h b/src/qmmp/qmmpplugincache_p.h index 4dfb938b4..3d6f581e6 100644 --- a/src/qmmp/qmmpplugincache_p.h +++ b/src/qmmp/qmmpplugincache_p.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2013 by Ilya Kotov * + * Copyright (C) 2013-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -57,14 +57,14 @@ private: void loadTranslation(const QString &translation); QString m_path; QString m_shortName; - bool m_error; - QObject *m_instance; - DecoderFactory *m_decoderFactory; - OutputFactory *m_outputFactory; - EngineFactory *m_engineFactory; - EffectFactory *m_effectFactory; - InputSourceFactory *m_inputSourceFactory; - int m_priority; + bool m_error = false; + QObject *m_instance = nullptr; + DecoderFactory *m_decoderFactory = nullptr; + OutputFactory *m_outputFactory = nullptr; + EngineFactory *m_engineFactory = nullptr; + EffectFactory *m_effectFactory = nullptr; + InputSourceFactory *m_inputSourceFactory = nullptr; + int m_priority = 0; }; #endif // QMMPPLUGINCACHE_P_H diff --git a/src/qmmp/visualbuffer.cpp b/src/qmmp/visualbuffer.cpp index d9baa9951..e6b046338 100644 --- a/src/qmmp/visualbuffer.cpp +++ b/src/qmmp/visualbuffer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2017 by Ilya Kotov * + * Copyright (C) 2017-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -44,11 +44,7 @@ static inline void stereo_from_multichannel(float *l, } VisualBuffer::VisualBuffer() -{ - m_take_index = 0; - m_add_index = 0; - m_elapsed = 0; -} +{} void VisualBuffer::add(float *pcm, int samples, int channels, qint64 ts, qint64 delay) { diff --git a/src/qmmp/visualbuffer_p.h b/src/qmmp/visualbuffer_p.h index 4a6841379..a6622cdc9 100644 --- a/src/qmmp/visualbuffer_p.h +++ b/src/qmmp/visualbuffer_p.h @@ -30,15 +30,9 @@ class VisualNode { public: - float data[2][512]; - bool used; - qint64 ts; - - VisualNode() - { - used = false; - ts = 0; - } + float data[2][512] = { 0 }; + bool used = false; + qint64 ts = 0; }; class VisualBuffer @@ -53,9 +47,9 @@ public: private: VisualNode m_buffer[VISUAL_BUFFER_SIZE]; - qint64 m_elapsed; - int m_take_index; - int m_add_index; + qint64 m_elapsed = 0; + int m_take_index = 0; + int m_add_index = 0; QElapsedTimer m_time; QMutex m_mutex; diff --git a/src/qmmpui/addurldialog_p.h b/src/qmmpui/addurldialog_p.h index d9d4a3d78..005915ed1 100644 --- a/src/qmmpui/addurldialog_p.h +++ b/src/qmmpui/addurldialog_p.h @@ -44,7 +44,7 @@ private slots: void onFinished(bool ok, const QString &message); private: - AddUrlDialog(QWidget *parent); + explicit AddUrlDialog(QWidget *parent); ~AddUrlDialog(); void accept() override; void setModel(PlayListModel*); diff --git a/src/qmmpui/detailsdialog.cpp b/src/qmmpui/detailsdialog.cpp index fe0625b17..0cc798c94 100644 --- a/src/qmmpui/detailsdialog.cpp +++ b/src/qmmpui/detailsdialog.cpp @@ -35,7 +35,7 @@ #include "detailsdialog.h" DetailsDialog::DetailsDialog(QList<PlayListTrack *> tracks, QWidget *parent) - : QDialog(parent) + : QDialog(parent), m_tracks(tracks) { m_ui = new Ui::DetailsDialog; m_ui->setupUi(this); @@ -44,9 +44,6 @@ DetailsDialog::DetailsDialog(QList<PlayListTrack *> tracks, QWidget *parent) m_ui->directoryButton->setIcon(QApplication::style()->standardIcon(QStyle::SP_DirOpenIcon)); m_ui->nextButton->setIcon(QApplication::style()->standardIcon(QStyle::SP_ArrowRight)); m_ui->prevButton->setIcon(QApplication::style()->standardIcon(QStyle::SP_ArrowLeft)); - m_metaDataModel = nullptr; - m_page = 0; - m_tracks = tracks; updatePage(); on_tabWidget_currentChanged(0); } diff --git a/src/qmmpui/detailsdialog.h b/src/qmmpui/detailsdialog.h index 725c6b817..c4c5e04e9 100644 --- a/src/qmmpui/detailsdialog.h +++ b/src/qmmpui/detailsdialog.h @@ -48,7 +48,7 @@ public: * @param tracks a list of tracks which should be used. * @param parent Parent widget. */ - DetailsDialog(QList<PlayListTrack *> tracks, QWidget *parent = nullptr); + explicit DetailsDialog(QList<PlayListTrack *> tracks, QWidget *parent = nullptr); /*! * Destructor. */ @@ -68,10 +68,10 @@ private: void printInfo(); QString formatRow(const QString &key, const QString &value) const; QString formatRow(const MetaDataItem &item) const; - MetaDataModel *m_metaDataModel; + MetaDataModel *m_metaDataModel = nullptr; QList<PlayListTrack *> m_tracks; TrackInfo m_info; - int m_page; + int m_page = 0; }; #endif diff --git a/src/qmmpui/filedialog.cpp b/src/qmmpui/filedialog.cpp index 5d2915b6e..ab67d6889 100644 --- a/src/qmmpui/filedialog.cpp +++ b/src/qmmpui/filedialog.cpp @@ -24,6 +24,7 @@ #include <QPluginLoader> #include <QMetaObject> #include <QLibrary> +#include <algorithm> #include <qmmp/qmmp.h> #include "qmmpuiplugincache_p.h" #include "filedialog.h" @@ -85,12 +86,9 @@ bool FileDialog::isEnabled(const FileDialogFactory *factory) QString FileDialog::file(const FileDialogFactory *factory) { loadPlugins(); - for(const QmmpUiPluginCache *item : qAsConst(*m_cache)) - { - if(item->shortName() == factory->properties().shortName) - return item->file(); - } - return QString(); + auto it = std::find_if(m_cache->cbegin(), m_cache->cend(), + [factory] (QmmpUiPluginCache *item){ return item->shortName() == factory->properties().shortName; } ); + return it == m_cache->cend() ? QString() : (*it)->file(); } QString FileDialog::getExistingDirectory(QWidget *parent, @@ -167,14 +165,11 @@ FileDialog* FileDialog::instance() QSettings settings (Qmmp::configFile(), QSettings::IniFormat); QString name = settings.value("FileDialog", "qt_dialog").toString(); - for(QmmpUiPluginCache *item : qAsConst(*m_cache)) - { - if(item->shortName() == name) - { - selected = item->fileDialogFactory(); - break; - } - } + + auto it = std::find_if(m_cache->cbegin(), m_cache->cend(), + [name] (QmmpUiPluginCache *item){ return item->shortName() == name; } ); + if(it != m_cache->cend()) + selected = (*it)->fileDialogFactory(); if(!selected) selected = m_cache->at(0)->fileDialogFactory(); diff --git a/src/qmmpui/general.cpp b/src/qmmpui/general.cpp index 0ca8e2fb0..592bdf894 100644 --- a/src/qmmpui/general.cpp +++ b/src/qmmpui/general.cpp @@ -100,12 +100,9 @@ QList<GeneralFactory *> General::enabledFactories() QString General::file(const GeneralFactory *factory) { loadPlugins(); - for(const QmmpUiPluginCache *item : qAsConst(*m_cache)) - { - if(item->shortName() == factory->properties().shortName) - return item->file(); - } - return QString(); + auto it = std::find_if(m_cache->cbegin(), m_cache->cend(), + [factory] (QmmpUiPluginCache *item){ return item->shortName() == factory->properties().shortName; } ); + return it == m_cache->cend() ? QString() : (*it)->file(); } void General::setEnabled(GeneralFactory* factory, bool enable) diff --git a/src/qmmpui/groupedcontainer.cpp b/src/qmmpui/groupedcontainer.cpp index 24193261c..68c8164c6 100644 --- a/src/qmmpui/groupedcontainer.cpp +++ b/src/qmmpui/groupedcontainer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2013-2015 by Ilya Kotov * + * Copyright (C) 2013-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -26,9 +26,7 @@ #endif GroupedContainer::GroupedContainer() -{ - m_update = true; -} +{} GroupedContainer::~GroupedContainer() { @@ -70,11 +68,9 @@ void GroupedContainer::addTrack(PlayListTrack *track) void GroupedContainer::addTracks(const QList<PlayListTrack *> &tracks) { - bool found = false; - for(int i = 0; i < tracks.count(); ++i) { - found = false; + bool found = false; for(int j = m_groups.count() - 1; j >= 0; --j) { if(m_groups.at(j)->formattedTitle() == tracks.at(i)->groupName()) diff --git a/src/qmmpui/groupedcontainer_p.h b/src/qmmpui/groupedcontainer_p.h index 3a0e1d0b6..ca7178c67 100644 --- a/src/qmmpui/groupedcontainer_p.h +++ b/src/qmmpui/groupedcontainer_p.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2013-2015 by Ilya Kotov * + * Copyright (C) 2013-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -69,7 +69,7 @@ private: QList<PlayListGroup *> m_groups; mutable QList<PlayListItem *> m_items; - mutable bool m_update; + mutable bool m_update = true; }; diff --git a/src/qmmpui/jumptotrackdialog_p.h b/src/qmmpui/jumptotrackdialog_p.h index 2ea9b677b..e28b22104 100644 --- a/src/qmmpui/jumptotrackdialog_p.h +++ b/src/qmmpui/jumptotrackdialog_p.h @@ -41,7 +41,7 @@ class JumpToTrackDialog : public QDialog, private Ui::JumpToTrackDialog Q_OBJECT public: - JumpToTrackDialog(PlayListModel *model, QWidget* parent = nullptr); + explicit JumpToTrackDialog(PlayListModel *model, QWidget* parent = nullptr); ~JumpToTrackDialog(); void refresh(); diff --git a/src/qmmpui/metadataformatter.cpp b/src/qmmpui/metadataformatter.cpp index ebc4cad38..0b58bd6a1 100644 --- a/src/qmmpui/metadataformatter.cpp +++ b/src/qmmpui/metadataformatter.cpp @@ -609,59 +609,59 @@ QList<MetaDataFormatter::Node> MetaDataFormatter::compile(const QString &expr) { if((*i) == QChar('%')) { - i++; + ++i; if(i == expr.constEnd()) continue; if(parseDir(&nodes, &i, expr.constEnd())) { - i++; + ++i; continue; } if(parseField(&nodes, &i, expr.constEnd())) { - i++; + ++i; continue; } if(parseProperty(&nodes, &i, expr.constEnd())) { - i++; + ++i; continue; } if(parseIf(&nodes, &i, expr.constEnd())) { - i++; + ++i; continue; } continue; } else if((*i) == QChar('&')) { - i++; + ++i; Node node; node.command = Node::AND_OPERATOR; nodes.append(node); } else if((*i) == QChar('|')) { - i++; + ++i; Node node; node.command = Node::OR_OPERATOR; nodes.append(node); } else if((*i) == QChar('\\')) { - i++; + ++i; parseEscape(&nodes, &i, expr.constEnd()); - i++; + ++i; } else { parseText(&nodes, &i, expr.constEnd()); - i++; + ++i; } } diff --git a/src/qmmpui/playlistdownloader.cpp b/src/qmmpui/playlistdownloader.cpp index cc71eebd3..57ac8f6e4 100644 --- a/src/qmmpui/playlistdownloader.cpp +++ b/src/qmmpui/playlistdownloader.cpp @@ -26,9 +26,9 @@ #include "playlistparser.h" #include "playlistdownloader.h" -PlayListDownloader::PlayListDownloader(QObject *parent) : QObject(parent) +PlayListDownloader::PlayListDownloader(QObject *parent) : QObject(parent), + m_ua(QString("qmmp/%1").arg(Qmmp::strVersion()).toLatin1()) { - m_ua = QString("qmmp/%1").arg(Qmmp::strVersion()).toLatin1(); m_manager = new QNetworkAccessManager(this); connect(m_manager, SIGNAL(finished (QNetworkReply *)), SLOT(readResponse(QNetworkReply *))); //load global proxy settings diff --git a/src/qmmpui/playlistgroup.cpp b/src/qmmpui/playlistgroup.cpp index cd2080762..d9f6d44fa 100644 --- a/src/qmmpui/playlistgroup.cpp +++ b/src/qmmpui/playlistgroup.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2013-2014 by Ilya Kotov * + * Copyright (C) 2013-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -20,10 +20,8 @@ #include "playlistgroup.h" -PlayListGroup::PlayListGroup(const QString &name) -{ - m_name = name; -} +PlayListGroup::PlayListGroup(const QString &name) : m_name(name) +{} PlayListGroup::~PlayListGroup() { diff --git a/src/qmmpui/playlistgroup.h b/src/qmmpui/playlistgroup.h index a6ce2921c..59a177d6a 100644 --- a/src/qmmpui/playlistgroup.h +++ b/src/qmmpui/playlistgroup.h @@ -37,7 +37,7 @@ public: * Constructor. * @param formattedTitle Title of the group. */ - PlayListGroup(const QString &formattedTitle); + explicit PlayListGroup(const QString &formattedTitle); /*! * Object destructor. */ diff --git a/src/qmmpui/playlistmanager.cpp b/src/qmmpui/playlistmanager.cpp index 48480a299..3b128745a 100644 --- a/src/qmmpui/playlistmanager.cpp +++ b/src/qmmpui/playlistmanager.cpp @@ -47,23 +47,27 @@ PlayListManager::PlayListManager(QObject *parent) : QObject(parent) m_timer->setSingleShot(true); connect(m_timer, SIGNAL(timeout()), SLOT(writePlayLists())); //key names - m_metaKeys.insert("title", Qmmp::TITLE); - m_metaKeys.insert("artist", Qmmp::ARTIST); - m_metaKeys.insert("albumartist", Qmmp::ALBUMARTIST); - m_metaKeys.insert("album", Qmmp::ALBUM); - m_metaKeys.insert("comment", Qmmp::COMMENT); - m_metaKeys.insert("genre", Qmmp::GENRE); - m_metaKeys.insert("composer", Qmmp::COMPOSER); - m_metaKeys.insert("year", Qmmp::YEAR); - m_metaKeys.insert("track", Qmmp::TRACK); - m_metaKeys.insert("disk", Qmmp::DISCNUMBER); - m_propKeys.insert("bitrate", Qmmp::BITRATE); - m_propKeys.insert("samplerate", Qmmp::SAMPLERATE); - m_propKeys.insert("channels", Qmmp::CHANNELS); - m_propKeys.insert("bits_per_sample", Qmmp::BITS_PER_SAMPLE); - m_propKeys.insert("format_name", Qmmp::FORMAT_NAME); - m_propKeys.insert("decoder", Qmmp::DECODER); - m_propKeys.insert("file_size", Qmmp::FILE_SIZE); + m_metaKeys = { + { "title", Qmmp::TITLE }, + { "artist", Qmmp::ARTIST }, + { "albumartist", Qmmp::ALBUMARTIST }, + { "album", Qmmp::ALBUM }, + { "comment", Qmmp::COMMENT }, + { "genre", Qmmp::GENRE }, + { "composer", Qmmp::COMPOSER }, + { "year", Qmmp::YEAR }, + { "track", Qmmp::TRACK }, + { "disk", Qmmp::DISCNUMBER } + }; + m_propKeys = { + { "bitrate", Qmmp::BITRATE }, + { "samplerate", Qmmp::SAMPLERATE }, + { "channels", Qmmp::CHANNELS }, + { "bits_per_sample", Qmmp::BITS_PER_SAMPLE }, + { "format_name", Qmmp::FORMAT_NAME }, + { "decoder", Qmmp::DECODER }, + { "file_size", Qmmp::FILE_SIZE } + }; readPlayLists(); //read playlists } @@ -266,7 +270,7 @@ void PlayListManager::readPlayLists() Qmmp::MetaData metaKey; Qmmp::TrackProperty propKey; QString line, key, value; - int s = 0, current = 0, pl = 0; + int current = 0, pl = 0; QList <PlayListTrack *> tracks; QFile file(Qmmp::configDir() + "/playlist.txt"); file.open(QIODevice::ReadOnly); @@ -278,7 +282,8 @@ void PlayListManager::readPlayLists() while (!buffer.atEnd()) { line = QString::fromUtf8(buffer.readLine().constData()).trimmed(); - if ((s = line.indexOf("=")) < 0) + int s = line.indexOf("="); + if (s < 0) continue; key = line.left(s); diff --git a/src/qmmpui/playlistmanager.h b/src/qmmpui/playlistmanager.h index 7298b78a9..5352eef43 100644 --- a/src/qmmpui/playlistmanager.h +++ b/src/qmmpui/playlistmanager.h @@ -41,7 +41,7 @@ public: * Constructor. * @param parent Parent object. */ - PlayListManager(QObject *parent); + explicit PlayListManager(QObject *parent); /*! * Destructor. */ diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp index 3b5ae17ed..9c44acc3b 100644 --- a/src/qmmpui/playlistmodel.cpp +++ b/src/qmmpui/playlistmodel.cpp @@ -20,6 +20,7 @@ #include <QWidget> #include <QtAlgorithms> #include <QTextStream> +#include <algorithm> #include <time.h> #include <qmmp/metadatamanager.h> #include "metadatahelper_p.h" @@ -39,14 +40,11 @@ #define INVALID_INDEX -1 PlayListModel::PlayListModel(const QString &name, QObject *parent) - : QObject(parent) , m_selection() + : QObject(parent) , m_name(name) { qsrand(time(nullptr)); m_ui_settings = QmmpUiSettings::instance(); - m_total_duration = 0; - m_current = 0; - m_stop_track = nullptr; - m_name = name; + m_loader = new FileLoader(this); m_task = new PlayListTask(this); if(m_ui_settings->isGroupsEnabled()) @@ -728,11 +726,8 @@ void PlayListModel::moveItems(int from, int to) if(selected_indexes.isEmpty()) return; - for(const int &i : qAsConst(selected_indexes)) //do no move groups - { - if(!isTrack(i)) - return; - } + if(std::any_of(selected_indexes.cbegin(), selected_indexes.cend(), [this](int i){ return !isTrack(i); })) + return; if (bottommostInSelection(from) == INVALID_INDEX || from == INVALID_INDEX || @@ -959,7 +954,7 @@ void PlayListModel::onTaskFinished() || m_task->type() == PlayListTask::REFRESH) { PlayListTrack *prev_current_track = m_current_track; - bool prev_count = m_container->count(); + int prev_count = m_container->count(); m_container->replaceTracks(m_task->takeResults(&m_current_track)); diff --git a/src/qmmpui/playlistmodel.h b/src/qmmpui/playlistmodel.h index 11b8c34ca..d4e177714 100644 --- a/src/qmmpui/playlistmodel.h +++ b/src/qmmpui/playlistmodel.h @@ -48,14 +48,6 @@ class PlayListTask; struct SimpleSelection { /*! - * Constructs an empty selection model. - */ - SimpleSelection() - { - m_bottom = -1; - m_top = 1; - } - /*! * Returns \p true if this selection is valid; otherwise returns returns \p false. */ inline bool isValid()const @@ -76,8 +68,8 @@ struct SimpleSelection { return m_bottom - m_top + 1; } - int m_bottom; /*!< Bottom of the selection */ - int m_top; /*!< Top of the selection */ + int m_bottom = -1; /*!< Bottom of the selection */ + int m_top = 1; /*!< Top of the selection */ QList<int> m_selected_indexes; /*!< Selected items numbers */ }; /*! @brief The PlayListModel class provides a data model for the playlist. @@ -109,7 +101,7 @@ public: * @param name Playlist name. * @param parent QObject parent */ - PlayListModel(const QString &name, QObject *parent = nullptr); + explicit PlayListModel(const QString &name, QObject *parent = nullptr); /*! * Object destructor. */ @@ -594,13 +586,13 @@ private slots: void onTaskFinished(); private: - PlayListTrack* m_current_track; - PlayListTrack* m_stop_track; - int m_current; + PlayListTrack* m_current_track = nullptr; + PlayListTrack* m_stop_track = nullptr; + int m_current = 0; SimpleSelection m_selection; /*!< This flyweight object represents current selection. */ QQueue <PlayListTrack*> m_queued_songs; /*!< Songs in play queue. */ PlayState* m_play_state; /*!< Current playing state (Normal or Shuffle) */ - qint64 m_total_duration; + qint64 m_total_duration = 0; FileLoader *m_loader; QString m_name; PlayListContainer *m_container; diff --git a/src/qmmpui/playlistparser.cpp b/src/qmmpui/playlistparser.cpp index 6cf3dbadd..2aac76bda 100644 --- a/src/qmmpui/playlistparser.cpp +++ b/src/qmmpui/playlistparser.cpp @@ -23,6 +23,7 @@ #include <QList> #include <QDir> #include <QApplication> +#include <algorithm> #include <qmmp/qmmp.h> #include "playlistformat.h" #include "playlistparser.h" @@ -72,12 +73,9 @@ bool PlayListParser::isPlayList(const QString &url) PlayListFormat *PlayListParser::findByMime(const QString &mime) { loadFormats(); - for(PlayListFormat *format : qAsConst(*m_formats)) - { - if(format->properties().contentTypes.contains(mime)) - return format; - } - return nullptr; + auto it = std::find_if(m_formats->cbegin(), m_formats->cend(), + [mime](PlayListFormat *format) { return format->properties().contentTypes.contains(mime); } ); + return it == m_formats->cend() ? nullptr : *it; } PlayListFormat *PlayListParser::findByPath(const QString &filePath) @@ -161,12 +159,9 @@ QList<PlayListTrack *> PlayListParser::loadPlaylist(const QString &f_name) QList<PlayListTrack *> PlayListParser::loadPlaylist(const QString &fmt, const QByteArray &content) { - for(PlayListFormat *p : qAsConst(*m_formats)) - { - if(p->properties().shortName == fmt) - return p->decode(content); - } - return QList<PlayListTrack *>(); + auto it = std::find_if(m_formats->cbegin(), m_formats->cend(), + [fmt](PlayListFormat *format) { return format->properties().shortName == fmt; } ); + return it == m_formats->cend() ? QList<PlayListTrack *>() : (*it)->decode(content); } void PlayListParser::loadFormats() diff --git a/src/qmmpui/playlisttask.cpp b/src/qmmpui/playlisttask.cpp index 9933476a7..0ff0eecc2 100644 --- a/src/qmmpui/playlisttask.cpp +++ b/src/qmmpui/playlisttask.cpp @@ -112,24 +112,19 @@ static bool _filenameGreaterComparator(TrackField* s1, TrackField* s2) PlayListTask::PlayListTask(QObject *parent) : QThread(parent) { - m_reverted = true; - m_align_groups = false; - m_current_track = nullptr; - m_column = 0; - m_task = EMPTY; - m_sort_mode = PlayListModel::TITLE; - - m_sort_keys.insert(PlayListModel::TITLE, Qmmp::TITLE); - m_sort_keys.insert(PlayListModel::DISCNUMBER, Qmmp::DISCNUMBER); - m_sort_keys.insert(PlayListModel::ALBUM, Qmmp::ALBUM); - m_sort_keys.insert(PlayListModel::ARTIST, Qmmp::ARTIST); - m_sort_keys.insert(PlayListModel::ALBUMARTIST, Qmmp::ALBUMARTIST); - m_sort_keys.insert(PlayListModel::FILENAME, Qmmp::UNKNOWN); - m_sort_keys.insert(PlayListModel::PATH_AND_FILENAME, Qmmp::UNKNOWN); - m_sort_keys.insert(PlayListModel::DATE, Qmmp::YEAR); - m_sort_keys.insert(PlayListModel::TRACK, Qmmp::TRACK); - m_sort_keys.insert(PlayListModel::FILE_CREATION_DATE, Qmmp::UNKNOWN); - m_sort_keys.insert(PlayListModel::FILE_MODIFICATION_DATE, Qmmp::UNKNOWN); + m_sort_keys = { + { PlayListModel::TITLE, Qmmp::TITLE }, + { PlayListModel::DISCNUMBER, Qmmp::DISCNUMBER }, + { PlayListModel::ALBUM, Qmmp::ALBUM }, + { PlayListModel::ARTIST, Qmmp::ARTIST }, + { PlayListModel::ALBUMARTIST, Qmmp::ALBUMARTIST }, + { PlayListModel::FILENAME, Qmmp::UNKNOWN }, + { PlayListModel::PATH_AND_FILENAME, Qmmp::UNKNOWN }, + { PlayListModel::DATE, Qmmp::YEAR }, + { PlayListModel::TRACK, Qmmp::TRACK }, + { PlayListModel::FILE_CREATION_DATE, Qmmp::UNKNOWN }, + { PlayListModel::FILE_MODIFICATION_DATE, Qmmp::UNKNOWN } + }; } PlayListTask::~PlayListTask() @@ -335,10 +330,9 @@ void PlayListTask::run() if(m_align_groups) { QList<GroupdField *> groups; - bool found = false; for(int i = 0; i < m_fields.count(); ++i) { - found = false; + bool found = false; for(int j = groups.count() - 1; j >= 0; j--) { if(groups[j]->groupName == m_fields[i]->groupName) @@ -453,11 +447,11 @@ void PlayListTask::run() QList<int> indexes; for(int i = 0; i < l.count(); ++i) { - QFileInfo f = l[i]; - if(urls.contains(f.canonicalFilePath())) + QFileInfo info = l[i]; + if(urls.contains(info.canonicalFilePath())) indexes.append(i); else - urls.append(f.canonicalFilePath()); + urls.append(info.canonicalFilePath()); } //remove existing URLs for(int i = indexes.count() - 1; i >= 0; i--) @@ -466,10 +460,10 @@ void PlayListTask::run() //create new playlist tracks QStringList ignoredFiles; TrackInfo::Parts parts = QmmpUiSettings::instance()->useMetaData() ? TrackInfo::AllParts : TrackInfo::Parts(); - for(const QFileInfo &f : qAsConst(l)) + for(const QFileInfo &info : qAsConst(l)) { QStringList ignored; - for(TrackInfo *info : mm->createPlayList(f.canonicalFilePath(), parts, &ignored)) + for(TrackInfo *info : mm->createPlayList(info.canonicalFilePath(), parts, &ignored)) { m_new_tracks << new PlayListTrack(info); } @@ -522,12 +516,10 @@ QList<PlayListTrack *> PlayListTask::takeResults(PlayListTrack **current_track) } else if(m_task == REMOVE_INVALID || m_task == REMOVE_DUPLICATES || m_task == REFRESH) { - int index = 0; - PlayListTrack *t = nullptr; for (int i = m_indexes.count() - 1; i >= 0; i--) { - index = m_indexes.at(i); - t = m_tracks.takeAt(index); + int index = m_indexes.at(i); + PlayListTrack *t = m_tracks.takeAt(index); if(t == m_current_track) { if(m_tracks.isEmpty()) diff --git a/src/qmmpui/playlisttask_p.h b/src/qmmpui/playlisttask_p.h index 1b2aaca8d..1ce3f9f32 100644 --- a/src/qmmpui/playlisttask_p.h +++ b/src/qmmpui/playlisttask_p.h @@ -76,11 +76,11 @@ private: QList<int> m_indexes; QList <PlayListTrack *> m_new_tracks; PlayListTrack *m_current_track; - int m_sort_mode; - TaskType m_task; - bool m_reverted; - bool m_align_groups; - int m_column; + int m_sort_mode = PlayListModel::TITLE; + TaskType m_task = EMPTY; + bool m_reverted = true; + bool m_align_groups = false; + int m_column = 0; QHash<int, Qmmp::MetaData> m_sort_keys; }; diff --git a/src/qmmpui/playlisttrack.cpp b/src/qmmpui/playlisttrack.cpp index d44a3cd7b..0f89314e6 100644 --- a/src/qmmpui/playlisttrack.cpp +++ b/src/qmmpui/playlisttrack.cpp @@ -26,21 +26,15 @@ PlayListTrack::PlayListTrack() : TrackInfo(), PlayListItem() { - m_track_index = -1; m_settings = QmmpUiSettings::instance(); m_helper = MetaDataHelper::instance(); - m_refCount = 0; - m_sheduledForDeletion = false; } PlayListTrack::PlayListTrack(const PlayListTrack &other) : TrackInfo(other), PlayListItem() { - m_track_index = -1; m_settings = QmmpUiSettings::instance(); m_helper = MetaDataHelper::instance(); - m_refCount = 0; - m_sheduledForDeletion = false; m_formattedTitles = other.m_formattedTitles; m_group = other.m_group; @@ -54,11 +48,8 @@ PlayListTrack::PlayListTrack(const PlayListTrack &other) : TrackInfo(other), PlayListTrack::PlayListTrack(TrackInfo *info) : TrackInfo(*info), PlayListItem() { - m_track_index = -1; m_settings = QmmpUiSettings::instance(); m_helper = MetaDataHelper::instance(); - m_refCount = 0; - m_sheduledForDeletion = false; } PlayListTrack::~PlayListTrack() diff --git a/src/qmmpui/playlisttrack.h b/src/qmmpui/playlisttrack.h index 1229d063a..2d878e176 100644 --- a/src/qmmpui/playlisttrack.h +++ b/src/qmmpui/playlisttrack.h @@ -43,7 +43,7 @@ public: /*! * Constructs a new PlayListTrack that is a copy of the given track \b other */ - PlayListTrack(const PlayListTrack &other); + explicit PlayListTrack(const PlayListTrack &other); /*! * Constructs plalist item with given metadata. * @param info Media file information. @@ -129,9 +129,9 @@ private: QStringList m_titleFormats; QString m_groupFormat; QmmpUiSettings *m_settings; - int m_refCount; - int m_track_index; - bool m_sheduledForDeletion; + int m_refCount = 0; + int m_track_index = -1; + bool m_sheduledForDeletion = false; MetaDataHelper *m_helper; }; diff --git a/src/qmmpui/playstate_p.h b/src/qmmpui/playstate_p.h index 22e619875..221ea9cde 100644 --- a/src/qmmpui/playstate_p.h +++ b/src/qmmpui/playstate_p.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2007-2013 by Ilya Kotov * + * Copyright (C) 2007-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -62,7 +62,7 @@ public: { ; } - PlayState(PlayListModel* model); + explicit PlayState(PlayListModel* model); protected: /// Data model @@ -80,7 +80,7 @@ public: virtual bool next() override; virtual bool previous() override; virtual int nextIndex() override; - NormalPlayState(PlayListModel* model); + explicit NormalPlayState(PlayListModel* model); }; /*! @internal @@ -94,12 +94,12 @@ public: virtual bool previous() override; virtual int nextIndex() override; virtual void prepare() override; - ShufflePlayState(PlayListModel* model); + explicit ShufflePlayState(PlayListModel* model); virtual void resetState() override; private: /// Current shuffled index. - int m_shuffled_current; + int m_shuffled_current = 0; /// List of indexes used for shuffled playing. QList<int> m_shuffled_indexes; diff --git a/src/qmmpui/qmmpuiplugincache.cpp b/src/qmmpui/qmmpuiplugincache.cpp index c90b49386..011cbfff0 100644 --- a/src/qmmpui/qmmpuiplugincache.cpp +++ b/src/qmmpui/qmmpuiplugincache.cpp @@ -32,12 +32,6 @@ QmmpUiPluginCache::QmmpUiPluginCache(const QString &file, QSettings *settings) { - m_error = false; - m_instance = nullptr; - m_generalFactory = nullptr; - m_uiFactory = nullptr; - m_fileDialogFactory = nullptr; - m_priority = 0; bool update = false; QFileInfo info(file); m_path = info.QFileInfo::canonicalFilePath(); @@ -102,13 +96,8 @@ QmmpUiPluginCache::QmmpUiPluginCache(const QString &file, QSettings *settings) } QmmpUiPluginCache::QmmpUiPluginCache(QObject *instance) -{ - m_error = false; +{ m_instance = instance; - m_generalFactory = nullptr; - m_uiFactory = nullptr; - m_fileDialogFactory = nullptr; - m_priority = 0; if(GeneralFactory *factory = generalFactory()) { diff --git a/src/qmmpui/qmmpuiplugincache_p.h b/src/qmmpui/qmmpuiplugincache_p.h index 4454b3045..db5c149d6 100644 --- a/src/qmmpui/qmmpuiplugincache_p.h +++ b/src/qmmpui/qmmpuiplugincache_p.h @@ -36,7 +36,7 @@ class QmmpUiPluginCache { public: QmmpUiPluginCache(const QString &file, QSettings *settings); - QmmpUiPluginCache(QObject *instance); + explicit QmmpUiPluginCache(QObject *instance); const QString shortName() const; const QString file() const; @@ -54,12 +54,12 @@ private: void loadTranslation(const QString &translation); QString m_path; QString m_shortName; - bool m_error; - QObject *m_instance; - GeneralFactory *m_generalFactory; - UiFactory *m_uiFactory; - FileDialogFactory *m_fileDialogFactory; - int m_priority; + bool m_error = false; + QObject *m_instance = nullptr; + GeneralFactory *m_generalFactory = nullptr; + UiFactory *m_uiFactory = nullptr; + FileDialogFactory *m_fileDialogFactory = nullptr; + int m_priority = 0; }; #endif // QMMPUIPLUGINCACHE_P_H diff --git a/src/qmmpui/tageditor.cpp b/src/qmmpui/tageditor.cpp index ff01c5fb3..96dc5d10a 100644 --- a/src/qmmpui/tageditor.cpp +++ b/src/qmmpui/tageditor.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009-2016 by Ilya Kotov * + * Copyright (C) 2009-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -26,7 +26,6 @@ TagEditor::TagEditor(TagModel *tagModel, QWidget *parent) : QWidget(parent), m_u { m_ui->setupUi(this); m_tagModel = tagModel; - m_discs = -1; //check available keys m_ui->titleLineEdit->setEnabled(m_tagModel->keys().contains(Qmmp::TITLE)); m_ui->artistLineEdit->setEnabled(m_tagModel->keys().contains(Qmmp::ARTIST)); diff --git a/src/qmmpui/tageditor_p.h b/src/qmmpui/tageditor_p.h index 1e332086c..dc439f0f7 100644 --- a/src/qmmpui/tageditor_p.h +++ b/src/qmmpui/tageditor_p.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009-2016 by Ilya Kotov * + * Copyright (C) 2009-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -36,7 +36,7 @@ class TagEditor : public QWidget { Q_OBJECT public: - TagEditor(TagModel *tagModel, QWidget *parent = nullptr); + explicit TagEditor(TagModel *tagModel, QWidget *parent = nullptr); ~TagEditor(); void save(); @@ -45,7 +45,7 @@ private: void readTag(); Ui::TagEditor *m_ui; TagModel *m_tagModel; - int m_discs; //Number of discs + int m_discs = -1; //Number of discs }; diff --git a/src/qmmpui/tagupdater.cpp b/src/qmmpui/tagupdater.cpp index 1feb7cb21..e0c3ed4e6 100644 --- a/src/qmmpui/tagupdater.cpp +++ b/src/qmmpui/tagupdater.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2013 by Ilya Kotov * + * Copyright (C) 2013-2020 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -20,9 +20,10 @@ #include "tagupdater_p.h" -TagUpdater::TagUpdater(QObject* o, QList<PlayListTrack *> tracks) : m_observable(o) +TagUpdater::TagUpdater(QObject* o, QList<PlayListTrack *> tracks) : + m_observable(o), + m_tracks(tracks) { - m_tracks = tracks; for(PlayListTrack *t : qAsConst(m_tracks)) t->beginUsage(); connect(m_observable, SIGNAL(destroyed(QObject *)),SLOT(updateTags())); diff --git a/src/qmmpui/uihelper.cpp b/src/qmmpui/uihelper.cpp index d2ada8e9b..6e800b831 100644 --- a/src/qmmpui/uihelper.cpp +++ b/src/qmmpui/uihelper.cpp @@ -26,6 +26,7 @@ #include <QApplication> #include <QMessageBox> #include <QFileInfo> +#include <algorithm> #include <qmmp/soundcore.h> #include <qmmp/metadatamanager.h> #include "filedialog.h" @@ -46,7 +47,6 @@ UiHelper::UiHelper(QObject *parent) : QObject(parent) { m_instance = this; - m_jumpDialog = nullptr; General::create(parent); QSettings settings(Qmmp::configFile(), QSettings::IniFormat); m_lastDir = settings.value("General/last_dir", QDir::homePath()).toString(); //last directory @@ -60,12 +60,9 @@ UiHelper::~UiHelper() bool UiHelper::visibilityControl() { - for(const GeneralFactory *factory : General::enabledFactories()) - { - if (factory->properties().visibilityControl) - return true; - } - return false; + const QList<GeneralFactory *> factories = General::enabledFactories(); + return std::any_of(factories.cbegin(), factories.cend(), + [](GeneralFactory *factory){ return factory->properties().visibilityControl; }); } void UiHelper::addAction(QAction *action, MenuType type) @@ -292,7 +289,7 @@ UiHelper* UiHelper::instance() void UiHelper::removeAction(QObject *action) { - removeAction((QAction *) action); + removeAction(qobject_cast<QAction *>(action)); } void UiHelper::addSelectedFiles(const QStringList &files, bool play) diff --git a/src/qmmpui/uiloader.cpp b/src/qmmpui/uiloader.cpp index 8a3ef0c7a..4d64c23bf 100644 --- a/src/qmmpui/uiloader.cpp +++ b/src/qmmpui/uiloader.cpp @@ -20,6 +20,7 @@ #include <QDir> #include <qmmp/qmmp.h> +#include <algorithm> #include "qmmpuiplugincache_p.h" #include "uiloader.h" @@ -74,12 +75,9 @@ QStringList UiLoader::names() QString UiLoader::file(UiFactory *factory) { loadPlugins(); - for(const QmmpUiPluginCache *item : qAsConst(*m_cache)) - { - if(item->shortName() == factory->properties().shortName) - return item->file(); - } - return QString(); + auto it = std::find_if(m_cache->cbegin(), m_cache->cend(), + [factory](QmmpUiPluginCache *item) { return item->shortName() == factory->properties().shortName; } ); + return it == m_cache->cend() ? QString() : (*it)->file(); } void UiLoader::select(UiFactory* factory) @@ -90,14 +88,10 @@ void UiLoader::select(UiFactory* factory) void UiLoader::select(const QString &name) { loadPlugins(); - for(const QmmpUiPluginCache *item : qAsConst(*m_cache)) + if(std::any_of(m_cache->cbegin(), m_cache->cend(), [name](QmmpUiPluginCache *item) { return item->shortName() == name; } )) { - if(item->shortName() == name) - { - QSettings settings (Qmmp::configFile(), QSettings::IniFormat); - settings.setValue ("Ui/current_plugin", name); - break; - } + QSettings settings (Qmmp::configFile(), QSettings::IniFormat); + settings.setValue ("Ui/current_plugin", name); } } diff --git a/src/qmmpui/winfileassoc.cpp b/src/qmmpui/winfileassoc.cpp index 99e82e7e8..1d99ea933 100644 --- a/src/qmmpui/winfileassoc.cpp +++ b/src/qmmpui/winfileassoc.cpp @@ -55,10 +55,8 @@ #define SHCNE_ASSOCHANGED __MSABI_LONG(0x08000000) #endif -WinFileAssoc::WinFileAssoc(const QString AppName) -{ - m_AppName = AppName; -} +WinFileAssoc::WinFileAssoc(const QString AppName) : m_AppName(AppName) +{} // Associates all extensions in the fileExtensions list with current app. // Returns number of extensions processed successfully. diff --git a/src/qmmpui/winfileassocpage.cpp b/src/qmmpui/winfileassocpage.cpp index 9b1fef989..4f0484b0e 100644 --- a/src/qmmpui/winfileassocpage.cpp +++ b/src/qmmpui/winfileassocpage.cpp @@ -2,7 +2,7 @@ * Based on smplayer - GUI front-end for mplayer * * * * Copyright (C) 2006-2014 Ricardo Villalba <rvm@users.sourceforge.net> * - * Copyright (C) 2014 Ilya Kotov forkotov02@ya.ru * + * Copyright (C) 2014-2020 Ilya Kotov forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -98,7 +98,7 @@ void WinFileAssocPage::loadAssociations() } } -int WinFileAssocPage::ProcessAssociations(QStringList& current) +int WinFileAssocPage::ProcessAssociations(const QStringList ¤t) { WinFileAssoc RegAssoc; return RegAssoc.CreateFileAssociations(current); diff --git a/src/qmmpui/winfileassocpage_p.h b/src/qmmpui/winfileassocpage_p.h index b805cf1ab..3175f13ed 100644 --- a/src/qmmpui/winfileassocpage_p.h +++ b/src/qmmpui/winfileassocpage_p.h @@ -48,7 +48,7 @@ private slots: private: void loadAssociations(); void saveAssociations(); - int ProcessAssociations(QStringList& current); + int ProcessAssociations(const QStringList ¤t); void createHelp(); QStringList m_extensions; QStringList m_regExtensions; |
