diff options
author | Bibiko <bibiko@eva.mpg.de> | 2009-07-17 15:53:59 +0000 |
---|---|---|
committer | Bibiko <bibiko@eva.mpg.de> | 2009-07-17 15:53:59 +0000 |
commit | dbefc2d0e374b9279289b313adf814187b26882c (patch) | |
tree | 2320fc9b29f0f3a9fd1a3a01007e3fe4af3a3c96 /Source | |
parent | 155e66d1b9a6d1108ba4b29397fe3b04a77737f0 (diff) | |
download | sequelpro-dbefc2d0e374b9279289b313adf814187b26882c.tar.gz sequelpro-dbefc2d0e374b9279289b313adf814187b26882c.tar.bz2 sequelpro-dbefc2d0e374b9279289b313adf814187b26882c.zip |
• Field Editor Sheet class
- 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
Diffstat (limited to 'Source')
-rw-r--r-- | Source/SPFieldEditorController.h | 5 | ||||
-rw-r--r-- | Source/SPFieldEditorController.m | 24 | ||||
-rw-r--r-- | Source/TableContent.m | 2 |
3 files changed, 27 insertions, 4 deletions
diff --git a/Source/SPFieldEditorController.h b/Source/SPFieldEditorController.h index f369951f..1b54cfab 100644 --- a/Source/SPFieldEditorController.h +++ b/Source/SPFieldEditorController.h @@ -36,6 +36,9 @@ IBOutlet id editTextScrollView; IBOutlet id hexTextScrollView; IBOutlet id editSheet; + IBOutlet id editSheetCancelButton; + IBOutlet id editSheetOkButton; + IBOutlet id editSheetOpenButton; id sheetEditData; BOOL editSheetWillBeInitialized; @@ -58,7 +61,7 @@ - (IBAction)quickLookFormatButton:(id)sender; - (IBAction)dropImage:(id)sender; -- (id)editWithObject:(id)data usingEncoding:(NSStringEncoding)anEncoding isObjectBlob:(BOOL)isFieldBlob withWindow:(NSWindow *)tableWindow; +- (id)editWithObject:(id)data usingEncoding:(NSStringEncoding)anEncoding isObjectBlob:(BOOL)isFieldBlob isEditable:(BOOL)isEditable withWindow:(NSWindow *)tableWindow; - (void)processPasteImageData; - (void)processUpdatedImageData:(NSData *)data; diff --git a/Source/SPFieldEditorController.m b/Source/SPFieldEditorController.m index 1a5a19a3..af5addf9 100644 --- a/Source/SPFieldEditorController.m +++ b/Source/SPFieldEditorController.m @@ -50,7 +50,7 @@ } - (id)editWithObject:(id)data usingEncoding:(NSStringEncoding)anEncoding - isObjectBlob:(BOOL)isFieldBlob withWindow:(NSWindow *)tableWindow + isObjectBlob:(BOOL)isFieldBlob isEditable:(BOOL)isEditable withWindow:(NSWindow *)tableWindow { prefs = [NSUserDefaults standardUserDefaults]; @@ -70,6 +70,16 @@ [editTextView setHidden:YES]; [editTextScrollView setHidden:YES]; + if(!isEditable) { + [editSheetOkButton setTitle:NSLocalizedString(@"Close", @"close button title")]; + [editSheetCancelButton setHidden:YES]; + [editSheetOpenButton setEnabled:NO]; + } else { + [editSheetOkButton setTitle:NSLocalizedString(@"OK", @"ok button title")]; + [editSheetCancelButton setHidden:NO]; + [editSheetOpenButton setEnabled:YES]; + } + editSheetWillBeInitialized = YES; encoding = anEncoding; @@ -88,6 +98,15 @@ // Hide QuickLook button and text/iamge/hex control for text data [editSheetQuickLookButton setHidden:(!isBlob)]; [editSheetSegmentControl setHidden:(!isBlob)]; + + // Set window's min size since no segment and quicklook buttons are hidden + if(isBlob) + [editSheet setMinSize:NSMakeSize(560, 200)]; + else + [editSheet setMinSize:NSMakeSize(340, 150)]; + + [editTextView setEditable:isEditable]; + [editImage setEditable:isEditable]; [NSApp beginSheet:editSheet modalForWindow:tableWindow modalDelegate:self didEndSelector:nil contextInfo:nil]; @@ -173,7 +192,7 @@ // For safety reasons inform QuickLook to quit quickLookCloseMarker = 1; - return ( code ) ? [sheetEditData retain] : nil; + return ( code && isEditable ) ? [sheetEditData retain] : nil; } @@ -473,6 +492,7 @@ -(void)processPasteImageData { + editSheetWillBeInitialized = YES; NSImage *image = nil; diff --git a/Source/TableContent.m b/Source/TableContent.m index e6381555..e5dc4141 100644 --- a/Source/TableContent.m +++ b/Source/TableContent.m @@ -1934,7 +1934,7 @@ objectValueForTableColumn:(NSTableColumn *)aTableColumn SPFieldEditorController *fieldEditor = [[SPFieldEditorController alloc] init]; id editData = [[fieldEditor editWithObject:[[filteredResult objectAtIndex:rowIndex] objectAtIndex:[[aTableColumn identifier] intValue]] - usingEncoding:[mySQLConnection encoding] isObjectBlob:isBlob withWindow:tableWindow] retain]; + usingEncoding:[mySQLConnection encoding] isObjectBlob:isBlob isEditable:YES withWindow:tableWindow] retain]; if ( editData ) { if ( !isEditingRow ) { |