libede:FileSystemBox: details
[ede] / libede / src / FileSystemBox.ec
index e184693..294e414 100644 (file)
@@ -166,6 +166,7 @@ public:
    FileSystemNode selection;
 
    virtual bool Window::NotifyNodeSelect(FileSystemBox box, FileSystemNode node);
+   //virtual bool Window::NotifyNodeNavigate(FileSystemBox box, FileSystemNode node);
    virtual bool Window::NotifyNodeOpen(FileSystemBox box, FileSystemNode node);
    
    property char * path
@@ -340,6 +341,7 @@ private:
    }
 
    DataField nameField { dataType = "FileSystemNode", width = 240, userData = this, freeData = false };
+   DataField pathField { header = "Location", dataType = /*"String"*/ "char *", width = 100, freeData = false };
    DataField typeField { header = "Type", dataType = /*"String"*/ "char *", width = 40, freeData = false };
    DataField sizeField { header = "Size", dataType = "FileSize", width = 96, alignment = right, freeData = false };
 
@@ -582,14 +584,7 @@ private:
             (bits.filesOnly && listing.stats.attribs.isFile))
          {
             FileSystemNode node = MakeFileSystemNode(listing.stats, listing.name, listing.path, bits.previewPictures, displaySystem);
-            DataRow row = list.AddRow();
-            row.tag = (int)node;
-            row.SetData(nameField, node);
-            if(bits.details)
-            {
-               row.SetData(typeField, node.extension);
-               row.SetData(sizeField, (void *)node.stats.size);
-            }
+            AddNode(node);
          }
       }
       list.Sort(nameField, 1);
@@ -735,6 +730,18 @@ private:
       parent.childrenLoaded = true;
    }
 
+   void AddNode(FileSystemNode node)
+   {
+      DataRow row = list.AddRow();
+      row.tag = (int)node;
+      row.SetData(nameField, node);
+      if(bits.details)
+      {
+         row.SetData(typeField, node.extension);
+         row.SetData(sizeField, (void *)node.stats.size);
+      }
+   }
+
    void AddTreeNode(FileSystemNode node, bool loaded, bool addLoader, FileSystemNode addTo)
    {
       DataRow row = (addTo && addTo.row) ? addTo.row.AddRow() : list.AddRow();
@@ -747,6 +754,11 @@ private:
       row.tag = (int)node;
       node.row = row;
       row.SetData(null, node);
+      if(bits.details)
+      {
+         row.SetData(typeField, node.extension);
+         row.SetData(sizeField, (void *)node.stats.size);
+      }
 
       node.loaded = loaded;
       if(addLoader)
@@ -1871,12 +1883,15 @@ public:
          }
       }
       else
+      {
 /*#ifdef __WIN32__
          strcpy(outputPath, "/");
 #else*/
-         strcpy(outputPath, name);
+         //strcpy(outputPath, name);
+         strcpy(outputPath, path);
+         PathCat(outputPath, name);
 //#endif
-
+      }
    }
 
    bool IsChildOf(FileSystemNode node)
@@ -2108,7 +2123,8 @@ public:
    }
    return node;
 }*/
-static FileSystemNode MakeFileSystemNode(const FileStats stats,
+
+FileSystemNode MakeFileSystemNode(const FileStats stats,
       const char * fileName, const char * filePath,
       const bool previewPicture, const DisplaySystem displaySystem)
 {