- all files maintained in qb64pe/settings now and addressed using file name variables instead of hardcoded names
- maintain recent/search histories according to the limits set in Options>Undo/History... dialog (saved in config.ini)
- update recent files in the File Menu only when needed (i.e. right before the menu is displayed) rather than on every change to the history
- IDEsettings.bas cannot longer used, it's split into the usual global/methods pair and saved in source/ide/config
- new $INCLUDE lines in qb64pe.bas
- moved wiki methods $INCLUDE to a more appropriate place in ide_methods.bas
- the old Backup/Undo limit dialog was replaced by the new Undo/History limits dialog, which also allows to set the limits for Recent files and Search history
- fixed spacing calculation for action buttons (wrong string tested, dates back to SDL age, unbelievable nobody before recognized the spacing was wrong)
- in messagebox raise max. lines (needed later)
- also move bound check before index increment, formerly the index was incremented once more which lead to a subscript out of range later in the function
- using the new _READFILE$ and _WRITEFILE commands where applicable
- moved error handler changes inside CopyFile&() so we don't need to remember to do this before calling the function
- fixed file tests complaining about missing error handlers
- moved converter function from file.bas to qb64pe.bas, as it's rather compiler related than a common file function
- also fixed several "change state" related bugs (i.e. switching certain settings in the Options Menu will no longer mark the current code as "changed")
This commit reverts 38e0ec379f81ba1e and 55c36576 which attempted
to fix the capitalisation of array names used with L/UBOUND, and
introduced the code-eating bug. It is replaced with an alternative
solution to the capitalisation issue.
- maintain search and recent files histories in buffers
- histories keep the last 100 entries used
- buffers are saved to disk at exit and are restored on next IDE session
- Select All (CTRL-A) in the help text actually didn't select ALL after text was selected manually once before, because Help_cx1/_cy1 were not reset (bug goes back to the SDL versions)
- help text width is a known value, no need to set millions of chars
- fixed Definition lists eating the first char, if list introducer is followed by space
- added further pages to the core pages queue
- added handling for new {{PageReferences}} wiki template
- added more name substitutes for the breadcrumb links
The FocusIn/FocusOut X11 events are more reflective of active
foreground window that Enter/Leave, which only relates to mouse
movement. In particular, FocusOut fires when Alt-Tabbing away
so the alt key is correctly released.
Also re-enable IDE defocus processing on Linux so the Alt key no
longer keeps the menus selected when Alt-Tabbing.
Very simple change here, to basically take:
a$ = b$ + c$ + d$ + e$ + f$
And make it:
a$ = b$ + (c$ + d$ + e$) + f$
....
This speeds up the IDE due to (c$ + d$ + e$) being small strings, while a$ and f$ are larger strings... It's more efficient to move and add those small strings first, than it is to add them to the large strings, making them larger, at each step.
This allows simplifying how the size of UDT arrays are calculated,
and thus not leave memory uninitialised when doing a redim that
expands the array size.