summaryrefslogtreecommitdiffstats
path: root/smdirmodel.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2013-03-17 09:30:45 +0100
committerArno <am@disconnect.de>2013-03-17 09:30:45 +0100
commitffe0b7556907bc4c6dfaed87a98e7fe68378cfa2 (patch)
tree392ed3498245ef97691959dbb2f648f1d03c01e6 /smdirmodel.cpp
parent744c94e9a1197068457cc52dde57472cb89e1819 (diff)
downloadSheMov-ffe0b7556907bc4c6dfaed87a98e7fe68378cfa2.tar.gz
SheMov-ffe0b7556907bc4c6dfaed87a98e7fe68378cfa2.tar.bz2
SheMov-ffe0b7556907bc4c6dfaed87a98e7fe68378cfa2.zip
Icons for SmDirModel
Made Icons for SmDirModel configurable. For now it's folders, movies, pictures and others.
Diffstat (limited to 'smdirmodel.cpp')
-rw-r--r--smdirmodel.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/smdirmodel.cpp b/smdirmodel.cpp
index 9b35706..a02c47c 100644
--- a/smdirmodel.cpp
+++ b/smdirmodel.cpp
@@ -9,12 +9,15 @@
#include <QDateTime>
#include <QFile>
#include <QTimer>
+#include <QSettings>
+#include <QHash>
#include <sys/stat.h>
#include "smdirmodel.h"
#include "smdirwatcher.h"
#include "smtreeitem.h"
+#include "smglobals.h"
#include "helper.h"
SmDirModel::SmDirModel(const QStringList &headers, QObject *parent) : SmTreeModel(headers, parent), mHeaders(headers){
@@ -25,6 +28,7 @@ SmDirModel::SmDirModel(const QStringList &headers, QObject *parent) : SmTreeMode
mRunTimer->setInterval(2000);
connect(mRunTimer, SIGNAL(timeout()), mWatch, SLOT(start()));
mRunTimer->start();
+ readSettings();
}
SmDirModel::~SmDirModel(){
@@ -54,6 +58,18 @@ QVariant SmDirModel::data(const QModelIndex &index, int role) const{
return i->data(Bitrate);
case FullPathRole:
return i->data(FullPath);
+ case Qt::DecorationRole: {
+ if(index.column() == 0){
+ QStringList mime = i->data(Type).toString().split('/');
+ if(mime.at(0) == "inode"){
+ return mIcons.value("folder");
+ }
+ if(!mIcons.contains(mime.at(0))){
+ return mIcons.value("other");
+ }
+ return mIcons.value(mime.at(0).toLower());
+ }
+ }
default:
return SmTreeModel::data(index, role);
}
@@ -122,6 +138,23 @@ void SmDirModel::dirEvent(const QString &file, int e){
}
}
+void SmDirModel::readSettings(){
+ const QHash<QString, QString> icons = SmGlobals::instance()->icons();
+ QSettings s;
+ QString iconName = s.value("ui/foldericon").toString();
+ mIcons.insert("folder", QIcon(icons.value(iconName)));
+ iconName = s.value("ui/movieicon").toString();
+ mIcons.insert("video", QIcon(icons.value(iconName)));
+ iconName = s.value("ui/pictureicon").toString();
+ mIcons.insert("image", QIcon(icons.value(iconName)));
+ iconName = s.value("ui/othericon").toString();
+ mIcons.insert("other", QIcon(icons.value(iconName)));
+}
+
+void SmDirModel::refresh(){
+ populate();
+}
+
void SmDirModel::populate(){
SmTreeItem *root = new SmTreeItem(mHeaders.size());
QDir d = QDir(mCur);