aboutsummaryrefslogtreecommitdiffstats
path: root/Source/CustomQuery.m
Commit message (Collapse)AuthorAgeFilesLines
* 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
* • updated SPQueryFavoriteManager to mange document-based and global query ↵Bibiko2009-09-071-40/+24
| | | | | | | 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-041-26/+29
| | | | | | | - 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-041-25/+45
| | | | - not yet fully implemented but workable
* • prepared Query Name Sheet for choosing the target of the to be saved ↵Bibiko2009-09-041-6/+13
| | | | query favorite (global or not)
* • implementation of a new history controllerBibiko2009-09-041-36/+14
| | | | | | | | | | | | | - 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 :)
* - Replaces uses of the deprecated selectRow:byExtendingSelection: with ↵rowanbeentje2009-09-021-1/+1
| | | | selectRowIndexes:byExtendingSelection:
* • simplified and unified the issue to set the title of a tableWindowBibiko2009-09-021-1/+22
| | | | | | | | | | | | | | - 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)
* • query favorite managerBibiko2009-09-011-10/+39
| | | | | | | | - first step to allow to manage global favs (stored in the prefs) and connection-based (not yet implemented - will be stored in ApplicationSupport/SequelPro) - fav table is now a grouped table à la Table List - second column in fav table will be used soon ;) - now the sheet has two buttons "Save" and "Cancel" in order to be able to dismiss changes - enabled table view inline editing of query names
* - Re-enable the fine-grained query logging preferencesrowanbeentje2009-08-311-0/+3
| | | | | | | - Add defaults for fine-grained logging preferences - Add a method to TableDocument to allow setting the query mode, and use the query mode to control logging - Set import/export and custom query to set the appropriate query modes
* • moved "Replace Editor Content" (Favorites/History) settings from popup ↵Bibiko2009-08-281-22/+55
| | | | | | | | lists to gear menu since these are settings • revert the actual behaviour for "Save ... to Favorite" to "Save All to Favorite" since this was the default behaviour in previous releases - to restrict what should be save as favorite press ⌘ to toggle "Save All to Favorite" into "Save current query/selection to Favorite" • while choosing a favorite or history item each modifier key ⇧,^,⌥, or ⌘ inverts the current setting for "Replace Editor Content"
* • simplified code for inserting the seach fieldes (fav/hisotry) - now set ↵Bibiko2009-08-281-30/+1
| | | | | | in DBView • added keyboard short-cut ⌥⌘F and ⌥⌘H for open Favorites and History (for testing)
* • Custom Query:Bibiko2009-08-281-14/+69
| | | | | | | - added to History list "Replace Editor Content" (stored in the prefs) and a search field - "Save ... to Favorites" menu title changes according to selection in the textView Problem: How can we allow if the user hits RETURN in a search field (fav/history) to select the next menu item if any and to change the first responder to popup button menu list?
* • tiny improvements for loading SQL files and syntax highlightingBibiko2009-08-281-1/+1
|
* • fixed bug for remembering the Query Editor font after restart and new ↵Bibiko2009-08-261-2/+4
| | | | | | | doc resp. - delegate textViewDidChangeTypingAttributes: should only save the textView font if it is not (null) which occurs while awaking from nib - removed a setFont: command since the editor's font is already bound to the pref's setting
* • added to "Query Favorite" popup menu:Bibiko2009-08-261-8/+29
| | | | | | - "Replace Editor Content" check box menu item; if checked the chosen query will replace the editor's content if not it will insert it (setting will be saved in the prefs) - Search Text Field to filter the list of names (by using a regular expressions) - added a tooltip to each menu item displaying the query behind the name
* • fixed/improved several things for the SPQueryFavoriteManager:Bibiko2009-08-261-15/+36
| | | | | | | | - allow favorites with the same name (it's the user's responsibility) - fixed removing of all menu items (beginning from the end) - "Save Query to Favorites" will save the selected text, or if no selection the CURRENT query, or if no current query can be detected the entire textView string (since the tooltip says '...or save the current query...) - ensure after editing the favorites ALL changes will be saved first before closing the sheet
* Completely redesigned query favorite manager, including:stuconnolly2009-08-261-256/+118
| | | | | | | | | | | - The ability to name query favorites - The ability to edit query favorites using the same editor in the cutom query view - The ability to save your query favorites to a file Note that any already saved query favorites will be upgraded to accommodate the new format, that is including a name associated with the query. The default name is the first 32 chars of the query with '...' appended. Also, added menu item validation to the 'Save Query to Favorites' menu item.
* Alter CustomQuery to use StreamingResult to download and process result sets:rowanbeentje2009-08-261-53/+58
| | | | | | | - Significantly improve memory usage - Minor speedup (1.1x faster?) to overall query/display times - Improvements to MCPStreamingResult and MCPConnection to accurately report affected row count
* The query favorite manager shouldn't be blocking the main thread. Part of ↵stuconnolly2009-08-231-28/+35
| | | | issue #357.
* • re-implemented tooltips for Content and Query tablesBibiko2009-08-201-31/+34
| | | | | - catch exceptions while retrieving the original table data while/before reloading/changing the table source data - 'image' is now set to autorelease
* • quick fix - disabled tooltips in Content and Query tables due to crashesBibiko2009-08-201-31/+31
|
* • Main Menu > FileBibiko2009-08-201-0/+7
| | | | | | | | - renamed "Open" into "Open…" plus tooltip - added "Save Query…" (enabled if a query is in the editor and rename 'Query' to 'Queries' dynamically) [still hidden] - added "Save Connection…" [still hidden] • added method numberOfQueries to CustomQuery • 'Save Query…" and "Save Connection…" are bound to the same connector distinguished via their tags
* • SPTooltip: added type "image"Bibiko2009-08-181-12/+10
| | | | | - 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
* • added SPTooltip to CustomQuery result table to display the cell's ↵Bibiko2009-08-151-0/+42
| | | | content as text with line breaks and tabs or as image
* • improved identification of the field origin for editing in Custom QueryBibiko2009-08-111-5/+33
| | | | | - first try to found a primary key for the to be edited field in the result set - fixed some backtick quotings
* • added to Custom Query table editing max text length validationBibiko2009-08-101-0/+5
| | | | | • SPFieldEditorController: - improved textViewDidChangeSelection: to eg saves to correct rendered glyph after inserting a non-base char + base char if this combination was typed as last glyph before pressing the OK button (otherwise foo¨ will be saved instead of fooü)
* • added field name to Field Editor SheetBibiko2009-08-081-0/+1
| | | | | | - initial support (not yet finished) Note: maybe add information about field type, max length as attributed string
* • open a SQL file via Finder or Terminal (open *.sql if SP is the default ↵Bibiko2009-08-051-0/+5
| | | | | | | app for sql files) will insert the file content into the Custom Query editor of the current active doc - this action starts SP and asks for a connection if it is not running - same for drag&drop a SQL file onto SP's dock icon
* • add Menu Item "Insert NULL value" SHIFT+CTRL+NBibiko2009-08-031-0/+21
| | | | | | | - 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)
* • button tooltip for "Show / Hide Table Information" toggles according to ↵Bibiko2009-08-021-0/+5
| | | | | | | its status • after editing a field in Custom Query table scroll to last selected row after data refreshing - (TODO: should be improved in near future)
* - don't add an empty query to historyBibiko2009-07-291-8/+9
| | | | | - suppress "error highlighting" for an empty query - this also fixes the issue for inserting an history/favorite item after executing an empty query (due to an exception it wasn't possible) - removed several test NSLogs
* • fixed and improved several issues for sorting the Custom Query result table:Bibiko2009-07-281-8/+59
| | | | | | - better ORDER BY detection - (try to) insert ORDER BY clause at the correct position (e.g. "SELECT * FROM A LIMIT 10 - ORDER clause has to be inserted before LIMIT) - preserve the sort order after editing a field
* • Editing in Custom Query:Bibiko2009-07-261-27/+45
| | | | | - now fields are also identified via the database which the field belongs to in order to allow to select/join/etc. fields coming from different databases and to improve the unambiguity of the field origin - sped up editing check for fields with no table or database origin (then no "select count(*)" is needed)
* - For custom query result columns which map to SQL fields, check the column ↵rowanbeentje2009-07-241-2/+59
| | | | | | | width memory to set column widths - Save custom query result columns back to the master column width store for columns witch map to SQL fields
* - Fix editing of results including decimalsrowanbeentje2009-07-231-5/+3
| | | | | - Enable custom query result editing
* Merge framework integration branch back to trunk. Summary of changes:stuconnolly2009-07-211-5/+10
| | | | | | | | | | | | | | | - 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.
* • fixed bug for table sorter in Custom Query:Bibiko2009-07-211-0/+3
| | | | - remove all comments before changing/adding the ORDER clause (it can happen that the original ORDER clause was commented out and the table sorter wouldn't work)
* • fixed bug if the table sorting query in Custom Query gave an errorBibiko2009-07-211-11/+18
| | | | | | - SP tried to select the erroneous part in customQueryView which could lead to an range exception - now it shows a proper error message - it suppresses column highlighting and setting of the NSSortIndicator
* Add the ability to navigate between tables via foreign key relationships, ↵rowanbeentje2009-07-181-1/+2
| | | | | | | | | 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)
* • finial preparation to make Custom Query's result table editableBibiko2009-07-171-17/+36
| | | | | | | - added editing of blob data - (editing not yet enabled) TODO: progress bar while checking if field is editable and writing large blob data
* • changed in Custom Query:Bibiko2009-07-171-79/+45
| | | | | - make usage of SPFieldEditor for displaying result data field (incl. blob data) - set to non-editable yet
* • fixed minor issues for "Comment Line/Selection" in Custom QueryBibiko2009-07-161-6/+11
| | | | - esp. for (un)commenting a selection if it ends with a \n
* • fixed: Custom Query's gear menu item "Comment Line" will change its ↵Bibiko2009-07-161-0/+3
| | | | title to "Comment Selection" if a selection is given
* • rewrote ⌘/ "comment line" completelyBibiko2009-07-161-26/+102
| | | | | | | | | | | - ⌘/ (un)comment current line only if no selection is given (by using "-- ") -- caret jumps to the next line to (un)comment lines quickly -- # sign will be recognized for uncommenting as well as if the entire line is wrapped into /* */ - ⌘/ (un)comment current selection (by wrapping it into /* */) -- it (un)escapes present */ into *\/ automatically - ⌥⌘/ (un)comment the current query (by wrapping it into /* */) -- the GUI element will be found in the Gear Menu by pressing ⌥ • added shortcut ⌫ to Table Content's "Delete selected row(s)" tooltip
* • Comment current Query/SelectionBibiko2009-07-151-4/+16
| | | | | | | - changed comment string to "-- " - fixed bug in uncomment - added gear menu item -- TODO: change menu item title according to selection/current query (coming soon)
* • initial support for ⌘/ in CustomQuery editor to (un)comment out the ↵Bibiko2009-07-151-0/+30
| | | | | | current query or selection by inserting "# " at the begin of each line - Note: not yet finished completely
* - changed history and favorite selection to insert rather then overwrite ↵mtvee2009-07-141-12/+3
| | | | query editor buffer
* Rework data storage and retrieval in TableContent and CustomQuery backing ↵rowanbeentje2009-07-131-30/+32
| | | | | | | | | | | | 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
* Improve custom query timing and display:rowanbeentje2009-06-271-5/+5
| | | | | | | - Amend timing using clock() to timing based on mach_absolute_time() (see revision comment on Google code) - Ensure the time returned is for the requested query and not subsequent helper queries - Use NSNumberFormatter to return a localised "< 0.1 ms" rather than the hardcoded Euro-style "< 0,1 ms"