From 665dd67641adca0bf00224d648059c75baf886cf Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Fri, 20 Jan 2017 22:56:50 -0200 Subject: [PATCH] Remove SUB sorting in the SUBs dialog. --- source/global/IDEsettings.bas | 14 -- source/global/version.bas | 4 +- source/ide/ide_global.bas | 2 +- source/ide/ide_methods.bas | 406 +--------------------------------- 4 files changed, 7 insertions(+), 419 deletions(-) diff --git a/source/global/IDEsettings.bas b/source/global/IDEsettings.bas index 2a7673df2..5e82815f2 100644 --- a/source/global/IDEsettings.bas +++ b/source/global/IDEsettings.bas @@ -240,20 +240,6 @@ IF LoadedIDESettings = 0 THEN ideindentsubs = 0 end if - result = ReadConfigSetting("IDE_SortSUBs", value$) - idesortsubs = VAL(value$) - IF UCASE$(value$) = "TRUE" OR idesortsubs <> 0 THEN - idesortsubs = 1 - elseif result = 0 then - WriteConfigSetting "'[IDE DISPLAY SETTINGS]", "IDE_SortSUBs", "FALSE" - idesortsubs = 0 - ELSEIF UCASE$(value$) <> "FALSE" AND value$ <> "0" THEN - WriteConfigSetting "'[IDE DISPLAY SETTINGS]", "IDE_SortSUBs", "TRUE" - idesortsubs = 1 - else - idesortsubs = 0 - end if - result = ReadConfigSetting("IDE_IndentSize", value$) ideautoindentsize = VAL(value$) if ideautoindentsize < 1 OR ideautoindentsize > 64 then diff --git a/source/global/version.bas b/source/global/version.bas index a247267c5..98598483b 100644 --- a/source/global/version.bas +++ b/source/global/version.bas @@ -1,7 +1,7 @@ DIM SHARED Version AS STRING DIM SHARED BuildNum AS STRING -DIM SHARED AutoBuildMsg AS STRING +DIM SHARED AutoBuildMsg AS STRING Version$ = "1.1" 'BuildNum format is YYYYMMDD/id, where id is a ever-increasing 'integer. If you make a change, update the date and increase the id! -BuildNum$ = "20161109/50" +BuildNum$ = "20170120/51" diff --git a/source/ide/ide_global.bas b/source/ide/ide_global.bas index edbe2636f..203f30ba0 100644 --- a/source/ide/ide_global.bas +++ b/source/ide/ide_global.bas @@ -201,7 +201,7 @@ DIM SHARED LastValidColorScheme AS INTEGER DIM SHARED menubar$, idecontextualSearch$ DIM SHARED ideundocombo, ideundocombochr, idenoundo, idemergeundo DIM SHARED idealthighlight, ideentermenu -DIM SHARED ideautolayout, ideautoindent, ideautoindentsize, ideindentsubs, idebackupsize, idesortsubs +DIM SHARED ideautolayout, ideautoindent, ideautoindentsize, ideindentsubs, idebackupsize DIM SHARED idewx, idewy, idecustomfont, idecustomfontfile$, idecustomfontheight, idecustomfonthandle DIM SHARED iderunmode 'IDE MODULE SECTION END: shared data & definitions diff --git a/source/ide/ide_methods.bas b/source/ide/ide_methods.bas index 29161427e..036a03db2 100644 --- a/source/ide/ide_methods.bas +++ b/source/ide/ide_methods.bas @@ -8038,17 +8038,12 @@ FUNCTION idesubs$ '-------- init -------- ly$ = MKL$(1) - lySorted$ = ly$ CurrentlyViewingWhichSUBFUNC = 1 PreferCurrentCursorSUBFUNC = 0 InsideDECLARE = 0 FoundExternalSUBFUNC = 0 l$ = ideprogname$ IF l$ = "" THEN l$ = "Untitled" + tempfolderindexstr$ - lSorted$ = l$ - - TotalSUBs = 0 - SortedSubsFlag = idesortsubs FOR y = 1 TO iden a$ = idegetline(y) @@ -8119,16 +8114,6 @@ FUNCTION idesubs$ args$ = LEFT$(args$, (idewx - 44)) + STRING$(3, 250) END IF l$ = l$ + sep + CHR$(195) + CHR$(196) + n$ + " " + sf$ + args$ - - 'Populate SortedSubsList() - TotalSUBs = TotalSUBs + 1 - ListItemLength = LEN(n$ + " " + sf$ + args$) - REDIM _PRESERVE SortedSubsList(1 TO TotalSUBs) AS STRING * 998 - REDIM _PRESERVE CaseBkpSubsList(1 TO TotalSUBs) AS STRING * 998 - CaseBkpSubsList(TotalSUBs) = n$ + " " + sf$ + args$ - SortedSubsList(TotalSUBs) = UCASE$(CaseBkpSubsList(TotalSUBs)) - MID$(CaseBkpSubsList(TotalSUBs), 992, 6) = MKL$(y) + MKI$(ListItemLength) - MID$(SortedSubsList(TotalSUBs), 992, 6) = MKL$(y) + MKI$(ListItemLength) END IF NEXT @@ -8137,30 +8122,6 @@ FUNCTION idesubs$ IF a$ = CHR$(195) THEN MID$(l$, x, 1) = CHR$(192): EXIT FOR NEXT - IF TotalSUBs > 1 THEN - DIM m AS _MEM - m = _MEM(SortedSubsList()) - IF INSTR(_OS$, "64BIT") = 0 THEN Sort m 'Steve's sorting routine - FOR x = 1 TO TotalSUBs - ListItemLength = CVI(MID$(SortedSubsList(x), LEN(SortedSubsList(x)) - 2, 2)) - lySorted$ = lySorted$ + MID$(SortedSubsList(x), LEN(SortedSubsList(x)) - 6, 4) - FOR RestoreCaseBkp = 1 TO TotalSUBs - IF MID$(SortedSubsList(x), LEN(SortedSubsList(x)) - 6, 4) = MID$(CaseBkpSubsList(RestoreCaseBkp), LEN(CaseBkpSubsList(RestoreCaseBkp)) - 6, 4) THEN - lSorted$ = lSorted$ + sep + CHR$(195) + CHR$(196) + LEFT$(CaseBkpSubsList(RestoreCaseBkp), ListItemLength) - EXIT FOR - END IF - NEXT - NEXT - - FOR x = LEN(lSorted$) TO 1 STEP -1 - a$ = MID$(lSorted$, x, 1) - IF a$ = CHR$(195) THEN MID$(lSorted$, x, 1) = CHR$(192): EXIT FOR - NEXT - SortedSubsFlag = idesortsubs - ELSE - SortedSubsFlag = 0 'Override idesortsubs if the current program doesn't have more than 1 subprocedure - END IF - '72,19 i = 0 idepar p, idewx - 8, idewy + idesubwindow - 6, "SUBs" @@ -8171,29 +8132,10 @@ FUNCTION idesubs$ '68 o(i).w = idewx - 12: o(i).h = idewy + idesubwindow - 9 o(i).txt = idenewtxt(l$) - IF SortedSubsFlag = 0 THEN - IF PreferCurrentCursorSUBFUNC <> 0 THEN - o(i).sel = PreferCurrentCursorSUBFUNC - ELSE - o(i).sel = CurrentlyViewingWhichSUBFUNC - END IF + IF PreferCurrentCursorSUBFUNC <> 0 THEN + o(i).sel = PreferCurrentCursorSUBFUNC ELSE - idetxt(o(i).txt) = lSorted$ - IF PreferCurrentCursorSUBFUNC <> 0 THEN - FOR x = 1 TO TotalSUBs - IF MID$(ly$, PreferCurrentCursorSUBFUNC * 4 - 3, 4) = MID$(SortedSubsList(x), LEN(SortedSubsList(x)) - 6, 4) THEN - o(i).sel = x + 1 'The sorted list items array doesn't contain the first line (ideprogname$) - EXIT FOR - END IF - NEXT - ELSE - FOR x = 1 TO TotalSUBs - IF MID$(ly$, CurrentlyViewingWhichSUBFUNC * 4 - 3, 4) = MID$(SortedSubsList(x), LEN(SortedSubsList(x)) - 6, 4) THEN - o(i).sel = x + 1 'The sorted list items array doesn't contain the first line (ideprogname$) - EXIT FOR - END IF - NEXT - END IF + o(i).sel = CurrentlyViewingWhichSUBFUNC END IF o(i).nam = idenewtxt("Program Items") @@ -8204,16 +8146,6 @@ FUNCTION idesubs$ o(i).txt = idenewtxt("#Edit" + sep + "#Cancel") o(i).dft = 1 - IF TotalSUBs > 1 AND INSTR(_OS$, "64BIT") = 0 THEN - i = i + 1 - o(i).typ = 4 'check box - o(i).x = idewx - 22 - o(i).y = idewy + idesubwindow - 6 - o(i).nam = idenewtxt("#Sorted A-Z") - o(i).sel = SortedSubsFlag - END IF - - '-------- end of init -------- '-------- generic init -------- @@ -8292,7 +8224,6 @@ FUNCTION idesubs$ IF K$ = CHR$(27) OR (focus = 3 AND info <> 0) THEN idesubs$ = "C" - GOSUB SaveSortSettings EXIT FUNCTION END IF @@ -8300,74 +8231,18 @@ FUNCTION idesubs$ y = o(1).sel IF y < 1 THEN y = -y AddQuickNavHistory idecy - IF SortedSubsFlag = 0 THEN - idecy = CVL(MID$(ly$, y * 4 - 3, 4)) - ELSE - idecy = CVL(MID$(lySorted$, y * 4 - 3, 4)) - END IF + idecy = CVL(MID$(ly$, y * 4 - 3, 4)) idesy = idecy idecx = 1 idesx = 1 - - GOSUB SaveSortSettings EXIT FUNCTION END IF - IF TotalSUBs > 1 THEN - IF o(3).sel <> SortedSubsFlag THEN - SortedSubsFlag = o(3).sel - - IF SortedSubsFlag = 0 THEN - 'Replace list contents with unsorted version while mantaining current selection. - PreviousSelection = -1 - IF o(1).sel > 0 THEN - TargetSourceLine$ = MID$(lySorted$, o(1).sel * 4 - 3, 4) - FOR x = 1 TO TotalSUBs - IF MID$(ly$, x * 4 - 3, 4) = TargetSourceLine$ THEN - PreviousSelection = x - END IF - NEXT - END IF - - idetxt(o(1).txt) = l$ - o(1).sel = PreviousSelection - focus = 1 - ELSE - 'Replace list contents with sorted version while mantaining current selection. - PreviousSelection = -1 - IF o(1).sel > 0 THEN - TargetSourceLine$ = MID$(ly$, o(1).sel * 4 - 3, 4) - FOR x = 1 TO TotalSUBs - IF MID$(lySorted$, x * 4 - 3, 4) = TargetSourceLine$ THEN - PreviousSelection = x - END IF - NEXT - END IF - - idetxt(o(1).txt) = lSorted$ - o(1).sel = PreviousSelection - focus = 1 - END IF - END IF - END IF - 'end of custom controls mousedown = 0 mouseup = 0 LOOP - EXIT FUNCTION - SaveSortSettings: - IF TotalSUBs > 1 AND idesortsubs <> SortedSubsFlag THEN - idesortsubs = SortedSubsFlag - IF idesortsubs THEN - WriteConfigSetting "'[IDE DISPLAY SETTINGS]", "IDE_SortSUBs", "TRUE" - ELSE - WriteConfigSetting "'[IDE DISPLAY SETTINGS]", "IDE_SortSUBs", "FALSE" - END IF - END IF - RETURN - END FUNCTION @@ -13659,279 +13534,6 @@ SUB Mathbox idecx = idecx + LEN(messagestr$) END SUB -SUB Sort (m AS _MEM) 'Provided by Steve McNeill - DIM t AS LONG: t = m.TYPE - DIM i AS _UNSIGNED LONG - DIM ES AS LONG, EC AS LONG - - IF NOT t AND 65536 THEN EXIT SUB 'We won't work without an array - IF t AND 1024 THEN DataType = 10 - IF t AND 1 THEN DataType = DataType + 1 - IF t AND 2 THEN DataType = DataType + 2 - IF t AND 4 THEN IF t AND 128 THEN DataType = DataType + 4 ELSE DataType = 3 - IF t AND 8 THEN IF t AND 128 THEN DataType = DataType + 8 ELSE DataType = 5 - IF t AND 32 THEN DataType = 6 - IF t AND 512 THEN DataType = 7 - - 'Convert our offset data over to something we can work with - DIM m1 AS _MEM: m1 = _MEMNEW(8) - _MEMPUT m1, m1.OFFSET, m.ELEMENTSIZE: _MEMGET m1, m1.OFFSET, ES 'Element Size - _MEMPUT m1, m1.OFFSET, m.SIZE: _MEMGET m1, m1.OFFSET, EC 'Element Count will temporily hold the WHOLE array size - _MEMFREE m1 - EC = EC / ES - 1 'Now we take the whole element size / the size of the elements and get our actual element count. We subtract 1 so our arrays start at 0 and not 1. - 'And work with it! - DIM o AS _OFFSET, o1 AS _OFFSET, counter AS _UNSIGNED LONG - - SELECT CASE DataType - CASE 1 'BYTE - DIM temp1(-128 TO 127) AS _UNSIGNED LONG - DIM t1 AS _BYTE - i = 0 - DO - _MEMGET m, m.OFFSET + i, t1 - temp1(t1) = temp1(t1) + 1 - i = i + 1 - LOOP UNTIL i > EC - i1 = -128 - DO - DO UNTIL temp1(i1) = 0 - _MEMPUT m, m.OFFSET + counter, i1 AS _BYTE - counter = counter + 1 - temp1(i1) = temp1(i1) - 1 - IF counter > EC THEN EXIT SUB - LOOP - i1 = i1 + 1 - LOOP UNTIL i1 > 127 - CASE 2: 'INTEGER - DIM temp2(-32768 TO 32767) AS _UNSIGNED LONG - DIM t2 AS INTEGER - i = 0 - DO - _MEMGET m, m.OFFSET + i * 2, t2 - temp2(t2) = temp2(t2) + 1 - i = i + 1 - LOOP UNTIL i > EC - i1 = -32768 - DO - DO UNTIL temp2(i1) = 0 - _MEMPUT m, m.OFFSET + counter * 2, i1 AS INTEGER - counter = counter + 1 - temp2(i1) = temp2(i1) - 1 - IF counter > EC THEN EXIT SUB - LOOP - i1 = i1 + 1 - LOOP UNTIL i1 > 32767 - CASE 3 'SINGLE - DIM T3a AS SINGLE, T3b AS SINGLE - gap = EC - DO - gap = 10 * gap \ 13 - IF gap < 1 THEN gap = 1 - i = 0 - swapped = 0 - DO - o = m.OFFSET + i * 4 - o1 = m.OFFSET + (i + gap) * 4 - IF _MEMGET(m, o, SINGLE) > _MEMGET(m, o1, SINGLE) THEN - _MEMGET m, o1, T3a - _MEMGET m, o, T3b - _MEMPUT m, o1, T3b - _MEMPUT m, o, T3a - swapped = -1 - END IF - i = i + 1 - LOOP UNTIL i + gap > EC - LOOP UNTIL gap = 1 AND swapped = 0 - CASE 4 'LONG - DIM T4a AS LONG, T4b AS LONG - gap = EC - DO - gap = 10 * gap \ 13 - IF gap < 1 THEN gap = 1 - i = 0 - swapped = 0 - DO - o = m.OFFSET + i * 4 - o1 = m.OFFSET + (i + gap) * 4 - IF _MEMGET(m, o, LONG) > _MEMGET(m, o1, LONG) THEN - _MEMGET m, o1, T4a - _MEMGET m, o, T4b - _MEMPUT m, o1, T4b - _MEMPUT m, o, T4a - swapped = -1 - END IF - i = i + 1 - LOOP UNTIL i + gap > EC - LOOP UNTIL gap = 1 AND swapped = 0 - CASE 5 'DOUBLE - DIM T5a AS DOUBLE, T5b AS DOUBLE - gap = EC - DO - gap = 10 * gap \ 13 - IF gap < 1 THEN gap = 1 - i = 0 - swapped = 0 - DO - o = m.OFFSET + i * 8 - o1 = m.OFFSET + (i + gap) * 8 - IF _MEMGET(m, o, DOUBLE) > _MEMGET(m, o1, DOUBLE) THEN - _MEMGET m, o1, T5a - _MEMGET m, o, T5b - _MEMPUT m, o1, T5b - _MEMPUT m, o, T5a - swapped = -1 - END IF - i = i + 1 - LOOP UNTIL i + gap > EC - LOOP UNTIL gap = 1 AND swapped = 0 - CASE 6 ' _FLOAT - DIM T6a AS _FLOAT, T6b AS _FLOAT - gap = EC - DO - gap = 10 * gap \ 13 - IF gap < 1 THEN gap = 1 - i = 0 - swapped = 0 - DO - o = m.OFFSET + i * 32 - o1 = m.OFFSET + (i + gap) * 32 - IF _MEMGET(m, o, _FLOAT) > _MEMGET(m, o1, _FLOAT) THEN - _MEMGET m, o1, T6a - _MEMGET m, o, T6b - _MEMPUT m, o1, T6b - _MEMPUT m, o, T6a - swapped = -1 - END IF - i = i + 1 - LOOP UNTIL i + gap > EC - LOOP UNTIL gap = 1 AND swapped = 0 - CASE 7 'String - DIM T7a AS STRING, T7b AS STRING, T7c AS STRING - T7a = SPACE$(ES): T7b = SPACE$(ES): T7c = SPACE$(ES) - gap = EC - DO - gap = INT(gap / 1.247330950103979) - IF gap < 1 THEN gap = 1 - i = 0 - swapped = 0 - DO - o = m.OFFSET + i * ES - o1 = m.OFFSET + (i + gap) * ES - _MEMGET m, o, T7a - _MEMGET m, o1, T7b - IF T7a > T7b THEN - T7c = T7b - _MEMPUT m, o1, T7a - _MEMPUT m, o, T7c - swapped = -1 - END IF - i = i + 1 - LOOP UNTIL i + gap > EC - LOOP UNTIL gap = 1 AND swapped = false - CASE 8 '_INTEGER64 - DIM T8a AS _INTEGER64, T8b AS _INTEGER64 - gap = EC - DO - gap = 10 * gap \ 13 - IF gap < 1 THEN gap = 1 - i = 0 - swapped = 0 - DO - o = m.OFFSET + i * 8 - o1 = m.OFFSET + (i + gap) * 8 - IF _MEMGET(m, o, _INTEGER64) > _MEMGET(m, o1, _INTEGER64) THEN - _MEMGET m, o1, T8a - _MEMGET m, o, T8b - _MEMPUT m, o1, T8b - _MEMPUT m, o, T8a - swapped = -1 - END IF - i = i + 1 - LOOP UNTIL i + gap > EC - LOOP UNTIL gap = 1 AND swapped = 0 - CASE 11: '_UNSIGNED _BYTE - DIM temp11(0 TO 255) AS _UNSIGNED LONG - DIM t11 AS _UNSIGNED _BYTE - i = 0 - DO - _MEMGET m, m.OFFSET + i, t11 - temp11(t11) = temp11(t11) + 1 - i = i + 1 - LOOP UNTIL i > EC - i1 = 0 - DO - DO UNTIL temp11(i1) = 0 - _MEMPUT m, m.OFFSET + counter, i1 AS _UNSIGNED _BYTE - counter = counter + 1 - temp11(i1) = temp11(i1) - 1 - IF counter > EC THEN EXIT SUB - LOOP - i1 = i1 + 1 - LOOP UNTIL i1 > 255 - CASE 12 '_UNSIGNED INTEGER - DIM temp12(0 TO 65535) AS _UNSIGNED LONG - DIM t12 AS _UNSIGNED INTEGER - i = 0 - DO - _MEMGET m, m.OFFSET + i * 2, t12 - temp12(t12) = temp12(t12) + 1 - i = i + 1 - LOOP UNTIL i > EC - i1 = 0 - DO - DO UNTIL temp12(i1) = 0 - _MEMPUT m, m.OFFSET + counter * 2, i1 AS _UNSIGNED INTEGER - counter = counter + 1 - temp12(i1) = temp12(i1) - 1 - IF counter > EC THEN EXIT SUB - LOOP - i1 = i1 + 1 - LOOP UNTIL i1 > 65535 - CASE 14 '_UNSIGNED LONG - DIM T14a AS _UNSIGNED LONG, T14b AS _UNSIGNED LONG - gap = EC - DO - gap = 10 * gap \ 13 - IF gap < 1 THEN gap = 1 - i = 0 - swapped = 0 - DO - o = m.OFFSET + i * 4 - o1 = m.OFFSET + (i + gap) * 4 - IF _MEMGET(m, o, _UNSIGNED LONG) > _MEMGET(m, o1, _UNSIGNED LONG) THEN - _MEMGET m, o1, T14a - _MEMGET m, o, T14b - _MEMPUT m, o1, T14b - _MEMPUT m, o, T14a - swapped = -1 - END IF - i = i + 1 - LOOP UNTIL i + gap > EC - LOOP UNTIL gap = 1 AND swapped = 0 - CASE 18: '_UNSIGNED _INTEGER64 - DIM T18a AS _UNSIGNED _INTEGER64, T18b AS _UNSIGNED _INTEGER64 - gap = EC - DO - gap = 10 * gap \ 13 - IF gap < 1 THEN gap = 1 - i = 0 - swapped = 0 - DO - o = m.OFFSET + i * 8 - o1 = m.OFFSET + (i + gap) * 8 - IF _MEMGET(m, o, _UNSIGNED _INTEGER64) > _MEMGET(m, o1, _UNSIGNED _INTEGER64) THEN - _MEMGET m, o1, T18a - _MEMGET m, o, T18b - _MEMPUT m, o1, T18b - _MEMPUT m, o, T18a - swapped = -1 - END IF - i = i + 1 - LOOP UNTIL i + gap > EC - LOOP UNTIL gap = 1 AND swapped = 0 - END SELECT -END SUB - FUNCTION FindProposedTitle$ 'Finds the first occurence of _TITLE to suggest a file name 'when saving for the first time or saving as.