X-Git-Url: http://ecere.com/cgi-bin/gitweb.cgi?p=ede;a=blobdiff_plain;f=libede%2Fsrc%2FFileSystemBox.ec;h=e184693e9848f0e13e5790a52f5ea0a2035ab1ce;hp=a4bfd345fc490a11bcfb601e97772566aec659bc;hb=47c68b7269adbb7d1b22fefb8b4cecbd3afb1c0c;hpb=4fa4d899642bfbbdcfde6b84fc6d742364321b8d diff --git a/libede/src/FileSystemBox.ec b/libede/src/FileSystemBox.ec index a4bfd34..e184693 100644 --- a/libede/src/FileSystemBox.ec +++ b/libede/src/FileSystemBox.ec @@ -139,7 +139,7 @@ public enum _FileType class FileSystemBoxBits { - bool foldersOnly:1, filesOnly:1, details:1, treeBranches:1, previewPictures:1, navigateFolders:1; + bool foldersOnly:1, filesOnly:1, details:1, treeBranches:1, previewPictures:1, navigateFolders:1, autoLoad:1; //bool header:1, freeSelect:1, fullRowSelect:1, multiSelect:1, autoScroll:1, alwaysHL : 1, moveRows:1, resizable:1; //bool moveFields:1, clearHeader:1, alwaysEdit:1, collapse:1, treeBranch:1, rootCollapse:1, heightSet:1; //bool sortable:1, noDragging:1, fillLastField:1, expandOnAdd:1; @@ -203,6 +203,7 @@ public: }; property bool navigateFolders { set { bits.navigateFolders = value; bits.filesOnly = !value; } get { return bits.navigateFolders; } }; property bool multiSelect { set { list.multiSelect = value; } get { return list.multiSelect; } }; + property bool autoLoad { set { bits.autoLoad = value; } get { return bits.autoLoad; } }; property FileSystemNode node { @@ -321,6 +322,7 @@ private: InitFileIcons(); list.AddField(nameField); + bits.autoLoad = true; } ~FileSystemBox() { @@ -343,7 +345,8 @@ private: bool OnPostCreate() { - Load(); + if(bits.autoLoad) + Load(); return true; } @@ -472,8 +475,9 @@ private: bool NotifyDoubleClick(ListBox listBox, int x, int y, Modifiers mods) { + bool result = !(selection && selection.type.isFolder && bits.navigateFolders); OpenNode(); - return false; + return result; } bool NotifyKeyDown(ListBox listBox, DataRow row, Key key, unichar ch) @@ -491,12 +495,8 @@ private: { bool result; if(selection && selection.type.isFolder && bits.navigateFolders) - { property::path = selection.path; - result = true; - } - else - result = NotifyNodeOpen(this.master, this, selection); + result = NotifyNodeOpen(this.master, this, selection); return result; } @@ -725,14 +725,14 @@ private: (bits.filesOnly && listing.stats.attribs.isFile)) { FileSystemNode child = MakeFileSystemNode(listing.stats, listing.name, listing.path, bits.previewPictures, displaySystem); - AddTreeNode(child, true, false, parent); + AddTreeNode(child, listing.stats.attribs.isFile, !listing.stats.attribs.isFile, parent); added = true; } } if(!added) added = true; } - //parent.childrenLoaded = true; + parent.childrenLoaded = true; } void AddTreeNode(FileSystemNode node, bool loaded, bool addLoader, FileSystemNode addTo)