diff --git a/LenaPi/models/MusicModel.cpp b/LenaPi/models/MusicModel.cpp index 2fbd3a9..530c558 100644 --- a/LenaPi/models/MusicModel.cpp +++ b/LenaPi/models/MusicModel.cpp @@ -24,20 +24,9 @@ void MusicModel::init(NavigationItemModel *item) emit currentItemChanged(); reset(); + clearMediaList(); - while(mMedia->count() > 0){ - mMedia->removeMedia(0); - } - - auto dir = QDir(mCurrentItem->getPath()); - if(!dir.exists()) return; - - auto fileNames = dir.entryList(QDir::Files); - for(auto file:fileNames){ - if(file.endsWith(".flac") || file.endsWith(".mp3")){ - mMedia->addMedia(new VlcMedia(dir.filePath(file), true, mVlc)); - } - } + readMedia(mCurrentItem->getPath()); setMediaTitle(mMedia->at(0)); } @@ -176,12 +165,32 @@ void MusicModel::reset() emit mediaLengthChanged(); } +void MusicModel::clearMediaList() +{ + while(mMedia->count() > 0){ + mMedia->removeMedia(0); + } +} + +void MusicModel::readMedia(const QString& path) +{ + auto dir = QDir(path); + if(!dir.exists()) return; + + auto fileNames = dir.entryList(QDir::Files); + for(auto file:fileNames){ + if(file.endsWith(".flac") || file.endsWith(".mp3")){ + mMedia->addMedia(new VlcMedia(dir.filePath(file), true, mVlc)); + } + } +} + QString MusicModel::timeToString(int time) { int sec = time/1000; int min = sec/60; sec = sec-min*60; - QString secStr = sec < 10 ? "0"+QString::number(sec) : QString::number(sec); + QString secStr = (sec < 10) ? "0"+QString::number(sec) : QString::number(sec); return QString::number(min) + ":" + secStr; } diff --git a/LenaPi/models/MusicModel.h b/LenaPi/models/MusicModel.h index a680e31..88504ee 100644 --- a/LenaPi/models/MusicModel.h +++ b/LenaPi/models/MusicModel.h @@ -67,8 +67,11 @@ public slots: private: void reset(); - QString timeToString(int time); + void clearMediaList(); + void readMedia(const QString& path); void setMediaTitle(VlcMedia* media); + QString timeToString(int time); + bool mIsPlaying = false; bool mHasNext = false;