From 6358d41f31edd6487ee76232c55d5b7385426be3 Mon Sep 17 00:00:00 2001 From: Robert Bieber Date: Thu, 8 Jul 2010 06:54:08 +0000 Subject: Theme Editor: Began working on special cases for device option panel. Implemented path info for current and next file git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27346 a1c6a512-1295-4272-9138-f99709370657 --- utils/themeeditor/gui/devicestate.cpp | 56 +++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'utils/themeeditor/gui/devicestate.cpp') diff --git a/utils/themeeditor/gui/devicestate.cpp b/utils/themeeditor/gui/devicestate.cpp index d87cd70..12198f5 100644 --- a/utils/themeeditor/gui/devicestate.cpp +++ b/utils/themeeditor/gui/devicestate.cpp @@ -198,6 +198,36 @@ DeviceState::~DeviceState() QVariant DeviceState::data(QString tag, int paramCount, skin_tag_parameter *params) { + /* Handling special cases */ + if(tag.toLower() == "fm") + { + QString path = tag[0].isLower() + ? data("file").toString() : data("nextfile").toString(); + return fileName(path, true); + } + else if(tag.toLower() == "fn") + { + QString path = tag[0].isLower() + ? data("file").toString() : data("nextfile").toString(); + return fileName(path, false); + } + else if(tag.toLower() == "fp") + { + if(tag[0].isLower()) + return data("file").toString(); + else + return data("nextfile").toString(); + } + else if(tag.toLower() == "d") + { + QString path = tag[0].isLower() + ? data("file").toString() : data("nextfile").toString(); + if(paramCount > 0) + return directory(path, params[0].data.numeric); + else + return QVariant(); + } + QPair found = inputs.value(tag, QPair(Slide, 0)); @@ -279,3 +309,29 @@ void DeviceState::input() { emit settingsChanged(); } + +QString DeviceState::fileName(QString path, bool extension) +{ + path = path.split("/").last(); + if(!extension) + { + QString sum; + QStringList name = path.split("."); + for(int i = 0; i < name.count() - 1; i++) + sum.append(name[i]); + return sum; + } + else + { + return path; + } +} + +QString DeviceState::directory(QString path, int level) +{ + QStringList dirs = path.split("/"); + int index = dirs.count() - 1 - level; + if(index < 0) + index = 0; + return dirs[index]; +} -- cgit v1.1