From a93d2e811f26d291d2c1983318f585906c9b6d46 Mon Sep 17 00:00:00 2001 From: Jonas Suhr Christensen Date: Sat, 4 May 2013 19:27:32 +0200 Subject: Attempt to handle windows path in filebrowser --- plugingui/filebrowser.cc | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) (limited to 'plugingui/filebrowser.cc') diff --git a/plugingui/filebrowser.cc b/plugingui/filebrowser.cc index 21e3cc8..bb6f5de 100644 --- a/plugingui/filebrowser.cc +++ b/plugingui/filebrowser.cc @@ -97,15 +97,34 @@ static void changeDir(void *ptr) { lb->clear(); std::vector items; - Directory::EntryList entries = dir->entryList(); - for(Directory::EntryList::iterator it = entries.begin(); - it != entries.end(); it++) { - GUI::ListBoxBasic::Item item; - std::string name = *it; - item.name = name; - item.value = name; - items.push_back(item); + +#ifdef WIN32 + if(Directory::isRoot(dir->path()) && value == "..") { + DEBUG(filebrowser, "Showing partitions...\n"); + Directory::DriveList entries = dir->drives(); + for(Directory::DriveList::iterator it = entries.begin(); + it != entries.end(); it++) { + GUI::ListBoxBasic::Item item; + std::string name = (*it).name; + item.name = name; + item.value = name; + items.push_back(item); + } } + else { +#endif + Directory::EntryList entries = dir->entryList(); + for(Directory::EntryList::iterator it = entries.begin(); + it != entries.end(); it++) { + GUI::ListBoxBasic::Item item; + std::string name = *it; + item.name = name; + item.value = name; + items.push_back(item); + } +#ifdef WIN32 + } +#endif lb->addItems(items); } -- cgit v1.2.3