Commit Graph

363 Commits

Author SHA1 Message Date
Ansgar Becker
c81dd21d69 Enhancement for all VirtualTrees: Remember previously selected nodes and restore them after any refresh. Using existing helpers:GetVTCaptions plus new helpers:SetVTSelection 2008-02-29 23:07:47 +00:00
Ansgar Becker
8679b371e3 New feature: Introduce a dialog for editing a server variable which is called on ListVariables (DblClick or Enter). 2008-02-29 22:32:53 +00:00
Ansgar Becker
7e4bfafbe1 Fix access violation in Database tab when at least one view exists: TField.AsFloat on a NULL value throws this AV. User report can be found here: http://www.heidisql.com/forum/viewtopic.php?p=1812 2008-02-27 20:17:04 +00:00
Ansgar Becker
2f30ee2e68 Simplify updatecheck: Make unit updatedownload superflous by moving relevant code to updatecheck.pas. Resign from displaying a progressbar for the mostly short download time, instead use the existing status label for a textual progress information. 2008-02-27 19:31:58 +00:00
Ansgar Becker
d6d8f88417 Move unused stuff from rev 1209 and 1210 out of the release relevant files, to a place where they can be reactivated if required sometime in the future. The .res file can be restored by calling /extra/updater/makeresource.cmd . 2008-02-23 22:29:41 +00:00
Ansgar Becker
befebb7fe7 Build-Installer: Replace batch code by a Visual Basic Script which is capable of doing loops and reasonable error handling. Gets executed by the Windows Script Host after the new build has been downloaded.
Todo: The download process itself should also be done in this VB script. That would make the unit "updatedownload" superflous.
2008-02-23 21:22:09 +00:00
Ansgar Becker
9f23a9b313 Updatecheck: Find a batchfile-solution to replace the running exe with a downloaded build.
TODO: find some sleep command for the batch file, as we sometimes get "access denied" while trying to overwrite the just terminated exe. Seems like taskkill doesn't close all handles itself.
2008-02-23 00:54:02 +00:00
Francisco Ernesto Teixeira
7788014258 Added methods that enable the update of running main application just giving the direction of newest main application file. 2008-02-21 03:01:10 +00:00
Ansgar Becker
7e6477552c Fix bug #1897916 "SQL error: Unknown system variable NAMES" by using a regular expression for detecting the numeric version. The commonly used mysql versions with numerical suffixes caused this bug, for example "4.0.31-20070605_Debian-5-log".
(Plus: Make PerformConnect more readable.)
2008-02-20 20:59:00 +00:00
Ansgar Becker
b584aa5ae4 Introduce automatism for calling the updatecheck dialog. User can set the interval how often this is done in preferences dialog (default interval: 3 days, can be completely disabled). The automatic calling of this dialog should not disturb anyone as it's closed immediately if there are no updates available or if a developer version with an unknown revision is used.
Some GUI controls on the dialog had to be moved around as well as some lines of code so everything works well with the automatic dialog closing.
2008-02-19 19:44:33 +00:00
Ansgar Becker
b9f615f024 Minor fix for updatecheck: Set the font color of the correct TMemo after a button has been disabled. 2008-02-14 23:04:05 +00:00
Ansgar Becker
32a4c08a8b Enhancements and fixes for updatecheck dialog:
- Fix URL opened by btnBuild
- Fetch and display date, revision and note of release/build
- Put the download buttons into separated TGroupBoxes and add a TMemo for Notes above them
- Enable a download button if "download revision" > "current revision". Enables a more exact comparision, especially for releases.
- Remove dodgy "refresh" icon on form.

