aboutsummaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* - 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]
* • removed leaks in QueryFavoriteManagerBibiko2009-09-073-2/+26
| | | | • prepared QueryController for future steps
* - Ensure table viewport is correctly restored for navigation history/SPF ↵rowanbeentje2009-09-071-0/+5
| | | | usage following TableContent cleanups in r1183/r1204
* • Query Favorite ManagerBibiko2009-09-071-22/+51
| | | | | - disabled sorting by clicking at table headers - added drag&drop support of multiple selected items
* • after "Apply Changes" in a Query Favorite Manager update the Query ↵Bibiko2009-09-072-14/+25
| | | | | | Favorites of all opened documents to synchronize changes in global favorites • "Import Favorites" in the Query Favorite Manager adds the imported favorites after the last selected item, if no selected item is found it adds them
* • updated SPQueryFavoriteManager to mange document-based and global query ↵Bibiko2009-09-077-289/+270
| | | | | | | favorites • disabled "Select Active Query" in CMTextView if shown in the favorite manager • code cleaning and simplifications
* • improved behavior while closing a document windowBibiko2009-09-043-35/+73
| | | | | | | - if not connected close it without any checks - if an Untitled document contains stored query favorites - What should be done? - up to now it saves them to the global prefs • header in query favorites list keep visible while filtering • code cleaning
* • first steps to support global/document-based query favoritesBibiko2009-09-043-30/+54
| | | | - not yet fully implemented but workable
* • prepared Query Name Sheet for choosing the target of the to be saved ↵Bibiko2009-09-042-6/+14
| | | | query favorite (global or not)
* • the in r1313 introduced method [NSString stringWithCString:encoding:] ↵Bibiko2009-09-041-3/+8
| | | | | | must be a \0 terminated cString - fixed that and replaced the deprecated method [NSString stringWithCString:length] again
* • the replacing of the deprecated stringWithCString:length: method in ↵Bibiko2009-09-041-1/+2
| | | | r1313 leads to the issue that no password can be read from the keychain; reverted to r1212 in order to keep SP workable until a fix is found
* • implementation of a new history controllerBibiko2009-09-045-139/+219
| | | | | | | | | | | | | - each history is doc-based even if you have opened not only one instance of the same spf file - for each SPF file identified by its file URL SP remembers each history item regardless from which doc instance it comes from internally ( to make sure that after closing the last instance of a doc all executed queries are saved in that file - if the user wants to change that s/he has to save that file under a different name ) - the history list for each Untitled doc will be initialized by the items stored in the global SP's prefs - the history list for each SPF doc will be initialized by the items stored in the SPF file unless an instance of the same file is already open - then the new instance inherits the history list from the opened one(s) - all history items executed in any Untitled docs will be added to SP's prefs - in other words SP's global prefs plist is the historyrepository for each new Untitled doc - if the user saves an untitled doc or rename an opened SPF file the _current_ history list for that doc will be saved to the chosen file unless an other doc instance is still open - all history lists are saved automatically if SP quits or the user closes a doc window Note: This should be tested for any logical pitfalls - each desired logic can be implemented :)
* Table row should be a signed integer not unsigned, fixes duplicate method ↵stuconnolly2009-09-031-1/+1
| | | | definition warning.
* Replace deprecated stringWithCString:length: and update Console.xib after ↵stuconnolly2009-09-032-1/+6
| | | | SPQueryConsole rename.
* • fixed (hopefully) : While adding all procedures and functions do check ↵Bibiko2009-09-031-1/+3
| | | | for mysql errors - if information_schema is not accessible for some reasons omit adding procedures and functions silently
* • renamed SPQueryConsole to SPQueryController since it controls not only ↵Bibiko2009-09-034-119/+119
| | | | | | the query console but also query favorites and history application-wide - accessible via: [SPQueryController sharedQueryController]
* • fixed document registering with its query favorites and historyBibiko2009-09-034-44/+82
| | | | | | | | • added and applied removeRegisteredDocumentWithURL to remove a registered document from the app-wide query fav/history controller • saveDocumentWithFilePath now returns the success status after saving - if saving fails for some reasons SP suggests to save that doc under a new name • fixed issues for "Save" an Untitled doc • improved error handling
* • commented out a not yet fully implemented feature in SPQueryConsole in ↵Bibiko2009-09-031-13/+13
| | | | | | order to be able to open files from Finder correctly Note: I tested it with 21 spf files (different connections, encrypt state, auto connect state, non-readable spf files etc) selected in Finder ⇢ ⌘O ⇢ all of them were handled correctly
* • fixed bug Save (the correct file path will be calculated)Bibiko2009-09-031-4/+6
| | | | • fixed bug for Save As (suggested name is now Unicode-safe )
* • fixed issue if a SPF file contains non-valid URL character like space, etc.Bibiko2009-09-034-18/+110
| | | | | | • each new connection which is non-SPF file-based gets the document name "Untitled x" • prepared SPQueryConsole to manage all query favorite and history data application-wide • minor code fixes and renaming issues
* - Fix exception/hang when an error occurs when deleting a table or tablesrowanbeentje2009-09-031-20/+36
| | | | | | - Improve error messages encountered when deleting multiple tables, asking whether to stop or continue; also now shows all errors, not just the last (if it showed any!) - Fix various exceptions caused by the table list attempting to redraw while the underlying data is being changed
* - Replaces uses of the deprecated selectRow:byExtendingSelection: with ↵rowanbeentje2009-09-025-13/+13
| | | | selectRowIndexes:byExtendingSelection:
* • forgot to remove a NSLog Bibiko2009-09-021-1/+1
|
* • added "Recent Open" menu item to Main Menu > FileBibiko2009-09-021-1/+7
|
* • simplified and unified the issue to set the title of a tableWindowBibiko2009-09-025-197/+388
| | | | | | | | | | | | | | - everything will be configured in [TableDocument displayName] - to update the title call [TableDocument setTitle:[TableDocument displayName]] - this removes dozens of lines • first steps to support more the document-based approach ( a document is nothing else than a connection with view properties and preferences ) - renamed/added/changed in Main Menu items into "New", "Open", "Save", and "Save As" - if user opened a spf file -> fileURL will be set - "Save" will save the current connection/view data according to the "Save As" setting - ie if one saved a doc with do not "Remember window state" - "Save" won't save the window state; to enable this hit "Save As" [this works for encrypted file data as well] - if the current doc was opened from file and the user closes it or quits the entire app all connection/document-based preferences (up to now query favs and history) will be updated silently [not yet implemented fully in CustomQuery] [works for encrypted file as well] • delete saveSPFAccessory view from DBView since it was outsourced • fixed some issues for the NSSecureTextField in the Save accessory panel (but still a warning appears)