From f942c5c9e1fe6d8d1fdddb3f5864251f11dd4818 Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 5 May 2017 20:35:55 +0200 Subject: Factor out file info Implement function for displaying file info from TagLib. --- playerwidget.cpp | 30 ++++++++++++++++++------------ playerwidget.h | 3 +++ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/playerwidget.cpp b/playerwidget.cpp index 714e47d..78b2531 100644 --- a/playerwidget.cpp +++ b/playerwidget.cpp @@ -26,7 +26,6 @@ #include #include -#include #include #include #include @@ -885,6 +884,23 @@ void PlayerWidget::adjustVolume(int by){ mVolumeSlider->setValue(newVol); } +void PlayerWidget::fillWithText(QTextEdit *te, const TagLib::FileRef &fr){ + QString artist = QString::fromStdWString(fr.tag()->artist().toWString()); + QString album = QString::fromStdWString(fr.tag()->album().toWString()); + QString title = QString::fromStdWString(fr.tag()->title().toWString()); + QString genre = QString::fromStdWString(fr.tag()->genre().toWString()); + quint16 track = fr.tag()->track(); + quint16 year = fr.tag()->year(); + te->clear(); + te->append(QString("%1 %2").arg(tr("Artist:"), -20).arg(artist)); + te->append(QString("%1 %2").arg(tr("Album:"), -20).arg(album)); + te->append(QString("%1 %2").arg(tr("Title:"), -20).arg(title)); + te->append(QString("%1 %2").arg(tr("Genre:"), -20).arg(genre)); + te->append(QString("%1 %2").arg(tr("Track:"), -20).arg(track, 3, 10, QChar('0'))); + te->append(QString("%1 %2").arg(tr("Year:"), -20).arg(year, 4, 10)); + te->append(QString("%1 %2 kb/s").arg(tr("Bitrate:"), -20).arg(fr.audioProperties()->bitrate(), 4, 10, QChar('0'))); +} + void PlayerWidget::recurse(const QModelIndex &parent){ for(int i = 0; i < mCurrentModel->rowCount(parent); ++i){ QModelIndex cur = mCurrentModel->index(i, 0, parent); @@ -1139,25 +1155,15 @@ void PlayerWidget::playCurrent(const QModelIndex &index){ void PlayerWidget::play(const QString &fullPath){ mPlayer->setMedia(QUrl::fromLocalFile(fullPath)); - mCurrentTE->clear(); TagLib::FileRef file(QString(fullPath).toUtf8()); + fillWithText(mCurrentTE, file); if(file.isNull()){ return; } QString artist = QString::fromStdWString(file.tag()->artist().toWString()); QString album = QString::fromStdWString(file.tag()->album().toWString()); QString title = QString::fromStdWString(file.tag()->title().toWString()); - QString genre = QString::fromStdWString(file.tag()->genre().toWString()); - quint16 track = file.tag()->track(); - quint16 year = file.tag()->year(); mNowPlayingL->setText(title); - mCurrentTE->append(QString("%1 %2").arg(tr("Artist:"), -20).arg(artist)); - mCurrentTE->append(QString("%1 %2").arg(tr("Album:"), -20).arg(album)); - mCurrentTE->append(QString("%1 %2").arg(tr("Title:"), -20).arg(title)); - mCurrentTE->append(QString("%1 %2").arg(tr("Genre:"), -20).arg(genre)); - mCurrentTE->append(QString("%1 %2").arg(tr("Track:"), -20).arg(track, 3, 10, QChar('0'))); - mCurrentTE->append(QString("%1 %2").arg(tr("Year:"), -20).arg(year, 4, 10)); - mCurrentTE->append(QString("%1 %2 kb/s").arg(tr("Bitrate:"), -20).arg(file.audioProperties()->bitrate(), 4, 10, QChar('0'))); int length = file.audioProperties()->lengthInSeconds(); mDurSecs = length; mSongSlider->setMinimum(0); diff --git a/playerwidget.h b/playerwidget.h index eb71677..fb62240 100644 --- a/playerwidget.h +++ b/playerwidget.h @@ -5,6 +5,8 @@ #include #include +#include + class QStandardItemModel; class QStandardItem; class QLineEdit; @@ -96,6 +98,7 @@ class PlayerWidget : public QWidget { void advance(int numSongs); void expandRecursive(const QModelIndex &idx); void adjustVolume(int by); + void fillWithText(QTextEdit *te, const TagLib::FileRef &fr); QLineEdit *mSearch; QLineEdit *mDir; QMediaPlayer *mPlayer; -- cgit v1.2.3-70-g09d2