diff options
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); |