* Return an integer from ConnectionWindow() rather than Booolean, makes the code in caller easier to read.
* Close HeidiSQL if the user chooses not to connect to a server.
Affected issues: rfe #618, rfe #464, bug #324, bug #635 (maybe more)
Breaks: Unicode grid editing (due to yet unsolved bug #620), enum pulldowns, MEMO editing
Major changes:
- editor tab at bottom completely removed, SQL log is always visible now.
- memo, blob and enum editors don't have a replacement yet. This is left for later commits.
- grid cells are colorized to signalize their datatypes
- UPDATEs, DELETEs and INSERTs are composed by own code, no longer by Zeos internal mechanisms. Should make debugging easier.
- UPDATEs + DELETEs on tables without unique key are blocked now.
- editing in the query grid is always blocked. Would need some extensive parser to allow that.
- Drop "Remove filter" action which seems useless when having a "Clear filter" action
- Let the Apply button be triggered with Enter when table wide filter edit is focused
Plus: Removes the load/save filter file buttons as proposed on the mailing list. Seemed totally unneeded and confusing.
I tried to add a new form for this filter stuff, just like the two other buttons do it (Columns, Sorting) but that was of horrible usability as it would have been auto closed as soon as you unfocus it.
TODO:
+ Move LIMIT stuff to a popup, activated by a 4th button above the datagrid.
+ Remove memo/blob editors from the bottom page control, show them inline in the grid or as a new form. The log tab should never get automatically hidden any more then.
- add field
- edit field
- drop field
- create view
- edit view
- stop on errors in batch mode
- wordwrap mode
- various weblinks in help menu
- export/import settings
- maybe more..
a) the action's shortcut has prio over SynMemo's shortcut
b) the "select all" action itself is not functioning for a SynMemo
Not sure where the bug is, either in TEditSelectAll or in TSynMemo.
a) some hundred lines of code from childwin.pas to main.pas
b) redundant hints/captions/shortcuts/events for similar buttons/menuitems to their corresponding TAction in main.dfm .
This change
a) avoids several inconsistent captions like described in issue #595
b) makes it easier to have toolbars on the mainform which are controlled by childform.
-> Sanitizes code from various error prone button/menuitem enablings/disablings.
-> Ensure consistent captions + hints for actions which are used in more than one menu/toolbar
Fixes one part of bug #595
- Remove redundant buttons on it ("view data" + "table properties")
- Move table related buttons from ToolbarStandard to the new ToolbarDatabase ("delete table" + "create table").
- Fixes bug #271 "F5 shortcut in database tree not working"
- Fullfills rfe #519 "Highlight selected item in tree view when focus is elsewhere"
- Fixes inconsistent expansion state of nodes after refreshing
- Fixes plus sign staying when a db node with 0 tables was selected
- Slightly enhances painting speed within the dbtree
- Removes temporary storage of a rightclicked node (DBRightClickSelectItem). VirtualTree handles its right clicked selection exactly like the left clicked one, which makes makes coding a bit cleaner as we can always use the selected item instead of hacking with the right and left clicked node. On the other side it removes a quite user friendly feature. Well, we can reimplement this feature later, though it's not user UNfriendly currently.
- Reasonably rename the StringList "OnlyDBs" to "DatabasesWanted" and "OnlyDBs2" to "Databases"
- Accounts and existing privileges are presented in a pulldown which makes it as easy to use as a toy
- Adding privileges calls the new SelectDBO dialog which is basically a tree like childwins dbtree
- Updating accounts canonicalizes various odd/legacy mechanisms in the MySQL user system
- Fullfills feature request #1547437 (btw)
- Wants to be tested heavily on different servers
A result of a team work. 1000 thanks to rosenfield for the admin friendly logic implementation, tons of fixes and usability ideas.
- Rename components with reasonable names
- Use caching mechanism from Childwin.FetchDBTableList to fill tables listbox
- Make form resizable, store and restore customized dimensions
- Keep form instance alive and recycle that instance as long as Mainform lives
- Fix confusion with action item (wasn't really used in both menuitems)
- Add documentation
- Give them their own icon in dbtree and ListTables
- Disable pure table actions (like "Alter table", "Optimize" etc.) in context menus when a view is selected
- Add new column in ListTables: "Type" which is filled either with "Base table" or "View"
- Introduce new property "NodeType" in TVTreeData record, used currently to store NODETYPE_VIEW or NODETYPE_TABLE. This new property is meant to be used for various purposes in other VirtualTrees in the future.
- Introduce Childwin.SelectedTableType, corresponding to Childwin.SelectedTable
- Make DropTable action fit for also dropping views (and surely a list with a mixture of views and tables)
- Don't fetch rowcount from views in DisplayRowCountStats to fix bug #1844952
- Fix wrong imageindexes in quickfilter menus for clipboard inserting and "Drop filter"
- Assign existing, fitting icons to all other quick filter menu items and "Insert date/time" items.
- Replace icon for "Query" tab by the big blue arrow which is also used for the "Play" button
- Replace icon for "View Data" buttons and "Data" tab with a more simplistic one from the Silk set. This makes the normal "table" icon more distinct as these both looked very similar previously.
- Edit the "Import CSV file" icon: add some lines which can be better associated with a "text file"
- Remove "Reload privileges" button on toolbar and leave it in the tools "flush" menu. Also remove confusing icon for this menu item as that was highly similar to the master refresh symbol.
- Assign a different (hopefully clearer) icon to "Export SQL" action
- Add seperator between database and table toolbuttons