diff options
author | Arno <am@disconnect.de> | 2013-03-17 09:30:45 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2013-03-17 09:30:45 +0100 |
commit | ffe0b7556907bc4c6dfaed87a98e7fe68378cfa2 (patch) | |
tree | 392ed3498245ef97691959dbb2f648f1d03c01e6 /smdirmodel.cpp | |
parent | 744c94e9a1197068457cc52dde57472cb89e1819 (diff) | |
download | SheMov-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.cpp | 33 |
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); |