explorer: make use of FileSystemBox::autoLoad
[ede] / libede / src / FileSystemBox.ec
index ed93d96..e184693 100644 (file)
@@ -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;
    }