forked from KolibriOS/kolibrios
Eolite 1.55: sorting bug fixed, fixed rename/delete file in folder, where are no files exists.
git-svn-id: svn://kolibrios.org@3157 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
8e9d5576fd
commit
61664a951d
@ -20,7 +20,7 @@ int BUTTON_HEIGHT=18;
|
||||
#define ONLY_OPEN 2
|
||||
|
||||
//ïåðåìåííûå
|
||||
#define title "Eolite File Manager v1.5"
|
||||
#define title "Eolite File Manager v1.55"
|
||||
dword col_work = 0xE4DFE1;
|
||||
dword col_border = 0x819FC5;
|
||||
dword col_padding = 0xC8C9C9;
|
||||
@ -376,6 +376,7 @@ void main()
|
||||
break;
|
||||
case 051: //Íàæàòà F2
|
||||
REN_MARK:
|
||||
if (!count) break;
|
||||
DeleteButton(curbtn+201); //ýòî ÷òîá ìîæíî áûëî âûäåëÿòü ìûøüþ
|
||||
edit2.flags=66; //äåëàåì êîìïîíåíò àêòèâíûì
|
||||
edit2.width=onLeft(24,217);
|
||||
@ -633,7 +634,8 @@ void Open_Dir(dword temp_, redraw){
|
||||
inline Sorting()
|
||||
{
|
||||
dword k=0, l=1;
|
||||
if (!strcmp(#path,"/")) || (count>3000) //íå ñîðòèðîâàòü ïàïêè è íå ìåíÿòü ðåãèñòð â "/"
|
||||
int i;
|
||||
if (!strcmp(#path,"/")) //íå ñîðòèðîâàòü ïàïêè è íå ìåíÿòü ðåãèñòð â "/"
|
||||
{
|
||||
FOR(k=1;k<count;k++;) file_mas[k]=k;
|
||||
return;
|
||||
@ -655,7 +657,7 @@ inline Sorting()
|
||||
//Ñîáñòâåííî ñîðòèðîâêà: âíà÷àëå ïàïêè, ïîòîì ôàéëû
|
||||
Sort_by_Name(0,k-1);
|
||||
IF (sort_num==1) Sort_by_Name(k,count-1);
|
||||
IF (sort_num==2) if (count<2000) Sort_by_Type(k,count-1); else Sort_by_Name(k,count-1); //êîñòûëè...
|
||||
IF (sort_num==2) Sort_by_Type(k,count-1);
|
||||
IF (sort_num==3) Sort_by_Size(k,count-1);
|
||||
//åñëè ïàïêà ".." íå ïåðâàÿ, ñòàâèì å¸ òóäà
|
||||
IF (k>0) && (strcmp(file_mas[0]*304+buf+72,"..")<>0) FOR(k--; k>0; k--;) IF (!strcmp(file_mas[k]*304+buf+72,"..")) file_mas[k]><file_mas[0];
|
||||
@ -666,6 +668,7 @@ void Del_Form()
|
||||
{
|
||||
int dform_x=Form.width/2-13;
|
||||
//òèïà îêíî
|
||||
if (!count) return;
|
||||
FOR (i=5;i<11;i++) DeleteButton(201+i); //óäàëÿåì êíîïêè ïîä ôîðìîé
|
||||
DrawFlatButton(dform_x,160,200,80,0,col_work, ""); //ôîðìà
|
||||
WriteText(dform_x+19,175,0x80,0,"Do you really want to delete",0);
|
||||
|
@ -36,7 +36,7 @@ void about_dialog()
|
||||
DefineAndDrawWindow(600,150,181,232+GetSkinHeight(),0x34,col_work,"About Eolite");
|
||||
DrawBar(0,0,172,50,0x8494C4); //ãîëóáîå ñçàäè
|
||||
PutPaletteImage(#logo,85,85,43,7,#logo_pal);
|
||||
WriteText(46,100,0x90,0xBF40BF,"Eolite v1.51",0);
|
||||
WriteText(46,100,0x90,0xBF40BF,"Eolite v1.55",0);
|
||||
$add ebx, 1<<16
|
||||
$int 0x40
|
||||
WriteText(55,120,0x80,0,"Developers:",0);
|
||||
|
@ -21,33 +21,30 @@ void Sort_by_Name(int a, b) //
|
||||
Sort_by_Name(isn, b);
|
||||
}
|
||||
|
||||
|
||||
void Sort_by_Type(int a, b) // äëÿ ïåðâîãî âûçîâà: a = 0, b = <ýëåìåíòîâ â ìàññèâå> - 1
|
||||
{
|
||||
int jst, ist=a;
|
||||
int n;
|
||||
unsigned char filename1[256], filename2[256];
|
||||
unsigned char ext1[256], ext2[256];
|
||||
|
||||
void Sort_by_Type(int a, b) // äëÿ ïåğâîãî âûçîâà: a = 0, b = <ıëåìåíòîâ â ìàññèâå> - 1
|
||||
{
|
||||
dword filename1, filename2, ext1, ext2;
|
||||
int n, isn = a;
|
||||
IF (a >= b) return;
|
||||
for (jst = a; jst <= b; jst++)
|
||||
for (j = a; j <= b; j++)
|
||||
{
|
||||
ext1[0]=ext2[0]=filename1[0]=filename2[0]=NULL;
|
||||
copystr(file_mas[jst]*304 + buf+72, #filename1);
|
||||
copystr(file_mas[b]*304 + buf+72, #filename2);
|
||||
n=strlen(#filename1)-1;
|
||||
WHILE (filename1[n]<>'.') && (n>0) n--;
|
||||
IF (n) copystr(#filename1+n+1, #ext1);
|
||||
n=strlen(#filename2)-1;
|
||||
WHILE (filename2[n]<>'.') && (n>0) n--;
|
||||
IF (n) copystr(#filename2+n+1, #ext2);
|
||||
filename1 = file_mas[j]*304 + buf+72;
|
||||
filename2 = file_mas[b]*304 + buf+72;
|
||||
|
||||
n=strcmp(#ext1, #ext2);
|
||||
IF (n<0) { file_mas[ist] >< file_mas[jst]; ist++;}
|
||||
IF (n==0) && (strcmp(#filename1, #filename2)<=0) { file_mas[ist] >< file_mas[jst]; ist++;}
|
||||
n=strlen(filename1)-1;
|
||||
WHILE (n>0) && (ESBYTE[filename1+n]<>'.') n--;
|
||||
IF (n) ext1 = filename1+n+1; else ext1=0;
|
||||
n=strlen(filename2)-1;
|
||||
WHILE (n>0) && (ESBYTE[filename2+n]<>'.') n--;
|
||||
IF (n) ext2 = filename2+n+1; else ext2=0;
|
||||
|
||||
n=strcmp(ext1, ext2);
|
||||
IF (n<0) { file_mas[isn] >< file_mas[j]; isn++;}
|
||||
IF (n==0) && (strcmp(filename1, filename2)<=0) { file_mas[isn] >< file_mas[j]; isn++;}
|
||||
}
|
||||
Sort_by_Type(a, ist-2);
|
||||
Sort_by_Type(ist, b);
|
||||
Sort_by_Type(a, isn-2);
|
||||
Sort_by_Type(isn, b);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,3 +1,11 @@
|
||||
10.01.13 -- v1.55
|
||||
- исправлен эпичный баг с сортировкой;
|
||||
- испрвлены баги при попытке переименования или удаления файла в папке,
|
||||
где их нет.
|
||||
|
||||
17.12.12 -- v1.5
|
||||
Обновлён GUI: кнопки на тулбаре стали чище, остальные обзавелись градиентами.
|
||||
|
||||
16.11.12 -- v1.43
|
||||
- при минимальном размере окна учитывается количество дисков в системе;
|
||||
- добавлен фон на левую панель;
|
||||
|
Loading…
Reference in New Issue
Block a user