summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--wayland/democompositor/apps/applistmodel.cpp12
-rw-r--r--wayland/democompositor/apps/applistmodel.h2
2 files changed, 14 insertions, 0 deletions
diff --git a/wayland/democompositor/apps/applistmodel.cpp b/wayland/democompositor/apps/applistmodel.cpp
index 542f8a7..10c4c15 100644
--- a/wayland/democompositor/apps/applistmodel.cpp
+++ b/wayland/democompositor/apps/applistmodel.cpp
@@ -52,6 +52,8 @@
#include "appparser.h"
#include "applog.h"
+#include <QtCore/QDirIterator>
+
static QHash<int, QByteArray> modelRoles()
{
QHash<int, QByteArray> roles;
@@ -116,6 +118,16 @@ void AppListModel::addFile(const QString& fileName)
endResetModel();
}
+void AppListModel::addDir(const QString& dirName)
+{
+ QDirIterator dirIt(dirName, QDir::Files | QDir::NoDotAndDotDot | QDir::Readable);
+
+ beginResetModel();
+ while (dirIt.hasNext())
+ doAddFile(dirIt.next());
+ endResetModel();
+}
+
void AppListModel::doAddFile(const QString& fileName)
{
bool ok;
diff --git a/wayland/democompositor/apps/applistmodel.h b/wayland/democompositor/apps/applistmodel.h
index f8fc3e0..1cd79b4 100644
--- a/wayland/democompositor/apps/applistmodel.h
+++ b/wayland/democompositor/apps/applistmodel.h
@@ -78,7 +78,9 @@ public:
QVariant data(const QModelIndex& index, int role) const Q_DECL_OVERRIDE;
QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE;
+public Q_SLOTS:
void addFile(const QString& fileName);
+ void addDir(const QString& dirName);
private:
void doAddFile(const QString& fileName);