|
@@ -172,13 +172,24 @@ int la_DetectFileItemType(char* format){
|
|
|
}
|
|
|
int la_AcceptFileFormat(laFileBrowser* fb, char* format){
|
|
|
if(!format || !format[0]) return 1;
|
|
|
+ char buf[2048];
|
|
|
if(fb->FilterType){
|
|
|
- for(laExtensionType* et=MAIN.ExtraExtensions.pFirst;et;et=et->Item.pNext){ if(et->FileType==fb->FilterType && strSame(format, et->Extension)) return 1; }
|
|
|
+ for(laExtensionType* et=MAIN.ExtraExtensions.pFirst;et;et=et->Item.pNext){
|
|
|
+ if(et->FileType==fb->FilterType && strSame(format, et->Extension)) return 1;
|
|
|
+ if(fb->ShowBackups){
|
|
|
+ sprintf(buf,"%s~",et->Extension);
|
|
|
+ if(strSame(format,buf)) return 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
return 0;
|
|
|
}
|
|
|
if(!fb->ss_filter_extensions) return 1;
|
|
|
for(laStringPart* sp=fb->ss_filter_extensions->parts.pFirst;sp;sp=sp->Item.pNext){
|
|
|
if(!strcmp(sp->Content, format)) return 1;
|
|
|
+ if(fb->ShowBackups){
|
|
|
+ sprintf(buf,"%s~",sp->Content);
|
|
|
+ if(strSame(format,buf)) return 1;
|
|
|
+ }
|
|
|
}
|
|
|
return 0;
|
|
|
}
|
|
@@ -393,7 +404,9 @@ void *laset_FileBrowserActiveDisk(laFileBrowser *fb, laDiskItem *di, int UNUSED_
|
|
|
fb->FileName[0] = 0;
|
|
|
}
|
|
|
void laset_FileBrowserPath(laFileBrowser *fb, char *content){
|
|
|
- strCopyFull(fb->Path, content); la_FileBrowserRebuildList(fb); fb->FileName[0] = 0; laRecalcCurrentPanel();
|
|
|
+ if(!strSame(content, fb->Path)){
|
|
|
+ strCopyFull(fb->Path, content); la_FileBrowserRebuildList(fb); fb->FileName[0] = 0; laRecalcCurrentPanel();
|
|
|
+ }
|
|
|
}
|
|
|
void *laset_FileBrowserBookmark(laFileBrowser *fb, laBookmarkedFolder *bf){
|
|
|
strcpy(fb->Path,bf->Path); la_FileBrowserRebuildList(fb); fb->FileName[0] = 0;
|
|
@@ -430,6 +443,9 @@ void* laset_FileBrowserExtension(laFileBrowser* fb, laExtensionType* et){
|
|
|
la_FileBrowserRebuildList(fb); laRecalcCurrentPanel();
|
|
|
}
|
|
|
}
|
|
|
+void laset_FileBrowserShowBackups(laFileBrowser* fb, int show){
|
|
|
+ fb->ShowBackups = show; la_FileBrowserRebuildList(fb); laRecalcCurrentPanel();
|
|
|
+}
|
|
|
void la_FileBrowserUpLevel(laFileBrowser *fb){
|
|
|
char *p = fb->Path;
|
|
|
char *LastP = 0;
|
|
@@ -2285,6 +2301,10 @@ void la_RegisterBuiltinOperators(){
|
|
|
laAddStringProperty(p, "name", "Name", "Bookmark Name", 0, 0, 0, 0, 0, offsetof(laBookmarkedFolder, Name), 0, 0, 0, 0, LA_AS_IDENTIFIER|LA_UDF_LOCAL);
|
|
|
laAddStringProperty(p, "path", "Path", "Bookmark path", 0, 0, 0, 0, 0, offsetof(laBookmarkedFolder, Path), 0, 0, 0, 0, LA_UDF_LOCAL);
|
|
|
}
|
|
|
+ ep = laAddEnumProperty(pc, "show_backups", "Show Backups", "Show backup files", 0, 0, 0, 0, 0, offsetof(laFileBrowser, ShowBackups), 0, laset_FileBrowserShowBackups, 0, 0, 0, 0, 0, 0, 0,0);{
|
|
|
+ laAddEnumItemAs(ep, "NONE", "None", "Don't show backup files", 0, 0);
|
|
|
+ laAddEnumItemAs(ep, "SHOWN", "Shown", "Show backup files", 1, U'~');
|
|
|
+ }
|
|
|
|
|
|
at = laCreateOperatorType("LA_udf_read", "Read", "Read a UDF file", 0, 0, OPEXT_UDFOperation, OPINV_UDFRead, OPMOD_UDFRead, U'📑', LA_ACTUATOR_SYSTEM);
|
|
|
pc = laDefineOperatorProps(at, 0);
|