aboutsummaryrefslogtreecommitdiffstats
path: root/Source/TableDocument.m
Commit message (Collapse)AuthorAgeFilesLines
* - Update the connection sheet favourites view to bind to the preferences ↵rowanbeentje2009-04-151-48/+25
| | | | | | | directly to pick up updates more quickly - Improve favouritesAlreadyExists check to respond correctly if the connection database, host or user is blank
* - Add a unique ID to each favourite, which is also used when interacting ↵rowanbeentje2009-04-141-11/+15
| | | | | | | | ith the keychain. This resolves the last part of Issue #186 and associated problems (ie multiple connections via a tunnel with only the port differing - now can store different passwords). - Duplicate function in prefs now also duplicates the password - Fix a few places which created a blank keychain entry when no password was present
* Added printing support via WebKit WebViewbamse162009-04-111-9/+113
|
* - Make MainController the application delegate, and override standard ↵rowanbeentje2009-04-101-3/+9
| | | | automatic creation methods to only trigger automatic connection (if enabled in prefs) for automatically created windows
* - part 4 of merge from 'avenjamin' branch into trunk.avenjamin2009-04-101-12/+30
| | | | - committing Source
* Implementation of enhancement described in issue #75. You can now add the ↵stuconnolly2009-04-101-0/+48
| | | | current connection details to your favourites provided it doesn't already exist.
* That shouln't be there. Copy/paste error.stuconnolly2009-04-101-4/+3
|
* Fix for issue #190. As the connection sheet tableview uses bindings, ↵stuconnolly2009-04-091-1/+32
| | | | renaming a favourite wouldn't update the associated Keychain item. The item is now updated whenever the favourite name is changed.
* Make table operation messages more user friendly (issue #192) and display ↵stuconnolly2009-04-091-126/+251
| | | | them in sheets instead of modal dialogs. Also performed a general tidy up of TableDocument.[hm].
* - Select 'drop tables' option for MySQL export by default, to improve ↵rowanbeentje2009-04-061-4/+13
| | | | | | | backup-type process and more closely match mysqldump, and correctly drop views - Consistently set and restore the encoding appropriately for SQL import/export, and export to UTF8 files to correctly store all characters. Goes a good way towards addressing Issue #116.
* Fix an issue where by the show/hide console menu item was not being updated ↵stuconnolly2009-04-051-9/+24
| | | | when the toolbar item was used. Also add more interface validation by only enabling the 'Clear Console' menu and toolbar items when there is at least one message in the console.
* - Fix an invalid reference to a missing pulldown_arrow image causing ↵rowanbeentje2009-04-051-0/+3
| | | | | | | | invalid log entries - Set the focus to the custom query text field when appropriate when switching to the custom query tab - Add the ability to set the custom query editor font, save and load it from preferences, and no longer reset the font on queries
* Change the toggle console menu item's title to either 'Show' or 'Hide' console.stuconnolly2009-04-021-1/+8
|
* Fix 'Clear Console' menu item, which was disabled because of missing ↵stuconnolly2009-03-301-0/+8
| | | | 'clearConsole:' method in TableDocument.m.
* - Add a preference (currently with no UI) for connection timeoutrowanbeentje2009-03-281-18/+37
| | | | | | | - Improve connection error messages slightly. - Avoid reading prefs for every keepalive check - now sets connection timeout and keepalive interval on connection setup - Fix and extend connection checks to avoid showing extra errors when the connection has been closed
* Improve interaction with connection favorites to prevent issues saving ↵rowanbeentje2009-03-281-4/+4
| | | | | | | | favorite changes: - Favorites are no longer resaved on document window close - instead they're saved on connect. Prevents the oldest window open from saving its favorites when closed, overwriting any changes since. - Explicitly synchs changes to disk to ensure prefs window/connection sheets see each other's changes faster.
* improve labels of toolbar iconsabhibeckert2009-03-261-7/+7
| | | | | | change default toolbar set to have a separator instead of a flexible space between select database and switch pane items closes issue #159
* Completely redesigned query console that now uses a table view instead of a ↵stuconnolly2009-03-261-23/+20
| | | | | | | | | | | | | text view. This should significantly improve import speed, but most importantly resolves the crashes caused by the drawing that was being performed by the text view. Fixes issue #87 and implements #167. New console provides the following: - Live filtering - Ability to hide message time stamps - Ability to hide SELECT/SHOW statement messages - Ability to copy messages to pasteboard, including multiple messages - Ability to save the current filtered content to a file, with the option to include the message time stamps
* Scale print image horizontallybamse162009-03-261-1/+1
|
* Reset print settings, so we're not prompted about saving thembamse162009-03-261-0/+3
|
* Enabled Page Setup for printing, so now you can print landscape toobamse162009-03-261-1/+2
| | | | | | Enabled auto pagination, so we print everything for now
* Added hidden preference to automatically select the last favorite you used.bamse162009-03-241-0/+6
| | | | | | To enable this feature write in Terminal: bash $ defaults write com.google.code.sequel-pro selectLastFavoriteUsed YES
* - fixed issue #203 (backticks in identifiers not supported)jakob2009-03-241-11/+12
| | | | | | | | - added a backtickQuotedString: method to SPStringAdditions - created the file SPArrayAdditions for a componentsJoinedAndBacktickQuoted: method In the future, we should use backtickQuotedString: to quote identifiers like this: [NSString stringWithFormat:@"SELECT * FROM %@", [tableName backtickQuotedString]]
* - Added tooltips to action button menu itemsavenjamin2009-03-221-1/+1
| | | | - Removed refresh tables menu item - refresh button right beside it.
* Improves the table structure view to only save a row when properly ↵rowanbeentje2009-03-051-0/+21
| | | | deselected, and automatically reselecting the row for re-edit on error - resolves Issue #74.
* Don't allow the table list to be completely out of sight by not allowing the ↵stuconnolly2009-03-041-2/+2
| | | | collapsing of the split view's subview. Minimum subvew view width has also been reduced by 20px. Fixes issue #150.
* - Renames "Database Encoding" menu item in Database menu to "View Using ↵rowanbeentje2009-03-041-2/+20
| | | | | | | | Encoding" for clarity - Add support for EUC-KR (I think, unable to test), hopefully fixing Issue #149 - Add workaround for UTF8 via Latin 1, supporting viewing and editing of data added using broken clients/upgraded old Wordpress/etc.
* - BLOB and binary fields are now fully visible and editable again (fixes ↵rowanbeentje2009-03-031-1/+25
| | | | | | | | | Issue #155) - Added basic support for viewing, filtering, and editing BIT columns (resolves Issue #127 in basic form) - Rewrites selection/save handling. Rows are now only written to database if their content has changed, resolving a long-standing complaint; row selection and editing has also been improved, improving edit/save interaction (fixes Issue #157) and allowing re-editing of the row on failure (fixes Issue #115). Hopefully also addresses #Issue 131, and improves Issue #172. - Hides the console window when the associated document window closes
* - Improve handling of disconnections made while selecting a database, ↵rowanbeentje2009-02-281-2/+4
| | | | | | | | fixing a crasher when suffering from network issues - When prompting for an export filename, only select the filename for editing and not the extension - Remove timing debug from CSV export
* + Separate the console from being drawer based to its own panel. New console ↵stuconnolly2009-02-281-86/+44
| | | | | | | | | panel also adds the ability to save the current console content to a file on disk. Speed up the updating of the text view by removing the re-draw of the view after each message is appended. The console is still very basic, but is a starting point for more functionality to be added now that it is all handled in a single class. + Add the ability to specify the encoding when creating a new database. Addresses issue #125. Also improve the usability of the create database sheet by only enabling the 'Add' button if the database name length is greater than zero. This elimates the check that is done and the error panel that is displayed if the name is empty.
* Deselect favorites when any detail other than the password is edited. This ↵rowanbeentje2009-02-211-0/+16
| | | | improves clarity, but also fixes an issue: if a connection with amended details failed, the default favourite details are reloaded in the sheet if a favorite is selected. This change allows a connection to fail and the actual used details to be reshown in the sheet.
* Sets and enforces a connection timeout, and handles connection timeouts ↵rowanbeentje2009-02-181-0/+2
| | | | | | | | | | | | | | | | | | | appropriately - offering to retry, reconnect, or disconnect. This fixes Issue #93, Issue #69, and Issue #77. The gory details: Previously, MCPKit was correctly running mysql_ping to ensure a connection still existed before running a query, and aborted the query if the connection was no longer active.However the code very rarely checked the response of this, so if a query failed subsequent queries would continue to be run and the program would end up checking non-existent results, throwing Cocoa exceptions and generally breaking. However, mysql_ping would also use the default timeout (30 seconds) for each check - when running the (previous to r333) 14 queries to switch tables, this resulted in a long hang before the program even broke. To exacerbate the issue, certain situations triggered a bug present in mysql_ping in the old client binaries we're using (http://bugs.mysql.com/bug.php?id=9678), causing mysql_ping to never return despite the presence of a timeout, and so causing an indefinite hang. This issue has been fixed by: - Setting a new 10 second connection timeout for both new connections (Issue #69) and for mysql_pings. Once preferences have been redesigned we'll probably make this value editable. - Enforce the 10 second timeout even if mysql_ping hangs by using interrupts. - Wrap mysql_ping in a new method to do the above and also catch re-established connections without reporting false failures. - When a connection has failed, prompt the user to Retry, Reconnect, or Disconnect. Reconnect uses the original details for the old connection to establish a new connection, also attempting to preserve the current encoding. - Do not return control to the main loop until a connection has been reestablished (or disconnected) - this ensures the program is never in a broken state without having to rewrite all query usage. Much of the above patches the MCPKit connection methods as necessary.
* Visible improvements in this build:rowanbeentje2009-02-181-43/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Significantly reduce the queries that have to be performed, improving lag - especially over slow connections (Issue #118; see new controller info under headline code changes). - Fix Issue #117 properly (export numeric quoting - we now have access to column types and so can quote appropriately). - Fix Issue #145 (loss of unsigned/null/default attributes when reordering columns). - Fixes Issue #90 (support for filtering DECIMAL column types) - Improve table scrolling speed when the table contains long items. (Added a NSFormatter to automatically truncate strings > 150 chars for display purposes only) - Improved SQL compatibility - for example /* C style comments */ are now correctly ignored in imports and custom queries. - Add text and symbols emphasising that the table info pane / status view row count is an approximation (partially addresses Issue #141) - Fixes a major memory leak whenever opening or scrolling tables containing text/blob data. - SQL import is now faster (SQL parsing part is 3x faster). - Speed up SQL export (1.5x faster for numeric data; 1.1x faster for string data) and slightly speed up CSV export (~1.1x faster). - Display sizes on the status view using the byte size formatter, as per table info pane. Headline code changes: - Add a new NSMutableString subclass, SPSQLParser. See the header file for documentation and overview, but in short it's a centralised place for SQL parsing. Centralises and improves parsing, improves comment support, improves quoting support. Despite the improved featureset this is also faster than the previous distributed implementations - for example, when used to replace the old splitQueries:, > 3x speedup. - Implement a new controller which handles a structure and status cache for the current table, and provides structure parsing for specified tables. This cache is now used throughout the code, reducing the queries that have to be performed and providing additional information about the table structure for use; I think it also improves column type format slightly. - The table info pane and the status view now draw all their data from the cache. Tweaks: - Table encoding is now detected directly instead of being derived from the collation - increased accuracy and cope with the DEFAULT encoding. - Comments and formatting cleaned up in bits I was working on, obviously. - A couple of methods - particularly [tablesListInstance table] and [tableDocument encoding] - have been renamed to avoid conflicts and fix code warnings. Future improvements now possible: - As we now have access to column types and other information, we can provide per-type behaviour where desired. - The table parsing doesn't currently pull out comments or table indices, together with one or two other attributes. Some of this would be useful for display; some, such as indices, could be used to draw the table structure view as long as we're happy discarding a couple of columns (ie cardinality!)
* Fixed Issue #168avenjamin2009-02-181-1/+3
| | | | Choose Database popup button now reverts to current database when cancelling the "Add Database…" dialog.
* Add 'Refresh Databases' menu item to the main database selection drop down. ↵stuconnolly2009-01-291-8/+12
| | | | Fixes issue #143
* Added the print method to go from. Sort of works by printing the literal ↵mltownsend2009-01-181-0/+8
| | | | NSView that is currently selected.
* Clean up of validate menu items method.avenjamin2008-12-221-18/+8
|
* Disabled "Remove Database…" menu item when no database selected. Issue #124avenjamin2008-12-221-0/+4
|
* Spelling error in Flush Privilege's success message. Issue #123avenjamin2008-12-221-2/+2
|
* MERGED r262:266 from branches/stuart02 to trunk to include new project ↵stuconnolly2008-12-101-0/+1633
structure.