#endif
*/
+DummyFileSystemCacheWindow dw;// { size = { 200, 200 } };
+
+
class Explorer : GuiApplication
{
//skin = "Acovel";
bool Init()
{
- QuickPathTool goPath { };
+ int c, argc = this.argc;
+ int openArgsStartAt = 0;
QuickPathTool searchPath { };
char * findWhat = null;
+ Array<String> comparedPaths = null;
SetLoggingMode(debug, null);
+ for(c = 1; c < argc; c++)
+ {
+ if(!strcmp(argv[c], "#"))
+ {
+ argc = c;
+ break;
+ }
+ }
+
if(argc > 1)
{
if(!strcmpi(argv[1], "go") && argc > 2)
- goPath = argv[2];
+ openArgsStartAt = 2;
else if(!strcmpi(argv[1], "find") && argc > 2)
{
char * unquoted;
}
else if(!strcmpi(argv[1], "search") && argc > 2)
searchPath = argv[2];
+ else if(!strcmpi(argv[1], "compare") && argc > 2)
+ {
+ QuickPathTool goPath { };
+ comparedPaths = { };
+ if(argc == 3)
+ {
+ goPath = ""; // current dir
+ comparedPaths.Add(goPath);
+ }
+ for(c = 2; c < argc; c++)
+ {
+ char * s;
+ goPath = argv[c];
+ s = goPath;
+ if(s)
+ comparedPaths.Add(CopyString(s));
+ }
+ if(comparedPaths.count < 2)
+ PrintLn("compare requires at least 2 existing directories to work.");
+ }
else if(!strcmpi(argv[1], "image") && argc > 2)
;
else if(!strcmpi(argv[1], "slides") && argc > 2)
;
else
- goPath = argv[1];
+ openArgsStartAt = 1;
}
else
- goPath = "";
- if(goPath)
+ openArgsStartAt = -1;
+
+ if(openArgsStartAt)
{
- ExplorerWindow explorerWnd { };
- explorerWnd.Create();
- explorerWnd.view.path = goPath;
+ QuickPathTool goPath { };
+ for(c = openArgsStartAt; c < argc; c++)
+ {
+ goPath = openArgsStartAt == -1 ? "" : argv[c];
+ if(goPath)
+ {
+ if(false)//(c == 1)
+ {
+ FileStats stats;
+ //Map<String, bool> linksPaths { };
+ //Map<uint, Map<uint, bool>> devsInodesDone { };
+ //FileSystemCache cache;
+ // dw = { visible = false };
+ ///*cache = */FileSystemCache::Cache("/", true, dw);
+
+ // FileSystemCache::Cache("/s1", true, false, true, dw);
+ // FileSystemCache::Cache("/s2/0z", true, false, true, dw);
+ //dw.cache.Special("/s2/0z/0sort", dw);
+ //dw.cache.Special("/s2/library", dw);
+ //dw.cache.Special("/s2/mirror", dw);
+ // dw.cache.SpecialPrint();
+ //devsInodesDone.Free();
+ //delete devsInodesDone;
+
+ /*{
+ ExplorerWindow explorerWnd { testCache = dw.cache };
+ explorerWnd.Create();
+ explorerWnd.location = goPath;//explorerWnd.GoTo(goPath, false, false);
+ }*/
+ // PrintLn("# of objects: ", dw.cache.objects.count);
+ // PrintLn("# of non single file sizes: ", dw.cache.nonSingleSizes.count);
+ // delete dw;
+ }
+ else
+ {
+ ExplorerWindow explorerWnd { };
+ explorerWnd.Create();
+ explorerWnd.location = goPath;//explorerWnd.GoTo(goPath, false, false);
+ }
+ }
+ }
}
else if(searchPath)
{
explorerWnd.Create();
//explorerWnd.SearchLocation(searchPath);
}
+ else if(comparedPaths && comparedPaths.count > 1)
+ {
+ // compare /s1/library/dummies /s1/library/movies /s1/oldlib/movies "/home/redj/.gvfs/d02-2tb on kimji/library/movies"
+ ExplorerWindow explorerWnd { };
+ explorerWnd.Create();
+ explorerWnd.view.columnsCompareStyle = true;
+ explorerWnd.comparedLocations = comparedPaths;
+ // delete comparedPaths;
+ }
return true;
}
}
delete original;
}
}
- get { return path[0] ? path : null; }
+ get { return path[0] ? (char*)path : null; }
}
property bool { get { return path[0] != '\0'; } }
};