X-Git-Url: http://ecere.com/cgi-bin/gitweb.cgi?p=ede;a=blobdiff_plain;f=libede%2Fsrc%2FFileSystemBox.ec;h=09466a9e505dd28394fd79152a80f4e48ce7b7d9;hp=201b508621227e9e833eba544b5336d0412a7100;hb=2a53b84560ce75cf21f3cb261181b12ba973559d;hpb=83e8917d600247319d0cbe9dc79991d7bef99638 diff --git a/libede/src/FileSystemBox.ec b/libede/src/FileSystemBox.ec index 201b508..09466a9 100644 --- a/libede/src/FileSystemBox.ec +++ b/libede/src/FileSystemBox.ec @@ -201,7 +201,7 @@ public: } get { return bits.treeBranches; } }; - property bool navigateFolders { set { bits.navigateFolders = value; bits.foldersOnly = !value; } get { return bits.navigateFolders; } }; + property bool navigateFolders { set { bits.navigateFolders = value; bits.filesOnly = !value; } get { return bits.navigateFolders; } }; property FileSystemNode node { @@ -536,6 +536,7 @@ private: void LoadTree() { + bool isRoot = !strcmp(path, "/"); //char startPath[MAX_LOCATION]; FileSystemNode parent; FileSystemNode node; @@ -550,53 +551,58 @@ private: delete root; #ifdef __WIN32__ - root = FileSystemNode { type = computer, loaded = true, childrenLoaded = true }; - root.name = rootName; - AddTreeNode(root, true, false, null); - #else - root = MakeFileSystemNode(FileStats { attribs = FileExists(path)}, path, path, bits.previewPictures, displaySystem); - //root.name = "/"; - root.type = computer; - AddTreeNode(root, false, true, null); - #endif - - #ifdef __WIN32__ - while(listing.Find()) + if(isRoot) { - int len = strlen(listing.name); - char info[MAX_LOCATION]; - char name[MAX_LOCATION]; - if(listing.stats.attribs.isDrive && - len > 3 && !strncmp(&listing.name[1], ": [", 3)) - { - strncpy(name, listing.name, 2); - name[2] = 0; - strncpy(info, &listing.name[4], len - 5); - info[len - 5] = 0; - } - else + root = FileSystemNode { loaded = true, childrenLoaded = true }; + AddTreeNode(root, true, false, null); + while(listing.Find()) { - strcpy(name, listing.name); - info[0] = 0; + int len = strlen(listing.name); + char info[MAX_LOCATION]; + char name[MAX_LOCATION]; + if(listing.stats.attribs.isDrive && + len > 3 && !strncmp(&listing.name[1], ": [", 3)) + { + strncpy(name, listing.name, 2); + name[2] = 0; + strncpy(info, &listing.name[4], len - 5); + info[len - 5] = 0; + } + else + { + strcpy(name, listing.name); + info[0] = 0; + } + + parent = MakeFileSystemNode(listing.stats, name, listing.path, bits.previewPictures, displaySystem); + if(info[0]) + parent.info = CopyString(info); + parent.loaded = true; + AddTreeNode(parent, !listing.stats.attribs.isDirectory, listing.stats.attribs.isDirectory, root); + if(!listing.stats.attribs.isDirectory) + parent.childrenLoaded = true; } - parent = MakeFileSystemNode(listing.stats, name); - if(info[0]) - parent.info = CopyString(info); - parent.loaded = true; - AddTreeNode(parent, !listing.stats.attribs.isDirectory, listing.stats.attribs.isDirectory, root, this); - if(!listing.stats.attribs.isDirectory) - parent.childrenLoaded = true; + node = FileSystemNode { name = msNetwork, type = network }; + AddTreeNode(node, false, true, null); + node.row.collapsed = true; } - - node = FileSystemNode { name = msNetwork, type = network }; - AddTreeNode(node, false, true, null, this); - node.row.collapsed = true; - Sort(nameField, 1); - SelectRow(root.row); + else #endif - LoadTreeNode(root); + { + root = MakeFileSystemNode(FileStats { attribs = FileExists(path)}, path, path, bits.previewPictures, displaySystem); + AddTreeNode(root, false, true, null); + LoadTreeNode(root); + } + + if(isRoot) + { + root.type = computer; + root.name = rootName; + } + list.Sort(nameField, 1); + list.SelectRow(root.row); } void LoadTreeNode(FileSystemNode node) @@ -1802,11 +1808,11 @@ public: } } else -#ifdef __WIN32__ +/*#ifdef __WIN32__ strcpy(outputPath, "/"); -#else +#else*/ strcpy(outputPath, name); -#endif +//#endif }