aboutsummaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* • After importing CSV data execute [TableContent reloadTable:] on ↵Bibiko2009-10-081-2/+4
| | | | | | mainThread to avoid crashes if SP shows the data in the Content Browser in which the data will be imported. [It occurred sometimes that the current table should be updated but no data were available due to threading.]
* • outsourced ImportCSV accessory view to fix the disappearing of combobox ↵Bibiko2009-10-071-0/+22
| | | | | | values after re-invoking it - store the accessory settings in SP's preferences
* • fixed bug for CSV importBibiko2009-10-071-0/+8
| | | | - now the parser will be initialized by the import dialog's settings (was unintentionally deleted)
* • some minor code cleaning and simplificationBibiko2009-10-072-298/+309
|
* More export redesign work. Note that the current implementation has a major ↵stuconnolly2009-10-077-90/+90
| | | | flaw in that exporter instances (NSOperation subclasses) are not reusable and so we have to create a new instance for every 'chunk' of data we want to process.
* • added main menu item: "Open “<file>” in New Window" ⌥⌘O as ↵Bibiko2009-10-063-0/+31
| | | | | | alternated menu item bound to "Open…" - this action opens the current file-based connection in a new window by reading <file> again
* More export redesign work.stuconnolly2009-10-067-35/+99
|
* • changed routine for opening SPF filesBibiko2009-10-063-13/+59
| | | | | | | | | - if no passwords are stored inside the SPF file try to retrieve the passwords from the KeyChain - for that purpose store the key 'kcid' in the SPF file if available - changed the accessory view: 'auto_connect' is always enabled (even no pw will be saved due to new routine) • fixed issue for Open Recent of SQL files • add a saved SPF file to Open Recent list if the user saved an Untitled doc or saved an open SPF file under an other name
* More export redesign work. CSV data generation is currently working using ↵stuconnolly2009-10-0612-311/+347
| | | | the old non-streaming code, but does not yet write to any files. Please note that this is still very much a work in progress.
* Add the ability to copy the selected server variable(s), either as name = ↵stuconnolly2009-10-042-18/+107
| | | | value pairs, just the variable or just the variable value.
* - When moving or editing table columns, preserve comments and any column ↵rowanbeentje2009-10-032-3/+45
| | | | | | | details which are currently unhandled (column formats, storage, references). This addresses the data loss part of Issue #180. - Parse out column comments in SPTableData to allow displaying or editing comments in future
* Improve Growl interaction to reduce general Growl spammage and improve ↵rowanbeentje2009-10-035-19/+134
| | | | | | | | | | functionality: - Growls are now only shown by default if they are not fired from the frontmost window - Long-running tasks (>3 secs) will still Growl - Clicking on a Growl will now bring the associated window to the front This addresses the original concerns of Issue #98.
* • fixed "Open Recent" for 10.6:Bibiko2009-10-031-1/+1
| | | | | | since 10.6 that list expects a clean file URL created via [NSURL fileURLWithPath:path] (having the suffix file://localhost/....) Note: should be tested for Leopard.
* - Ensure that blob and text fields which are loaded on-demand never have ↵rowanbeentje2009-10-031-7/+20
| | | | placeholder values written to database. This addresses the data corruption part of Issue #423.
* When duplicating table, but not its contents strip out any occurrence of a ↵stuconnolly2009-10-021-1/+8
| | | | present AUTO_INCREMENT value. Fixes issue #391.
* When duplicating a table strip out the names of any occurrences of InnoDB ↵stuconnolly2009-10-021-0/+7
| | | | foreign key references as the names must be unique. MySQL will create the new names based on the new table name. Fixes issue #398.
* • first implementation of a Content Filter EditorBibiko2009-10-0110-139/+189
| | | | | | | | | | | | | | - user-defined content filter can be saved globally (Prefs) or in SPF files - BETA - further tests are needed due to complexity - SPQueryController now handles the local user-defined content filters - tooltips are now generated automatically if not defined explicitly (incl. if $BINARY placeholder was used) • if user added local query favorites or content filters to an Untitled document and s/he wants to close it the standard sheet will be displayed (Don't Save - Cancel - Save) - due to that changed old [TableDocument displayName] to 'displaySPName' to be conform with Cocoa • changed behavior while importing query favorites - now they will append at the list (not inserted after selected row - makes more sense) • introduced to history filter dict the key 'menuLabel' which will be set to [TableContent tableFilterString] for displaying the history menu title and simplified the SPHistoryController logic for that • minor code changes
* - Add copy create syntax button to the create syntax sheet.stuconnolly2009-10-015-9/+29
| | | | | | - Fix the Growl notification prefs message as well as making the dialog a sheet. - Re-run genstrings to update localizable.strings and also remove use of multiple comments for a single string.
* - Replace the create syntax transparent HUD panel with a standard sheet, ↵stuconnolly2009-10-012-49/+103
| | | | | | | | | which displays the create syntax in the same non-editable version of the custom query editor. Addresses issue #411. - Add the ability to save the displayed create syntax to a file on disk. - Change the 'Show Create Syntax' shortcut from shift+cmd+S (its already in use) to alt+cmd+S. - Make both the create syntax and server variables sheets not run application modally and thus prevent them from blocking the main thread. Part of issue #351.
* - Add ControlMaster compatibility to SSH tunnels - credit to Igor Sutton. ↵rowanbeentje2009-09-301-0/+1
| | | | This addresses Issue #396
* - Update history item name generation (for history menus) to add support ↵rowanbeentje2009-09-301-0/+10
| | | | for the BETWEEN filter
* • further progress on the Content Filter EditorBibiko2009-09-306-250/+353
| | | | | • fixed issue for "Add" a new favorite in SPQueryFavoriteManager: - save pending changes in the query textView in beforehand
* - Correctly release and reset the sort column when deselecting tables or ↵rowanbeentje2009-09-291-0/+4
| | | | selecting single tables after multiple tables are selected. This addresses Issue #372 and probably Issue #365
* • preparation for GUI support to manage user-defined content filtersBibiko2009-09-292-0/+901
|
* - When editing a row in a table with "on update CURRENT_TIMESTAMP" set for ↵rowanbeentje2009-09-291-11/+15
| | | | a column, if that column value hasn't been changed by the user apply the CURRENT_TIMESTAMP appropriately. This addresses Issue #416
* - When adding tables, use standard selection update methods rather than ↵rowanbeentje2009-09-281-30/+2
| | | | custom (and partial) code; fixes issues of showing old columns/data from the previous table when creating new tables.
* • some code cleaning and removing of the deprecated method ↵Bibiko2009-09-282-51/+55
| | | | 'selectedRowEnumerator'
* • fixed an issue of double-loading user-defined filtersBibiko2009-09-282-1/+30
| | | | | | • introduce a new placeholder $BINARY to the filter definition - if user presses ⇧ while invoking the table filter and a filter had defined that placeholder the search will be case-sensitive; otherwise the placeholder $BINARY will be simply removed to search case-insensitive - added tooltip for these string filters in ContentFilters.plist
* • improved and fixes escaping of filter argumentsBibiko2009-09-282-3/+33
| | | | | | | | - 'is (not)' and 'contains (not)' are now defined as: take the argument literally, ie % and _ will be escaped automatically - in string fields one can look for \n , \r , \t - added LIKE and NOT LIKE operators to strings to be more transparent - a routine detects automatically whether a placeholder was wrapped into ' or " and if so ' or " will be escaped
* • rewrote the content filter logic:Bibiko2009-09-282-190/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - all default filters come from "ContentFilters.plist" which can be localized main structure: <plist> <dict> <key>number</key> <array/> <key>string</key> <array/> <key>date</key> <array/> </dict> </plist> filter item structure: [ ${} is a place holder for an argument ] <dict> <key>MenuLabel</key> <string>BETWEEN</string> <key>Tooltip> <string>a tooltip</string> <key>NumberOfArguments</key> <integer>2</integer> <key>ConjunctionLabels</key> <array> <string>AND</string> </array> <key>Clause</key> <string>BETWEEN '${}' AND '${}'</string> </dict> - if NumberOfArguments == 0 then start filtering automatically - now one can save his/her own filters in SP's preferences.plist (GUI follows soon) - fixed issue for filters requiring two arguments that pressing RETURN if one is in the second argument input field invokes "Filter" - added string operators: "IS EMPTY" and "IS NOT EMPTY" - fixed issue that now one is able to look for eg \n in string fields
* Rewrite CSV import:rowanbeentje2009-09-284-577/+1199
| | | | | | | | | | | | | - Replace the CSV parsing function (arrayForCSV:) with a new SPCSVParser class - Make speed improvements to SPCSVParser to achieve 1.9x faster parsing than the old arrayForCSV: function - Rewrite CSV imports to be performed as a streaming import, keeping memory usage much much lower - CSV field mapping preview is now shown very early on in the import process, as soon as the first hundred rwos are available for a preview - Progress bars are more consistent and accurate - CSV rows are grouped into batches of up to 50 (depending on line length) for import, falling back to one-query-per-row if errors occur. The current error reporting level is therefore maintained, but imports of non-erroring data are much much faster. - Improve processing speed slightly - Fix some odd edge cases in CSV parsing This addresses issue #389.
* • marked 'sequel-pro-print-template.html' as localizableBibiko2009-09-273-6/+35
| | | | | | | | | | | | • outsourced default QuickLook types into a localizable plist - prepared SP preferences and SP code to allow the user to add own QL types • prepared a localizable 'ContentFilter.plist' [not yet implemented fully] - this plist will held the default filter operators - this approach will give the user the chance to add own filters • removed three tiny memory leaks Note: In MCPResult.m variable 'MCPYear0000' was stored retained. Why? I removed it and couldn't encounter any problems.
* • changed the progress wheel updating behaviour while loading table data ↵Bibiko2009-09-261-8/+15
| | | | slightly to increase the loading speed; this is up to now a compromise between speed and user information, the progress wheel will be updated every ~15%
* • if the user chose to open a SQL file which is larger than 1MB SP asks ↵Bibiko2009-09-263-3/+52
| | | | for confirmation, furthermore if a connection is available the user can choose 'Import' instead of loading it into the Query Editor for cases that an user invoked 'Open…' accidentally instead of 'Import…'
* • re-enabled field editor's QuickLook for 10.6Bibiko2009-09-252-86/+191
| | | | | | | | | - This is up to now a kind of a 'hack' since SP will be compiled against SDK10.5 but if SP runs on 10.6 it'll use code from a 10.6 framework. - Under 10.6 full screen mode is available and QL does run in its own run loop ie now it's non-modal - Changed the way of removing temp files; now all files will be deleted while closing the sheet to fix issues if the user double-click at the QL item and the called app was too slow - this ended up in getting the message 'File not found' - Changed default container extension for images since 'pict' isn't support under 64bit 10.6; now SP makes usage of 'icns' • outsourced QuickLook types (show as pull down menu) to SP's preference plist. (up to now only 'power users' can change that type list via a Property List editor) • enhanced the caching behaviour of the sheet editor in terms of triggering a refresh if the text content was changed (this fixes the issue that it could happen that binary data were interpreted as text data)
* • eliminated the deprecated method 'stringWithCString' and simplified the ↵Bibiko2009-09-241-46/+27
| | | | method 'dataToFormattedHexString' a bit (this fixes the issue for broken lines as well - seen under OSX 10.6)
* • fixed issue if after displaying a sheet for renaming/duplicating/adding ↵Bibiko2009-09-241-11/+47
| | | | | | | | | | a table an error sheet will be ordered out (order out the first sheet explicitly in beforehand) - this solves issue 418 • improved table name check for renaming/duplicating/adding a table - it checks for trailing white spaces since 'foo ' is not valid - it checks for length - it checks whether the entered table name doesn't occur as table/view name in the current database (case-insensitively and only while entering the name in sheets)
* • while a connection will be initialized via a SPF file disable the ↵Bibiko2009-09-232-0/+9
| | | | possibility to choose an other connection from the favorites' list; otherwise the SPF file could run out of sync
* • minor code cleaning (plus svn test)Bibiko2009-09-211-9/+9
|
* Exporter concurrency comments.stuconnolly2009-09-161-4/+4
|
* Some more data exporter redesign changes I've been meaning to commit.stuconnolly2009-09-168-236/+426
|
* - Tweak keydown handling in the content view to reenable key interaction ↵rowanbeentje2009-09-151-4/+2
| | | | (eg selection changes with the arrow keys)
* Improve .sql file loading into the query editor:rowanbeentje2009-09-151-1/+6
| | | | | | | - Allow undo of the insertion - Update scrollbar size/position after the update - Ensure the cursor is scrolled to
* - Fix an SQL view export error - some MySQL server versions allow NOT NULL ↵rowanbeentje2009-09-141-1/+5
| | | | DEFAULT NULL, but don't allow definition of tables as that - fix the export of temporary placeholder tables for those views. Thanks to Andreas Falk for report and details.
* - When a SPTooltip is showing, ensure that events are always passed on to ↵rowanbeentje2009-09-141-1/+4
| | | | the app - this fixes keyboard shortcuts not working when a tooltip is visible
* Significantly improve export:rowanbeentje2009-09-142-186/+321
| | | | | | | | - Rework CSV export to stream data, significantly reducing memory consumption and so increasing speed and stability when exporting large tables. By default safe/fast streaming is used, but a checkbox is available to select "low memory mode" full streaming, allowing export of any size table in theory. This addresses Issue #224. - Rework XML export to stream data in the same way, also significantly reducing memory usage and providing the option of using low memory mode. - Make SQL, CSV and XML export progress bars update more smoothly - When exporting the current browse view or custom query result, show an indeterminate progress bar when copying large resultsets to avoid the app appearing to hang
* Forgot to assign the back/forward history menu item's tags resulting in ↵stuconnolly2009-09-123-4/+4
| | | | incorrect navigation and menu item validation.
* Add back/forward history menu items to the view menu with the assigned ↵stuconnolly2009-09-125-14/+67
| | | | shortcuts of cmd+[ and cmd+].
* • fixed bug for exporting tables as XML: now the very last row will be ↵Bibiko2009-09-112-4/+10
| | | | | | written to file [ this fixes issue 404 ] • FieldEditorSheet: if string cell content is "NULL" select the entire string for convenience
* • added to hard-coded encoding list the DESCRIPTION fieldBibiko2009-09-082-172/+176
| | | | | | | | | | | | • fixed issue while retrieving possible encodings/collations from information_schema - in many cases "SHOW TABLES IN information_schema LIKE 'character_sets'" returns NULL whereby "SELECT * FROM `information_schema`.`character_sets`" returns the correct list - change the test query to the latter syntax - if the retrieving of possible encodings fails return an array of the hard-coded list with dictionaries containing the keys for name AND description -- [this fix solves i400 due to the fact that the chosen encoding title from the popup list must be of the format: "description (name)"; otherwise the following regexp returns (null) because it's looking for the content of parentheses]