diff options
| author | Robert Bieber <robby@bieberphoto.com> | 2010-06-09 20:28:51 +0000 |
|---|---|---|
| committer | Robert Bieber <robby@bieberphoto.com> | 2010-06-09 20:28:51 +0000 |
| commit | 1cc95c541bd7bafe5d33ef0145887cb7ddd8a6d7 (patch) | |
| tree | f1e3080c0a876e95b4ba76b855e54a338bd55300 /utils/themeeditor/projectmodel.cpp | |
| parent | 70b9ab484f5cddea5cb9a94c93dfbbdf6eea472a (diff) | |
| download | rockbox-1cc95c541bd7bafe5d33ef0145887cb7ddd8a6d7.zip rockbox-1cc95c541bd7bafe5d33ef0145887cb7ddd8a6d7.tar.gz rockbox-1cc95c541bd7bafe5d33ef0145887cb7ddd8a6d7.tar.bz2 rockbox-1cc95c541bd7bafe5d33ef0145887cb7ddd8a6d7.tar.xz | |
Theme Editor: Got project viewer displaying WPS files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26731 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils/themeeditor/projectmodel.cpp')
| -rw-r--r-- | utils/themeeditor/projectmodel.cpp | 44 |
1 files changed, 42 insertions, 2 deletions
diff --git a/utils/themeeditor/projectmodel.cpp b/utils/themeeditor/projectmodel.cpp index aeca1c7..d3a338e 100644 --- a/utils/themeeditor/projectmodel.cpp +++ b/utils/themeeditor/projectmodel.cpp @@ -23,6 +23,11 @@ #include "projectmodel.h" #include "projectfiles.h" +#include <QFile> +#include <QTextStream> +#include <QHash> +#include <QDir> + ProjectModel::ProjectModel(QString config, QObject *parent) : QAbstractItemModel(parent) { @@ -60,7 +65,7 @@ QModelIndex ProjectModel::parent(const QModelIndex &child) const ProjectNode* foundParent = static_cast<ProjectNode*> (child.internalPointer())->parent(); - if(foundParent == 0) + if(foundParent == root) return QModelIndex(); return createIndex(foundParent->row(), 0, foundParent); @@ -118,7 +123,42 @@ bool ProjectModel::setData(const QModelIndex &index, const QVariant &value, /* Constructor and destructor for the root class */ ProjectRoot::ProjectRoot(QString config) { - children.append(new ProjectFiles(this)); + /* Reading the config file */ + QFile cfg(config); + cfg.open(QFile::ReadOnly | QFile::Text); + if(!cfg.isReadable()) + return; + + QTextStream fin(&cfg); + + /* Storing the base directory */ + QString confDir = config; + confDir.chop(confDir.length() - confDir.lastIndexOf('/') - 1); + QDir base(confDir); + base.cdUp(); + settings.insert("themebase", base.canonicalPath()); + + while(!fin.atEnd()) + { + QString current = fin.readLine(); + QList<QString> parts = current.split(':'); + + /* A valid setting has at least one : */ + if(parts.count() < 2) + continue; + + QString setting; + for(int i = 1; i < parts.count(); i++) + setting.append(parts[i].trimmed()); + + settings.insert(parts[0].trimmed(), setting); + } + + cfg.close(); + + /* Showing the files */ + children.append(new ProjectFiles(settings, this)); + } ProjectRoot::~ProjectRoot() |