103 Commits

Author SHA1 Message Date
33300bd171 Silence crash happening in some very early calls to apphelpers.FindNode, also triggered by RestoreTabs. Probably helps here: https://www.heidisql.com/forum.php?t=35551 2020-02-04 08:03:34 +01:00
19391e0d3f Tweak update check dialog, closes #784
* make dialog resizable
* restore previous dialog size
* use fixed pitch font in build notes
2020-01-30 16:15:42 +01:00
91f973caed Issue #12: On "Host" tab, prefer visible filename over visible file path 2019-12-25 12:58:36 +01:00
168e49af84 Use the newer KNOWNFOLDERID TGUID constants from Winapi.KnownFolders instead of CSLID integer constants. Probably fixes wrong FOLDERID_RoamingAppData folder for #815 2019-12-18 21:36:51 +01:00
805c0c35b2 Add checkbox option to remove line breaks from field contents in grid export dialog. Closes #474 2019-12-08 11:59:15 +01:00
6695a31eae Issue #805: fall back to translated button captions if GetLocaleString returned an empty string. Setting an empty button caption raises an exception in TTaskDialogButtonItem 2019-11-14 21:32:15 +01:00
be689edaec SQL export: add drop down menu item for removing DEFINER clauses from triggers, procedures and functions 2019-11-13 14:29:26 +01:00
7b99bcc823 Issue #685: Fix fatal performance bug, calling GetSQL on each examined character of a TSQLSentence. See report on https://www.heidisql.com/forum.php?t=34935 2019-11-13 08:16:24 +01:00
17e75e70da Refactor: rename helper function sstr() to something more readable, and optimize it slightly 2019-11-04 20:15:41 +01:00
4b39eeb153 Don't fool detection of unsafe queries by comments. Closes #685 2019-10-29 21:46:32 +01:00
e0f8a36bfe Restore previously used collation when creating new database. Closes #702 2019-10-27 11:59:23 +01:00
deab98736e Issue #140: Be sure to write tab backup files in UTF8 without BOM 2019-10-15 07:07:36 +02:00
10f61069c8 Issue #140: Prefer TStreamWriter over TFileStream, in SaveUnicodeFile(). Also, use its own Write() method instead of StreamWrite(), which encodes UTF8 first, so the new approach is probably faster. Probably also helps with non-writable tab backups on some systems. 2019-10-13 16:38:51 +02:00
64c43aebbf Issue #62: distinct between TIMEZONE (without time zone) and TIMEZONETZ (with time zone). And modify GetDatatypeByName() so it deletes the longest detected datatype string PostgreSQLDatatypes.Names . This solves empty/undetected column comments in ParseTableStructure(). See https://www.heidisql.com/forum.php?t=23211#p34709 2019-10-05 08:04:31 +02:00
1f22580489 Issue #719: For message dialog button captions, prefer localized strings from user32.dll over our translation from Transifex 2019-09-26 20:29:55 +02:00
d446db554a Issue #144: Move some code out of TExtForm.OnCreate into .DoShow, where it works for more instances of TEdit, e.g. the database and table filter. Also, let the object editors call this code, as they don't derive from TExtForm. 2019-09-25 20:14:52 +02:00
0da8cb79f8 Issue #515: give ReadTextfileChunk a BufferPadding of 1 instead of 10M. With 10 attempts, we get a maximum of 10 Bytes which is more than enough to get a complete character in any multibyte encoding. See https://github.com/HeidiSQL/HeidiSQL/issues/515#issuecomment-527858110 2019-09-17 19:59:46 +02:00
a5c4498376 Issue #746: Call SetString with UTF8String instead of String, as advised on https://stackoverflow.com/q/57951463/4110077 . Hopefully nails the decoding issue. 2019-09-16 19:41:47 +02:00
abc9ef16f9 Issue #746: prefer AnsiString over Byte data type for buffering http request result. 2019-09-15 19:08:40 +02:00
7666496177 Prevent file read issues: THttpDownload.SendRequest() now stores the response in a string variable if the passed file name is empty. 2019-08-26 14:00:07 +02:00
676f4b1e74 Prefer inline code over outsourced one-time used function BestTableName 2019-07-23 17:38:26 +02:00
63fdc3e08c Move workaround for broken split buttons after translation into TExtForm.Create, so we have it once and the caller does not need to care about it. See https://sourceforge.net/p/dxgettext/bugs/80/ 2019-07-23 13:36:56 +02:00
db9e76bd78 Move code from TDBObjectEditor.GetDefiners to new TDBConnection.AllUserHostCombinations 2019-07-22 07:44:19 +02:00
71d9ef9011 Same as for TExtForm: translate in TDBObjectEditor.OnCreate, not in all derived editor classed 2019-07-22 07:28:07 +02:00
2ebbdc6ba3 Issue #718: Fonts may still be too large because the monitor on which a form is created has DPI > 100%. Calculate DpiScaleFactor based on that first monitor. See https://www.heidisql.com/forum.php?t=34230 2019-07-18 19:08:32 +02:00
92c8f62b85 High DPI:
* remove ParentFont flag from forms again (introduced in 9cdcd631454f6f9e999893ea89fcf502d994474c for #213). This just inherits from default Windows settings.
* instead, scale font size in InheritFont(), and move that to the new TExtForm class
* mark app with PerMonitorV2 support
2019-07-17 21:59:18 +02:00
e4423c76a3 Issue #513: add a theme preview dialog, which loads the selected theme png file from heidisql.com 2019-07-13 15:59:43 +02:00
aa2ee9fd8f Restore tabs feature crashes often on old XP systems, so we activate it by default only on Vista and newer. See https://www.heidisql.com/forum.php?t=34044 2019-07-10 16:25:25 +02:00
fae11b70aa Silence reoccurring error dialogues due to non-writable portable_settings.txt, by introducing a portable-read-only mode as soon as an update to that file fails 2019-07-10 11:05:12 +02:00
2a91a13b42 Issue #677:
* drop workaround for application crash on WinXP, when loading newer libmariadb (see #79)
* raise TDbLib's own exception instead of baking an own one with less details. Probably helps in debugging: https://www.heidisql.com/forum.php?t=34044
* rename EDatabaseError to EDbError, to overcome naming conflict in DB unit
* load libpq.dll always with path, which should anyway work better than without it. See http://www.heidisql.com/forum.php?t=22514
2019-07-08 20:23:05 +02:00
e804db8fcc Issue #677: provide a new library combobox in MySQL mode, for selecting any of the libmysql/mariadb.dll files from the application directory 2019-07-05 06:44:10 +02:00
f2ed7b01a1 Use UnescapeString() to remove more escape sequences than a duplicated single quote. Move ExtractLiteral() to TDBConnection, as UnescapeString() depends on the connection type. Closes #690. 2019-06-26 19:52:22 +02:00
1d6a415f5f Refactor: rename mysql_structures unit neutrally to dbstructures 2019-06-22 14:26:41 +02:00
fb2e3ef029 Cleartext syntax changes 2019-06-12 06:36:02 +02:00
0facfaa5cc Add cleartext option to sessions 2019-06-12 06:36:02 +02:00
bda7b932d1 Define default values for port and username of all supported server types. Also, do not change them in the session manager, when user selects a different sub type of the same server. 2019-06-09 09:27:17 +02:00
99e095fc39 Fix wrong sorting in database tab and various other lists. Closes #570 2019-05-18 09:58:35 +02:00
97043d368b Issue #74: remove no longer used hackish helper function GetColumnDefaultType() 2019-05-06 06:36:12 +02:00
0c35a27fec Issue #411: append search engine's hostname to "Find help" link in error dialogs, now that it's customizable 2019-04-30 12:32:35 +02:00
155cedace9 Revert a part of 406ab56060f370c2414c5041d766203cd3b75c32: Prefer TEncoding.UTF8 again over the TUTF8NoBomEncoding with an overridden .GetPreamble(). The grid export crashed when used a second time, probably because the TStringStream overtakes ownership of the encoding. Also, I see no BOM in files encoded via TEncoding.UTF8, so this was probably a fix for nothing anyway. 2019-04-28 12:42:44 +02:00
9fc7150a9f Issue #74: attempt to support all kinds of expressions in column DEFAULT + ON UPDATE clauses 2019-04-21 15:40:18 +02:00
4608390b96 Add preference option for custom web search url, used in error dialogs. Closes #411 2019-04-17 21:29:34 +02:00
85a8355e1d Add new log category lcScript, for queries from large scripts and import operations. By default disabled, which should speed up importing large files. 2019-04-16 07:19:47 +02:00
63212600ed Issue #515: Handle encoding errors in apphelpers.ReadTextfileChunk according to how Delphi 10.3 raises exceptions. And probably fix the issue by increasing the new chunk size by 1M instead of only 4B. 2019-04-14 19:44:59 +02:00
406ab56060 Attempt to fully support UTF8 encoding without BOM, as TEncoding.UTF8 has a non-empty preamble/bom. See https://forums.embarcadero.com/thread.jspa?threadID=112112 . Probably related to encoding issue #515 2019-04-13 10:52:41 +02:00
a2ef1aeccd Issue #140: Store application process id in each tabs.ini section, and don't restore tabs from other running processes. If the process no longer runs, restore such tab sections again, so nothing gets lost with multiple running application instances. 2019-04-13 10:43:52 +02:00
e9cc528632 Issue #140:
* store tab setup when application exits, as the TimerStoreTabs interval may not yet be reached
* remember startup value of asRestoreTabs option, which may change while the application runs, which in turn may cause problems when RestoreTabs wasn't called
2019-04-13 09:32:58 +02:00
e40210b1b5 Issue #140: Move code for all remaining common directory paths settings to TAppSettings (UserAppData, UserDocuments, Snippets) 2019-04-11 21:47:54 +02:00
32845094d9 Issue #140: Use local tabs.ini and Backups directory in portable mode 2019-04-11 21:21:47 +02:00
430ea3bde6 Issue #140: make auto-backup/restore feature stable against running multiple application instances:
* use unique date/time with milliseconds as ini sections
* open ini file for each read + write, separately, don't keep it open all the time
2019-04-10 12:19:40 +02:00