Shortcuts for BrowsePath (~ - user's home dir, ! - user's pictures dir)

This commit is contained in:
michael
2011-04-06 12:39:15 -04:00
parent 64f527f748
commit 4aa4030d90
2 changed files with 25 additions and 4 deletions

View File

@@ -56,7 +56,7 @@ FILEBROWSER_ARRANGEMENTHINT;Change between vertical/horizontal alignment of thum
FILEBROWSER_AUTODARKFRAME;Auto dark frame
FILEBROWSER_AUTOFLATFIELD;Auto flat field
FILEBROWSER_BROWSEPATHBUTTONHINT;Click to browse to the chosen path
FILEBROWSER_BROWSEPATHHINT;Type path to browse (<b>Ctrl-o</b> set focus,<b>Ctrl-Enter</b> to browse in File Browser)
FILEBROWSER_BROWSEPATHHINT;Type path to browse (<b>Ctrl-o</b> set focus,<b>Ctrl-Enter</b> to browse in File Browser);\nPath shortcuts: <b>~</b> - user's home directory, <b>!</b> - user's pictures directory
FILEBROWSER_CACHE;Cache
FILEBROWSER_CACHECLEARFROMFULL;Clear from cache - full
FILEBROWSER_CACHECLEARFROMPARTIAL;Clear from cache - partial

View File

@@ -1079,10 +1079,31 @@ void FileCatalog::trashChanged () {
}
void FileCatalog::buttonBrowsePathPressed () {
Glib::ustring sel = BrowsePath->get_text();
Glib::ustring BrowsePathValue = BrowsePath->get_text();
Glib::ustring DecodedPathPrefix="";
Glib::ustring FirstChar;
// handle shortcuts in the BrowsePath -- START
// read the 1-st character from the path
FirstChar = BrowsePathValue.substr (0,1);
if (FirstChar=="~"){ // home directory
DecodedPathPrefix = Glib::get_home_dir();
}
else if (FirstChar=="!"){ // user's pictures directory
//DecodedPathPrefix = g_get_user_special_dir(G_USER_DIRECTORY_PICTURES);
DecodedPathPrefix = Glib::get_user_special_dir (G_USER_DIRECTORY_PICTURES);
}
if (DecodedPathPrefix!=""){
BrowsePathValue = Glib::ustring::compose ("%1%2",DecodedPathPrefix,BrowsePathValue.substr (1,BrowsePath->get_text_length()-1));
BrowsePath->set_text(BrowsePathValue);
}
// handle shortcuts in the BrowsePath -- END
// validate the path
if (safe_file_test(sel, Glib::FILE_TEST_IS_DIR) && dirlistener){
dirlistener->selectDir (sel);
if (safe_file_test(BrowsePathValue, Glib::FILE_TEST_IS_DIR) && dirlistener){
dirlistener->selectDir (BrowsePathValue);
}
else
// error, likely path not found: show red arrow