aboutsummaryrefslogtreecommitdiffstats
path: root/Source/TableContent.m
Commit message (Collapse)AuthorAgeFilesLines
* Rework data loading in TableContent:rowanbeentje2009-08-111-477/+349
| | | | | | | | | - 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 to the FieldEditorSheet a max text length validationBibiko2009-08-101-5/+13
| | | | | | • 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
* • added field name to Field Editor SheetBibiko2009-08-081-1/+4
| | | | | | - initial support (not yet finished) Note: maybe add information about field type, max length as attributed string
* When selecting a cell to edit that is either a blob or text field and hasn't ↵stuconnolly2009-08-081-28/+29
| | | | already had it's content loaded, only load the data for the selected cell and not the entire row. Fixes issue #288.
* (no commit message)Bibiko2009-08-041-0/+4
|
* This shouldn't actually be negated as a return value of YES indicating that ↵stuconnolly2009-08-031-1/+1
| | | | NULLs are allowed is correct and we can color it if it also matches the user's NULL placeholder.
* • add Menu Item "Insert NULL value" SHIFT+CTRL+NBibiko2009-08-031-2/+2
| | | | | | | - 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)
* When blob/text fields are loaded on demand also color them light gray if ↵stuconnolly2009-08-031-1/+1
| | | | they are actually NULL.
* Use light gray rather than gray for displaying NULLs and blog/text fields ↵stuconnolly2009-08-031-2/+2
| | | | that aren't loaded.
* Display the user specified NULL value placeholder in grey when displaying a ↵stuconnolly2009-08-031-26/+27
| | | | table's content. Fixes issue 337.#
* - Fix an errant NSLog in TableSourcerowanbeentje2009-08-011-67/+228
| | | | | | - 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
* Put the table content filter in a split view so the field name drop down and ↵stuconnolly2009-08-011-0/+18
| | | | search field can be resized. Addresses issue #339.
* Disable updating the number of rows in the selected table in the table data ↵stuconnolly2009-07-211-3/+3
| | | | cache within getNumberOfRows after the discovery of much larger issue.
* Merge framework integration branch back to trunk. Summary of changes:stuconnolly2009-07-211-17/+16
| | | | | | | | | | | | | | | - 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.
* Improvements to reporting the correct row count for tables. See issue #141.stuconnolly2009-07-211-10/+10
|
* • added: AMIndeterminateProgressIndicatorCell for global spinning wheelBibiko2009-07-181-1/+1
| | | | | • added: spinning wheel background image • removed warning in TableContent (unused 'j')
* - Update WHERE string buildup - the code now uses equals comparisons rather ↵rowanbeentje2009-07-181-22/+3
| | | | than LIKE, so the quote methods were incorrect. We now use standard escaping without additional LIKE preparation. This resolves Issue #338
* Add the ability to navigate between tables via foreign key relationships, ↵rowanbeentje2009-07-181-53/+116
| | | | | | | | | 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)
* • Field Editor Sheet classBibiko2009-07-171-1/+1
| | | | | | - added the feature to set "isEditable"; according to "isEditable" GUI elements will be hidden or renamed - if no blob data reduce the minimal sheet size since no segment or quicklook control is needed
* • applied the new class SPFieldEditorController to TableContentBibiko2009-07-171-503/+19
| | | | • deleted in DBVview.xib Field Editor Sheet (out-sourced)
* - Make the DBView window the document window. This allows the document to ↵rowanbeentje2009-07-151-22/+18
| | | | | | | | | | be closed when the window is closed, freeing the document's memory - Update a number of dealloc methods to include more retained memory, and to avoid releasing non-retained memory - Remove notification observers and delegates where appropriate to avoid issues after document closing - Fix a couple of memory leaks - Support window cascading for all windows past the first, using the first window as the autosave window
* Rework data storage and retrieval in TableContent and CustomQuery backing ↵rowanbeentje2009-07-131-97/+105
| | | | | | | | | | | | arrays, and make some editable CustomQuery improvements: - Switch to using arrays for row storage rather than dictionaries. Use the data column index for table column identifiers. - This fixes Issue #316 and also allows sorting by all custom query result columns using a column index rather than the name - Offers significant speed and memory advantages: result building is now 2x-3x faster, memory used for results storage is 30-40% lower, and result access is slightly faster. (Note full 2x-3x speed results won't be seen - result fetching and mysql binary work isn't included in the timing) - No longer need to fetch the first column of data for tables containing only blob types - Correctly escape strings when editing CustomQuery results - Rewrite NSArrayObjectAtIndex to use the native CFArrayGetValueAtIndex rather than cached selectors - neater code and I think slightly faster
* - Add support for the function "NOW()" to resolve Issue #300rowanbeentje2009-07-091-0/+3
|
* - Correctly display errors that occur when editing rows, and ensure the row ↵rowanbeentje2009-07-091-8/+5
| | | | isn't deselected to prevent accidental loss of entered data
* Fix warnings caused by calls to validateMenuItem: being passed to NSObject ↵stuconnolly2009-07-021-1/+1
| | | | by returning YES by default.
* Add contextual menus to the table content and table relations views. ↵stuconnolly2009-07-021-0/+21
| | | | Completes the implementation of issue #139 as all views now have contextual menus.
* • changes in editSheet:Bibiko2009-06-241-12/+53
| | | | | | - generate Hex representation on demand (this speeds up the working with images enormously) - added support to paste image data via the pasteboard (data are stored as TIFF LZW compressed) - if user switched to an other view (text/iamge/hex) that view will be become first responder explicity (fixes an issue that the Open button got the focus sometimes)
* • added to SPDataAdditions:Bibiko2009-06-231-26/+14
| | | | | | - (NSString *) shortStringRepresentationUsingEncoding: --mainly used for displaying large blob data in a tableView • tiny speed improvements for tableView:objectValueForTableColumn and tableView:setObjectValueForTableColumn in Content Browser and Custom Query
* • fixed several problems for alerting an error sheet inside of a ↵Bibiko2009-06-231-5/+25
| | | | didEndSelector: of an other sheet
* • added SPDataCellFormatter to data cells of the Custom Query tableBibiko2009-06-231-26/+33
| | | | | | | | • in Content Browser send only the first 255 bytes to the cell formatter (makes it a tick faster) • fixed for editing in Content Browser if row contains binary blob data: - use = instead of LIKE operator in UPDATE statement - binary data will converted into X'...' representation
* • moved dataToHex as dataToFormattedHexString from TableContent to ↵Bibiko2009-06-231-89/+3
| | | | SPDataAdditions in order to you that method in different classes
* • changed: if the current edited field is a "ENUM" fieldBibiko2009-06-211-1/+5
| | | | | - show NULL in the combobox only if NULL value is allowed for the current field - display NULL value according to prefs' setting for NULL value
* • some code cleaning and tiny performance enhancements for various ↵Bibiko2009-06-211-55/+61
| | | | for/while loops
* • added: SPDataAdditions.mBibiko2009-06-191-66/+8
| | | | | | | - base64EncodingWithLineLength: • improved printing of blobs which contain image data - not it supports PDF preview - set maximum width to 100px or less
* • added to TableContent.m:Bibiko2009-06-191-0/+117
| | | | | | | | - (NSArray * )currentDataResult -- like currentResult but returns "BLOB" for blob data and a base64 encoded string for images à la <IMG SRC="data:image/auto;base64,"> - (NSString * ) base64EncodingOfData:(NSData * )data withLineLength:(unsigned int)lineLength -- it returns a base64 encoded string of data • changed: currentDataResult is now called for printing from the Table Content Browser
* • added: by holding ⌘, ⇧, or/and ⌥ dragged selected rows will be ↵Bibiko2009-06-191-2/+10
| | | | copied as SQL INSERTS (up to now only in table content browser)
* • added to SPArrayAdditions.h: NSArrayObjectAtIndex() inline functionBibiko2009-06-181-21/+21
| | | | | | | | | - id o = NSArrayObjectAtIndex(anArray, index) :== id o = [anArray objectAtIndex:index] - this speed up it ~3µs per call - replaced that inline function for such calls within loops to speed up them • used IMP function pointers for keepAlive calls within queryString: • set -O3 (Fastest) compiler option • allow in preference pane "Tables" to set the Limit up to 50000
* Move the QuickLook interface to its own header file.stuconnolly2009-06-151-0/+1
|
* • subclassed the editSheet textViewBibiko2009-06-151-22/+0
| | | | | - added drag&drop feature of file content or path resp. - added feature to in/decrease font size via ⌘+/- or two-finger zoom gesture
* • different log message for changing max_allowed_packet for increasing it ↵Bibiko2009-06-151-5/+17
| | | | | | | | and for resetting it (a bit more transparent info) - now also check the delegate if queryGaveError: method is implemented • while adding/updating a row to the db Table Content's pane now indicates that process better via spinning wheel • after TRUNCATE TABLE reload that table content
* • deleted the drag&drop feature of file path or content from ↵Bibiko2009-06-151-4/+9
| | | | | | | | | | | SPTextViewAdditions - that feature should be added by subclassing NSTextView • fixed focus setting of editSheet • fixed general issue if SP tries to execute a query which is longer than max_allowed_packet - now it reconnects after changing max_allowed_packet (if it's editable) - the user will be informed via a log entry about that change - the new max_allowed_packet size will be valid during the current session; after reconnection to that db the default size will be used
* • improved event handling while showing QuickLook preview in editSheetBibiko2009-06-151-6/+39
| | | | | | - this also fixes the issue to play sound files properly • QuickLook's temp file will be deleted after closing the editSheet to allow double-click at the QuickLook preview for opening it in the default app • fixed some issues of loading data into the editSheet (data/string recognition)
* • moved code for de/increasing font and drag&drop feature (content or ↵Bibiko2009-06-131-45/+64
| | | | | | | | | | | | | | while holding ⌘ path) to SPTextViewAddition - two finger zooming gesture is disabled for NSTableView cells - i.e. all NSTextViews including NSTableView cells inherit these feature • simplified QuickLookFormat IBActions - added bin/text storing type to each action • QuickLook animation set to SP's window middle point • fixed issue that while having an image in editSheet an attribute change (font/size) in the editTextView destroyed the image data • fix to allow again drag&drop an image to editSheet • hide text/image/hex segment controll and QuickLook pull down button if user chose multipleLineEditingButton for non-blob fields • disabled NSLog of print result in TableDocument
* • cleaned and commented the rewritten editSheet codeBibiko2009-06-121-29/+71
| | | | - TODO: if a row contains large blob data addRowToDb: “sometimes” doesn't get rid of the correct encoding; e.g. inserted into a varchar field a ü; changed the table; went back to the table; the ü is still there; after closing and reopen the connection the ü is shown as two latin1 char.
* • rewrote editSheet for editing and displaying BLOB or TEXT data completelyBibiko2009-06-121-19/+190
| | | | • added the possibility to QuickLook the current data by choosing a data format
* • fixed exception if content table view wants to load data from a table ↵Bibiko2009-06-111-1/+1
| | | | | | but the table data are not accessible (e.g. for information_schema) - this fix sets the content table view into a defined state as well
* • cleaned code for the case that the user selects a view which causes a ↵Bibiko2009-06-101-2/+3
| | | | | | | | | MySQL error while retrieving data - [SPTableData tableEncoding] returns nil if no encoding can be found - [TableList tableViewSelectionDidChange:] checks in beforehand for a valid table encoding; this avoids to get the same MySQL error message twice and cleaned the structure view • if a MySQL error occurred while retrieving table data for the content view set the content view to a defined and clean status • bound TableContent's filterButton to DBView.xib to disable it if an error occurred (otherwise the status bar shows unexplainable results )
* • added: "Copy as SQL INSERT" ^⌥⌘CBibiko2009-06-081-3/+3
| | | | | | - up to now only available for the table content pane - supports blobs - if a primary key is given it also support (not yet loaded) blobs and long text data fields
* • improved "Copy as SQL INSERT" (still hidden)Bibiko2009-06-071-1/+2
| | | | • disabled "Copy with Column Names" if Custom Query editor is active
* • improved "Copy as SQL INSERT" (still hidden - can be tested if the menu ↵Bibiko2009-06-071-1/+3
| | | | item is set to 'not hidden' in the MainMenu)