If you stumble across this compiler notice: "FileAge(File)" is deprecated, while the used overloaded method "FileAge(File, DateTime)" is not. See also: http://groups.google.com/group/borland.public.delphi.rtl.win32/browse_thread/thread/9792bef1ee37a298/75b96783bb4862ee
2008-02-14 20:24:02 +00:00
Ansgar Becker
d3edf57600 Fix for previous commit: Selected NULL cells should be readable everywhere, not just with my personal color settings... 2008-02-12 20:01:15 +00:00
Ansgar Becker
f9b6fdaf64 Follow up to rev 1156: Enhance readability of selected NULL cells with grey font color: Just use the default font color clWindowText in those cases.
User report: http://www.heidisql.com/forum/viewtopic.php?p=1753
Code inspired by: http://qc.codegear.com/wc/qcmain.aspx?d=3009
2008-02-12 19:49:32 +00:00
Ansgar Becker
30330bfea0 Minor: Remove unused legacy var 2008-02-12 18:58:54 +00:00
Ansgar Becker
638b69ea85 Add feature 1769207 "Automatic Software Update":
Implements a simple dialog which tells the user if there is some new release or nightly build available. Parses http://www.heidisql.com/updatecheck.php as a .ini file. Download buttons just start the webbrowser currently.
Todo: Automatic invocation of this dialog at regular intervals (for example once a week)
Todo: Automatic download + update + restart
2008-02-10 23:29:39 +00:00
Ansgar Becker
52c85ddabc Introduce APPDOMAIN constant (=http://www.heidisql.com/), for usage in various methods. 2008-02-08 21:11:08 +00:00
Ansgar Becker
84dc50b9bd Fix compiler error from rev 1194 2008-02-06 06:51:57 +00:00
Ansgar Becker
4e23728aa2 - Move all hardcoded preferences names (registry) plus their default values to const.inc to fix inconsistencies like the one described here: http://www.heidisql.com/forum/viewtopic.php?p=1739
- Consequently use Mainform.GetRegValue() to read these values, an overloaded method with either Boolean, String or Integer result. These methods keep a global TRegistry object (regMain) open while the application runs, rather than creating a new one for each caller.
- Remove Mainform.SaveRegValue() which was used in one or two callers. Rather use a TRegistry object and do that by hand. There's no significant advantage in using a SaveRegValue method currently.
2008-02-06 00:00:52 +00:00
Ansgar Becker
be733f6821 Fix preselection of context relevant database in pulldown (CreateTable). Was done in two redundant places before and both did it wrong, not taking DBRightClickSelectedItem into account. 2008-01-26 23:16:17 +00:00
Ansgar Becker
d6129572c1 Minor documentation fix in editFilterVTChange() 2008-01-26 19:12:30 +00:00
Francisco Ernesto Teixeira
a6a53de8b1 Fix bug #1872643 "Interface: UNSUPPORTED default value for GEOMETRY field"
Error message: <spatial data type> can't have a default value.
Solution:  I tried every type of this family data type and found that they needs the flag HasDefault as False.
2008-01-23 21:22:00 +00:00
Ansgar Becker
f53ea37647 Add a filter editor above ListVariables, ListStatus and ListProcesses. Should make the lists more suitable to look for specific values when they're very long.
(Plus: Move some TPopupMenus around so they don't overlap other controls at design time)
2008-01-23 20:24:35 +00:00
Ansgar Becker
c51ea356a1 Fix bug #1841478 "Access violation when add indexes" by keeping the instance of TFieldEditForm in memory after using it instead of recreating it each time the window is shown. The AV seems to be caused by FreeAndNil(f) but that's not reproducable when you start the exe within Delphi. However, the AV is gone now.
Related changes:
+ Use modal result values on buttons instead of explicitely setting them via code
+ Move some safe code out of a try .. except because only THandledSQLError's are catched.
2008-01-17 23:26:19 +00:00
Ansgar Becker
0c10b77794 Place a TSynMemo below ListProcesses and use that to display the executed SQL command. Makes debugging SQL stuff more conveniant. 2008-01-11 22:06:28 +00:00
Ansgar Becker
95fa339756 Split Host/Variables tab into two tabs + lists for variables + status. Mixing both results is inconveniant because they are normally quite long. 2008-01-11 21:25:50 +00:00
Ansgar Becker
a79ac546e5 Fix bug #1856457 "Incorect table creation queries / wrong error handling"
Solution: Just keep CreateTableForm open after firing a faulty CREATE TABLE statement.
Note: The "Create" button has ModalResult := mrOK, so the form is automatically closed in the normal case.
2008-01-11 20:39:23 +00:00
Ansgar Becker
a580043f9c Fix bug #1865305 "error popups with server down and process list reloads" 2008-01-11 20:05:51 +00:00
Ansgar Becker
26f5d5ce88 - Get rid of lame helper notinlist(), use TStringList.IndexOf() instead.
- Get rid of TCreateTableForm.ButtonsChange(), merge code into TCreateTableForm.EditFieldnameChange()
2008-01-11 16:10:14 +00:00
Ansgar Becker
5fbee3c690 Make selection of table engine available on pre 4.1 servers. Applies to "Alter table" dialog as well as "Create table".
- Use variables like "have_innodb" for detection of supported engines.
- Move redundant code from two places to Childwin.TableEnginesCombo()
- Remove some legacy code around this logic
- Don't free the instance of CreateTableForm after closing it. Saves some SQL queries from being fired each time the form gets created.
2008-01-11 15:45:21 +00:00
Francisco Ernesto Teixeira
2dc93c9ca5 Statements using CALL SQL requires that the option CLIENT_MULTI_RESULTS
is enabled. Reference: http://dev.mysql.com/doc/refman/5.0/en/call.html
2007-12-19 13:54:18 +00:00
Francisco Ernesto Teixeira
3a313a1eeb Fix bug #1845426 "Can't call stored procedure" 2007-12-18 12:30:44 +00:00
Ansgar Becker
93172bd196 Get the copy/paste workaround in grids working also for the "Query"-grid 2007-12-17 23:28:27 +00:00
Ansgar Becker
1671ea2c19 Move all code for adjusting CREATE TABLE statements to a specific version from exportsql.pas to fixSQL(). Using SynEdit's nice regular expression object. Fixes bug #1843890 "Exportfile: YPE=MyISAM; (missing T)" 2007-12-17 23:12:35 +00:00
Ansgar Becker
e32bd641eb Fix a theoretical access violation for servers with 0 databases. Could potentially fix bug #1844815 . 2007-12-16 23:44:57 +00:00
Ansgar Becker
bac6b5bff2 Fix bug #1844735 "Corrupt CREATE TABLE in dumps" 2007-12-16 23:01:27 +00:00
Ansgar Becker
2b4c477e3e Try to fix
bug #1850003 "DB treeview context menu opens only on first monitor" and
bug #1846610 "Database View/List Popup Menu position issue"
Although I can't test the solution completely as I'm lacking a second monitor (like the reporter of the first bug), it seems correct that TPopupMenu.Popup() needs the clientorigin added to the mousepoint which is only a relative position to the underlying TWinControl.
@see TMDIChild.btnDataClick()
2007-12-16 22:29:46 +00:00
Ansgar Becker
bb76a60abb Enhance position and size of checkboxes in printer dialog. Some captions were cut, especially when you call the dialog for the command stats list. 2007-12-14 20:28:41 +00:00
Ansgar Becker
2e859faf5e Fix bug #1850358 Table name autocomplete shows "dummy node" 2007-12-14 18:41:46 +00:00
Ansgar Becker
249610072e Minor followup to rev 1170:
- Wording: "table" should be more clear than "objects"
- Source: Add TODO for platform specific method call
- GUI: Add right hand anchor for new radiobutton to ensure it's not covering some borders of the parent box
2007-12-13 18:04:49 +00:00
Ansgar Becker
4e731b7fe5 Follow up to rev 1169: Add a more eye catching and user friendly solution to export to a directory.
- Add a fourth radiobutton + edit + button labeled "Directory" below the "File" option
- Code just uses that new option just like the File option. Only differentiate in the InitFileStream method.
- The SelectDirectory() method expects the unit FileCtrl in the USES clause. Silence a relevant compiler warning about usage of platform specific units - we will never compile anything else than a Win32 app here.
2007-12-12 21:42:49 +00:00
Ansgar Becker
4793d275cd Add feature #1843670 "Multi-table Automated File Exporting"
The output filename gets parsed and the eventually existing "<table>" pattern gets replaced by either "header", "table1", "table2", ..., or "footer". That means, the single SQL files won't be complete in the end, as the header and footer is missing in the table-files. Not 100% sure if this is a good strategy. For me it seemed like the best/fast/lame way of working around the fact that the header potentially contains a CREATE DATABASE statement.
2007-12-10 21:02:06 +00:00
Ansgar Becker
69e649b70b - Fix the copy+paste workaround in DBGrids, was malfunctioning when grid is in editormode.
- Add a reminder for enabling Unicode in this workaround
2007-12-05 13:01:09 +00:00
Ansgar Becker
35ebc27761 Merge SynEdit sources with Unicode enabled version from http://www.mh-nexus.de/unisynedit.htm 2007-12-05 12:37:49 +00:00
Ansgar Becker
db48c82110 Find a better fix for the black focus rectangle plus fix another graphical glitch for MEMO and BLOB cells, which didn't get covered completely by the (NULL). This fix just leaves the (MEMO) and only uses the grey color for it. 2007-12-05 00:36:03 +00:00
Ansgar Becker
367cb4cc40 Fix a minor graphical glitch when a focus rectangle is displayed in a gridcell (broken in rev 1156) 2007-12-05 00:12:49 +00:00
Ansgar Becker
42166f0975 Remove "Data always in edit mode" option again and setting that to False at designtime. (as discussed on the devels-mailinglist) 2007-12-04 23:51:41 +00:00
Ansgar Becker
d3307814b5 Followup to rev 668 and rev 678: Reenable option "Datagrids always in edit-mode". Implement a simple workaround for the broken copy+paste shortcuts. However, don't touch the TAction items Copy+Paste to avoid unpredictable behaviour. 2007-12-02 13:01:52 +00:00
Ansgar Becker
d6cda29f14 Add Nemanja (commandline parser) to authors list. Some GUI adjustments in the about window needed because that list got longer. 2007-12-02 07:52:04 +00:00
Ansgar Becker
23c13d2531 Cleanup usage of background colors in grids and listviews:
* TNTGrid is not capable of displaying a sort arrow in column titles. So, signalize sort direction of columns in grids and listviews by lightgrey (= ascending) and mediumgrey (= descending)
* Remove special color for NULL cells in grids because it can conflict with the new sorting colors. Instead, place a grey (NULL) text in these cells. Less gaudy colors now.
* Also remove grey background in primary key columns for the benefit of sorting colors. PK cells have bold font anyway, should be noticable enough.
2007-12-01 22:37:21 +00:00