| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
due to the fact that SP would crash if an error alert sheet follows
• fixed NULL value detection in method 'argumentForRow'
Notes:
- isSPNotLoaded check has to be implemented in line 1658
- hide blob data "(not loaded)" can be applied for tables which have no primary keys - we have to check the code again here
|
|
|
|
|
|
|
|
| |
- if set to YES the Console Log won't be updated after adding a new message even if the window is visible; this is useful if SP has to execute a large number of queries
• first steps to increase the deletion of a large number of rows in the Content pane
- removed deprecated 'selectedRowEnumerator'
- set Console Log's 'allowConsoleUpdate' to NO if more than 10 rows should be deleted
- instead of adding the successful deleted row indexes into a new array delete these indexes from the selectedRows NSIndexSet
|
|
|
|
| |
with a foreign key link within the same table - this improves compatibility for Issue #428.
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
| |
placeholder values written to database. This addresses the data corruption part of Issue #423.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
| |
• fixed issue for "Add" a new favorite in SPQueryFavoriteManager:
- save pending changes in the query textView in beforehand
|
|
|
|
| |
selecting single tables after multiple tables are selected. This addresses Issue #372 and probably Issue #365
|
|
|
|
| |
a column, if that column value hasn't been changed by the user apply the CURRENT_TIMESTAMP appropriately. This addresses Issue #416
|
|
|
|
|
|
| |
• 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
|
|
|
|
|
|
|
|
| |
- '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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
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%
|
|
|
|
| |
shortcuts of cmd+[ and cmd+].
|
|
|
|
| |
usage following TableContent cleanups in r1183/r1204
|
|
|
|
|
|
| |
the query console but also query favorites and history application-wide
- accessible via: [SPQueryController sharedQueryController]
|
|
|
|
| |
selectRowIndexes:byExtendingSelection:
|
|
|
|
|
| |
- Improve SQL parser streaming improvements for significant speedups and some very important bugfixes
|
|
|
|
| |
load a blob/text's field content even if we are still editing the row. This prevents the placeholder value '(not loaded)' being displayed, giving the impression that it is the field's value. Fixes issue #385.
|
|
|
|
|
|
|
| |
- Speed up table content processing a bit
- Make the table content download/processing determinate where an approximate row count is available
- Clean up table content source, assuming MCPStreamingResult will remain in use
|
|
|
|
|
| |
- rearrange invoking procedure for spf data if SP asks for passwords
• fine-tuned and fixed table history for BETWEEN operator
|
|
|
|
| |
logic firstly)
|
|
|
|
| |
• after changing the operator in TableContent set focus to first argument field
|
|
|
|
| |
Implements issue #361. Note the sizing of the new controls still needs fine tuned.
|
|
|
|
| |
• added to TableContent's method filterSettings the dict key 'filterComparisonTag' in order to be able to rely on menu item tags instead on the title strings
|
|
|
|
|
|
| |
- Use the new MCPStreamingResult in TableContent, replacing the old standard query/fetchResultAsArray.
This appears to be much faster (and lower memory use) but I've left the old fetchResultAsArray in place for the time being until we see how we feel about it.
|
|
|
|
|
| |
- catch exceptions while retrieving the original table data while/before reloading/changing the table source data
- 'image' is now set to autorelease
|
| |
|
|
|
|
|
| |
- show images directly as a NSImage in a NSImageView (this decreases the memory usage enormously)
• applied new tooltip invocation for image blob data in Content Pane and Custom Query table
|
|
|
|
|
|
|
|
|
| |
- text strings are display with line breaks and tabs
- if cell content represents image data display that image as transparent thumbnail (by using base64 encoded HTML img tag)
Notes:
- SPTooltip implementation to show an image via a NSImageView will be implemented soon (the HTML way needs too much memory due to base64 encoded string)
- to discuss: Should we add a preference setting to display these tooltips?
|
|
|
|
|
|
|
|
| |
locations, and correcting the logic for fetching the count of rows so that the query is not used where not necessary.
- Update the Table Info pane and tab with a new row count if one is known - this addresses Issue #141
- This reverts r1090, and so needs to be discussed with stuart02 - the rest of the row logic changes may have fixed the 'larger issue' described there?
|
| |
|
|
|
|
|
|
|
|
|
| |
- Data loading now only occurs in one place in the code. This improves consistency and fixes a number of actions which used to trigger a full table reload followed instantly by a filter when the action was performed
- If "Reload data after..." prefs are unticked, no longer load the data (ie the preference now works)
- Make table count text more consistent and useful
- Fix a number of small position-saving type problems with filters and limits active. This fixes Issue #200.
- Clean up and standardise the code dealing with data storage - only one data storage array is now used.
|
|
|
|
|
|
| |
• added the max text length validation for the TableContent while editing in the FieldEditorSheet
• reinvoked the validation of the max text length for TableContent editing while editing in a cell
• fixed in TableContent: prevent the editing of data cells in gray if the cell displays the gray NULL value
|
|
|
|
|
|
| |
- initial support (not yet finished)
Note: maybe add information about field type, max length as attributed string
|
|
|
|
| |
already had it's content loaded, only load the data for the selected cell and not the entire row. Fixes issue #288.
|
| |
|
|
|
|
| |
NULLs are allowed is correct and we can color it if it also matches the user's NULL placeholder.
|
|
|
|
|
|
|
| |
- it inserts the value set in the preferences
• a NULL value will be displayed greyed in the Custom Query result
• make usage of NSArrayObjectAtIndex() in TableContent for tableView:willDisplayCell
- and negated the NULL checking for column (is NULL allowed)
|
|
|
|
| |
they are actually NULL.
|
|
|
|
| |
that aren't loaded.
|
|
|
|
| |
table's content. Fixes issue 337.#
|
|
|
|
|
|
| |
- Improve and make consistent state saving in TableContent; now saves filters and scroll position mor reliably on refresh/edit, and supports remembering and restoring which rows were selected
- Significantly improve table history - only create entries for tables switches or filters, only remember 50 items, and save view/filters/scroll position/selections in table content view
|
|
|
|
| |
search field can be resized. Addresses issue #339.
|
|
|
|
| |
cache within getNumberOfRows after the discovery of much larger issue.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Includes all custom code from subclasses CMMCPConnection and CMMCPResult, meaning they have subsequently been removed from the project.
- All previous Sequel Pro specific code in the above subclasses has been removed in favour of the delegate (currently set to TableDocumet) informing the framework of such information.
- All references to CMMCPConnection and CMMCPResult have subsequently been changed to MCPConnection and MCPResult.
- Framework includes MySQL 5.1.36 client libraries and source headers.
- Framework is now built as a 4-way (32/64 bit, i386/PPC arch) binary.
- All import references to <MCPKit_bundled/MCPKit_bundled.h> have been changed to <MCPKit/MCPKit.h>.
- New script 'build-mysql-client.sh' can be used to build the MySQL client libraries from the MySQL source. See the script's header for a list of available options or run it with no arguments to display it's usage.
Note that there are still a few changes to be made to the framework with regard to removing Sequel Pro specific calls to the delegate. These however can be made later on as they have no effect on functionality and are merely design changes.
Also, note that any future development done on the framework should be made to be as 'generic' as possible, with no Sequel Pro specific references. This should allow the framework to be integrated into another project without the need for SP specific code.
|
| |
|
|
|
|
|
| |
• added: spinning wheel background image
• removed warning in TableContent (unused 'j')
|
|
|
|
| |
than LIKE, so the quote methods were incorrect. We now use standard escaping without additional LIKE preparation. This resolves Issue #338
|
|
|
|
|
|
|
|
|
| |
addressing the first part of #209:
- For the first column linked by each foreign key, display a link arrow within the table cell
- When clicking on the link arrow, select the reference table and set the table filters to select the clicked value
- Also uses the table cell subclass to allow the entire cell to be editable, not just the contained text (addresses #250)
|