summaryrefslogtreecommitdiffstats
path: root/coveritem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'coveritem.cpp')
-rw-r--r--coveritem.cpp40
1 files changed, 39 insertions, 1 deletions
diff --git a/coveritem.cpp b/coveritem.cpp
index f29e81c..f42afc5 100644
--- a/coveritem.cpp
+++ b/coveritem.cpp
@@ -6,7 +6,45 @@
*/
#include <QString>
+#include <QSettings>
#include "coveritem.h"
-CoverItem::CoverItem(const QString &filename, const QString &type, const QString &md5) : mFilename(filename), mType(type), mMd5(md5) {};
+CoverItem::CoverItem(const QString &filename, const QString &type, const QString &md5) : mFilename(filename), mType(type), mMd5(md5){
+ setPath();
+}
+
+CoverItem::CoverItem() {};
+
+void CoverItem::setFileName(const QString &filename){
+ mFilename = filename;
+ setPath();
+}
+
+void CoverItem::setMd5(const QString &md5){
+ mMd5 = md5;
+ setPath();
+}
+
+void CoverItem::setFullPath(const QString &fullPath){
+ if(fullPath.contains('/')){
+ mFullPath = fullPath;
+ QString wc = fullPath;
+ int idx = fullPath.lastIndexOf('/') + 1;
+ mFilename = wc.remove(0, idx);
+ }
+}
+
+void CoverItem::setPath(){
+ if(mFilename.isEmpty() || mMd5.isEmpty()){
+ return;
+ }
+ // assume it's the full path
+ if(mFilename.contains('/')){
+ return;
+ }
+ QSettings s;
+ QString archive = s.value("paths/archivedir").toString();
+ mFullPath = QString("%1/%2/%3/%4").arg(archive).arg(mMd5[0]).arg(mMd5[1]).arg(mFilename);
+}
+