aboutsummaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* Improve handling of NULL and "(not loaded)" placeholders:rowanbeentje2009-10-105-139/+238
| | | | | | | - Rewrite TableContent and CustomQuery to store NSNull and SPNotLoaded objects in the data arrays where appropriate, rather than providing string conversion on data load. Faster, simpler comparisons and processing code, slightly lower memory usage, and reduces the chance of bugs caused by inadvertantly processing the string values; we can now also distinguish easily between NULL and "NULL" etc, and further paves the ground for image representations of special values. - Fix a bug caused by consistent value reloading when editing BLOB/TEXT columns with deferred loading - if editing a row and revisiting an edited cell, the original value was restored; the original value is now only loaded once. This addresses the rest of Issue #423.
* Reorganize the logical source structure of all controllers grouping them by ↵stuconnolly2009-10-092-4/+24
| | | | functional area. This isn't definite so please feel free to make any further changes.
* Yet more export redesign work. Export is now currently working for single ↵stuconnolly2009-10-094-179/+183
| | | | tables, but produces deadlock errors when attempting to export multiple tables as a result of the initial streaming request for the tables' data all being done from the same thread. To resolve this each of the streaming requests will be made concurrently in separate operations and once the data is available a new concurrent operation (SPExporter subclass instance) will be spawned to perform the data conversion process.
* Missing SVN properties.stuconnolly2009-10-094-5/+5
|
* Tiny performance improvement and cleaner code.stuconnolly2009-10-091-3/+3
|
* Don't filter out the current table of available tables to reference when ↵stuconnolly2009-10-091-1/+1
| | | | creating a new relation. Fixes issue #428.
* • fixed bug while parsing the CREATE TABLE syntax if a column name ↵Bibiko2009-10-093-1/+27
| | | | | | | | contains a '#' or '/*' - this fixes issue 431 - furthermore if the parsing process fails for some other reasons, i.e. a table name is NULL or empty SP alerts the user about it instead of stalling
* • 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