X-Git-Url: https://ecere.com/cgi-bin/gitweb.cgi?p=ede;a=blobdiff_plain;f=explorer%2Fsrc%2FExplorer.ec;h=134b675243f2b17ce9d97af5a978283fbb6fd4a4;hp=8bfeaa86418390ccf03ca6bf2b54033e94b91be7;hb=0a9a2099baaa56c453eb0903258f329c9d4bc25d;hpb=3585433f3055c63a80dce62dc68343ba03a3568c diff --git a/explorer/src/Explorer.ec b/explorer/src/Explorer.ec index 8bfeaa8..134b675 100644 --- a/explorer/src/Explorer.ec +++ b/explorer/src/Explorer.ec @@ -14,22 +14,36 @@ import "ExplorerWindow" #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 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; @@ -50,20 +64,49 @@ class Explorer : GuiApplication } 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.GoTo(goPath, false, false); + QuickPathTool goPath { }; + for(c = openArgsStartAt; c < argc; c++) + { + goPath = openArgsStartAt == -1 ? "" : argv[c]; + if(goPath) + { + ExplorerWindow explorerWnd { }; + explorerWnd.Create(); + explorerWnd.location = goPath;//explorerWnd.GoTo(goPath, false, false); + } + } } else if(searchPath) { @@ -71,6 +114,15 @@ class Explorer : GuiApplication 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; } } @@ -115,7 +167,7 @@ struct QuickPathTool delete original; } } - get { return path[0] ? path : null; } + get { return path[0] ? (char*)path : null; } } property bool { get { return path[0] != '\0'; } } };