*/}}
Преглед на файлове

Windows file sorting etc

YimingWu преди 2 месеца
родител
ревизия
a7ad37b260
променени са 2 файла, в които са добавени 20 реда и са изтрити 13 реда
  1. 3 3
      la_kernel.c
  2. 17 10
      resources/la_operators.c

+ 3 - 3
la_kernel.c

@@ -454,7 +454,7 @@ void la_SetupGLEnviornment(laWindow* window, HWND hwnd, int Sync) {
 };
 SYSWINDOW la_CreateWindowWin32(int x, int y, int w, int h, char* title, int SyncToVBlank, SYSGLCONTEXT* r_glc) {
     HINSTANCE* inst = &MAIN.hinstance;
-    HWND hwnd = CreateWindowW(LA_GUI_WNDCLASS_NAME, title, WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
+    HWND hwnd = CreateWindow(LA_GUI_WNDCLASS_NAME, title, WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
         x, y, w, h, 0, 0, *inst, 0);
     if (!hwnd) { int a = GetLastError(); printf("%d", a); return 0; }
 
@@ -1267,7 +1267,7 @@ int laGetReadyWith(laInitArguments* ia){
     wt.lpszClassName = LA_GUI_WNDCLASS_NAME;
     wt.lpszMenuName = 0;
     wt.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
-    if (!RegisterClassExW(&wt)) return 0;
+    if (!RegisterClassEx(&wt)) return 0;
     
     MAIN.GLMajor=MAIN.InitArgs.GLMajor; MAIN.GLMinor=MAIN.InitArgs.GLMinor; MAIN.BufferSamples=MAIN.InitArgs.BufferSamples;
     logPrint("Chosen OpenGL version %d.%d\n", MAIN.GLMajor, MAIN.GLMinor);
@@ -1277,7 +1277,7 @@ int laGetReadyWith(laInitArguments* ia){
     GLenum err;
     PIXELFORMATDESCRIPTOR pfd;
     HINSTANCE* hinst = &MAIN.hinstance;
-    HWND hwnd = CreateWindowExW(WS_EX_ACCEPTFILES, LA_GUI_WNDCLASS_NAME,
+    HWND hwnd = CreateWindowEx(WS_EX_ACCEPTFILES, LA_GUI_WNDCLASS_NAME,
         "Temp Window For Accessing GLEW!",
         WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 0, 0, 100, 100,
         0, 0, *hinst, 0);

+ 17 - 10
resources/la_operators.c

@@ -222,16 +222,16 @@ int la_filecompsizerev(laFileItem* f1,laFileItem* f2){ return f2->Size - f1->Siz
 #ifdef _WIN32
 #undef strverscmp
 #endif
-void la_SortFiles(laFileBrowser* fb, laListHandle* files){
+void la_SortFiles(laFileBrowser* fb, laListHandle* files, int IsDir){
     laListHandle tmp={0}; laFileItem* fi;
     FileSortCompF comp = 0;
     switch(fb->SortBy){
     case LA_FILE_SORT_NAME: default: comp=la_filecompname; break;
     case LA_FILE_SORT_NAME_REV: comp=la_filecompnamerev; break;
-    case LA_FILE_SORT_TIME: comp=la_filecomptime; break;
-    case LA_FILE_SORT_TIME_REV: comp=la_filecomptimerev; break;
-    case LA_FILE_SORT_SIZE: comp=la_filecompsize; break;
-    case LA_FILE_SORT_SIZE_REV: comp=la_filecompsizerev; break;
+    case LA_FILE_SORT_TIME: comp=IsDir?la_filecompname:la_filecomptime; break;
+    case LA_FILE_SORT_TIME_REV: comp=IsDir? la_filecompnamerev:la_filecomptimerev; break;
+    case LA_FILE_SORT_SIZE: comp=IsDir? la_filecompname :la_filecompsize; break;
+    case LA_FILE_SORT_SIZE_REV: comp=IsDir?la_filecompnamerev:la_filecompsizerev; break;
     }
     while(fi=lstPopItem(files)){ int inserted=0;
         for(laFileItem* fii=tmp.pFirst;fii;fii=fii->Hyper.pNext){
@@ -333,10 +333,13 @@ void la_FileBrowserRebuildList(laFileBrowser *fb){
                 lstAppendItem(&fb->FileList, fi);
             }
         }elif(!fb->SelectFolder) {
+            char* format = strGetLastSegment(FindFileData.cFileName, '.');
+            if (!la_AcceptFileFormat(fb, format)) { goto findnext; }
+
             fi = memAcquireSimple(sizeof(laFileItem));
             strCopyFull(fi->Name, FindFileData.cFileName);
             fi->Size = FindFileData.nFileSizeLow;
-            fi->Type = la_DetectFileItemType(fi);
+            fi->Type = la_DetectFileItemType(format);
 
             FileTimeToSystemTime(&(FindFileData.ftLastWriteTime), &stUTC);
             SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
@@ -350,15 +353,15 @@ void la_FileBrowserRebuildList(laFileBrowser *fb){
             fi->TimeModified.Second = stLocal.wSecond;
 
             lstAppendItem(&Files, fi);
-            //lstAppendItem(&fb->FileList, fi);
         }
 findnext:
         if (!FindNextFile(hFind, &FindFileData))
             break;
     }
 #endif
-
-    la_SortFiles(fb, &Files);
+    
+    la_SortFiles(fb, &fb->FileList,1);
+    la_SortFiles(fb, &Files,0);
     lstCombineLists(&fb->FileList, &Files);
 
     while (dl = lstPopItem(&fb->Disks)) memFree(dl);
@@ -496,6 +499,10 @@ void la_FileBrowserRefreshThumbnail(laFileBrowser* fb){
     md5String(buf,md5); toHexString(md5,fb->MD5);
     sprintf(buf,"%s/.cache/thumbnails/normal/%s.png", getenv("HOME"),fb->MD5);
     FILE *fp=fopen(buf,"rb"); char* data=0;
+    if(!fp){ 
+        sprintf(buf, "%s/.cache/thumbnails/large/%s.png", getenv("HOME"), fb->MD5);
+        fp = fopen(buf, "rb");
+    }
     if(fp){
         fseek(fp, 0, SEEK_END); u64bit SeekEnd = ftell(fp); fseek(fp, 0, SEEK_SET);
         data = calloc(1, SeekEnd); fread(data, SeekEnd, 1, fp);
@@ -2568,7 +2575,7 @@ int OPINV_PanPanel(laOperator *a, laEvent *e){
 int OPINV_ToggleSystemConsole(laOperator *a, laEvent *e){
     HWND wnd=GetConsoleWindow();
     int showhide=IsWindowVisible(wnd)?SW_HIDE:SW_SHOW;
-    ShowWindow(wnd,showhide);
+    ShowWindow(wnd, showhide);
     return LA_FINISHED;
 }
 #endif