{
char * home = getenv("HOME");
if(home && home[0] && FileExists(home).isDirectory)
- view.path = home;
+ GoToLocation(home, false, false);
break;
}
case goUp:
newPath[0] = '/';
newPath[1] = 0;
}
- view.path = newPath;
+ GoToLocation(newPath, false, false);
delete newPath;
break;
}
//search.visible = button.checked;
tree.visible = false; //!button.checked;
split.visible = false; //!button.checked;
- if(false/*button.checked*/)
+ if(button.checked)
{
- split.rightPane = view;
- view.anchor = { top = 0, bottom = 0, right = 0 };
+ /*split.rightPane = view;
+ view.anchor = { top = 0, bottom = 0, right = 0 };*/
+ split.rightPane = null;
+ view.anchor = { left = 0, top = 0, bottom = 0, right = 0 };
+
+ SearchStart();
}
else
{
split.rightPane = null;
view.anchor = { left = 0, top = 0, bottom = 0, right = 0 };
+
+ SearchStop();
+ view.path = addressBar.path;
}
panels.size = { panels.size.w, panels.size.h }; // TOFIX : another Stacker fix needed
break;
bool NotifyModified(PathBox pathBox)
{
- view.path = pathBox.path;
+ GoToLocation(pathBox.path, false, false);
return true;
}
};
treeBranches = true;
foldersOnly = true;
+ autoLoad = false;
bool NotifyNodeSelect(FileSystemBox box, FileSystemNode node)
{
char p[MAX_LOCATION];
node.GetPath(p);
- view.path = node.path;
+ GoToLocation(node.path, false, true);
return true;
}
};
locationBox = addressBar;
navigateFolders = true;
multiSelect = true;
+ autoLoad = false;
bool NotifyNodeOpen(FileSystemBox box, FileSystemNode node)
{
if(node.type.isFile)
{
+ char path[MAX_LOCATION];
#ifndef __WIN32__
char command[MAX_LOCATION];
+ node.GetPath(path);
/*_FileType t = node.type;
if(t == ewsFile || t == epjFile ||
t == ecFile || t == ehFile ||
t == cppFile || t == hppFile ||
t == cFile || t == hFile ||
t == textFile || t == webFile)*/
- sprintf(command, "ide %s", node.path);
+ sprintf(command, "ide %s", path);
/*else
- sprintf(command, "%s", node.path);*/
+ sprintf(command, "%s", path);*/
Execute(command);
#else
- ShellOpen(node.path);
+ node.GetPath(path);
+ ShellOpen(path);
#endif
}
else if(node.type.isFolder && tree.visible)
}
};
+ FileSystemSearch searchThread
+ {
+ owner = this, fsb = view/*, searchPanel = this*/;
+
+ bool Window::NotifyUpdateSearchLocation(FileSystemSearch search, char * location)
+ {
+ char text[2048];
+ sprintf(text, "Search Results (Searching %s)", location);
+ PrintLn(text); //view.results.text = text;
+ return true;
+ }
+ };
+
+ void SearchStart()
+ {
+ char text[2048];
+
+ searchThread.active = true;
+
+ searchThread.optionSubdirs = true; //options.subdirs.checked;
+ searchThread.optionTree = view.treeBranches; //(options.subdirs.checked && options.tree.checked);
+ searchThread.optionBrowser = false; //(options.subdirs.checked && options.browser.checked);
+ searchThread.optionNameMatchCase = false; //findName.optionMatchCase.checked;
+ searchThread.optionNameMatchWord = false; //findName.optionMatchWord.checked;
+ searchThread.optionContentMatchCase = false; //findTextContent.optionMatchCase.checked;
+ searchThread.optionContentMatchWord = false; //findTextContent.optionMatchWord.checked;
+
+ strcpy(searchThread.location, view.path/*location.GetText()*/);
+ strcpy(searchThread.nameSearch, ".txt"/*findName.GetText()*/);
+ strcpy(searchThread.contentSearch, ""/*findTextContent.GetText()*/);
+
+ //actions.startStop.text = "Stop Search";
+ //actions.clear.disabled = false;
+ //view.results.Clear();
+ //view.results.hasHeader = !searchThread.optionTree;
+ //view.results.treeBranches = searchThread.optionTree;
+ //view.browser.Clear();
+ //ToggleBrowserDisplay(searchThread.optionBrowser);
+
+ //view.browser.text = "Browser";
+ //sprintf(text, "Search Results (Searching %s)", location.GetText());
+ PrintLn("Search Results (Searching ", view.path, ")");
+ //view.results.text = text;
+
+ searchThread.Create();
+ }
+
+ bool SearchStop()
+ {
+ if(searchThread.active)
+ {
+ searchThread.terminate = true;
+ app.Unlock();
+ searchThread.Wait();
+ app.Lock();
+ return true;
+ }
+ return false;
+ }
+
/*ExplorerSearch search
{
deep, this;
lastViewId = viewId;
}*/
- /*void GoToLocation(char * location)
+ void GoToLocation(char * location, bool viewIsAtLocation, bool treeIsAtLocation)
{
- int c;
- char * temp;
- char step[MAX_LOCATION];
-
- StringArray steps { growingFactor = 4 };
- ExplorerFileBranch last = null;
-
- temp = CopyString(location);
- while(strlen(temp))
- {
- GetLastDirectory(temp, step);
- StripLastDirectory(temp, temp);
- steps.Add(CopyString(step));
- }
-
- for(c = steps._count - 1; c >= 0; c--)
- {
- last = tree.Find(steps._[c], last);
- if(!last)
- break;
- tree.Select(last);
- }
-
- delete temp;
- delete steps;
- }*/
+ if(!viewIsAtLocation)
+ view.path = location;
+ if(tree.visible && !treeIsAtLocation)
+ tree.SelectLocation(location);
+ }
/*void SearchLocation(char * location)
{