diff options
author | stuconnolly <stuart02@gmail.com> | 2011-01-27 20:38:23 +0000 |
---|---|---|
committer | stuconnolly <stuart02@gmail.com> | 2011-01-27 20:38:23 +0000 |
commit | 8db2f78294982e89fce5a162d92b2be6d9291aa1 (patch) | |
tree | b8dc7736f4af896aa3ed3fa9a96d1f3c4bfd0e59 | |
parent | fa7cff57548edc51420693e6909fe2adb3c18951 (diff) | |
parent | 7cc062247ff23496dd0390cf07b5d45d6bc49777 (diff) | |
download | sequelpro-8db2f78294982e89fce5a162d92b2be6d9291aa1.tar.gz sequelpro-8db2f78294982e89fce5a162d92b2be6d9291aa1.tar.bz2 sequelpro-8db2f78294982e89fce5a162d92b2be6d9291aa1.zip |
Bring outline view branch up to date with trunk (r3056:r3162).
100 files changed, 6365 insertions, 2060 deletions
diff --git a/Frameworks/BWToolkitFramework.framework/Versions/A/BWToolkitFramework b/Frameworks/BWToolkitFramework.framework/Versions/A/BWToolkitFramework Binary files differindex 8fea2fcd..81254dd3 100755 --- a/Frameworks/BWToolkitFramework.framework/Versions/A/BWToolkitFramework +++ b/Frameworks/BWToolkitFramework.framework/Versions/A/BWToolkitFramework diff --git a/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWSplitView.h b/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWSplitView.h index ed9731a6..e0d32f67 100644 --- a/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWSplitView.h +++ b/Frameworks/BWToolkitFramework.framework/Versions/A/Headers/BWSplitView.h @@ -16,6 +16,7 @@ NSMutableDictionary *minValues, *maxValues, *minUnits, *maxUnits; NSMutableDictionary *resizableSubviewPreferredProportion, *nonresizableSubviewPreferredSize; NSArray *stateForLastPreferredCalculations; + NSMutableArray *uncollapsedSizes; int collapsiblePopupSelection; float uncollapsedSize; diff --git a/Frameworks/MCPKit/MCPFoundationKit/MCPConnection.m b/Frameworks/MCPKit/MCPFoundationKit/MCPConnection.m index af5e6123..3556e9d7 100644 --- a/Frameworks/MCPKit/MCPFoundationKit/MCPConnection.m +++ b/Frameworks/MCPKit/MCPFoundationKit/MCPConnection.m @@ -1899,13 +1899,14 @@ void pingThreadCleanup(MCPConnectionPingDetails *pingDetails) } /** - * Returns the number of affected rows by the last query. + * Returns the number of affected rows by the last query. Only actual queries + * supplied via queryString:, streamingQueryString:, streamingQueryString:useLowMemoryBlockingStreaming: + * or queryString:usingEncoding:streamingResult: will have their affected rows + * returned, not any "meta" type queries. */ - (my_ulonglong)affectedRows { - if (mConnected) { - return mysql_affected_rows(mConnection); - } + if (mConnected) return lastQueryAffectedRows; return 0; } diff --git a/Frameworks/MCPKit/MCPFoundationKit/MCPGeometryData.m b/Frameworks/MCPKit/MCPFoundationKit/MCPGeometryData.m index aafdba0e..00d7d44f 100644 --- a/Frameworks/MCPKit/MCPFoundationKit/MCPGeometryData.m +++ b/Frameworks/MCPKit/MCPFoundationKit/MCPGeometryData.m @@ -103,11 +103,12 @@ - (NSString*)wktString { char byteOrder; - UInt32 geoType, srid, numberOfItems, numberOfSubItems, numberOfSubSubItems, numberOfCollectionItems; + uint32_t geoType, numberOfItems, numberOfSubItems, numberOfSubSubItems, numberOfCollectionItems; + int32_t srid; st_point_2d aPoint; - NSUInteger i, j, k, n; // Loop counter for numberOf...Items - NSUInteger ptr = BUFFER_START; // pointer to geoBuffer while parsing + uint32_t i, j, k, n; // Loop counter for numberOf...Items + uint32_t ptr = BUFFER_START; // pointer to geoBuffer while parsing NSMutableString *wkt = [NSMutableString string]; @@ -130,28 +131,28 @@ case wkb_point: memcpy(&aPoint, &geoBuffer[ptr], POINT_DATA_SIZE); - return [NSString stringWithFormat:@"POINT(%.16g %.16g)%@", aPoint.x, aPoint.y, (srid) ? [NSString stringWithFormat:@",%u",srid]: @""]; + return [NSString stringWithFormat:@"POINT(%.16g %.16g)%@", aPoint.x, aPoint.y, (srid) ? [NSString stringWithFormat:@",%d",srid]: @""]; break; case wkb_linestring: [wkt setString:@"LINESTRING("]; - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(i=0; i < numberOfItems; i++) { memcpy(&aPoint, &geoBuffer[ptr], POINT_DATA_SIZE); [wkt appendFormat:@"%.16g %.16g%@", aPoint.x, aPoint.y, (i < numberOfItems-1) ? @"," : @""]; ptr += POINT_DATA_SIZE; } - [wkt appendFormat:@")%@", (srid) ? [NSString stringWithFormat:@",%u",srid]: @""]; + [wkt appendFormat:@")%@", (srid) ? [NSString stringWithFormat:@",%d",srid]: @""]; return wkt; break; case wkb_polygon: [wkt setString:@"POLYGON("]; - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(i=0; i < numberOfItems; i++) { - numberOfSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; [wkt appendString:@"("]; for(j=0; j < numberOfSubItems; j++) { @@ -161,29 +162,29 @@ } [wkt appendFormat:@")%@", (i < numberOfItems-1) ? @"," : @""]; } - [wkt appendFormat:@")%@", (srid) ? [NSString stringWithFormat:@",%u",srid]: @""]; + [wkt appendFormat:@")%@", (srid) ? [NSString stringWithFormat:@",%d",srid]: @""]; return wkt; break; case wkb_multipoint: [wkt setString:@"MULTIPOINT("]; - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32+WKB_HEADER_SIZE; for(i=0; i < numberOfItems; i++) { memcpy(&aPoint, &geoBuffer[ptr], POINT_DATA_SIZE); [wkt appendFormat:@"%.16g %.16g%@", aPoint.x, aPoint.y, (i < numberOfItems-1) ? @"," : @""]; ptr += POINT_DATA_SIZE+WKB_HEADER_SIZE; } - [wkt appendFormat:@")%@", (srid) ? [NSString stringWithFormat:@",%u",srid]: @""]; + [wkt appendFormat:@")%@", (srid) ? [NSString stringWithFormat:@",%d",srid]: @""]; return wkt; break; case wkb_multilinestring: [wkt setString:@"MULTILINESTRING("]; - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32+WKB_HEADER_SIZE; for(i=0; i < numberOfItems; i++) { - numberOfSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; [wkt appendString:@"("]; for(j=0; j < numberOfSubItems; j++) { @@ -194,20 +195,20 @@ ptr += WKB_HEADER_SIZE; [wkt appendFormat:@")%@", (i < numberOfItems-1) ? @"," : @""]; } - [wkt appendFormat:@")%@", (srid) ? [NSString stringWithFormat:@",%u",srid]: @""]; + [wkt appendFormat:@")%@", (srid) ? [NSString stringWithFormat:@",%d",srid]: @""]; return wkt; break; case wkb_multipolygon: [wkt setString:@"MULTIPOLYGON("]; - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32+WKB_HEADER_SIZE; for(i=0; i < numberOfItems; i++) { - numberOfSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; [wkt appendString:@"("]; for(j=0; j < numberOfSubItems; j++) { - numberOfSubSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; [wkt appendString:@"("]; for(k=0; k < numberOfSubSubItems; k++) { @@ -220,7 +221,7 @@ ptr += WKB_HEADER_SIZE; [wkt appendFormat:@")%@", (i < numberOfItems-1) ? @"," : @""]; } - [wkt appendFormat:@")%@", (srid) ? [NSString stringWithFormat:@",%u",srid]: @""]; + [wkt appendFormat:@")%@", (srid) ? [NSString stringWithFormat:@",%d",srid]: @""]; return wkt; break; @@ -250,7 +251,7 @@ case wkb_linestring: [wkt appendString:@"LINESTRING("]; - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(i=0; i < numberOfItems; i++) { memcpy(&aPoint, &geoBuffer[ptr], POINT_DATA_SIZE); @@ -262,10 +263,10 @@ case wkb_polygon: [wkt appendString:@"POLYGON("]; - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(i=0; i < numberOfItems; i++) { - numberOfSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; [wkt appendString:@"("]; for(j=0; j < numberOfSubItems; j++) { @@ -280,7 +281,7 @@ case wkb_multipoint: [wkt appendString:@"MULTIPOINT("]; - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32+WKB_HEADER_SIZE; for(i=0; i < numberOfItems; i++) { memcpy(&aPoint, &geoBuffer[ptr], POINT_DATA_SIZE); @@ -293,10 +294,10 @@ case wkb_multilinestring: [wkt appendString:@"MULTILINESTRING("]; - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32+WKB_HEADER_SIZE; for(i=0; i < numberOfItems; i++) { - numberOfSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; [wkt appendString:@"("]; for(j=0; j < numberOfSubItems; j++) { @@ -313,14 +314,14 @@ case wkb_multipolygon: [wkt appendString:@"MULTIPOLYGON("]; - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32+WKB_HEADER_SIZE; for(i=0; i < numberOfItems; i++) { - numberOfSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; [wkt appendString:@"("]; for(j=0; j < numberOfSubItems; j++) { - numberOfSubSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; [wkt appendString:@"("]; for(k=0; k < numberOfSubSubItems; k++) { @@ -342,7 +343,7 @@ } [wkt appendString:(n < numberOfCollectionItems-1) ? @"," : @""]; } - [wkt appendFormat:@")%@", (srid) ? [NSString stringWithFormat:@",%u",srid]: @""]; + [wkt appendFormat:@")%@", (srid) ? [NSString stringWithFormat:@",%d",srid]: @""]; return wkt; break; @@ -362,16 +363,17 @@ { char byteOrder; - UInt32 geoType, srid, numberOfItems, numberOfSubItems, numberOfSubSubItems, numberOfCollectionItems; + uint32_t geoType, numberOfItems, numberOfSubItems, numberOfSubSubItems, numberOfCollectionItems; + int32_t srid; st_point_2d aPoint; - NSUInteger i, j, k, n; // Loop counter for numberOf...Items - NSUInteger ptr = BUFFER_START; // pointer to geoBuffer while parsing + uint32_t i, j, k, n; // Loop counter for numberOf...Items + uint32_t ptr = BUFFER_START; // pointer to geoBuffer while parsing - double x_min = 1e999; - double x_max = -1e999; - double y_min = 1e999; - double y_max = -1e999; + double x_min = 1e998; + double x_max = -1e998; + double y_min = 1e998; + double y_max = -1e998; NSMutableArray *coordinates = [NSMutableArray array]; NSMutableArray *subcoordinates = [NSMutableArray array]; @@ -413,13 +415,13 @@ [NSNumber numberWithDouble:y_max], nil], @"bbox", coordinates, @"coordinates", - [NSNumber numberWithUnsignedInt:srid], @"srid", + [NSNumber numberWithInt:srid], @"srid", @"POINT", @"type", nil]; break; case wkb_linestring: - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(i=0; i < numberOfItems; i++) { memcpy(&aPoint, &geoBuffer[ptr], POINT_DATA_SIZE); @@ -443,10 +445,10 @@ break; case wkb_polygon: - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(i=0; i < numberOfItems; i++) { - numberOfSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(j=0; j < numberOfSubItems; j++) { memcpy(&aPoint, &geoBuffer[ptr], POINT_DATA_SIZE); @@ -468,13 +470,13 @@ [NSNumber numberWithDouble:y_max], nil], @"bbox", coordinates, @"coordinates", - [NSNumber numberWithUnsignedInt:srid], @"srid", + [NSNumber numberWithInt:srid], @"srid", @"POLYGON", @"type", nil]; break; case wkb_multipoint: - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32+WKB_HEADER_SIZE; for(i=0; i < numberOfItems; i++) { memcpy(&aPoint, &geoBuffer[ptr], POINT_DATA_SIZE); @@ -493,16 +495,16 @@ [NSNumber numberWithDouble:y_max], nil], @"bbox", coordinates, @"coordinates", - [NSNumber numberWithUnsignedInt:srid], @"srid", + [NSNumber numberWithInt:srid], @"srid", @"MULTIPOINT", @"type", nil]; break; case wkb_multilinestring: - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32+WKB_HEADER_SIZE; for(i=0; i < numberOfItems; i++) { - numberOfSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(j=0; j < numberOfSubItems; j++) { memcpy(&aPoint, &geoBuffer[ptr], POINT_DATA_SIZE); @@ -525,19 +527,19 @@ [NSNumber numberWithDouble:y_max], nil], @"bbox", coordinates, @"coordinates", - [NSNumber numberWithUnsignedInt:srid], @"srid", + [NSNumber numberWithInt:srid], @"srid", @"MULTILINESTRING", @"type", nil]; break; case wkb_multipolygon: - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32+WKB_HEADER_SIZE; for(i=0; i < numberOfItems; i++) { - numberOfSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(j=0; j < numberOfSubItems; j++) { - numberOfSubSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(k=0; k < numberOfSubSubItems; k++) { memcpy(&aPoint, &geoBuffer[ptr], POINT_DATA_SIZE); @@ -561,7 +563,7 @@ [NSNumber numberWithDouble:y_max], nil], @"bbox", coordinates, @"coordinates", - [NSNumber numberWithUnsignedInt:srid], @"srid", + [NSNumber numberWithInt:srid], @"srid", @"MULTIPOLYGON", @"type", nil]; break; @@ -594,7 +596,7 @@ break; case wkb_linestring: - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(i=0; i < numberOfItems; i++) { memcpy(&aPoint, &geoBuffer[ptr], POINT_DATA_SIZE); @@ -610,10 +612,10 @@ break; case wkb_polygon: - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(i=0; i < numberOfItems; i++) { - numberOfSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(j=0; j < numberOfSubItems; j++) { memcpy(&aPoint, &geoBuffer[ptr], POINT_DATA_SIZE); @@ -630,7 +632,7 @@ break; case wkb_multipoint: - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32+WKB_HEADER_SIZE; for(i=0; i < numberOfItems; i++) { memcpy(&aPoint, &geoBuffer[ptr], POINT_DATA_SIZE); @@ -645,10 +647,10 @@ break; case wkb_multilinestring: - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32+WKB_HEADER_SIZE; for(i=0; i < numberOfItems; i++) { - numberOfSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(j=0; j < numberOfSubItems; j++) { memcpy(&aPoint, &geoBuffer[ptr], POINT_DATA_SIZE); @@ -667,13 +669,13 @@ break; case wkb_multipolygon: - numberOfItems = geoBuffer[ptr]; + memcpy(&numberOfItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32+WKB_HEADER_SIZE; for(i=0; i < numberOfItems; i++) { - numberOfSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(j=0; j < numberOfSubItems; j++) { - numberOfSubSubItems = geoBuffer[ptr]; + memcpy(&numberOfSubSubItems, &geoBuffer[ptr], SIZEOF_STORED_UINT32); ptr += SIZEOF_STORED_UINT32; for(k=0; k < numberOfSubSubItems; k++) { memcpy(&aPoint, &geoBuffer[ptr], POINT_DATA_SIZE); diff --git a/Frameworks/PSMTabBar/PSMTabBarControl.m b/Frameworks/PSMTabBar/PSMTabBarControl.m index a9268a78..8debd774 100644 --- a/Frameworks/PSMTabBar/PSMTabBarControl.m +++ b/Frameworks/PSMTabBar/PSMTabBarControl.m @@ -265,8 +265,8 @@ } if (aWindow) { - [center addObserver:self selector:@selector(windowStatusDidChange:) name:NSWindowDidBecomeKeyNotification object:aWindow]; - [center addObserver:self selector:@selector(windowStatusDidChange:) name:NSWindowDidResignKeyNotification object:aWindow]; + [center addObserver:self selector:@selector(windowStatusDidChange:) name:NSWindowDidBecomeMainNotification object:aWindow]; + [center addObserver:self selector:@selector(windowStatusDidChange:) name:NSWindowDidResignMainNotification object:aWindow]; [center addObserver:self selector:@selector(windowDidUpdate:) name:NSWindowDidUpdateNotification object:aWindow]; [center addObserver:self selector:@selector(windowDidMove:) name:NSWindowDidMoveNotification object:aWindow]; } diff --git a/Frameworks/PSMTabBar/Styles/PSMAdiumTabStyle.m b/Frameworks/PSMTabBar/Styles/PSMAdiumTabStyle.m index be5cf82d..3bda9cf5 100644 --- a/Frameworks/PSMTabBar/Styles/PSMAdiumTabStyle.m +++ b/Frameworks/PSMTabBar/Styles/PSMAdiumTabStyle.m @@ -399,7 +399,7 @@ // Paragraph Style for Truncating Long Text static NSMutableParagraphStyle *TruncatingTailParagraphStyle = nil; if (!TruncatingTailParagraphStyle) { - TruncatingTailParagraphStyle = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] retain]; + TruncatingTailParagraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; [TruncatingTailParagraphStyle setLineBreakMode:NSLineBreakByTruncatingTail]; } [attrStr addAttribute:NSParagraphStyleAttributeName value:TruncatingTailParagraphStyle range:range]; @@ -995,11 +995,12 @@ NSMutableParagraphStyle *centeredParagraphStyle = nil; if (!centeredParagraphStyle) { - centeredParagraphStyle = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] retain]; + centeredParagraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; [centeredParagraphStyle setAlignment:NSCenterTextAlignment]; } [attrStr addAttribute:NSParagraphStyleAttributeName value:centeredParagraphStyle range:range]; + [centeredParagraphStyle release]; [attrStr drawInRect:labelRect]; return; } diff --git a/Frameworks/PSMTabBar/Styles/PSMAquaTabStyle.m b/Frameworks/PSMTabBar/Styles/PSMAquaTabStyle.m index f2618fe5..901f3b4a 100644 --- a/Frameworks/PSMTabBar/Styles/PSMAquaTabStyle.m +++ b/Frameworks/PSMTabBar/Styles/PSMAquaTabStyle.m @@ -312,12 +312,12 @@ // Paragraph Style for Truncating Long Text static NSMutableParagraphStyle *TruncatingTailParagraphStyle = nil; if (!TruncatingTailParagraphStyle) { - TruncatingTailParagraphStyle = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] retain]; + TruncatingTailParagraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; [TruncatingTailParagraphStyle setLineBreakMode:NSLineBreakByTruncatingTail]; [TruncatingTailParagraphStyle setAlignment:NSCenterTextAlignment]; } [attrStr addAttribute:NSParagraphStyleAttributeName value:TruncatingTailParagraphStyle range:range]; - + return attrStr; } @@ -414,10 +414,11 @@ [attrStr addAttribute:NSFontAttributeName value:[NSFont systemFontOfSize:11.0] range:range]; NSMutableParagraphStyle *centeredParagraphStyle = nil; if (!centeredParagraphStyle) { - centeredParagraphStyle = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] retain]; + centeredParagraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; [centeredParagraphStyle setAlignment:NSCenterTextAlignment]; } [attrStr addAttribute:NSParagraphStyleAttributeName value:centeredParagraphStyle range:range]; + [centeredParagraphStyle release]; [attrStr drawInRect:labelRect]; return; } diff --git a/Frameworks/PSMTabBar/Styles/PSMCardTabStyle.m b/Frameworks/PSMTabBar/Styles/PSMCardTabStyle.m index 31da000c..56c3a173 100644 --- a/Frameworks/PSMTabBar/Styles/PSMCardTabStyle.m +++ b/Frameworks/PSMTabBar/Styles/PSMCardTabStyle.m @@ -298,11 +298,11 @@ // Paragraph Style for Truncating Long Text static NSMutableParagraphStyle *TruncatingTailParagraphStyle = nil; if (!TruncatingTailParagraphStyle) { - TruncatingTailParagraphStyle = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] retain]; + TruncatingTailParagraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; [TruncatingTailParagraphStyle setLineBreakMode:NSLineBreakByTruncatingTail]; } [attrStr addAttribute:NSParagraphStyleAttributeName value:TruncatingTailParagraphStyle range:range]; - + return attrStr; } diff --git a/Frameworks/PSMTabBar/Styles/PSMMetalTabStyle.m b/Frameworks/PSMTabBar/Styles/PSMMetalTabStyle.m index 443179ce..db9bbd86 100644 --- a/Frameworks/PSMTabBar/Styles/PSMMetalTabStyle.m +++ b/Frameworks/PSMTabBar/Styles/PSMMetalTabStyle.m @@ -327,7 +327,7 @@ // Paragraph Style for Truncating Long Text static NSMutableParagraphStyle *TruncatingTailParagraphStyle = nil; if (!TruncatingTailParagraphStyle) { - TruncatingTailParagraphStyle = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] retain]; + TruncatingTailParagraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; [TruncatingTailParagraphStyle setLineBreakMode:NSLineBreakByTruncatingTail]; [TruncatingTailParagraphStyle setAlignment:NSCenterTextAlignment]; } @@ -592,10 +592,11 @@ [attrStr addAttribute:NSFontAttributeName value:[NSFont systemFontOfSize:11.0] range:range]; NSMutableParagraphStyle *centeredParagraphStyle = nil; if (!centeredParagraphStyle) { - centeredParagraphStyle = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] retain]; + centeredParagraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; [centeredParagraphStyle setAlignment:NSCenterTextAlignment]; } [attrStr addAttribute:NSParagraphStyleAttributeName value:centeredParagraphStyle range:range]; + [centeredParagraphStyle release]; [attrStr drawInRect:labelRect]; return; } diff --git a/Frameworks/PSMTabBar/Styles/PSMSequelProTabStyle.m b/Frameworks/PSMTabBar/Styles/PSMSequelProTabStyle.m index 9ec84db8..48db93c3 100644 --- a/Frameworks/PSMTabBar/Styles/PSMSequelProTabStyle.m +++ b/Frameworks/PSMTabBar/Styles/PSMSequelProTabStyle.m @@ -337,7 +337,7 @@ // Paragraph Style for Truncating Long Text static NSMutableParagraphStyle *TruncatingTailParagraphStyle = nil; if (!TruncatingTailParagraphStyle) { - TruncatingTailParagraphStyle = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] retain]; + TruncatingTailParagraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; [TruncatingTailParagraphStyle setLineBreakMode:NSLineBreakByTruncatingTail]; [TruncatingTailParagraphStyle setAlignment:NSCenterTextAlignment]; } @@ -375,10 +375,11 @@ NSMutableParagraphStyle *centeredParagraphStyle = nil; if (!centeredParagraphStyle) { - centeredParagraphStyle = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] retain]; + centeredParagraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; [centeredParagraphStyle setAlignment:NSCenterTextAlignment]; } [attrStr addAttribute:NSParagraphStyleAttributeName value:centeredParagraphStyle range:range]; + [centeredParagraphStyle release]; [attrStr drawInRect:labelRect]; return; } @@ -409,7 +410,7 @@ // When the window is in the background, tone down the colours if (![[tabBar window] isMainWindow] || ![NSApp isActive]) { - backgroundCalibratedWhite = 0.685; + backgroundCalibratedWhite = 0.73; lineCalibratedWhite = 0.49; shadowAlpha = 0.3; } @@ -514,7 +515,7 @@ fillColor = [NSColor colorWithCalibratedWhite:0.81 alpha:1.0]; shadowColor = [NSColor colorWithCalibratedWhite:0.0 alpha:0.4]; } else { - fillColor = [NSColor colorWithCalibratedWhite:0.685 alpha:1.0]; + fillColor = [NSColor colorWithCalibratedWhite:0.73 alpha:1.0]; shadowColor = [NSColor colorWithCalibratedWhite:0.0 alpha:0.7]; } } @@ -533,7 +534,7 @@ topLeftArcCenter = NSMakePoint(aRect.origin.x - kPSMSequelProTabCornerRadius + 0.5, aRect.origin.y + kPSMSequelProTabCornerRadius); topRightArcCenter = NSMakePoint(aRect.origin.x + aRect.size.width + kPSMSequelProTabCornerRadius + 0.5, aRect.origin.y + kPSMSequelProTabCornerRadius); bottomLeftArcCenter = NSMakePoint(aRect.origin.x + kPSMSequelProTabCornerRadius + 0.5, aRect.origin.y + aRect.size.height - kPSMSequelProTabCornerRadius); - bottomRightArcCenter = NSMakePoint(aRect.origin.x + aRect.size.width - kPSMSequelProTabCornerRadius + 0.5, aRect.origin.y + aRect.size.height - kPSMSequelProTabCornerRadius ); + bottomRightArcCenter = NSMakePoint(aRect.origin.x + aRect.size.width - kPSMSequelProTabCornerRadius + 0.5, aRect.origin.y + aRect.size.height - kPSMSequelProTabCornerRadius); // Construct the outline path if (drawLeftEdge) { @@ -594,6 +595,7 @@ [shadow setShadowOffset:NSMakeSize(0, 1)]; [shadow set]; [outlineBezier stroke]; + [shadow release]; // Add the shadow over the tops of background tabs } else if (drawLeftEdge || drawRightEdge) { @@ -632,12 +634,14 @@ // Draw, and then restore the previous graphics state [outlineBezier stroke]; + [shadow release]; CGContextRestoreGState(context); } [NSGraphicsContext restoreGraphicsState]; - [self drawInteriorWithTabCell:cell inView:[cell controlView]]; + [self drawInteriorWithTabCell:cell inView:[cell controlView]]; + } diff --git a/Frameworks/PSMTabBar/Styles/PSMUnifiedTabStyle.m b/Frameworks/PSMTabBar/Styles/PSMUnifiedTabStyle.m index 13fb0994..76b5efc1 100644 --- a/Frameworks/PSMTabBar/Styles/PSMUnifiedTabStyle.m +++ b/Frameworks/PSMTabBar/Styles/PSMUnifiedTabStyle.m @@ -297,11 +297,11 @@ // Paragraph Style for Truncating Long Text static NSMutableParagraphStyle *TruncatingTailParagraphStyle = nil; if (!TruncatingTailParagraphStyle) { - TruncatingTailParagraphStyle = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] retain]; + TruncatingTailParagraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; [TruncatingTailParagraphStyle setLineBreakMode:NSLineBreakByTruncatingTail]; } [attrStr addAttribute:NSParagraphStyleAttributeName value:TruncatingTailParagraphStyle range:range]; - + return attrStr; } @@ -540,10 +540,11 @@ [attrStr addAttribute:NSFontAttributeName value:[NSFont systemFontOfSize:11.0] range:range]; NSMutableParagraphStyle *centeredParagraphStyle = nil; if (!centeredParagraphStyle) { - centeredParagraphStyle = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] retain]; + centeredParagraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; [centeredParagraphStyle setAlignment:NSCenterTextAlignment]; } [attrStr addAttribute:NSParagraphStyleAttributeName value:centeredParagraphStyle range:range]; + [centeredParagraphStyle release]; [attrStr drawInRect:labelRect]; return; } diff --git a/Interfaces/English.lproj/BundleEditor.xib b/Interfaces/English.lproj/BundleEditor.xib index 0997b4f8..bfd90c39 100644 --- a/Interfaces/English.lproj/BundleEditor.xib +++ b/Interfaces/English.lproj/BundleEditor.xib @@ -2,10 +2,10 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">10H574</string> + <string key="IBDocument.SystemVersion">10J567</string> <string key="IBDocument.InterfaceBuilderVersion">788</string> <string key="IBDocument.AppKitVersion">1038.35</string> - <string key="IBDocument.HIToolboxVersion">461.00</string> + <string key="IBDocument.HIToolboxVersion">462.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> @@ -23,7 +23,7 @@ </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="686"/> + <integer value="685"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -57,7 +57,7 @@ <string key="NSWindowRect">{{235, 76}, {691, 444}}</string> <int key="NSWTFlags">611844096</int> <string key="NSWindowTitle">Bundle Editor</string> - <string key="NSWindowClass">NSWindow</string> + <string key="NSWindowClass">SPWindow</string> <nil key="NSViewClass"/> <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{691, 444}</string> @@ -76,155 +76,6 @@ <int key="NSvFlags">272</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSScrollView" id="802985400"> - <reference key="NSNextResponder" ref="69213598"/> - <int key="NSvFlags">4370</int> - <object class="NSMutableArray" key="NSSubviews"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSClipView" id="34907435"> - <reference key="NSNextResponder" ref="802985400"/> - <int key="NSvFlags">2304</int> - <object class="NSMutableArray" key="NSSubviews"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSOutlineView" id="472206854"> - <reference key="NSNextResponder" ref="34907435"/> - <int key="NSvFlags">4370</int> - <string key="NSFrameSize">{143, 421}</string> - <reference key="NSSuperview" ref="34907435"/> - <bool key="NSEnabled">YES</bool> - <object class="_NSCornerView" key="NSCornerView"> - <nil key="NSNextResponder"/> - <int key="NSvFlags">-2147483392</int> - <string key="NSFrame">{{224, 0}, {16, 17}}</string> - </object> - <object class="NSMutableArray" key="NSTableColumns"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSTableColumn" id="685938371"> - <string key="NSIdentifier">bundleName</string> - <double key="NSWidth">140</double> - <double key="NSMinWidth">16</double> - <double key="NSMaxWidth">1000</double> - <object class="NSTableHeaderCell" key="NSHeaderCell"> - <int key="NSCellFlags">75628096</int> - <int key="NSCellFlags2">2048</int> - <string key="NSContents"/> - <object class="NSFont" key="NSSupport" id="26"> - <string key="NSName">LucidaGrande</string> - <double key="NSSize">11</double> - <int key="NSfFlags">3100</int> - </object> - <object class="NSColor" key="NSBackgroundColor"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes> - </object> - <object class="NSColor" key="NSTextColor" id="1020754459"> - <int key="NSColorSpace">6</int> - <string key="NSCatalogName">System</string> - <string key="NSColorName">headerTextColor</string> - <object class="NSColor" key="NSColor" id="760623067"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MAA</bytes> - </object> - </object> - </object> - <object class="NSTextFieldCell" key="NSDataCell" id="205919728"> - <int key="NSCellFlags">337772096</int> - <int key="NSCellFlags2">133120</int> - <string key="NSContents">Text Cell</string> - <reference key="NSSupport" ref="26"/> - <reference key="NSControlView" ref="472206854"/> - <object class="NSColor" key="NSBackgroundColor" id="255000212"> - <int key="NSColorSpace">6</int> - <string key="NSCatalogName">System</string> - <string key="NSColorName">controlBackgroundColor</string> - <object class="NSColor" key="NSColor" id="752361275"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes> - </object> - </object> - <object class="NSColor" key="NSTextColor" id="576381864"> - <int key="NSColorSpace">6</int> - <string key="NSCatalogName">System</string> - <string key="NSColorName">controlTextColor</string> - <reference key="NSColor" ref="760623067"/> - </object> - </object> - <int key="NSResizingMask">3</int> - <bool key="NSIsResizeable">YES</bool> - <bool key="NSIsEditable">YES</bool> - <reference key="NSTableView" ref="472206854"/> - </object> - </object> - <double key="NSIntercellSpacingWidth">3</double> - <double key="NSIntercellSpacingHeight">0.0</double> - <object class="NSColor" key="NSBackgroundColor"> - <int key="NSColorSpace">6</int> - <string key="NSCatalogName">System</string> - <string key="NSColorName">_sourceListBackgroundColor</string> - <object class="NSColor" key="NSColor"> - <int key="NSColorSpace">1</int> - <bytes key="NSRGB">MC44MzkyMTU2OTU5IDAuODY2NjY2Njc0NiAwLjg5ODAzOTIyMTgAA</bytes> - </object> - </object> - <object class="NSColor" key="NSGridColor" id="893936909"> - <int key="NSColorSpace">6</int> - <string key="NSCatalogName">System</string> - <string key="NSColorName">gridColor</string> - <object class="NSColor" key="NSColor"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC41AA</bytes> - </object> - </object> - <double key="NSRowHeight">20</double> - <int key="NSTvFlags">1128267776</int> - <reference key="NSDelegate"/> - <reference key="NSDataSource"/> - <string key="NSAutosaveName">SPBundleEditorOutlineView</string> - <int key="NSColumnAutoresizingStyle">5</int> - <int key="NSDraggingSourceMaskForLocal">15</int> - <int key="NSDraggingSourceMaskForNonLocal">0</int> - <bool key="NSAllowsTypeSelect">YES</bool> - <int key="NSTableViewSelectionHighlightStyle">1</int> - <int key="NSTableViewDraggingDestinationStyle">1</int> - <float key="NSOutlineViewIndentationPerLevelKey">14</float> - </object> - </object> - <string key="NSFrame">{{1, 1}, {143, 421}}</string> - <reference key="NSSuperview" ref="802985400"/> - <reference key="NSNextKeyView" ref="472206854"/> - <reference key="NSDocView" ref="472206854"/> - <reference key="NSBGColor" ref="255000212"/> - <int key="NScvFlags">4</int> - </object> - <object class="NSScroller" id="769403162"> - <reference key="NSNextResponder" ref="802985400"/> - <int key="NSvFlags">-2147483392</int> - <string key="NSFrame">{{-100, -100}, {15, 102}}</string> - <reference key="NSSuperview" ref="802985400"/> - <reference key="NSTarget" ref="802985400"/> - <string key="NSAction">_doScroller:</string> - <double key="NSPercent">0.99585062265396118</double> - </object> - <object class="NSScroller" id="124076675"> - <reference key="NSNextResponder" ref="802985400"/> - <int key="NSvFlags">-2147483392</int> - <string key="NSFrame">{{-100, -100}, {192, 15}}</string> - <reference key="NSSuperview" ref="802985400"/> - <int key="NSsFlags">1</int> - <reference key="NSTarget" ref="802985400"/> - <string key="NSAction">_doScroller:</string> - <double key="NSPercent">0.98947370052337646</double> - </object> - </object> - <string key="NSFrame">{{-1.5, 22.5}, {145, 423}}</string> - <reference key="NSSuperview" ref="69213598"/> - <reference key="NSNextKeyView" ref="34907435"/> - <int key="NSsFlags">530</int> - <reference key="NSVScroller" ref="769403162"/> - <reference key="NSHScroller" ref="124076675"/> - <reference key="NSContentView" ref="34907435"/> - <bytes key="NSScrollAmts">QSAAAEEgAABBoAAAQaAAAA</bytes> - </object> <object class="BWAnchoredButtonBar" id="78837987"> <reference key="NSNextResponder" ref="69213598"/> <int key="NSvFlags">290</int> @@ -407,6 +258,155 @@ <bool key="BWABBHandleIsRightAligned">NO</bool> <int key="BWABBSelectedIndex">0</int> </object> + <object class="NSScrollView" id="802985400"> + <reference key="NSNextResponder" ref="69213598"/> + <int key="NSvFlags">4370</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSClipView" id="34907435"> + <reference key="NSNextResponder" ref="802985400"/> + <int key="NSvFlags">2304</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSOutlineView" id="472206854"> + <reference key="NSNextResponder" ref="34907435"/> + <int key="NSvFlags">4370</int> + <string key="NSFrameSize">{143, 421}</string> + <reference key="NSSuperview" ref="34907435"/> + <bool key="NSEnabled">YES</bool> + <object class="_NSCornerView" key="NSCornerView"> + <nil key="NSNextResponder"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{224, 0}, {16, 17}}</string> + </object> + <object class="NSMutableArray" key="NSTableColumns"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTableColumn" id="685938371"> + <string key="NSIdentifier">bundleName</string> + <double key="NSWidth">140</double> + <double key="NSMinWidth">16</double> + <double key="NSMaxWidth">1000</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents"/> + <object class="NSFont" key="NSSupport" id="26"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">11</double> + <int key="NSfFlags">3100</int> + </object> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes> + </object> + <object class="NSColor" key="NSTextColor" id="1020754459"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">headerTextColor</string> + <object class="NSColor" key="NSColor" id="760623067"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MAA</bytes> + </object> + </object> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="205919728"> + <int key="NSCellFlags">337772096</int> + <int key="NSCellFlags2">133120</int> + <string key="NSContents">Text Cell</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="472206854"/> + <object class="NSColor" key="NSBackgroundColor" id="255000212"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlBackgroundColor</string> + <object class="NSColor" key="NSColor" id="752361275"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes> + </object> + </object> + <object class="NSColor" key="NSTextColor" id="576381864"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlTextColor</string> + <reference key="NSColor" ref="760623067"/> + </object> + </object> + <int key="NSResizingMask">3</int> + <bool key="NSIsResizeable">YES</bool> + <bool key="NSIsEditable">YES</bool> + <reference key="NSTableView" ref="472206854"/> + </object> + </object> + <double key="NSIntercellSpacingWidth">3</double> + <double key="NSIntercellSpacingHeight">0.0</double> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">_sourceListBackgroundColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MC44MzkyMTU2OTU5IDAuODY2NjY2Njc0NiAwLjg5ODAzOTIyMTgAA</bytes> + </object> + </object> + <object class="NSColor" key="NSGridColor" id="893936909"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">gridColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC41AA</bytes> + </object> + </object> + <double key="NSRowHeight">20</double> + <int key="NSTvFlags">1128267776</int> + <reference key="NSDelegate"/> + <reference key="NSDataSource"/> + <string key="NSAutosaveName">SPBundleEditorOutlineView</string> + <int key="NSColumnAutoresizingStyle">5</int> + <int key="NSDraggingSourceMaskForLocal">15</int> + <int key="NSDraggingSourceMaskForNonLocal">0</int> + <bool key="NSAllowsTypeSelect">YES</bool> + <int key="NSTableViewSelectionHighlightStyle">1</int> + <int key="NSTableViewDraggingDestinationStyle">1</int> + <float key="NSOutlineViewIndentationPerLevelKey">14</float> + </object> + </object> + <string key="NSFrame">{{1, 1}, {143, 421}}</string> + <reference key="NSSuperview" ref="802985400"/> + <reference key="NSNextKeyView" ref="472206854"/> + <reference key="NSDocView" ref="472206854"/> + <reference key="NSBGColor" ref="255000212"/> + <int key="NScvFlags">4</int> + </object> + <object class="NSScroller" id="769403162"> + <reference key="NSNextResponder" ref="802985400"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{-100, -100}, {15, 102}}</string> + <reference key="NSSuperview" ref="802985400"/> + <reference key="NSTarget" ref="802985400"/> + <string key="NSAction">_doScroller:</string> + <double key="NSPercent">0.99585062265396118</double> + </object> + <object class="NSScroller" id="124076675"> + <reference key="NSNextResponder" ref="802985400"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{-100, -100}, {192, 15}}</string> + <reference key="NSSuperview" ref="802985400"/> + <int key="NSsFlags">1</int> + <reference key="NSTarget" ref="802985400"/> + <string key="NSAction">_doScroller:</string> + <double key="NSPercent">0.98947370052337646</double> + </object> + </object> + <string key="NSFrame">{{-2, 22}, {145, 423}}</string> + <reference key="NSSuperview" ref="69213598"/> + <reference key="NSNextKeyView" ref="34907435"/> + <int key="NSsFlags">530</int> + <reference key="NSVScroller" ref="769403162"/> + <reference key="NSHScroller" ref="124076675"/> + <reference key="NSContentView" ref="34907435"/> + <bytes key="NSScrollAmts">QSAAAEEgAABBoAAAQaAAAA</bytes> + </object> </object> <string key="NSFrameSize">{142, 444}</string> <reference key="NSSuperview" ref="358491109"/> @@ -1190,7 +1190,7 @@ <object class="NSTextField" id="728794970"> <reference key="NSNextResponder" ref="338542681"/> <int key="NSvFlags">288</int> - <string key="NSFrame">{{17, 78}, {95, 14}}</string> + <string key="NSFrame">{{17, 78}, {167, 14}}</string> <reference key="NSSuperview" ref="338542681"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="38136759"> @@ -1377,7 +1377,7 @@ <reference key="NSSuperview" ref="391663674"/> <bool key="NSIsVertical">YES</bool> <int key="NSDividerStyle">2</int> - <string key="NSAutosaveName">SPQueryFavoriteSplitView</string> + <string key="NSAutosaveName">SPBundleEditorSplitView</string> <object class="NSColor" key="BWSVColor"> <int key="NSColorSpace">1</int> <bytes key="NSRGB">MC42NjY2NjY2ODY1IDAuNjY2NjY2Njg2NSAwLjY2NjY2NjY4NjUAA</bytes> @@ -1512,7 +1512,7 @@ <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{341, 198}</string> <object class="NSView" key="NSWindowView" id="856429814"> - <reference key="NSNextResponder"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -1531,14 +1531,12 @@ <int key="NSvFlags">256</int> <string key="NSFrameSize">{341, 121}</string> <reference key="NSSuperview" ref="345853705"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTableHeaderView" key="NSHeaderView" id="448210001"> <reference key="NSNextResponder" ref="1010462793"/> <int key="NSvFlags">256</int> <string key="NSFrameSize">{341, 17}</string> <reference key="NSSuperview" ref="1010462793"/> - <reference key="NSWindow"/> <reference key="NSTableView" ref="703923380"/> </object> <object class="_NSCornerView" key="NSCornerView" id="32874251"> @@ -1546,7 +1544,6 @@ <int key="NSvFlags">-2147483392</int> <string key="NSFrame">{{224, 0}, {16, 17}}</string> <reference key="NSSuperview" ref="364471408"/> - <reference key="NSWindow"/> </object> <object class="NSMutableArray" key="NSTableColumns"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -1606,7 +1603,6 @@ </object> <string key="NSFrame">{{1, 17}, {341, 121}}</string> <reference key="NSSuperview" ref="364471408"/> - <reference key="NSWindow"/> <reference key="NSNextKeyView" ref="703923380"/> <reference key="NSDocView" ref="703923380"/> <reference key="NSBGColor" ref="255000212"/> @@ -1617,7 +1613,6 @@ <int key="NSvFlags">-2147483392</int> <string key="NSFrame">{{224, 17}, {15, 102}}</string> <reference key="NSSuperview" ref="364471408"/> - <reference key="NSWindow"/> <reference key="NSTarget" ref="364471408"/> <string key="NSAction">_doScroller:</string> <double key="NSPercent">0.99180328845977783</double> @@ -1627,7 +1622,6 @@ <int key="NSvFlags">-2147483392</int> <string key="NSFrame">{{1, 119}, {223, 15}}</string> <reference key="NSSuperview" ref="364471408"/> - <reference key="NSWindow"/> <int key="NSsFlags">1</int> <reference key="NSTarget" ref="364471408"/> <string key="NSAction">_doScroller:</string> @@ -1642,7 +1636,6 @@ </object> <string key="NSFrame">{{1, 0}, {341, 17}}</string> <reference key="NSSuperview" ref="364471408"/> - <reference key="NSWindow"/> <reference key="NSNextKeyView" ref="448210001"/> <reference key="NSDocView" ref="448210001"/> <reference key="NSBGColor" ref="255000212"/> @@ -1652,7 +1645,6 @@ </object> <string key="NSFrame">{{-1, 60}, {343, 139}}</string> <reference key="NSSuperview" ref="856429814"/> - <reference key="NSWindow"/> <reference key="NSNextKeyView" ref="345853705"/> <int key="NSsFlags">562</int> <reference key="NSVScroller" ref="1021684639"/> @@ -1667,7 +1659,6 @@ <int key="NSvFlags">289</int> <string key="NSFrame">{{213, 12}, {114, 32}}</string> <reference key="NSSuperview" ref="856429814"/> - <reference key="NSWindow"/> <int key="NSTag">1</int> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="521920114"> @@ -1689,7 +1680,6 @@ <int key="NSvFlags">289</int> <string key="NSFrame">{{99, 12}, {114, 32}}</string> <reference key="NSSuperview" ref="856429814"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="517185919"> <int key="NSCellFlags">67239424</int> @@ -1707,8 +1697,6 @@ </object> </object> <string key="NSFrameSize">{341, 198}</string> - <reference key="NSSuperview"/> - <reference key="NSWindow"/> </object> <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string> <string key="NSMinSize">{341, 214}</string> @@ -2274,14 +2262,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">bundleDataView</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="338542681"/> - </object> - <int key="connectionID">1035</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">helpButton</string> <reference key="source" ref="1001"/> <reference key="destination" ref="277233496"/> @@ -2576,6 +2556,22 @@ </object> <int key="connectionID">1127</int> </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">delegate</string> + <reference key="source" ref="358491109"/> + <reference key="destination" ref="1001"/> + </object> + <int key="connectionID">1128</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">splitView</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="358491109"/> + </object> + <int key="connectionID">1130</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -4047,7 +4043,7 @@ </object> </object> <nil key="sourceID"/> - <int key="maxID">1127</int> + <int key="maxID">1130</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -4068,10 +4064,10 @@ </object> </object> <object class="IBPartialClassDescription"> - <string key="className">NSObject</string> + <string key="className">NSMenu</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> - <string key="minorKey">Frameworks/MCPKit/MCPFoundationKit/MCPConnection.h</string> + <string key="minorKey">Source/SPMenuAdditions.h</string> </object> </object> <object class="IBPartialClassDescription"> @@ -4156,15 +4152,149 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">NSTextView</string> + <object class="NSMutableDictionary" key="actions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>doDecomposedStringWithCanonicalMapping:</string> + <string>doDecomposedStringWithCompatibilityMapping:</string> + <string>doPrecomposedStringWithCanonicalMapping:</string> + <string>doPrecomposedStringWithCompatibilityMapping:</string> + <string>doRemoveDiacritics:</string> + <string>doSelectionLowerCase:</string> + <string>doSelectionTitleCase:</string> + <string>doSelectionUpperCase:</string> + <string>doTranspose:</string> + <string>executeBundleItemForInputField:</string> + <string>insertNULLvalue:</string> + <string>moveSelectionLineDown:</string> + <string>moveSelectionLineUp:</string> + <string>selectCurrentLine:</string> + <string>selectCurrentWord:</string> + <string>selectEnclosingBrackets:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="NSMutableDictionary" key="actionInfosByName"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>doDecomposedStringWithCanonicalMapping:</string> + <string>doDecomposedStringWithCompatibilityMapping:</string> + <string>doPrecomposedStringWithCanonicalMapping:</string> + <string>doPrecomposedStringWithCompatibilityMapping:</string> + <string>doRemoveDiacritics:</string> + <string>doSelectionLowerCase:</string> + <string>doSelectionTitleCase:</string> + <string>doSelectionUpperCase:</string> + <string>doTranspose:</string> + <string>executeBundleItemForInputField:</string> + <string>insertNULLvalue:</string> + <string>moveSelectionLineDown:</string> + <string>moveSelectionLineUp:</string> + <string>selectCurrentLine:</string> + <string>selectCurrentWord:</string> + <string>selectEnclosingBrackets:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBActionInfo"> + <string key="name">doDecomposedStringWithCanonicalMapping:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doDecomposedStringWithCompatibilityMapping:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doPrecomposedStringWithCanonicalMapping:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doPrecomposedStringWithCompatibilityMapping:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doRemoveDiacritics:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doSelectionLowerCase:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doSelectionTitleCase:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doSelectionUpperCase:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doTranspose:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">executeBundleItemForInputField:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">insertNULLvalue:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">moveSelectionLineDown:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">moveSelectionLineUp:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">selectCurrentLine:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">selectCurrentWord:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">selectEnclosingBrackets:</string> + <string key="candidateClassName">id</string> + </object> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPTextViewAdditions.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSWindow</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> <string key="minorKey">Source/SPWindowAdditions.h</string> </object> </object> - </object> - <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.1+"> - <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBPartialClassDescription"> <string key="className">SPBundleCommandTextView</string> <string key="superclassName">NSTextView</string> @@ -4180,8 +4310,8 @@ </object> </object> <object class="IBClassDescriptionSource" key="sourceIdentifier"> - <string key="majorKey">IBDocumentRelativeSource</string> - <string key="minorKey">../../Source/SPBundleCommandTextView.h</string> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPBundleCommandTextView.h</string> </object> </object> <object class="IBPartialClassDescription"> @@ -4338,7 +4468,6 @@ <string>addButton</string> <string>authorLabelField</string> <string>authorTextField</string> - <string>bundleDataView</string> <string>cancelButton</string> <string>categoryTextField</string> <string>commandBundleTreeController</string> @@ -4365,6 +4494,7 @@ <string>saveButton</string> <string>scopePopupButton</string> <string>showHideMetaButton</string> + <string>splitView</string> <string>tooltipTextField</string> <string>triggerPopupButton</string> <string>undeleteSheet</string> @@ -4377,7 +4507,6 @@ <string>NSButton</string> <string>NSTextField</string> <string>NSTextField</string> - <string>NSView</string> <string>NSButton</string> <string>NSTextField</string> <string>NSTreeController</string> @@ -4404,6 +4533,7 @@ <string>NSButton</string> <string>NSPopUpButton</string> <string>NSButton</string> + <string>BWSplitView</string> <string>NSTextField</string> <string>NSPopUpButton</string> <string>id</string> @@ -4419,7 +4549,6 @@ <string>addButton</string> <string>authorLabelField</string> <string>authorTextField</string> - <string>bundleDataView</string> <string>cancelButton</string> <string>categoryTextField</string> <string>commandBundleTreeController</string> @@ -4446,6 +4575,7 @@ <string>saveButton</string> <string>scopePopupButton</string> <string>showHideMetaButton</string> + <string>splitView</string> <string>tooltipTextField</string> <string>triggerPopupButton</string> <string>undeleteSheet</string> @@ -4468,10 +4598,6 @@ <string key="candidateClassName">NSTextField</string> </object> <object class="IBToOneOutletInfo"> - <string key="name">bundleDataView</string> - <string key="candidateClassName">NSView</string> - </object> - <object class="IBToOneOutletInfo"> <string key="name">cancelButton</string> <string key="candidateClassName">NSButton</string> </object> @@ -4576,6 +4702,10 @@ <string key="candidateClassName">NSButton</string> </object> <object class="IBToOneOutletInfo"> + <string key="name">splitView</string> + <string key="candidateClassName">BWSplitView</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">tooltipTextField</string> <string key="candidateClassName">NSTextField</string> </object> @@ -4602,22 +4732,73 @@ </object> </object> <object class="IBClassDescriptionSource" key="sourceIdentifier"> - <string key="majorKey">IBDocumentRelativeSource</string> - <string key="minorKey">../../Source/SPBundleEditorController.h</string> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPBundleEditorController.h</string> </object> </object> <object class="IBPartialClassDescription"> <string key="className">SPOutlineView</string> <string key="superclassName">NSOutlineView</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> - <string key="majorKey">IBDocumentRelativeSource</string> - <string key="minorKey">../../Source/SPOutlineView.h</string> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPOutlineView.h</string> </object> </object> </object> <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBPartialClassDescription"> + <string key="className">BWAnchoredButtonBar</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">BWToolkitFramework.framework/Headers/BWAnchoredButtonBar.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">BWAnchoredPopUpButton</string> + <string key="superclassName">NSPopUpButton</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">BWToolkitFramework.framework/Headers/BWAnchoredPopUpButton.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">BWAnchoredPopUpButtonCell</string> + <string key="superclassName">NSPopUpButtonCell</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">BWToolkitFramework.framework/Headers/BWAnchoredPopUpButtonCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">BWSplitView</string> + <string key="superclassName">NSSplitView</string> + <object class="NSMutableDictionary" key="actions"> + <string key="NS.key.0">toggleCollapse:</string> + <string key="NS.object.0">id</string> + </object> + <object class="NSMutableDictionary" key="actionInfosByName"> + <string key="NS.key.0">toggleCollapse:</string> + <object class="IBActionInfo" key="NS.object.0"> + <string key="name">toggleCollapse:</string> + <string key="candidateClassName">id</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">BWToolkitFramework.framework/Headers/BWSplitView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSActionCell</string> + <string key="superclassName">NSCell</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSApplication</string> <string key="superclassName">NSResponder</string> <object class="IBClassDescriptionSource" key="sourceIdentifier" id="391941030"> @@ -4668,6 +4849,54 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">NSButton</string> + <string key="superclassName">NSControl</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSButton.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSButtonCell</string> + <string key="superclassName">NSActionCell</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSButtonCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSCell</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSControl</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="748253995"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSControl.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSController</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSFormatter</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSMenu</string> <string key="superclassName">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier" id="456563419"> @@ -4676,6 +4905,22 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">NSMenuItem</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="247936298"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSMenuItemCell</string> + <string key="superclassName">NSButtonCell</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSMenuItemCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBFrameworkSource</string> @@ -4696,10 +4941,7 @@ </object> <object class="IBPartialClassDescription"> <string key="className">NSObject</string> - <object class="IBClassDescriptionSource" key="sourceIdentifier"> - <string key="majorKey">IBFrameworkSource</string> - <string key="minorKey">AppKit.framework/Headers/NSControl.h</string> - </object> + <reference key="sourceIdentifier" ref="748253995"/> </object> <object class="IBPartialClassDescription"> <string key="className">NSObject</string> @@ -4749,7 +4991,7 @@ </object> <object class="IBPartialClassDescription"> <string key="className">NSObject</string> - <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="918629930"> <string key="majorKey">IBFrameworkSource</string> <string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string> </object> @@ -4770,7 +5012,7 @@ </object> <object class="IBPartialClassDescription"> <string key="className">NSObject</string> - <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="889337452"> <string key="majorKey">IBFrameworkSource</string> <string key="minorKey">AppKit.framework/Headers/NSTableView.h</string> </object> @@ -4945,6 +5187,27 @@ </object> <object class="IBPartialClassDescription"> <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="687232887"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRRecorderCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="7586778"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRRecorderControl.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRValidator.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBFrameworkSource</string> <string key="minorKey">Sparkle.framework/Headers/SUAppcast.h</string> @@ -5028,6 +5291,43 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">NSObjectController</string> + <string key="superclassName">NSController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSObjectController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSOutlineView</string> + <string key="superclassName">NSTableView</string> + <reference key="sourceIdentifier" ref="918629930"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSPanel</string> + <string key="superclassName">NSWindow</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSPanel.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSPopUpButton</string> + <string key="superclassName">NSButton</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSPopUpButton.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSPopUpButtonCell</string> + <string key="superclassName">NSMenuItemCell</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSPopUpButtonCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSResponder</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBFrameworkSource</string> @@ -5043,21 +5343,103 @@ </object> </object> <object class="IBPartialClassDescription"> - <string key="className">NSView</string> + <string key="className">NSScrollView</string> + <string key="superclassName">NSView</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBFrameworkSource</string> - <string key="minorKey">AppKit.framework/Headers/NSClipView.h</string> + <string key="minorKey">AppKit.framework/Headers/NSScrollView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSScroller</string> + <string key="superclassName">NSControl</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSScroller.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSSplitView</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSSplitView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSTableColumn</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTableColumn.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSTableHeaderView</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTableHeaderView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSTableView</string> + <string key="superclassName">NSControl</string> + <reference key="sourceIdentifier" ref="889337452"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSText</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSText.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSTextField</string> + <string key="superclassName">NSControl</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTextField.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSTextFieldCell</string> + <string key="superclassName">NSActionCell</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTextFieldCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSTextView</string> + <string key="superclassName">NSText</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTextView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSTreeController</string> + <string key="superclassName">NSObjectController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTreeController.h</string> </object> </object> <object class="IBPartialClassDescription"> <string key="className">NSView</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBFrameworkSource</string> - <string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string> + <string key="minorKey">AppKit.framework/Headers/NSClipView.h</string> </object> </object> <object class="IBPartialClassDescription"> <string key="className">NSView</string> + <reference key="sourceIdentifier" ref="247936298"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSView</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBFrameworkSource</string> <string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string> @@ -5123,6 +5505,38 @@ <string key="minorKey">AppKit.framework/Headers/NSWindowController.h</string> </object> </object> + <object class="IBPartialClassDescription"> + <string key="className">SRRecorderCell</string> + <string key="superclassName">NSActionCell</string> + <object class="NSMutableDictionary" key="outlets"> + <string key="NS.key.0">delegate</string> + <string key="NS.object.0">id</string> + </object> + <object class="NSMutableDictionary" key="toOneOutletInfosByName"> + <string key="NS.key.0">delegate</string> + <object class="IBToOneOutletInfo" key="NS.object.0"> + <string key="name">delegate</string> + <string key="candidateClassName">id</string> + </object> + </object> + <reference key="sourceIdentifier" ref="687232887"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">SRRecorderControl</string> + <string key="superclassName">NSControl</string> + <object class="NSMutableDictionary" key="outlets"> + <string key="NS.key.0">delegate</string> + <string key="NS.object.0">id</string> + </object> + <object class="NSMutableDictionary" key="toOneOutletInfosByName"> + <string key="NS.key.0">delegate</string> + <object class="IBToOneOutletInfo" key="NS.object.0"> + <string key="name">delegate</string> + <string key="candidateClassName">id</string> + </object> + </object> + <reference key="sourceIdentifier" ref="7586778"/> + </object> </object> </object> <int key="IBDocument.localizationMode">0</int> @@ -5159,8 +5573,8 @@ <string>{9, 8}</string> <string>{7, 2}</string> <string>{15, 15}</string> - <string>{128, 128}</string> - <string>{128, 128}</string> + <string>{32, 23}</string> + <string>{32, 23}</string> </object> </object> </data> diff --git a/Interfaces/English.lproj/DBView.xib b/Interfaces/English.lproj/DBView.xib index 1b6dd208..29c812fd 100644 --- a/Interfaces/English.lproj/DBView.xib +++ b/Interfaces/English.lproj/DBView.xib @@ -2,10 +2,10 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">10H574</string> + <string key="IBDocument.SystemVersion">10J567</string> <string key="IBDocument.InterfaceBuilderVersion">788</string> <string key="IBDocument.AppKitVersion">1038.35</string> - <string key="IBDocument.HIToolboxVersion">461.00</string> + <string key="IBDocument.HIToolboxVersion">462.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> @@ -23,13 +23,14 @@ </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="27"/> + <integer value="3994"/> + <integer value="6034"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> <string>com.brandonwalkin.BWToolkit</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.WebKitIBPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> </object> <object class="NSMutableDictionary" key="IBDocument.Metadata"> <string key="NS.key.0">PluginDependencyRecalculationVersion</string> @@ -508,7 +509,7 @@ <string key="NSColorName">controlColor</string> <object class="NSColor" key="NSColor" id="1001122760"> <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes> + <bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes> </object> </object> <reference key="NSTextColor" ref="454249633"/> @@ -1065,7 +1066,7 @@ <object class="NSTabViewItem" id="831053945"> <string key="NSIdentifier">source</string> <object class="NSView" key="NSView" id="461236772"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder" ref="714795046"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -1223,7 +1224,7 @@ <object class="NSTableView" id="715508012"> <reference key="NSNextResponder" ref="16936123"/> <int key="NSvFlags">4352</int> - <string key="NSFrameSize">{694, 289}</string> + <string key="NSFrameSize">{694, 288}</string> <reference key="NSSuperview" ref="16936123"/> <bool key="NSEnabled">YES</bool> <object class="NSTableHeaderView" key="NSHeaderView" id="926883367"> @@ -1243,7 +1244,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSTableColumn" id="214236344"> <string key="NSIdentifier">name</string> - <double key="NSWidth">60</double> + <double key="NSWidth">61</double> <double key="NSMinWidth">50</double> <double key="NSMaxWidth">1000</double> <object class="NSTableHeaderCell" key="NSHeaderCell"> @@ -1270,7 +1271,7 @@ </object> <object class="NSTableColumn" id="45498659"> <string key="NSIdentifier">type</string> - <double key="NSWidth">65</double> + <double key="NSWidth">66</double> <double key="NSMinWidth">65</double> <double key="NSMaxWidth">1000</double> <object class="NSTableHeaderCell" key="NSHeaderCell"> @@ -1359,7 +1360,7 @@ </object> <object class="NSTableColumn" id="212523940"> <string key="NSIdentifier">length</string> - <double key="NSWidth">43</double> + <double key="NSWidth">44</double> <double key="NSMinWidth">25</double> <double key="NSMaxWidth">1000</double> <object class="NSTableHeaderCell" key="NSHeaderCell"> @@ -1388,7 +1389,7 @@ <string key="NSIdentifier">unsigned</string> <double key="NSWidth">54</double> <double key="NSMinWidth">14</double> - <double key="NSMaxWidth">54</double> + <double key="NSMaxWidth">82</double> <object class="NSTableHeaderCell" key="NSHeaderCell"> <int key="NSCellFlags">75628096</int> <int key="NSCellFlags2">2048</int> @@ -1426,7 +1427,7 @@ <string key="NSIdentifier">zerofill</string> <double key="NSWidth">41</double> <double key="NSMinWidth">14</double> - <double key="NSMaxWidth">41</double> + <double key="NSMaxWidth">84</double> <object class="NSTableHeaderCell" key="NSHeaderCell"> <int key="NSCellFlags">75628096</int> <int key="NSCellFlags2">2048</int> @@ -1492,7 +1493,7 @@ <string key="NSIdentifier">null</string> <double key="NSWidth">57</double> <double key="NSMinWidth">14</double> - <double key="NSMaxWidth">57</double> + <double key="NSMaxWidth">78</double> <object class="NSTableHeaderCell" key="NSHeaderCell"> <int key="NSCellFlags">75628096</int> <int key="NSCellFlags2">2048</int> @@ -1525,7 +1526,7 @@ <string key="NSIdentifier">Key</string> <double key="NSWidth">26</double> <double key="NSMinWidth">26</double> - <double key="NSMaxWidth">26</double> + <double key="NSMaxWidth">60</double> <object class="NSTableHeaderCell" key="NSHeaderCell"> <int key="NSCellFlags">75628096</int> <int key="NSCellFlags2">2048</int> @@ -1549,7 +1550,7 @@ </object> <object class="NSTableColumn" id="788521496"> <string key="NSIdentifier">default</string> - <double key="NSWidth">45</double> + <double key="NSWidth">46</double> <double key="NSMinWidth">34</double> <double key="NSMaxWidth">1000</double> <object class="NSTableHeaderCell" key="NSHeaderCell"> @@ -1789,7 +1790,7 @@ <int key="NSTableViewDraggingDestinationStyle">0</int> </object> </object> - <string key="NSFrame">{{1, 17}, {694, 289}}</string> + <string key="NSFrame">{{1, 17}, {694, 288}}</string> <reference key="NSSuperview" ref="22340145"/> <reference key="NSNextKeyView" ref="715508012"/> <reference key="NSDocView" ref="715508012"/> @@ -1832,7 +1833,7 @@ </object> <reference ref="868771861"/> </object> - <string key="NSFrame">{{-1, 22}, {696, 307}}</string> + <string key="NSFrame">{{-1, 22}, {696, 306}}</string> <reference key="NSSuperview" ref="220777809"/> <reference key="NSNextKeyView" ref="16936123"/> <int key="NSsFlags">562</int> @@ -1996,7 +1997,7 @@ </object> </object> </object> - <string key="NSFrameSize">{695, 329}</string> + <string key="NSFrameSize">{695, 328}</string> <reference key="NSSuperview" ref="628830973"/> <string key="NSClassName">NSView</string> </object> @@ -2525,17 +2526,18 @@ <bool key="NSEditable">YES</bool> </object> </object> - <string key="NSFrame">{{0, 330}, {695, 201}}</string> + <string key="NSFrame">{{0, 329}, {695, 201}}</string> <reference key="NSSuperview" ref="628830973"/> <string key="NSClassName">NSView</string> </object> </object> - <string key="NSFrame">{{7, 10}, {695, 531}}</string> + <string key="NSFrame">{{7, 10}, {695, 530}}</string> <reference key="NSSuperview" ref="461236772"/> <int key="NSDividerStyle">2</int> </object> </object> <string key="NSFrame">{{10, 7}, {706, 544}}</string> + <reference key="NSSuperview" ref="714795046"/> </object> <string key="NSLabel">Structure</string> <reference key="NSColor" ref="62854682"/> @@ -2544,7 +2546,7 @@ <object class="NSTabViewItem" id="624106058"> <string key="NSIdentifier">content</string> <object class="NSView" key="NSView" id="1013108064"> - <reference key="NSNextResponder" ref="714795046"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -2561,7 +2563,7 @@ <object class="NSTableView" id="22576329"> <reference key="NSNextResponder" ref="545438501"/> <int key="NSvFlags">4352</int> - <string key="NSFrameSize">{694, 450}</string> + <string key="NSFrameSize">{694, 454}</string> <reference key="NSSuperview" ref="545438501"/> <bool key="NSEnabled">YES</bool> <object class="NSTableHeaderView" key="NSHeaderView" id="457166030"> @@ -2621,7 +2623,7 @@ <int key="NSTableViewDraggingDestinationStyle">0</int> </object> </object> - <string key="NSFrame">{{1, 17}, {694, 450}}</string> + <string key="NSFrame">{{1, 17}, {694, 454}}</string> <reference key="NSSuperview" ref="33038697"/> <reference key="NSNextKeyView" ref="22576329"/> <reference key="NSDocView" ref="22576329"/> @@ -2664,7 +2666,7 @@ </object> <reference ref="561547869"/> </object> - <string key="NSFrame">{{6, 33}, {696, 468}}</string> + <string key="NSFrame">{{6, 33}, {696, 472}}</string> <reference key="NSSuperview" ref="1013108064"/> <reference key="NSNextKeyView" ref="545438501"/> <int key="NSsFlags">562</int> @@ -2937,30 +2939,6 @@ <int key="NSPeriodicInterval">75</int> </object> </object> - <object class="NSButton" id="873734510"> - <reference key="NSNextResponder" ref="1013108064"/> - <int key="NSvFlags">265</int> - <string key="NSFrame">{{734, 507}, {160, 16}}</string> - <reference key="NSSuperview" ref="1013108064"/> - <bool key="NSEnabled">YES</bool> - <object class="NSButtonCell" key="NSCell" id="212274460"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">134479872</int> - <string key="NSContents">ShowFilterTable_Dummy_Button</string> - <object class="NSFont" key="NSSupport"> - <string key="NSName">LucidaGrande</string> - <double key="NSSize">9</double> - <int key="NSfFlags">3614</int> - </object> - <reference key="NSControlView" ref="873734510"/> - <int key="NSButtonFlags">-2038284033</int> - <int key="NSButtonFlags2">268435585</int> - <string key="NSAlternateContents"/> - <string key="NSKeyEquivalent">f</string> - <int key="NSPeriodicDelay">200</int> - <int key="NSPeriodicInterval">25</int> - </object> - </object> <object class="NSSplitView" id="262085420"> <reference key="NSNextResponder" ref="1013108064"/> <int key="NSvFlags">266</int> @@ -3307,7 +3285,6 @@ </object> </object> <string key="NSFrame">{{10, 7}, {706, 544}}</string> - <reference key="NSSuperview" ref="714795046"/> </object> <string key="NSLabel">Content</string> <reference key="NSColor" ref="62854682"/> @@ -3507,7 +3484,7 @@ <object class="NSTextView" id="793890647"> <reference key="NSNextResponder" ref="888807510"/> <int key="NSvFlags">6418</int> - <string key="NSFrameSize">{694, 14}</string> + <string key="NSFrame">{{0, -1}, {694, 14}}</string> <reference key="NSSuperview" ref="888807510"/> <object class="NSTextContainer" key="NSTextContainer" id="845974686"> <object class="NSLayoutManager" key="NSLayoutManager"> @@ -3566,7 +3543,7 @@ <nil key="NSDelegate"/> </object> </object> - <string key="NSFrame">{{1, 1}, {694, 140}}</string> + <string key="NSFrame">{{1, 1}, {694, 139}}</string> <reference key="NSSuperview" ref="274248101"/> <reference key="NSNextKeyView" ref="793890647"/> <reference key="NSDocView" ref="793890647"/> @@ -3598,7 +3575,7 @@ <double key="NSPercent">0.94565218687057495</double> </object> </object> - <string key="NSFrameSize">{696, 142}</string> + <string key="NSFrameSize">{696, 141}</string> <reference key="NSSuperview" ref="815597998"/> <reference key="NSNextKeyView" ref="888807510"/> <int key="NSsFlags">530</int> @@ -3607,7 +3584,7 @@ <reference key="NSContentView" ref="888807510"/> </object> </object> - <string key="NSFrameSize">{696, 142}</string> + <string key="NSFrameSize">{696, 141}</string> <reference key="NSSuperview" ref="727658473"/> <string key="NSClassName">NSView</string> </object> @@ -4383,12 +4360,12 @@ <bool key="NSEditable">YES</bool> </object> </object> - <string key="NSFrame">{{0, 151}, {696, 244}}</string> + <string key="NSFrame">{{0, 150}, {696, 244}}</string> <reference key="NSSuperview" ref="727658473"/> <string key="NSClassName">NSView</string> </object> </object> - <string key="NSFrameSize">{696, 395}</string> + <string key="NSFrameSize">{696, 394}</string> <reference key="NSSuperview" ref="940311190"/> </object> </object> @@ -4414,7 +4391,7 @@ <object class="NSTextView" id="714539623"> <reference key="NSNextResponder" ref="572051963"/> <int key="NSvFlags">2322</int> - <string key="NSFrameSize">{887, 13}</string> + <string key="NSFrameSize">{887, 14}</string> <reference key="NSSuperview" ref="572051963"/> <object class="NSTextContainer" key="NSTextContainer" id="322143189"> <object class="NSLayoutManager" key="NSLayoutManager"> @@ -4684,7 +4661,7 @@ <object class="NSTextView" id="69074373"> <reference key="NSNextResponder" ref="78677381"/> <int key="NSvFlags">2322</int> - <string key="NSFrameSize">{541, 14}</string> + <string key="NSFrame">{{0, 1}, {541, 14}}</string> <reference key="NSSuperview" ref="78677381"/> <object class="NSTextContainer" key="NSTextContainer" id="708157837"> <object class="NSLayoutManager" key="NSLayoutManager"> @@ -4745,7 +4722,7 @@ <nil key="NSDelegate"/> </object> </object> - <string key="NSFrame">{{1, 1}, {541, 69}}</string> + <string key="NSFrame">{{1, 1}, {541, 70}}</string> <reference key="NSSuperview" ref="709531668"/> <reference key="NSNextKeyView" ref="69074373"/> <reference key="NSDocView" ref="69074373"/> @@ -4756,7 +4733,7 @@ <object class="NSScroller" id="892376800"> <reference key="NSNextResponder" ref="709531668"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{542, 1}, {11, 69}}</string> + <string key="NSFrame">{{542, 1}, {11, 70}}</string> <reference key="NSSuperview" ref="709531668"/> <int key="NSsFlags">256</int> <reference key="NSTarget" ref="709531668"/> @@ -4776,7 +4753,7 @@ <double key="NSPercent">0.94565218687057495</double> </object> </object> - <string key="NSFrame">{{109.248, 0}, {554, 71}}</string> + <string key="NSFrame">{{109, 0}, {554, 72}}</string> <reference key="NSSuperview" ref="259390764"/> <reference key="NSNextKeyView" ref="78677381"/> <int key="NSsFlags">18</int> @@ -4787,7 +4764,7 @@ <object class="NSTextField" id="231853805"> <reference key="NSNextResponder" ref="259390764"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{4, 57}, {100.248, 14}}</string> + <string key="NSFrame">{{4, 58}, {100, 14}}</string> <reference key="NSSuperview" ref="259390764"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="647656972"> @@ -4801,7 +4778,7 @@ </object> </object> </object> - <string key="NSFrameSize">{663, 71}</string> + <string key="NSFrameSize">{663, 72}</string> <reference key="NSSuperview" ref="501779393"/> <string key="NSClassName">NSView</string> </object> @@ -4823,7 +4800,7 @@ <object class="NSTextView" id="421486962"> <reference key="NSNextResponder" ref="637054939"/> <int key="NSvFlags">2322</int> - <string key="NSFrameSize">{541, 14}</string> + <string key="NSFrame">{{0, 1}, {541, 14}}</string> <reference key="NSSuperview" ref="637054939"/> <object class="NSTextContainer" key="NSTextContainer" id="194867362"> <object class="NSLayoutManager" key="NSLayoutManager"> @@ -4884,7 +4861,7 @@ <nil key="NSDelegate"/> </object> </object> - <string key="NSFrame">{{1, 1}, {541, 196}}</string> + <string key="NSFrame">{{1, 1}, {541, 197}}</string> <reference key="NSSuperview" ref="449863508"/> <reference key="NSNextKeyView" ref="421486962"/> <reference key="NSDocView" ref="421486962"/> @@ -4895,7 +4872,7 @@ <object class="NSScroller" id="633929130"> <reference key="NSNextResponder" ref="449863508"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{542, 1}, {11, 196}}</string> + <string key="NSFrame">{{542, 1}, {11, 197}}</string> <reference key="NSSuperview" ref="449863508"/> <int key="NSsFlags">256</int> <reference key="NSTarget" ref="449863508"/> @@ -4914,7 +4891,7 @@ <double key="NSPercent">0.94565218687057495</double> </object> </object> - <string key="NSFrame">{{109, 0}, {554, 198}}</string> + <string key="NSFrame">{{109, 0}, {554, 199}}</string> <reference key="NSSuperview" ref="983998494"/> <reference key="NSNextKeyView" ref="637054939"/> <int key="NSsFlags">18</int> @@ -4925,7 +4902,7 @@ <object class="NSTextField" id="855588490"> <reference key="NSNextResponder" ref="983998494"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{3, 184}, {101, 14}}</string> + <string key="NSFrame">{{3, 185}, {101, 14}}</string> <reference key="NSSuperview" ref="983998494"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="625199500"> @@ -4939,19 +4916,19 @@ </object> </object> </object> - <string key="NSFrame">{{0, 80}, {663, 198}}</string> + <string key="NSFrame">{{0, 81}, {663, 199}}</string> <reference key="NSSuperview" ref="501779393"/> <string key="NSClassName">NSView</string> </object> </object> - <string key="NSFrame">{{12, 30}, {663, 278}}</string> + <string key="NSFrame">{{12, 30}, {663, 280}}</string> <reference key="NSSuperview" ref="730602982"/> <string key="NSAutosaveName">TableInfoSplitter</string> </object> <object class="NSTextField" id="459419226"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{22, 499}, {91, 14}}</string> + <string key="NSFrame">{{22, 501}, {91, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="643775960"> @@ -4967,7 +4944,7 @@ <object class="NSTextField" id="326368890"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">266</int> - <string key="NSFrame">{{369, 473}, {305, 14}}</string> + <string key="NSFrame">{{369, 475}, {305, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="705814774"> @@ -4983,7 +4960,7 @@ <object class="NSTextField" id="644870593"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">266</int> - <string key="NSFrame">{{369, 498}, {305, 14}}</string> + <string key="NSFrame">{{369, 500}, {305, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="51220700"> @@ -4999,7 +4976,7 @@ <object class="NSTextField" id="159410215"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{23, 473}, {90, 14}}</string> + <string key="NSFrame">{{23, 475}, {90, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="47286035"> @@ -5015,7 +4992,7 @@ <object class="NSTextField" id="1032584944"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{23, 448}, {91, 14}}</string> + <string key="NSFrame">{{23, 450}, {91, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="234890062"> @@ -5031,7 +5008,7 @@ <object class="NSPopUpButton" id="708355647"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{115, 494}, {161, 22}}</string> + <string key="NSFrame">{{115, 496}, {161, 22}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSPopUpButtonCell" key="NSCell" id="338551660"> @@ -5063,7 +5040,7 @@ <object class="NSPopUpButton" id="1051713811"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{115, 469}, {161, 22}}</string> + <string key="NSFrame">{{115, 471}, {161, 22}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSPopUpButtonCell" key="NSCell" id="790667540"> @@ -5095,7 +5072,7 @@ <object class="NSPopUpButton" id="801484946"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{115, 444}, {161, 22}}</string> + <string key="NSFrame">{{115, 446}, {161, 22}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSPopUpButtonCell" key="NSCell" id="351231451"> @@ -5127,7 +5104,7 @@ <object class="NSBox" id="83205768"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">10</int> - <string key="NSFrame">{{25, 425}, {650, 5}}</string> + <string key="NSFrame">{{25, 427}, {650, 5}}</string> <reference key="NSSuperview" ref="730602982"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> @@ -5149,7 +5126,7 @@ <object class="NSBox" id="349710554"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">10</int> - <string key="NSFrame">{{24, 314}, {650, 5}}</string> + <string key="NSFrame">{{24, 316}, {650, 5}}</string> <reference key="NSSuperview" ref="730602982"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> @@ -5171,7 +5148,7 @@ <object class="NSTextField" id="412060569"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">270</int> - <string key="NSFrame">{{152, 398}, {152, 14}}</string> + <string key="NSFrame">{{152, 400}, {152, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="632489290"> @@ -5187,7 +5164,7 @@ <object class="NSTextField" id="795265894"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">270</int> - <string key="NSFrame">{{152, 376}, {152, 14}}</string> + <string key="NSFrame">{{152, 378}, {152, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="246518824"> @@ -5203,7 +5180,7 @@ <object class="NSTextField" id="747426446"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">270</int> - <string key="NSFrame">{{152, 354}, {152, 14}}</string> + <string key="NSFrame">{{152, 356}, {152, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="738092126"> @@ -5219,7 +5196,7 @@ <object class="NSTextField" id="140378338"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{152, 332}, {152, 14}}</string> + <string key="NSFrame">{{152, 334}, {152, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="71975986"> @@ -5305,7 +5282,7 @@ <object class="NSTextField" id="803209800"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">270</int> - <string key="NSFrame">{{418, 398}, {256, 14}}</string> + <string key="NSFrame">{{418, 400}, {256, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="1035416348"> @@ -5321,7 +5298,7 @@ <object class="NSTextField" id="6005445"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">270</int> - <string key="NSFrame">{{418, 376}, {256, 14}}</string> + <string key="NSFrame">{{418, 378}, {256, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="502320319"> @@ -5337,7 +5314,7 @@ <object class="NSTextField" id="531020960"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">266</int> - <string key="NSFrame">{{418, 354}, {256, 14}}</string> + <string key="NSFrame">{{418, 356}, {256, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="686395978"> @@ -5353,7 +5330,7 @@ <object class="NSTextField" id="35887466"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">266</int> - <string key="NSFrame">{{418, 332}, {256, 14}}</string> + <string key="NSFrame">{{418, 334}, {256, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="314352793"> @@ -5369,7 +5346,7 @@ <object class="NSPopUpButton" id="1066106318"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{26, 330}, {20, 20}}</string> + <string key="NSFrame">{{26, 332}, {20, 20}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSPopUpButtonCell" key="NSCell" id="342819810"> @@ -5442,7 +5419,7 @@ <object class="NSTextField" id="587008251"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{53, 332}, {97, 14}}</string> + <string key="NSFrame">{{53, 334}, {97, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="679833695"> @@ -5458,7 +5435,7 @@ <object class="NSTextField" id="986860589"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{21, 354}, {129, 14}}</string> + <string key="NSFrame">{{21, 356}, {129, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="472283040"> @@ -5474,7 +5451,7 @@ <object class="NSTextField" id="656261728"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{21, 376}, {129, 14}}</string> + <string key="NSFrame">{{21, 378}, {129, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="1466046"> @@ -5490,7 +5467,7 @@ <object class="NSTextField" id="196361793"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{21, 398}, {129, 14}}</string> + <string key="NSFrame">{{21, 400}, {129, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="995017127"> @@ -5506,7 +5483,7 @@ <object class="NSTextField" id="307672983"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{304, 398}, {113, 14}}</string> + <string key="NSFrame">{{304, 400}, {113, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="428052689"> @@ -5522,7 +5499,7 @@ <object class="NSTextField" id="1047204509"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{286, 498}, {82, 14}}</string> + <string key="NSFrame">{{286, 500}, {82, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="328213476"> @@ -5538,7 +5515,7 @@ <object class="NSTextField" id="69053511"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{286, 473}, {82, 14}}</string> + <string key="NSFrame">{{286, 475}, {82, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="700311928"> @@ -5554,7 +5531,7 @@ <object class="NSTextField" id="988950867"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{304, 376}, {113, 14}}</string> + <string key="NSFrame">{{304, 378}, {113, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="103576616"> @@ -5570,7 +5547,7 @@ <object class="NSTextField" id="333563212"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{304, 354}, {113, 14}}</string> + <string key="NSFrame">{{304, 356}, {113, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="958047642"> @@ -5586,7 +5563,7 @@ <object class="NSTextField" id="993399156"> <reference key="NSNextResponder" ref="730602982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{304, 332}, {113, 14}}</string> + <string key="NSFrame">{{304, 334}, {113, 14}}</string> <reference key="NSSuperview" ref="730602982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="662360258"> @@ -5626,7 +5603,7 @@ <object class="NSTableView" id="952375340"> <reference key="NSNextResponder" ref="705580858"/> <int key="NSvFlags">4352</int> - <string key="NSFrameSize">{694, 456}</string> + <string key="NSFrameSize">{694, 454}</string> <reference key="NSSuperview" ref="705580858"/> <bool key="NSEnabled">YES</bool> <object class="NSTableHeaderView" key="NSHeaderView" id="370758200"> @@ -5825,7 +5802,7 @@ <int key="NSTableViewDraggingDestinationStyle">0</int> </object> </object> - <string key="NSFrame">{{1, 17}, {694, 456}}</string> + <string key="NSFrame">{{1, 17}, {694, 454}}</string> <reference key="NSSuperview" ref="717203719"/> <reference key="NSNextKeyView" ref="952375340"/> <reference key="NSDocView" ref="952375340"/> @@ -5867,7 +5844,7 @@ </object> <reference ref="793765259"/> </object> - <string key="NSFrame">{{6, 33}, {696, 474}}</string> + <string key="NSFrame">{{6, 33}, {696, 472}}</string> <reference key="NSSuperview" ref="49633996"/> <reference key="NSNextKeyView" ref="705580858"/> <int key="NSsFlags">562</int> @@ -6435,14 +6412,14 @@ <reference key="NSTabView" ref="714795046"/> </object> </object> - <reference key="NSSelectedTabViewItem" ref="624106058"/> + <reference key="NSSelectedTabViewItem" ref="831053945"/> <reference key="NSFont" ref="26"/> <int key="NSTvFlags">134217731</int> <bool key="NSAllowTruncatedLabels">YES</bool> <bool key="NSDrawsBackground">YES</bool> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="1013108064"/> + <reference ref="461236772"/> </object> </object> </object> @@ -6506,15 +6483,15 @@ <object class="NSWindowTemplate" id="554105051"> <int key="NSWindowStyleMask">1</int> <int key="NSWindowBacking">2</int> - <string key="NSWindowRect">{{343, 483}, {292, 112}}</string> + <string key="NSWindowRect">{{343, 483}, {311, 112}}</string> <int key="NSWTFlags">1886912512</int> <string key="NSWindowTitle">New Database</string> <string key="NSWindowClass">NSWindow</string> <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{292, 112}</string> - <string key="NSWindowContentMinSize">{292, 112}</string> + <string key="NSWindowContentMaxSize">{311, 112}</string> + <string key="NSWindowContentMinSize">{311, 112}</string> <object class="NSView" key="NSWindowView" id="70075497"> <nil key="NSNextResponder"/> <int key="NSvFlags">256</int> @@ -6523,7 +6500,7 @@ <object class="NSTextField" id="823440790"> <reference key="NSNextResponder" ref="70075497"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{36, 75}, {91, 14}}</string> + <string key="NSFrame">{{5, 75}, {134, 14}}</string> <reference key="NSSuperview" ref="70075497"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="45988560"> @@ -6539,7 +6516,7 @@ <object class="NSTextField" id="602251216"> <reference key="NSNextResponder" ref="70075497"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{17, 50}, {110, 14}}</string> + <string key="NSFrame">{{5, 50}, {134, 14}}</string> <reference key="NSSuperview" ref="70075497"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="410467805"> @@ -6555,7 +6532,7 @@ <object class="NSTextField" id="839031135"> <reference key="NSNextResponder" ref="70075497"/> <int key="NSvFlags">258</int> - <string key="NSFrame">{{135, 74}, {137, 18}}</string> + <string key="NSFrame">{{146, 74}, {145, 18}}</string> <reference key="NSSuperview" ref="70075497"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="212969926"> @@ -6577,7 +6554,7 @@ <object class="NSButton" id="875952722"> <reference key="NSNextResponder" ref="70075497"/> <int key="NSvFlags">259</int> - <string key="NSFrame">{{207, 13}, {70, 28}}</string> + <string key="NSFrame">{{215, 13}, {80, 28}}</string> <reference key="NSSuperview" ref="70075497"/> <int key="NSTag">1</int> <bool key="NSEnabled">YES</bool> @@ -6604,7 +6581,7 @@ <object class="NSButton" id="681100483"> <reference key="NSNextResponder" ref="70075497"/> <int key="NSvFlags">259</int> - <string key="NSFrame">{{139, 13}, {70, 28}}</string> + <string key="NSFrame">{{131, 13}, {86, 28}}</string> <reference key="NSSuperview" ref="70075497"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="994559297"> @@ -6625,7 +6602,7 @@ <object class="NSPopUpButton" id="437431578"> <reference key="NSNextResponder" ref="70075497"/> <int key="NSvFlags">258</int> - <string key="NSFrame">{{132, 45}, {143, 22}}</string> + <string key="NSFrame">{{143, 45}, {151, 22}}</string> <reference key="NSSuperview" ref="70075497"/> <bool key="NSEnabled">YES</bool> <object class="NSPopUpButtonCell" key="NSCell" id="1000126742"> @@ -6658,11 +6635,11 @@ </object> </object> </object> - <string key="NSFrameSize">{292, 112}</string> + <string key="NSFrameSize">{311, 112}</string> </object> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> - <string key="NSMinSize">{292, 134}</string> - <string key="NSMaxSize">{292, 134}</string> + <string key="NSMinSize">{311, 134}</string> + <string key="NSMaxSize">{311, 134}</string> </object> <object class="NSWindowTemplate" id="1003190366"> <int key="NSWindowStyleMask">1</int> @@ -7223,7 +7200,7 @@ <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{213, 107}</string> <object class="NSView" key="NSWindowView" id="234287744"> <nil key="NSNextResponder"/> @@ -7296,6 +7273,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <reference key="NSOnImage" ref="450876295"/> <reference key="NSMixedImage" ref="414351669"/> <string key="NSAction">_popUpItemAction:</string> + <int key="NSTag">1</int> <reference key="NSTarget" ref="1007861376"/> </object> <object class="NSMenuItem" id="597414827"> @@ -7307,17 +7285,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <reference key="NSOnImage" ref="450876295"/> <reference key="NSMixedImage" ref="414351669"/> <string key="NSAction">_popUpItemAction:</string> - <reference key="NSTarget" ref="1007861376"/> - </object> - <object class="NSMenuItem" id="112475542"> - <reference key="NSMenu" ref="392618957"/> - <string key="NSTitle">FULLTEXT</string> - <string key="NSKeyEquiv"/> - <int key="NSKeyEquivModMask">1048576</int> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="450876295"/> - <reference key="NSMixedImage" ref="414351669"/> - <string key="NSAction">_popUpItemAction:</string> + <int key="NSTag">2</int> <reference key="NSTarget" ref="1007861376"/> </object> </object> @@ -7377,17 +7345,17 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> <string key="NSMinSize">{213, 129}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSWindowTemplate" id="423199625"> <int key="NSWindowStyleMask">7</int> <int key="NSWindowBacking">2</int> - <string key="NSWindowRect">{{131, 407}, {255, 95}}</string> + <string key="NSWindowRect">{{131, 407}, {303, 95}}</string> <int key="NSWTFlags">1954022400</int> <string key="NSWindowTitle">Reset Auto Increment</string> <string key="NSWindowClass">NSWindow</string> <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{255, 95}</string> <object class="NSView" key="NSWindowView" id="748618982"> <nil key="NSNextResponder"/> @@ -7397,7 +7365,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSButton" id="681113496"> <reference key="NSNextResponder" ref="748618982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{175, 13}, {65, 28}}</string> + <string key="NSFrame">{{198, 13}, {90, 28}}</string> <reference key="NSSuperview" ref="748618982"/> <int key="NSTag">1</int> <bool key="NSEnabled">YES</bool> @@ -7418,7 +7386,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSButton" id="429163241"> <reference key="NSNextResponder" ref="748618982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{112, 13}, {65, 28}}</string> + <string key="NSFrame">{{110, 13}, {90, 28}}</string> <reference key="NSSuperview" ref="748618982"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="30569298"> @@ -7438,12 +7406,12 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSTextField" id="46466471"> <reference key="NSNextResponder" ref="748618982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{17, 58}, {153, 14}}</string> + <string key="NSFrame">{{17, 58}, {201, 14}}</string> <reference key="NSSuperview" ref="748618982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="356272085"> <int key="NSCellFlags">68288064</int> - <int key="NSCellFlags2">272761856</int> + <int key="NSCellFlags2">71435264</int> <string key="NSContents">Reset AUTO_INCREMENT to:</string> <reference key="NSSupport" ref="26"/> <reference key="NSControlView" ref="46466471"/> @@ -7454,7 +7422,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSTextField" id="660092075"> <reference key="NSNextResponder" ref="748618982"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{175, 55}, {60, 19}}</string> + <string key="NSFrame">{{223, 55}, {60, 19}}</string> <reference key="NSSuperview" ref="748618982"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="847181652"> @@ -7526,7 +7494,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSBox" id="1000852667"> <reference key="NSNextResponder" ref="748618982"/> <int key="NSvFlags">12</int> - <string key="NSFrame">{{-3, 92}, {264, 5}}</string> + <string key="NSFrame">{{-3, 92}, {306, 5}}</string> <reference key="NSSuperview" ref="748618982"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> @@ -7546,11 +7514,11 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <bool key="NSTransparent">NO</bool> </object> </object> - <string key="NSFrameSize">{255, 95}</string> + <string key="NSFrameSize">{303, 95}</string> </object> <string key="NSScreenRect">{{0, 0}, {1280, 1002}}</string> <string key="NSMinSize">{255, 117}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSWindowTemplate" id="787219800"> <int key="NSWindowStyleMask">1</int> @@ -7560,7 +7528,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="NSWindowTitle">New Relation</string> <string key="NSWindowClass">NSPanel</string> <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <object class="NSView" key="NSWindowView" id="842408319"> <nil key="NSNextResponder"/> <int key="NSvFlags">256</int> @@ -8161,7 +8129,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="NSFrameSize">{302, 307}</string> </object> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSWindowTemplate" id="437271354"> <int key="NSWindowStyleMask">9</int> @@ -8171,7 +8139,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="NSWindowTitle">New Trigger</string> <string key="NSWindowClass">NSPanel</string> <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{360, 348}</string> <object class="NSView" key="NSWindowView" id="729080358"> <nil key="NSNextResponder"/> @@ -8578,7 +8546,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> <string key="NSMinSize">{360, 370}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSWindowTemplate" id="1066802919"> <int key="NSWindowStyleMask">3</int> @@ -8590,7 +8558,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{213, 50}</string> <object class="NSView" key="NSWindowView" id="525490268"> <nil key="NSNextResponder"/> @@ -8710,7 +8678,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string> <string key="NSMinSize">{213, 72}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSWindowTemplate" id="553728448"> <int key="NSWindowStyleMask">9</int> @@ -8722,7 +8690,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{213, 107}</string> <object class="NSView" key="NSWindowView" id="1052076676"> <nil key="NSNextResponder"/> @@ -8857,7 +8825,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> <string key="NSMinSize">{213, 129}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSWindowTemplate" id="828950706"> <int key="NSWindowStyleMask">15</int> @@ -8869,7 +8837,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{350, 200}</string> <object class="NSView" key="NSWindowView" id="749598685"> <nil key="NSNextResponder"/> @@ -9092,7 +9060,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> <string key="NSMinSize">{350, 222}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSFrameAutosaveName">SPCreateSyntaxSheet</string> </object> <object class="NSWindowTemplate" id="466147946"> @@ -9105,7 +9073,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{213, 107}</string> <object class="NSView" key="NSWindowView" id="860968037"> <nil key="NSNextResponder"/> @@ -9275,7 +9243,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> <string key="NSMinSize">{213, 129}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSWindowTemplate" id="78186995"> <int key="NSWindowStyleMask">31</int> @@ -9285,7 +9253,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="NSWindowTitle">MySQL Help</string> <string key="NSWindowClass">NSPanel</string> <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{351, 120}</string> <object class="NSView" key="NSWindowView" id="539508428"> <nil key="NSNextResponder"/> @@ -9683,7 +9651,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1280, 1002}}</string> <string key="NSMinSize">{351, 136}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSFrameAutosaveName">MYSQL_HELP_WINDOW</string> </object> <object class="NSWindowTemplate" id="633448481"> @@ -9694,7 +9662,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="NSWindowTitle">Filter</string> <string key="NSWindowClass">NSPanel</string> <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{380, 170}</string> <object class="NSView" key="NSWindowView" id="257361103"> <nil key="NSNextResponder"/> @@ -10336,7 +10304,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string> <string key="NSMinSize">{380, 192}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSFrameAutosaveName">SPTableFilterPanel</string> </object> <object class="NSWindowTemplate" id="923391973"> @@ -10836,7 +10804,7 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string key="NSWindowTitle">Secure Text Input Sheet</string> <string key="NSWindowClass">NSPanel</string> <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <object class="NSView" key="NSWindowView" id="978976687"> <nil key="NSNextResponder"/> <int key="NSvFlags">256</int> @@ -10940,10 +10908,10 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string key="NSFrameSize">{338, 150}</string> </object> <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSCustomView" id="884983195"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder"/> <int key="NSvFlags">301</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -11069,6 +11037,7 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> </object> </object> <string key="NSFrameSize">{269, 32}</string> + <reference key="NSSuperview"/> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="730777562"> @@ -11123,7 +11092,7 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string key="NSColorName">disabledControlTextColor</string> <object class="NSColor" key="NSColor"> <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC4zMzMzMzMzMzMzAA</bytes> + <bytes key="NSWhite">MC4zMzMzMzMzNDMzAA</bytes> </object> </object> </object> @@ -16272,14 +16241,6 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <int key="connectionID">7581</int> </object> <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">showFilterTable:</string> - <reference key="source" ref="392169872"/> - <reference key="destination" ref="873734510"/> - </object> - <int key="connectionID">7586</int> - </object> - <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> <string key="label">filterTableLiveSearchCheckbox</string> <reference key="source" ref="392169872"/> @@ -16575,6 +16536,22 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> </object> <int key="connectionID">7780</int> </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">activitiesScrollView</string> + <reference key="source" ref="427689665"/> + <reference key="destination" ref="561874764"/> + </object> + <int key="connectionID">7781</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">tableInfoScrollView</string> + <reference key="source" ref="427689665"/> + <reference key="destination" ref="298226231"/> + </object> + <int key="connectionID">7782</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -16774,12 +16751,12 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <reference key="object" ref="70075497"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="681100483"/> <reference ref="839031135"/> - <reference ref="823440790"/> - <reference ref="602251216"/> <reference ref="437431578"/> <reference ref="875952722"/> + <reference ref="823440790"/> + <reference ref="602251216"/> + <reference ref="681100483"/> </object> <reference key="parent" ref="554105051"/> </object> @@ -17021,7 +16998,6 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <reference key="object" ref="392618957"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="112475542"/> <reference ref="597414827"/> <reference ref="349617515"/> <reference ref="104344125"/> @@ -17029,11 +17005,6 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <reference key="parent" ref="1007861376"/> </object> <object class="IBObjectRecord"> - <int key="objectID">417</int> - <reference key="object" ref="112475542"/> - <reference key="parent" ref="392618957"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">416</int> <reference key="object" ref="597414827"/> <reference key="parent" ref="392618957"/> @@ -18863,11 +18834,11 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <reference key="object" ref="748618982"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="429163241"/> - <reference ref="681113496"/> <reference ref="46466471"/> - <reference ref="660092075"/> <reference ref="1000852667"/> + <reference ref="681113496"/> + <reference ref="429163241"/> + <reference ref="660092075"/> </object> <reference key="parent" ref="423199625"/> </object> @@ -20129,7 +20100,6 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <reference ref="262235013"/> <reference ref="393139604"/> <reference ref="196265983"/> - <reference ref="873734510"/> <reference ref="262085420"/> </object> <reference key="parent" ref="624106058"/> @@ -20251,20 +20221,6 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <reference key="parent" ref="1013108064"/> </object> <object class="IBObjectRecord"> - <int key="objectID">7533</int> - <reference key="object" ref="873734510"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="212274460"/> - </object> - <reference key="parent" ref="1013108064"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">7534</int> - <reference key="object" ref="212274460"/> - <reference key="parent" ref="873734510"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">5181</int> <reference key="object" ref="291648608"/> <reference key="parent" ref="196265983"/> @@ -23357,6 +23313,7 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string>3994.IBPluginDependency</string> <string>3994.WindowOrigin</string> <string>3994.editorWindowContentRectSynchronizationRect</string> + <string>3995.IBAttributePlaceholdersKey</string> <string>3995.IBPluginDependency</string> <string>3996.IBPluginDependency</string> <string>3997.IBEditorWindowLastContentRect</string> @@ -23384,12 +23341,11 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string>414.IBAttributePlaceholdersKey</string> <string>414.IBPluginDependency</string> <string>414.ImportedFromIB2</string> + <string>415.IBEditorWindowLastContentRect</string> <string>415.IBPluginDependency</string> <string>415.ImportedFromIB2</string> <string>416.IBPluginDependency</string> <string>416.ImportedFromIB2</string> - <string>417.IBPluginDependency</string> - <string>417.ImportedFromIB2</string> <string>418.IBPluginDependency</string> <string>418.ImportedFromIB2</string> <string>419.IBPluginDependency</string> @@ -23414,6 +23370,7 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string>4676.IBPluginDependency</string> <string>4677.IBPluginDependency</string> <string>4741.IBPluginDependency</string> + <string>4741.IBViewBoundsToFrameTransform</string> <string>4741.ImportedFromIB2</string> <string>4742.IBPluginDependency</string> <string>4751.IBPluginDependency</string> @@ -23704,6 +23661,7 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string>5781.IBPluginDependency</string> <string>5782.IBPluginDependency</string> <string>579.IBPluginDependency</string> + <string>579.IBViewBoundsToFrameTransform</string> <string>579.ImportedFromIB2</string> <string>5790.IBPluginDependency</string> <string>5791.IBPluginDependency</string> @@ -23724,6 +23682,7 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string>5818.IBPluginDependency</string> <string>5819.IBPluginDependency</string> <string>582.IBPluginDependency</string> + <string>582.IBViewBoundsToFrameTransform</string> <string>582.ImportedFromIB2</string> <string>5820.IBPluginDependency</string> <string>5821.IBPluginDependency</string> @@ -24391,8 +24350,6 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string>7523.IBPluginDependency</string> <string>7524.IBPluginDependency</string> <string>7525.IBPluginDependency</string> - <string>7533.IBPluginDependency</string> - <string>7534.IBPluginDependency</string> <string>7537.IBAttributePlaceholdersKey</string> <string>7537.IBPluginDependency</string> <string>7538.IBPluginDependency</string> @@ -24714,6 +24671,14 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{628, 654}</string> <string>{{284, 769}, {200, 32}}</string> + <object class="NSMutableDictionary"> + <string key="NS.key.0">ToolTip</string> + <object class="IBToolTipAttribute" key="NS.object.0"> + <string key="name">ToolTip</string> + <reference key="object" ref="359419551"/> + <string key="toolTip">Select a database to view (⇧⌘D)</string> + </object> + </object> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{{-11, 1068}, {200, 63}}</string> @@ -24722,9 +24687,9 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>SPTableTextFieldCell</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{355, 517}, {306, 122}}</string> + <string>{{346, 345}, {306, 122}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{355, 517}, {306, 122}}</string> + <string>{{346, 345}, {306, 122}}</string> <integer value="1"/> <integer value="0"/> <integer value="1"/> @@ -24748,8 +24713,7 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> </object> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <integer value="1"/> + <string>{{409, 358}, {162, 54}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -24778,6 +24742,9 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABAoAAAwngAAA</bytes> + </object> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -25124,14 +25091,14 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{710, 372}, {292, 112}}</string> + <string>{{858, 396}, {311, 112}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{710, 372}, {292, 112}}</string> + <string>{{858, 396}, {311, 112}}</string> <integer value="1"/> <integer value="1"/> <integer value="1"/> - <string>{292, 112}</string> - <string>{292, 112}</string> + <string>{311, 112}</string> + <string>{311, 112}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -25185,6 +25152,9 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABAoAAAwq4AAA</bytes> + </object> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -25205,6 +25175,9 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABDCQAAwhwAAA</bytes> + </object> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -25683,9 +25656,9 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{580, 661}, {255, 95}}</string> + <string>{{580, 661}, {303, 95}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{580, 661}, {255, 95}}</string> + <string>{{580, 661}, {303, 95}}</string> <boolean value="NO"/> <boolean value="NO"/> <boolean value="YES"/> @@ -25798,7 +25771,7 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{81, 307}, {943, 549}}</string> + <string>{{337, 207}, {943, 549}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -26154,8 +26127,6 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <object class="NSMutableDictionary"> <string key="NS.key.0">ToolTip</string> <object class="IBToolTipAttribute" key="NS.object.0"> @@ -26312,7 +26283,7 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> </object> </object> <nil key="sourceID"/> - <int key="maxID">7780</int> + <int key="maxID">7782</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -31932,6 +31903,851 @@ bGQgTmFtZQkgID0gQAoJCQkJICBMRU5HVEgoYEBgKSA+IEA</bytes> </object> </object> </object> + <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.1+"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBPartialClassDescription"> + <string key="className">SPDatabaseDocument</string> + <string key="superclassName">NSObject</string> + <object class="NSMutableDictionary" key="actions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>addConnectionToFavorites:</string> + <string>addDatabase:</string> + <string>analyzeTable:</string> + <string>backForwardInHistory:</string> + <string>cancelTask:</string> + <string>checkTable:</string> + <string>checksumTable:</string> + <string>chooseDatabase:</string> + <string>chooseEncoding:</string> + <string>closePanelSheet:</string> + <string>closePasswordSheet:</string> + <string>closeSheet:</string> + <string>copyChecksumFromSheet:</string> + <string>copyCreateTableSyntax:</string> + <string>copyCreateTableSyntaxFromSheet:</string> + <string>copyDatabase:</string> + <string>export:</string> + <string>exportSelectedTablesAs:</string> + <string>flushPrivileges:</string> + <string>flushTable:</string> + <string>focusOnTableContentFilter:</string> + <string>focusOnTableListFilter:</string> + <string>import:</string> + <string>importFromClipboard:</string> + <string>openCurrentConnectionInNewWindow:</string> + <string>openDatabaseInNewTab:</string> + <string>optimizeTable:</string> + <string>refreshTables:</string> + <string>removeDatabase:</string> + <string>renameDatabase:</string> + <string>repairTable:</string> + <string>saveConnectionSheet:</string> + <string>saveCreateSyntax:</string> + <string>setDatabases:</string> + <string>showConsole:</string> + <string>showCreateTableSyntax:</string> + <string>showMySQLHelp:</string> + <string>showNavigator:</string> + <string>showServerProcesses:</string> + <string>showServerVariables:</string> + <string>showUserManager:</string> + <string>toggleNavigator:</string> + <string>updateWindowTitle:</string> + <string>validateSaveConnectionAccessory:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="NSMutableDictionary" key="actionInfosByName"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>addConnectionToFavorites:</string> + <string>addDatabase:</string> + <string>analyzeTable:</string> + <string>backForwardInHistory:</string> + <string>cancelTask:</string> + <string>checkTable:</string> + <string>checksumTable:</string> + <string>chooseDatabase:</string> + <string>chooseEncoding:</string> + <string>closePanelSheet:</string> + <string>closePasswordSheet:</string> + <string>closeSheet:</string> + <string>copyChecksumFromSheet:</string> + <string>copyCreateTableSyntax:</string> + <string>copyCreateTableSyntaxFromSheet:</string> + <string>copyDatabase:</string> + <string>export:</string> + <string>exportSelectedTablesAs:</string> + <string>flushPrivileges:</string> + <string>flushTable:</string> + <string>focusOnTableContentFilter:</string> + <string>focusOnTableListFilter:</string> + <string>import:</string> + <string>importFromClipboard:</string> + <string>openCurrentConnectionInNewWindow:</string> + <string>openDatabaseInNewTab:</string> + <string>optimizeTable:</string> + <string>refreshTables:</string> + <string>removeDatabase:</string> + <string>renameDatabase:</string> + <string>repairTable:</string> + <string>saveConnectionSheet:</string> + <string>saveCreateSyntax:</string> + <string>setDatabases:</string> + <string>showConsole:</string> + <string>showCreateTableSyntax:</string> + <string>showMySQLHelp:</string> + <string>showNavigator:</string> + <string>showServerProcesses:</string> + <string>showServerVariables:</string> + <string>showUserManager:</string> + <string>toggleNavigator:</string> + <string>updateWindowTitle:</string> + <string>validateSaveConnectionAccessory:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBActionInfo"> + <string key="name">addConnectionToFavorites:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">addDatabase:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">analyzeTable:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">backForwardInHistory:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">cancelTask:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">checkTable:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">checksumTable:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">chooseDatabase:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">chooseEncoding:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">closePanelSheet:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">closePasswordSheet:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">closeSheet:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">copyChecksumFromSheet:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">copyCreateTableSyntax:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">copyCreateTableSyntaxFromSheet:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">copyDatabase:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">export:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">exportSelectedTablesAs:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">flushPrivileges:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">flushTable:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">focusOnTableContentFilter:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">focusOnTableListFilter:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">import:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">importFromClipboard:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">openCurrentConnectionInNewWindow:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">openDatabaseInNewTab:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">optimizeTable:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">refreshTables:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">removeDatabase:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">renameDatabase:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">repairTable:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">saveConnectionSheet:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">saveCreateSyntax:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">setDatabases:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">showConsole:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">showCreateTableSyntax:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">showMySQLHelp:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">showNavigator:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">showServerProcesses:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">showServerVariables:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">showUserManager:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">toggleNavigator:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">updateWindowTitle:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">validateSaveConnectionAccessory:</string> + <string key="candidateClassName">id</string> + </object> + </object> + </object> + <object class="NSMutableDictionary" key="outlets"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>activitiesScrollView</string> + <string>addDatabaseButton</string> + <string>chooseDatabaseButton</string> + <string>connectionErrorDialog</string> + <string>contentViewSplitter</string> + <string>copyDatabaseButton</string> + <string>copyDatabaseDataButton</string> + <string>copyDatabaseMessageField</string> + <string>createTableSyntaxTextField</string> + <string>createTableSyntaxTextView</string> + <string>createTableSyntaxWindow</string> + <string>customQueryInstance</string> + <string>customQueryTextView</string> + <string>databaseCopyNameField</string> + <string>databaseCopySheet</string> + <string>databaseDataInstance</string> + <string>databaseEncodingButton</string> + <string>databaseNameField</string> + <string>databaseRenameNameField</string> + <string>databaseRenameSheet</string> + <string>databaseSheet</string> + <string>dbTablesTableView</string> + <string>encodingPopUp</string> + <string>exportControllerInstance</string> + <string>extendedTableInfoInstance</string> + <string>favoritesButton</string> + <string>historyControl</string> + <string>inputTextWindow</string> + <string>inputTextWindowHeader</string> + <string>inputTextWindowMessage</string> + <string>inputTextWindowSecureTextField</string> + <string>listFilterField</string> + <string>parentView</string> + <string>queryProgressBar</string> + <string>renameDatabaseButton</string> + <string>renameDatabaseMessageField</string> + <string>saveConnectionAccessory</string> + <string>saveConnectionAutoConnect</string> + <string>saveConnectionEncrypt</string> + <string>saveConnectionEncryptString</string> + <string>saveConnectionIncludeData</string> + <string>saveConnectionIncludeQuery</string> + <string>saveConnectionSavePassword</string> + <string>saveConnectionSavePasswordAlert</string> + <string>sidebarGrabber</string> + <string>spHistoryControllerInstance</string> + <string>statusTableAccessoryView</string> + <string>statusTableCopyChecksum</string> + <string>statusTableView</string> + <string>statusValues</string> + <string>tableContentInstance</string> + <string>tableDataInstance</string> + <string>tableDumpInstance</string> + <string>tableInfoCollapseButton</string> + <string>tableInfoScrollView</string> + <string>tableInfoTable</string> + <string>tableListSplitter</string> + <string>tableRelationsInstance</string> + <string>tableSourceInstance</string> + <string>tableTabView</string> + <string>tableTriggersInstance</string> + <string>tablesListInstance</string> + <string>taskCancelButton</string> + <string>taskCancellationCallbackObject</string> + <string>taskDescriptionText</string> + <string>taskProgressIndicator</string> + <string>taskProgressLayer</string> + <string>titleAccessoryView</string> + <string>titleImageView</string> + <string>titleStringView</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>NSScrollView</string> + <string>id</string> + <string>id</string> + <string>NSWindow</string> + <string>NSSplitView</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>NSTextField</string> + <string>NSTextView</string> + <string>NSWindow</string> + <string>id</string> + <string>NSTextView</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>NSTableView</string> + <string>NSPopUpButton</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>NSSearchField</string> + <string>NSView</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>NSSecureTextField</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>NSButton</string> + <string>NSScrollView</string> + <string>NSTableView</string> + <string>NSSplitView</string> + <string>id</string> + <string>id</string> + <string>NSTabView</string> + <string>id</string> + <string>id</string> + <string>NSButton</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>NSBox</string> + <string>id</string> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="NSMutableDictionary" key="toOneOutletInfosByName"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>activitiesScrollView</string> + <string>addDatabaseButton</string> + <string>chooseDatabaseButton</string> + <string>connectionErrorDialog</string> + <string>contentViewSplitter</string> + <string>copyDatabaseButton</string> + <string>copyDatabaseDataButton</string> + <string>copyDatabaseMessageField</string> + <string>createTableSyntaxTextField</string> + <string>createTableSyntaxTextView</string> + <string>createTableSyntaxWindow</string> + <string>customQueryInstance</string> + <string>customQueryTextView</string> + <string>databaseCopyNameField</string> + <string>databaseCopySheet</string> + <string>databaseDataInstance</string> + <string>databaseEncodingButton</string> + <string>databaseNameField</string> + <string>databaseRenameNameField</string> + <string>databaseRenameSheet</string> + <string>databaseSheet</string> + <string>dbTablesTableView</string> + <string>encodingPopUp</string> + <string>exportControllerInstance</string> + <string>extendedTableInfoInstance</string> + <string>favoritesButton</string> + <string>historyControl</string> + <string>inputTextWindow</string> + <string>inputTextWindowHeader</string> + <string>inputTextWindowMessage</string> + <string>inputTextWindowSecureTextField</string> + <string>listFilterField</string> + <string>parentView</string> + <string>queryProgressBar</string> + <string>renameDatabaseButton</string> + <string>renameDatabaseMessageField</string> + <string>saveConnectionAccessory</string> + <string>saveConnectionAutoConnect</string> + <string>saveConnectionEncrypt</string> + <string>saveConnectionEncryptString</string> + <string>saveConnectionIncludeData</string> + <string>saveConnectionIncludeQuery</string> + <string>saveConnectionSavePassword</string> + <string>saveConnectionSavePasswordAlert</string> + <string>sidebarGrabber</string> + <string>spHistoryControllerInstance</string> + <string>statusTableAccessoryView</string> + <string>statusTableCopyChecksum</string> + <string>statusTableView</string> + <string>statusValues</string> + <string>tableContentInstance</string> + <string>tableDataInstance</string> + <string>tableDumpInstance</string> + <string>tableInfoCollapseButton</string> + <string>tableInfoScrollView</string> + <string>tableInfoTable</string> + <string>tableListSplitter</string> + <string>tableRelationsInstance</string> + <string>tableSourceInstance</string> + <string>tableTabView</string> + <string>tableTriggersInstance</string> + <string>tablesListInstance</string> + <string>taskCancelButton</string> + <string>taskCancellationCallbackObject</string> + <string>taskDescriptionText</string> + <string>taskProgressIndicator</string> + <string>taskProgressLayer</string> + <string>titleAccessoryView</string> + <string>titleImageView</string> + <string>titleStringView</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBToOneOutletInfo"> + <string key="name">activitiesScrollView</string> + <string key="candidateClassName">NSScrollView</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">addDatabaseButton</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">chooseDatabaseButton</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">connectionErrorDialog</string> + <string key="candidateClassName">NSWindow</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">contentViewSplitter</string> + <string key="candidateClassName">NSSplitView</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">copyDatabaseButton</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">copyDatabaseDataButton</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">copyDatabaseMessageField</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">createTableSyntaxTextField</string> + <string key="candidateClassName">NSTextField</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">createTableSyntaxTextView</string> + <string key="candidateClassName">NSTextView</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">createTableSyntaxWindow</string> + <string key="candidateClassName">NSWindow</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">customQueryInstance</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">customQueryTextView</string> + <string key="candidateClassName">NSTextView</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">databaseCopyNameField</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">databaseCopySheet</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">databaseDataInstance</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">databaseEncodingButton</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">databaseNameField</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">databaseRenameNameField</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">databaseRenameSheet</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">databaseSheet</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">dbTablesTableView</string> + <string key="candidateClassName">NSTableView</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">encodingPopUp</string> + <string key="candidateClassName">NSPopUpButton</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">exportControllerInstance</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">extendedTableInfoInstance</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">favoritesButton</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">historyControl</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">inputTextWindow</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">inputTextWindowHeader</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">inputTextWindowMessage</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">inputTextWindowSecureTextField</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">listFilterField</string> + <string key="candidateClassName">NSSearchField</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">parentView</string> + <string key="candidateClassName">NSView</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">queryProgressBar</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">renameDatabaseButton</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">renameDatabaseMessageField</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">saveConnectionAccessory</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">saveConnectionAutoConnect</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">saveConnectionEncrypt</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">saveConnectionEncryptString</string> + <string key="candidateClassName">NSSecureTextField</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">saveConnectionIncludeData</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">saveConnectionIncludeQuery</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">saveConnectionSavePassword</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">saveConnectionSavePasswordAlert</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">sidebarGrabber</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">spHistoryControllerInstance</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">statusTableAccessoryView</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">statusTableCopyChecksum</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">statusTableView</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">statusValues</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">tableContentInstance</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">tableDataInstance</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">tableDumpInstance</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">tableInfoCollapseButton</string> + <string key="candidateClassName">NSButton</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">tableInfoScrollView</string> + <string key="candidateClassName">NSScrollView</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">tableInfoTable</string> + <string key="candidateClassName">NSTableView</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">tableListSplitter</string> + <string key="candidateClassName">NSSplitView</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">tableRelationsInstance</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">tableSourceInstance</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">tableTabView</string> + <string key="candidateClassName">NSTabView</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">tableTriggersInstance</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">tablesListInstance</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">taskCancelButton</string> + <string key="candidateClassName">NSButton</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">taskCancellationCallbackObject</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">taskDescriptionText</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">taskProgressIndicator</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">taskProgressLayer</string> + <string key="candidateClassName">NSBox</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">titleAccessoryView</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">titleImageView</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">titleStringView</string> + <string key="candidateClassName">id</string> + </object> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBDocumentRelativeSource</string> + <string key="minorKey">../../Source/SPDatabaseDocument.h</string> + </object> + </object> + </object> <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBPartialClassDescription"> diff --git a/Interfaces/English.lproj/DatabaseProcessList.xib b/Interfaces/English.lproj/DatabaseProcessList.xib index 656f5910..95a80875 100644 --- a/Interfaces/English.lproj/DatabaseProcessList.xib +++ b/Interfaces/English.lproj/DatabaseProcessList.xib @@ -2,30 +2,26 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">10F569</string> - <string key="IBDocument.InterfaceBuilderVersion">788</string> - <string key="IBDocument.AppKitVersion">1038.29</string> - <string key="IBDocument.HIToolboxVersion">461.00</string> + <string key="IBDocument.SystemVersion">10J567</string> + <string key="IBDocument.InterfaceBuilderVersion">804</string> + <string key="IBDocument.AppKitVersion">1038.35</string> + <string key="IBDocument.HIToolboxVersion">462.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> - <string key="NS.object.0">788</string> + <string key="NS.object.0">804</string> </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> <integer value="17"/> + <integer value="134"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> </object> <object class="NSMutableDictionary" key="IBDocument.Metadata"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys" id="0"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> - <object class="NSMutableArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> + <string key="NS.key.0">PluginDependencyRecalculationVersion</string> + <integer value="1" key="NS.object.0"/> </object> <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -48,7 +44,7 @@ <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSWindowContentMinSize">{640, 200}</string> <object class="NSView" key="NSWindowView" id="1010674838"> <reference key="NSNextResponder"/> @@ -201,7 +197,7 @@ <string key="NSColorName">controlBackgroundColor</string> <object class="NSColor" key="NSColor" id="466472473"> <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes> + <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes> </object> </object> <reference key="NSTextColor" ref="37591332"/> @@ -826,7 +822,7 @@ </object> <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> <string key="NSMinSize">{640, 222}</string> - <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> </object> <object class="NSMenu" id="328428957"> <string key="NSTitle"/> @@ -874,7 +870,7 @@ <object class="NSWindowTemplate" id="237958724"> <int key="NSWindowStyleMask">1</int> <int key="NSWindowBacking">2</int> - <string key="NSWindowRect">{{343, 502}, {189, 93}}</string> + <string key="NSWindowRect">{{343, 502}, {229, 93}}</string> <int key="NSWTFlags">1886912512</int> <string key="NSWindowTitle">Custom Interval</string> <string key="NSWindowClass">NSWindow</string> @@ -884,14 +880,14 @@ <string key="NSWindowContentMaxSize">{292, 112}</string> <string key="NSWindowContentMinSize">{189, 93}</string> <object class="NSView" key="NSWindowView" id="123987262"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSTextField" id="93578059"> <reference key="NSNextResponder" ref="123987262"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{17, 56}, {48, 14}}</string> + <string key="NSFrame">{{8, 56}, {69, 14}}</string> <reference key="NSSuperview" ref="123987262"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="582871149"> @@ -907,7 +903,7 @@ <object class="NSTextField" id="287497744"> <reference key="NSNextResponder" ref="123987262"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{124, 56}, {48, 14}}</string> + <string key="NSFrame">{{136, 56}, {76, 14}}</string> <reference key="NSSuperview" ref="123987262"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="514749158"> @@ -923,7 +919,7 @@ <object class="NSButton" id="1030049816"> <reference key="NSNextResponder" ref="123987262"/> <int key="NSvFlags">259</int> - <string key="NSFrame">{{94, 13}, {70, 28}}</string> + <string key="NSFrame">{{134, 13}, {80, 28}}</string> <reference key="NSSuperview" ref="123987262"/> <int key="NSTag">1</int> <bool key="NSEnabled">YES</bool> @@ -950,7 +946,7 @@ <object class="NSButton" id="966616599"> <reference key="NSNextResponder" ref="123987262"/> <int key="NSvFlags">259</int> - <string key="NSFrame">{{26, 13}, {70, 28}}</string> + <string key="NSFrame">{{50, 13}, {86, 28}}</string> <reference key="NSSuperview" ref="123987262"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="857419907"> @@ -971,7 +967,7 @@ <object class="NSTextField" id="680776"> <reference key="NSNextResponder" ref="123987262"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{70, 52}, {49, 22}}</string> + <string key="NSFrame">{{82, 52}, {49, 22}}</string> <reference key="NSSuperview" ref="123987262"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="437242737"> @@ -1020,7 +1016,9 @@ <string key="NSString">NaN</string> <object class="NSDictionary" key="NSAttributes"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference key="dict.sortedKeys" ref="0"/> + <object class="NSArray" key="dict.sortedKeys" id="0"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> </object> @@ -1059,7 +1057,8 @@ </object> </object> </object> - <string key="NSFrameSize">{189, 93}</string> + <string key="NSFrameSize">{229, 93}</string> + <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> <string key="NSMinSize">{189, 115}</string> @@ -1834,10 +1833,10 @@ <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> <reference ref="93578059"/> - <reference ref="287497744"/> - <reference ref="680776"/> <reference ref="1030049816"/> <reference ref="966616599"/> + <reference ref="287497744"/> + <reference ref="680776"/> </object> <reference key="parent" ref="237958724"/> </object> @@ -1952,12 +1951,14 @@ <string>134.IBPluginDependency</string> <string>134.ImportedFromIB2</string> <string>135.IBPluginDependency</string> + <string>135.IBViewBoundsToFrameTransform</string> <string>135.ImportedFromIB2</string> <string>138.IBPluginDependency</string> <string>138.ImportedFromIB2</string> <string>14.IBPluginDependency</string> <string>14.IBShouldRemoveOnLegacySave</string> <string>140.IBPluginDependency</string> + <string>140.IBViewBoundsToFrameTransform</string> <string>140.ImportedFromIB2</string> <string>141.IBPluginDependency</string> <string>143.IBPluginDependency</string> @@ -1969,10 +1970,12 @@ <string>17.ImportedFromIB2</string> <string>172.IBPluginDependency</string> <string>173.IBPluginDependency</string> + <string>173.IBViewBoundsToFrameTransform</string> <string>173.ImportedFromIB2</string> <string>174.IBPluginDependency</string> <string>176.IBAttributePlaceholdersKey</string> <string>176.IBPluginDependency</string> + <string>176.IBViewBoundsToFrameTransform</string> <string>177.IBPluginDependency</string> <string>178.IBNumberFormatterBehaviorMetadataKey</string> <string>178.IBNumberFormatterLocalizesFormatMetadataKey</string> @@ -2061,9 +2064,9 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{580, 299}, {189, 93}}</string> + <string>{{852, 726}, {229, 93}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{580, 299}, {189, 93}}</string> + <string>{{852, 726}, {229, 93}}</string> <integer value="1"/> <integer value="1"/> <boolean value="YES"/> @@ -2072,12 +2075,18 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABCvAAAwhwAAA</bytes> + </object> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABB0AAAwhwAAA</bytes> + </object> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -2089,6 +2098,9 @@ <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABC+AAAwogAAA</bytes> + </object> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <object class="NSMutableDictionary"> @@ -2100,6 +2112,9 @@ </object> </object> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABCjAAAwpAAAA</bytes> + </object> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1041"/> <boolean value="YES"/> @@ -2208,10 +2223,10 @@ </object> </object> <object class="IBPartialClassDescription"> - <string key="className">NSObject</string> + <string key="className">NSMenu</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> - <string key="minorKey">Frameworks/MCPKit/MCPFoundationKit/MCPConnection.h</string> + <string key="minorKey">Source/SPMenuAdditions.h</string> </object> </object> <object class="IBPartialClassDescription"> @@ -2933,6 +2948,27 @@ <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRRecorderCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRRecorderControl.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRValidator.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> <string key="minorKey">Sparkle.framework/Headers/SUAppcast.h</string> </object> </object> diff --git a/Interfaces/English.lproj/ExportDialog.xib b/Interfaces/English.lproj/ExportDialog.xib index 9e2fe8cf..16c7be68 100644 --- a/Interfaces/English.lproj/ExportDialog.xib +++ b/Interfaces/English.lproj/ExportDialog.xib @@ -2,10 +2,10 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">10H574</string> - <string key="IBDocument.InterfaceBuilderVersion">788</string> + <string key="IBDocument.SystemVersion">10J567</string> + <string key="IBDocument.InterfaceBuilderVersion">804</string> <string key="IBDocument.AppKitVersion">1038.35</string> - <string key="IBDocument.HIToolboxVersion">461.00</string> + <string key="IBDocument.HIToolboxVersion">462.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> @@ -15,13 +15,13 @@ </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>788</string> - <string>1.2.5</string> + <string>804</string> + <string>1.2.2</string> </object> </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="1225"/> + <integer value="1088"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -1179,7 +1179,7 @@ <object class="NSButton" id="238794017"> <reference key="NSNextResponder" ref="1039688935"/> <int key="NSvFlags">-2147483380</int> - <string key="NSFrame">{{226, 269}, {116, 18}}</string> + <string key="NSFrame">{{226, 269}, {160, 18}}</string> <reference key="NSSuperview" ref="1039688935"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="328323922"> @@ -1208,7 +1208,7 @@ <object class="NSTabViewItem" id="286086449"> <string key="NSIdentifier">sql</string> <object class="NSView" key="NSView" id="311280472"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder" ref="683006936"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -1535,6 +1535,7 @@ </object> </object> <string key="NSFrame">{{10, 7}, {189, 229}}</string> + <reference key="NSSuperview" ref="683006936"/> </object> <string key="NSLabel">SQL</string> <reference key="NSColor" ref="683790803"/> @@ -1793,7 +1794,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSTextField" id="431819810"> <reference key="NSNextResponder" ref="251397907"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{5, 178}, {39, 14}}</string> + <string key="NSFrame">{{5, 178}, {120, 14}}</string> <reference key="NSSuperview" ref="251397907"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="704779797"> @@ -1809,7 +1810,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSTextField" id="154639832"> <reference key="NSNextResponder" ref="251397907"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{5, 79}, {36, 14}}</string> + <string key="NSFrame">{{5, 79}, {120, 14}}</string> <reference key="NSSuperview" ref="251397907"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="476159630"> @@ -1825,7 +1826,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSTextField" id="118891385"> <reference key="NSNextResponder" ref="251397907"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{46, 125}, {31, 17}}</string> + <string key="NSFrame">{{46, 125}, {110, 17}}</string> <reference key="NSSuperview" ref="251397907"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="677830525"> @@ -1841,7 +1842,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSTextField" id="897158083"> <reference key="NSNextResponder" ref="251397907"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{46, 150}, {59, 17}}</string> + <string key="NSFrame">{{46, 150}, {110, 17}}</string> <reference key="NSSuperview" ref="251397907"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="51337104"> @@ -2122,7 +2123,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSTextField" id="291048492"> <reference key="NSNextResponder" ref="251397907"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{46, 98}, {41, 17}}</string> + <string key="NSFrame">{{46, 98}, {110, 17}}</string> <reference key="NSSuperview" ref="251397907"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="725186903"> @@ -2221,7 +2222,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSTextField" id="17832185"> <reference key="NSNextResponder" ref="251397907"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{46, 51}, {59, 17}}</string> + <string key="NSFrame">{{46, 51}, {110, 17}}</string> <reference key="NSSuperview" ref="251397907"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="188018483"> @@ -2258,7 +2259,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSTextField" id="768545032"> <reference key="NSNextResponder" ref="251397907"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{5, 29}, {72, 14}}</string> + <string key="NSFrame">{{5, 29}, {120, 14}}</string> <reference key="NSSuperview" ref="251397907"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="112977810"> @@ -2498,7 +2499,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSTabViewItem" id="992964191"> <string key="NSIdentifier">dot</string> <object class="NSView" key="NSView" id="243567307"> - <reference key="NSNextResponder" ref="683006936"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -2525,21 +2526,20 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> <string key="NSFrame">{{10, 7}, {189, 229}}</string> - <reference key="NSSuperview" ref="683006936"/> </object> <string key="NSLabel">Dot</string> <reference key="NSColor" ref="683790803"/> <reference key="NSTabView" ref="683006936"/> </object> </object> - <reference key="NSSelectedTabViewItem" ref="992964191"/> + <reference key="NSSelectedTabViewItem" ref="286086449"/> <reference key="NSFont" ref="695505032"/> <int key="NSTvFlags">4</int> <bool key="NSAllowTruncatedLabels">YES</bool> <bool key="NSDrawsBackground">YES</bool> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="243567307"/> + <reference ref="311280472"/> </object> </object> <object class="NSScrollView" id="505274803"> @@ -5276,7 +5276,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <boolean value="NO"/> <boolean value="YES"/> <string>{449, 480}</string> - <string>{{391, 418}, {450, 359}}</string> + <string>{{872, 645}, {450, 359}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <object class="NSMutableDictionary"> diff --git a/Interfaces/English.lproj/FieldEditorSheet.xib b/Interfaces/English.lproj/FieldEditorSheet.xib index fcee245d..4b2845a9 100644 --- a/Interfaces/English.lproj/FieldEditorSheet.xib +++ b/Interfaces/English.lproj/FieldEditorSheet.xib @@ -2,18 +2,18 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">10H574</string> - <string key="IBDocument.InterfaceBuilderVersion">804</string> + <string key="IBDocument.SystemVersion">10J567</string> + <string key="IBDocument.InterfaceBuilderVersion">788</string> <string key="IBDocument.AppKitVersion">1038.35</string> - <string key="IBDocument.HIToolboxVersion">461.00</string> + <string key="IBDocument.HIToolboxVersion">462.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> - <string key="NS.object.0">804</string> + <string key="NS.object.0">788</string> </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="81"/> <integer value="2"/> + <integer value="81"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -40,11 +40,11 @@ <string key="NSWindowRect">{{364, 183}, {667, 428}}</string> <int key="NSWTFlags">544735232</int> <string key="NSWindowTitle">Field Editor</string> - <string key="NSWindowClass">NSWindow</string> + <string key="NSWindowClass">SPWindow</string> <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <object class="NSView" key="NSWindowView" id="559857537"> <reference key="NSNextResponder"/> <int key="NSvFlags">4370</int> @@ -359,7 +359,7 @@ <string key="NSColorName">selectedTextBackgroundColor</string> <object class="NSColor" key="NSColor" id="394290367"> <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes> + <bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes> </object> </object> <object class="NSColor" id="935002176"> @@ -659,7 +659,7 @@ <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSFrameAutosaveName"/> </object> <object class="NSWindowTemplate" id="620871617"> @@ -6878,9 +6878,9 @@ <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{329, 231}, {667, 428}}</string> + <string>{{242, 231}, {667, 428}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{329, 231}, {667, 428}}</string> + <string>{{242, 231}, {667, 428}}</string> <integer value="1"/> <integer value="0"/> <boolean value="NO"/> diff --git a/Interfaces/English.lproj/IndexesView.xib b/Interfaces/English.lproj/IndexesView.xib index 524fa1b7..2489b11c 100644 --- a/Interfaces/English.lproj/IndexesView.xib +++ b/Interfaces/English.lproj/IndexesView.xib @@ -2,9 +2,9 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">10F569</string> - <string key="IBDocument.InterfaceBuilderVersion">804</string> - <string key="IBDocument.AppKitVersion">1038.29</string> + <string key="IBDocument.SystemVersion">10H574</string> + <string key="IBDocument.InterfaceBuilderVersion">788</string> + <string key="IBDocument.AppKitVersion">1038.35</string> <string key="IBDocument.HIToolboxVersion">461.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -15,18 +15,17 @@ </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>804</string> + <string>788</string> <string>1.2.5</string> </object> </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="4"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>com.brandonwalkin.BWToolkit</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.brandonwalkin.BWToolkit</string> </object> <object class="NSMutableDictionary" key="IBDocument.Metadata"> <string key="NS.key.0">PluginDependencyRecalculationVersion</string> @@ -53,7 +52,7 @@ <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSWindowContentMinSize">{267, 274}</string> <object class="NSView" key="NSWindowView" id="762677578"> <reference key="NSNextResponder"/> @@ -65,6 +64,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{83, 233}, {167, 22}}</string> <reference key="NSSuperview" ref="762677578"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSPopUpButtonCell" key="NSCell" id="431781347"> <int key="NSCellFlags">-2076049856</int> @@ -84,22 +84,23 @@ </object> <int key="NSPeriodicDelay">400</int> <int key="NSPeriodicInterval">75</int> - <object class="NSMenuItem" key="NSMenuItem" id="262306657"> + <object class="NSMenuItem" key="NSMenuItem" id="71932948"> <reference key="NSMenu" ref="71441725"/> - <string key="NSTitle">INDEX</string> + <string key="NSTitle">FULLTEXT</string> <string key="NSKeyEquiv"/> <int key="NSKeyEquivModMask">1048576</int> <int key="NSMnemonicLoc">2147483647</int> <int key="NSState">1</int> - <object class="NSCustomResource" key="NSOnImage" id="195240984"> + <object class="NSCustomResource" key="NSOnImage" id="600203078"> <string key="NSClassName">NSImage</string> <string key="NSResourceName">NSMenuCheckmark</string> </object> - <object class="NSCustomResource" key="NSMixedImage" id="81373676"> + <object class="NSCustomResource" key="NSMixedImage" id="752378347"> <string key="NSClassName">NSImage</string> <string key="NSResourceName">NSMenuMixedState</string> </object> <string key="NSAction">_popUpItemAction:</string> + <int key="NSTag">3</int> <reference key="NSTarget" ref="431781347"/> </object> <bool key="NSMenuItemRespectAlignment">YES</bool> @@ -109,31 +110,45 @@ </object> <object class="NSMutableArray" key="NSMenuItems"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="262306657"/> - <object class="NSMenuItem" id="453090810"> + <object class="NSMenuItem" id="262306657"> <reference key="NSMenu" ref="71441725"/> - <string key="NSTitle">UNIQUE</string> + <string key="NSTitle">PRIMARY KEY</string> <string key="NSKeyEquiv"/> <int key="NSKeyEquivModMask">1048576</int> <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="195240984"/> - <reference key="NSMixedImage" ref="81373676"/> + <reference key="NSOnImage" ref="600203078"/> + <reference key="NSMixedImage" ref="752378347"/> <string key="NSAction">_popUpItemAction:</string> <reference key="NSTarget" ref="431781347"/> </object> - <object class="NSMenuItem" id="71932948"> + <object class="NSMenuItem" id="828450159"> <reference key="NSMenu" ref="71441725"/> - <string key="NSTitle">FULLTEXT</string> + <string key="NSTitle">INDEX</string> + <string key="NSKeyEquiv"/> + <int key="NSKeyEquivModMask">1048576</int> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="600203078"/> + <reference key="NSMixedImage" ref="752378347"/> + <string key="NSAction">_popUpItemAction:</string> + <int key="NSTag">1</int> + <reference key="NSTarget" ref="431781347"/> + </object> + <object class="NSMenuItem" id="453090810"> + <reference key="NSMenu" ref="71441725"/> + <string key="NSTitle">UNIQUE</string> <string key="NSKeyEquiv"/> <int key="NSKeyEquivModMask">1048576</int> <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="195240984"/> - <reference key="NSMixedImage" ref="81373676"/> + <reference key="NSOnImage" ref="600203078"/> + <reference key="NSMixedImage" ref="752378347"/> <string key="NSAction">_popUpItemAction:</string> + <int key="NSTag">2</int> <reference key="NSTarget" ref="431781347"/> </object> + <reference ref="71932948"/> </object> </object> + <int key="NSSelectedIndex">3</int> <int key="NSPreferredEdge">3</int> <bool key="NSUsesItemFromMenu">YES</bool> <bool key="NSAltersState">YES</bool> @@ -145,6 +160,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{86, 211}, {161, 19}}</string> <reference key="NSSuperview" ref="762677578"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="1000744513"> <int key="NSCellFlags">-1267597759</int> @@ -179,6 +195,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{17, 213}, {64, 14}}</string> <reference key="NSSuperview" ref="762677578"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="568966163"> <int key="NSCellFlags">67239424</int> @@ -192,7 +209,7 @@ <string key="NSColorName">controlColor</string> <object class="NSColor" key="NSColor" id="1009303974"> <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes> + <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes> </object> </object> <object class="NSColor" key="NSTextColor" id="723855329"> @@ -208,6 +225,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{17, 238}, {64, 14}}</string> <reference key="NSSuperview" ref="762677578"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="217993475"> <int key="NSCellFlags">67239424</int> @@ -234,12 +252,14 @@ <int key="NSvFlags">256</int> <string key="NSFrameSize">{267, 80}</string> <reference key="NSSuperview" ref="726923866"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTableHeaderView" key="NSHeaderView" id="1016340205"> <reference key="NSNextResponder" ref="218049294"/> <int key="NSvFlags">256</int> <string key="NSFrameSize">{267, 17}</string> <reference key="NSSuperview" ref="218049294"/> + <reference key="NSWindow"/> <reference key="NSTableView" ref="633969417"/> </object> <object class="_NSCornerView" key="NSCornerView" id="310534340"> @@ -247,6 +267,7 @@ <int key="NSvFlags">-2147483392</int> <string key="NSFrame">{{224, 0}, {16, 17}}</string> <reference key="NSSuperview" ref="561916229"/> + <reference key="NSWindow"/> </object> <object class="NSMutableArray" key="NSTableColumns"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -406,6 +427,7 @@ </object> <string key="NSFrame">{{1, 17}, {267, 80}}</string> <reference key="NSSuperview" ref="561916229"/> + <reference key="NSWindow"/> <reference key="NSNextKeyView" ref="633969417"/> <reference key="NSDocView" ref="633969417"/> <reference key="NSBGColor" ref="433719363"/> @@ -416,6 +438,7 @@ <int key="NSvFlags">-2147483392</int> <string key="NSFrame">{{224, 17}, {15, 102}}</string> <reference key="NSSuperview" ref="561916229"/> + <reference key="NSWindow"/> <reference key="NSTarget" ref="561916229"/> <string key="NSAction">_doScroller:</string> <double key="NSPercent">0.80263155698776245</double> @@ -425,6 +448,7 @@ <int key="NSvFlags">-2147483392</int> <string key="NSFrame">{{-100, -100}, {225, 11}}</string> <reference key="NSSuperview" ref="561916229"/> + <reference key="NSWindow"/> <int key="NSsFlags">257</int> <reference key="NSTarget" ref="561916229"/> <string key="NSAction">_doScroller:</string> @@ -439,6 +463,7 @@ </object> <string key="NSFrame">{{1, 0}, {267, 17}}</string> <reference key="NSSuperview" ref="561916229"/> + <reference key="NSWindow"/> <reference key="NSNextKeyView" ref="1016340205"/> <reference key="NSDocView" ref="1016340205"/> <reference key="NSBGColor" ref="433719363"/> @@ -448,6 +473,7 @@ </object> <string key="NSFrame">{{-1, 97}, {269, 98}}</string> <reference key="NSSuperview" ref="762677578"/> + <reference key="NSWindow"/> <reference key="NSNextKeyView" ref="726923866"/> <int key="NSsFlags">530</int> <reference key="NSVScroller" ref="181568637"/> @@ -477,6 +503,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{21, 42}, {78, 14}}</string> <reference key="NSSuperview" ref="361997881"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="971022587"> <int key="NSCellFlags">68288064</int> @@ -493,6 +520,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{101, 37}, {162, 22}}</string> <reference key="NSSuperview" ref="361997881"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSPopUpButtonCell" key="NSCell" id="747441327"> <int key="NSCellFlags">-2076049856</int> @@ -512,8 +540,8 @@ <int key="NSKeyEquivModMask">1048576</int> <int key="NSMnemonicLoc">2147483647</int> <int key="NSState">1</int> - <reference key="NSOnImage" ref="195240984"/> - <reference key="NSMixedImage" ref="81373676"/> + <reference key="NSOnImage" ref="600203078"/> + <reference key="NSMixedImage" ref="752378347"/> <string key="NSAction">_popUpItemAction:</string> <reference key="NSTarget" ref="747441327"/> </object> @@ -530,8 +558,8 @@ <string key="NSTitle"/> <string key="NSKeyEquiv"/> <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="195240984"/> - <reference key="NSMixedImage" ref="81373676"/> + <reference key="NSOnImage" ref="600203078"/> + <reference key="NSMixedImage" ref="752378347"/> <string key="NSAction">_popUpItemAction:</string> <reference key="NSTarget" ref="747441327"/> </object> @@ -541,8 +569,8 @@ <string key="NSKeyEquiv"/> <int key="NSKeyEquivModMask">1048576</int> <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="195240984"/> - <reference key="NSMixedImage" ref="81373676"/> + <reference key="NSOnImage" ref="600203078"/> + <reference key="NSMixedImage" ref="752378347"/> <string key="NSAction">_popUpItemAction:</string> <reference key="NSTarget" ref="747441327"/> </object> @@ -552,8 +580,8 @@ <string key="NSKeyEquiv"/> <int key="NSKeyEquivModMask">1048576</int> <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="195240984"/> - <reference key="NSMixedImage" ref="81373676"/> + <reference key="NSOnImage" ref="600203078"/> + <reference key="NSMixedImage" ref="752378347"/> <string key="NSAction">_popUpItemAction:</string> <reference key="NSTarget" ref="747441327"/> </object> @@ -575,6 +603,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{15, 16}, {84, 14}}</string> <reference key="NSSuperview" ref="361997881"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="408249519"> <int key="NSCellFlags">68288064</int> @@ -591,6 +620,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{104, 14}, {63, 19}}</string> <reference key="NSSuperview" ref="361997881"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="659211423"> <int key="NSCellFlags">-1804468671</int> @@ -670,10 +700,12 @@ </object> <string key="NSFrame">{{1, 1}, {278, 71}}</string> <reference key="NSSuperview" ref="197030792"/> + <reference key="NSWindow"/> </object> </object> <string key="NSFrame">{{-5, -4}, {280, 73}}</string> <reference key="NSSuperview" ref="30022357"/> + <reference key="NSWindow"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> @@ -697,6 +729,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{-83, 41}, {100, 18}}</string> <reference key="NSSuperview" ref="30022357"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="708153532"> <int key="NSCellFlags">67239424</int> @@ -722,6 +755,7 @@ </object> <string key="NSFrame">{{-2, -30}, {272, 67}}</string> <reference key="NSSuperview" ref="762677578"/> + <reference key="NSWindow"/> <string key="NSClassName">NSView</string> </object> <object class="NSButton" id="1003402112"> @@ -729,6 +763,7 @@ <int key="NSvFlags">292</int> <string key="NSFrame">{{0, 40}, {29, 26}}</string> <reference key="NSSuperview" ref="762677578"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="782137189"> <int key="NSCellFlags">67239424</int> @@ -750,6 +785,7 @@ <int key="NSvFlags">292</int> <string key="NSFrame">{{24, 41}, {214, 22}}</string> <reference key="NSSuperview" ref="762677578"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="958218934"> <int key="NSCellFlags">-2080244224</int> @@ -775,6 +811,7 @@ <int key="NSvFlags">289</int> <string key="NSFrame">{{152, 13}, {100, 28}}</string> <reference key="NSSuperview" ref="762677578"/> + <reference key="NSWindow"/> <int key="NSTag">1</int> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="289434200"> @@ -801,6 +838,7 @@ <int key="NSvFlags">289</int> <string key="NSFrame">{{54, 13}, {100, 28}}</string> <reference key="NSSuperview" ref="762677578"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="758521208"> <int key="NSCellFlags">67239424</int> @@ -827,6 +865,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{1, 0}, {32, 24}}</string> <reference key="NSSuperview" ref="797179406"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="BWAnchoredButtonCell" key="NSCell" id="78847401"> <int key="NSCellFlags">67239424</int> @@ -851,6 +890,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{32, 0}, {32, 24}}</string> <reference key="NSSuperview" ref="797179406"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="BWAnchoredButtonCell" key="NSCell" id="88287488"> <int key="NSCellFlags">604110336</int> @@ -873,6 +913,7 @@ </object> <string key="NSFrame">{{-2, 74}, {270, 24}}</string> <reference key="NSSuperview" ref="762677578"/> + <reference key="NSWindow"/> <bool key="BWABBIsResizable">NO</bool> <bool key="BWABBIsAtBottom">NO</bool> <bool key="BWABBHandleIsRightAligned">NO</bool> @@ -881,10 +922,11 @@ </object> <string key="NSFrameSize">{267, 274}</string> <reference key="NSSuperview"/> + <reference key="NSWindow"/> </object> <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> <string key="NSMinSize">{267, 296}</string> - <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> </object> <object class="NSMenu" id="644710844"> <string key="NSTitle"/> @@ -895,8 +937,8 @@ <string key="NSTitle">Remove Field</string> <string key="NSKeyEquiv"/> <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="195240984"/> - <reference key="NSMixedImage" ref="81373676"/> + <reference key="NSOnImage" ref="600203078"/> + <reference key="NSMixedImage" ref="752378347"/> </object> </object> </object> @@ -1270,6 +1312,7 @@ <reference ref="453090810"/> <reference ref="71932948"/> <reference ref="262306657"/> + <reference ref="828450159"/> </object> <reference key="parent" ref="431781347"/> </object> @@ -1615,6 +1658,11 @@ <reference key="object" ref="299133641"/> <reference key="parent" ref="659211423"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">138</int> + <reference key="object" ref="828450159"/> + <reference key="parent" ref="71441725"/> + </object> </object> </object> <object class="NSMutableDictionary" key="flattenedProperties"> @@ -1649,6 +1697,8 @@ <string>136.IBNumberFormatterBehaviorMetadataKey</string> <string>136.IBNumberFormatterLocalizesFormatMetadataKey</string> <string>136.IBPluginDependency</string> + <string>138.IBPluginDependency</string> + <string>138.ImportedFromIB2</string> <string>14.IBEditorWindowLastContentRect</string> <string>14.IBPluginDependency</string> <string>14.ImportedFromIB2</string> @@ -1774,7 +1824,9 @@ <integer value="1041"/> <boolean value="NO"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{631, 783}, {167, 54}}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <integer value="1"/> + <string>{{683, 655}, {167, 71}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -1870,7 +1922,7 @@ </object> </object> <nil key="sourceID"/> - <int key="maxID">137</int> + <int key="maxID">138</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -1883,10 +1935,10 @@ </object> </object> <object class="IBPartialClassDescription"> - <string key="className">NSObject</string> + <string key="className">NSMenu</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> - <string key="minorKey">Frameworks/MCPKit/MCPFoundationKit/MCPConnection.h</string> + <string key="minorKey">Source/SPMenuAdditions.h</string> </object> </object> <object class="IBPartialClassDescription"> @@ -1985,7 +2037,10 @@ <string>doSelectionTitleCase:</string> <string>doSelectionUpperCase:</string> <string>doTranspose:</string> + <string>executeBundleItemForInputField:</string> <string>insertNULLvalue:</string> + <string>moveSelectionLineDown:</string> + <string>moveSelectionLineUp:</string> <string>selectCurrentLine:</string> <string>selectCurrentWord:</string> <string>selectEnclosingBrackets:</string> @@ -2005,6 +2060,9 @@ <string>id</string> <string>id</string> <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="actionInfosByName"> @@ -2020,7 +2078,10 @@ <string>doSelectionTitleCase:</string> <string>doSelectionUpperCase:</string> <string>doTranspose:</string> + <string>executeBundleItemForInputField:</string> <string>insertNULLvalue:</string> + <string>moveSelectionLineDown:</string> + <string>moveSelectionLineUp:</string> <string>selectCurrentLine:</string> <string>selectCurrentWord:</string> <string>selectEnclosingBrackets:</string> @@ -2064,10 +2125,22 @@ <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">executeBundleItemForInputField:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">insertNULLvalue:</string> <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">moveSelectionLineDown:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">moveSelectionLineUp:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">selectCurrentLine:</string> <string key="candidateClassName">id</string> </object> @@ -2132,7 +2205,9 @@ <string>import:</string> <string>importFromClipboard:</string> <string>openCurrentConnectionInNewWindow:</string> + <string>openDatabaseInNewTab:</string> <string>optimizeTable:</string> + <string>refreshTables:</string> <string>removeDatabase:</string> <string>renameDatabase:</string> <string>repairTable:</string> @@ -2149,12 +2224,6 @@ <string>toggleNavigator:</string> <string>updateWindowTitle:</string> <string>validateSaveConnectionAccessory:</string> - <string>viewContent:</string> - <string>viewQuery:</string> - <string>viewRelations:</string> - <string>viewStatus:</string> - <string>viewStructure:</string> - <string>viewTriggers:</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -2202,10 +2271,6 @@ <string>id</string> <string>id</string> <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> </object> </object> <object class="NSMutableDictionary" key="actionInfosByName"> @@ -2237,7 +2302,9 @@ <string>import:</string> <string>importFromClipboard:</string> <string>openCurrentConnectionInNewWindow:</string> + <string>openDatabaseInNewTab:</string> <string>optimizeTable:</string> + <string>refreshTables:</string> <string>removeDatabase:</string> <string>renameDatabase:</string> <string>repairTable:</string> @@ -2254,12 +2321,6 @@ <string>toggleNavigator:</string> <string>updateWindowTitle:</string> <string>validateSaveConnectionAccessory:</string> - <string>viewContent:</string> - <string>viewQuery:</string> - <string>viewRelations:</string> - <string>viewStatus:</string> - <string>viewStructure:</string> - <string>viewTriggers:</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -2364,10 +2425,18 @@ <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">openDatabaseInNewTab:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">optimizeTable:</string> <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">refreshTables:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">removeDatabase:</string> <string key="candidateClassName">id</string> </object> @@ -2431,30 +2500,6 @@ <string key="name">validateSaveConnectionAccessory:</string> <string key="candidateClassName">id</string> </object> - <object class="IBActionInfo"> - <string key="name">viewContent:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">viewQuery:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">viewRelations:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">viewStatus:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">viewStructure:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">viewTriggers:</string> - <string key="candidateClassName">id</string> - </object> </object> </object> <object class="NSMutableDictionary" key="outlets"> @@ -2958,6 +3003,73 @@ </object> <object class="IBPartialClassDescription"> <string key="className">SPDatabaseDocument</string> + <object class="NSMutableDictionary" key="actions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>viewContent:</string> + <string>viewQuery:</string> + <string>viewRelations:</string> + <string>viewStatus:</string> + <string>viewStructure:</string> + <string>viewTriggers:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="NSMutableDictionary" key="actionInfosByName"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>viewContent:</string> + <string>viewQuery:</string> + <string>viewRelations:</string> + <string>viewStatus:</string> + <string>viewStructure:</string> + <string>viewTriggers:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBActionInfo"> + <string key="name">viewContent:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">viewQuery:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">viewRelations:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">viewStatus:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">viewStructure:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">viewTriggers:</string> + <string key="candidateClassName">id</string> + </object> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPDatabaseViewController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">SPDatabaseDocument</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> <string key="minorKey">Source/SPPrintController.h</string> @@ -3316,13 +3428,13 @@ <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>addField:</string> - <string>closeKeySheet:</string> <string>closeSheet:</string> <string>copyField:</string> <string>reloadTable:</string> <string>removeField:</string> <string>resetAutoIncrement:</string> <string>showOptimizedFieldType:</string> + <string>toggleColumnView:</string> <string>unhideIndexesView:</string> </object> <object class="NSMutableArray" key="dict.values"> @@ -3343,13 +3455,13 @@ <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>addField:</string> - <string>closeKeySheet:</string> <string>closeSheet:</string> <string>copyField:</string> <string>reloadTable:</string> <string>removeField:</string> <string>resetAutoIncrement:</string> <string>showOptimizedFieldType:</string> + <string>toggleColumnView:</string> <string>unhideIndexesView:</string> </object> <object class="NSMutableArray" key="dict.values"> @@ -3359,10 +3471,6 @@ <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> - <string key="name">closeKeySheet:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> <string key="name">closeSheet:</string> <string key="candidateClassName">id</string> </object> @@ -3387,6 +3495,10 @@ <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">toggleColumnView:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">unhideIndexesView:</string> <string key="candidateClassName">id</string> </object> @@ -3422,6 +3534,7 @@ <string>tableSourceView</string> <string>tablesIndexesSplitView</string> <string>tablesListInstance</string> + <string>viewColumnsMenu</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -3451,6 +3564,7 @@ <string>id</string> <string>NSSplitView</string> <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="toOneOutletInfosByName"> @@ -3483,6 +3597,7 @@ <string>tableSourceView</string> <string>tablesIndexesSplitView</string> <string>tablesListInstance</string> + <string>viewColumnsMenu</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -3590,6 +3705,10 @@ <string key="name">tablesListInstance</string> <string key="candidateClassName">id</string> </object> + <object class="IBToOneOutletInfo"> + <string key="name">viewColumnsMenu</string> + <string key="candidateClassName">id</string> + </object> </object> </object> <object class="IBClassDescriptionSource" key="sourceIdentifier"> @@ -3598,6 +3717,13 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">SPTableStructure</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPTableStructureDelegate.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">SPTablesList</string> <string key="superclassName">NSObject</string> <object class="NSMutableDictionary" key="actions"> @@ -3607,6 +3733,7 @@ <string>addTable:</string> <string>closeSheet:</string> <string>copyTable:</string> + <string>openTableInNewTab:</string> <string>removeTable:</string> <string>renameTable:</string> <string>togglePaneCollapse:</string> @@ -3625,6 +3752,7 @@ <string>id</string> <string>id</string> <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="actionInfosByName"> @@ -3634,6 +3762,7 @@ <string>addTable:</string> <string>closeSheet:</string> <string>copyTable:</string> + <string>openTableInNewTab:</string> <string>removeTable:</string> <string>renameTable:</string> <string>togglePaneCollapse:</string> @@ -3656,6 +3785,10 @@ <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">openTableInNewTab:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">removeTable:</string> <string key="candidateClassName">id</string> </object> @@ -3697,6 +3830,8 @@ <string>duplicateTableMenuItem</string> <string>extendedTableInfoInstance</string> <string>listFilterField</string> + <string>openTableInNewTabContextMenuItem</string> + <string>openTableInNewTabMenuItem</string> <string>removeTableContextMenuItem</string> <string>removeTableMenuItem</string> <string>renameTableContextMenuItem</string> @@ -3708,7 +3843,6 @@ <string>showCreateSyntaxContextMenuItem</string> <string>showCreateSyntaxMenuItem</string> <string>spHistoryControllerInstance</string> - <string>tabView</string> <string>tableContentInstance</string> <string>tableDataInstance</string> <string>tableDocumentInstance</string> @@ -3728,7 +3862,7 @@ <string>toolbarAddButton</string> <string>toolbarReloadButton</string> <string>truncateTableButton</string> - <string>truncateTableContextButton</string> + <string>truncateTableContextMenuItem</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -3754,13 +3888,14 @@ <string>NSMenuItem</string> <string>NSMenuItem</string> <string>NSMenuItem</string> + <string>NSMenuItem</string> + <string>NSMenuItem</string> <string>SPHistoryController</string> <string>id</string> <string>id</string> <string>id</string> <string>id</string> <string>id</string> - <string>id</string> <string>NSButton</string> <string>id</string> <string>NSSplitView</string> @@ -3775,7 +3910,7 @@ <string>id</string> <string>id</string> <string>id</string> - <string>id</string> + <string>NSMenuItem</string> </object> </object> <object class="NSMutableDictionary" key="toOneOutletInfosByName"> @@ -3794,6 +3929,8 @@ <string>duplicateTableMenuItem</string> <string>extendedTableInfoInstance</string> <string>listFilterField</string> + <string>openTableInNewTabContextMenuItem</string> + <string>openTableInNewTabMenuItem</string> <string>removeTableContextMenuItem</string> <string>removeTableMenuItem</string> <string>renameTableContextMenuItem</string> @@ -3805,7 +3942,6 @@ <string>showCreateSyntaxContextMenuItem</string> <string>showCreateSyntaxMenuItem</string> <string>spHistoryControllerInstance</string> - <string>tabView</string> <string>tableContentInstance</string> <string>tableDataInstance</string> <string>tableDocumentInstance</string> @@ -3825,7 +3961,7 @@ <string>toolbarAddButton</string> <string>toolbarReloadButton</string> <string>truncateTableButton</string> - <string>truncateTableContextButton</string> + <string>truncateTableContextMenuItem</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -3878,6 +4014,14 @@ <string key="candidateClassName">NSSearchField</string> </object> <object class="IBToOneOutletInfo"> + <string key="name">openTableInNewTabContextMenuItem</string> + <string key="candidateClassName">NSMenuItem</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">openTableInNewTabMenuItem</string> + <string key="candidateClassName">NSMenuItem</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">removeTableContextMenuItem</string> <string key="candidateClassName">NSMenuItem</string> </object> @@ -3922,10 +4066,6 @@ <string key="candidateClassName">SPHistoryController</string> </object> <object class="IBToOneOutletInfo"> - <string key="name">tabView</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBToOneOutletInfo"> <string key="name">tableContentInstance</string> <string key="candidateClassName">id</string> </object> @@ -4002,8 +4142,8 @@ <string key="candidateClassName">id</string> </object> <object class="IBToOneOutletInfo"> - <string key="name">truncateTableContextButton</string> - <string key="candidateClassName">id</string> + <string key="name">truncateTableContextMenuItem</string> + <string key="candidateClassName">NSMenuItem</string> </object> </object> </object> @@ -4451,6 +4591,27 @@ <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRRecorderCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRRecorderControl.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRValidator.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> <string key="minorKey">Sparkle.framework/Headers/SUAppcast.h</string> </object> </object> diff --git a/Interfaces/English.lproj/MainMenu.xib b/Interfaces/English.lproj/MainMenu.xib index 71e0d7f3..9b2d90a0 100644 --- a/Interfaces/English.lproj/MainMenu.xib +++ b/Interfaces/English.lproj/MainMenu.xib @@ -2,17 +2,17 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">10H574</string> + <string key="IBDocument.SystemVersion">10J567</string> <string key="IBDocument.InterfaceBuilderVersion">788</string> <string key="IBDocument.AppKitVersion">1038.35</string> - <string key="IBDocument.HIToolboxVersion">461.00</string> + <string key="IBDocument.HIToolboxVersion">462.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="NS.object.0">788</string> </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="1178"/> + <integer value="498"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -256,7 +256,7 @@ <bool key="NSIsAlternate">YES</bool> <string key="NSTitle">Duplicate Connection Tab</string> <string key="NSKeyEquiv">t</string> - <int key="NSKeyEquivModMask">1310720</int> + <int key="NSKeyEquivModMask">524288</int> <int key="NSMnemonicLoc">2147483647</int> <reference key="NSOnImage" ref="625762401"/> <reference key="NSMixedImage" ref="315854375"/> @@ -1120,6 +1120,16 @@ <reference key="NSOnImage" ref="625762401"/> <reference key="NSMixedImage" ref="315854375"/> </object> + <object class="NSMenuItem" id="693676640"> + <reference key="NSMenu" ref="466354362"/> + <bool key="NSIsDisabled">YES</bool> + <bool key="NSIsSeparator">YES</bool> + <string key="NSTitle"/> + <string key="NSKeyEquiv"/> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="625762401"/> + <reference key="NSMixedImage" ref="315854375"/> + </object> <object class="NSMenuItem" id="986291195"> <reference key="NSMenu" ref="466354362"/> <string key="NSTitle">Show Navigator</string> @@ -1578,6 +1588,16 @@ </object> </object> </object> + <object class="NSMenuItem" id="988156931"> + <reference key="NSMenu" ref="172963563"/> + <bool key="NSIsDisabled">YES</bool> + <bool key="NSIsSeparator">YES</bool> + <string key="NSTitle"/> + <string key="NSKeyEquiv"/> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="625762401"/> + <reference key="NSMixedImage" ref="315854375"/> + </object> <object class="NSMenuItem" id="929597005"> <reference key="NSMenu" ref="172963563"/> <string key="NSTitle">Open Database in New Tab</string> @@ -1760,7 +1780,6 @@ </object> <object class="NSMenuItem" id="558064231"> <reference key="NSMenu" ref="171386461"/> - <bool key="NSIsHidden">YES</bool> <string key="NSTitle">Bundles</string> <string key="NSKeyEquiv"/> <int key="NSMnemonicLoc">2147483647</int> @@ -3103,6 +3122,14 @@ </object> <int key="connectionID">1190</int> </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">delegate</string> + <reference key="source" ref="171386461"/> + <reference key="destination" ref="432083121"/> + </object> + <int key="connectionID">1193</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -3469,6 +3496,7 @@ <reference ref="935082963"/> <reference ref="219440274"/> <reference ref="929597005"/> + <reference ref="988156931"/> </object> <reference key="parent" ref="693420496"/> </object> @@ -4273,6 +4301,7 @@ <reference ref="330038521"/> <reference ref="167719771"/> <reference ref="95850380"/> + <reference ref="693676640"/> </object> <reference key="parent" ref="401969940"/> </object> @@ -4536,6 +4565,16 @@ <reference key="object" ref="929597005"/> <reference key="parent" ref="172963563"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">1194</int> + <reference key="object" ref="693676640"/> + <reference key="parent" ref="466354362"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">1195</int> + <reference key="object" ref="988156931"/> + <reference key="parent" ref="172963563"/> + </object> </object> </object> <object class="NSMutableDictionary" key="flattenedProperties"> @@ -4613,6 +4652,8 @@ <string>1186.IBPluginDependency</string> <string>1186.ImportedFromIB2</string> <string>1189.IBPluginDependency</string> + <string>1194.IBPluginDependency</string> + <string>1195.IBPluginDependency</string> <string>129.IBPluginDependency</string> <string>129.ImportedFromIB2</string> <string>130.IBEditorWindowLastContentRect</string> @@ -4928,7 +4969,7 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{578, 550}, {271, 173}}</string> + <string>{{847, 311}, {271, 173}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>{{561, 605}, {181, 43}}</string> @@ -5000,7 +5041,7 @@ </object> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{435, 717}, {64, 6}}</string> + <string>{{704, 478}, {64, 6}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <object class="NSMutableDictionary"> <string key="NS.key.0">ToolTip</string> @@ -5014,6 +5055,8 @@ <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>{{562, 439}, {64, 6}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -5059,7 +5102,7 @@ <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> - <string>{{279, 363}, {280, 303}}</string> + <string>{{402, 179}, {280, 303}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>{{654, 613}, {157, 223}}</string> @@ -5087,11 +5130,11 @@ <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> - <string>{{507, 580}, {269, 143}}</string> + <string>{{705, 339}, {269, 143}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>{{449, 1007}, {197, 53}}</string> - <string>{{56, 723}, {583, 20}}</string> + <string>{{254, 482}, {583, 20}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>{{506, 836}, {511, 20}}</string> @@ -5107,7 +5150,7 @@ <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> - <string>{{526, 339}, {251, 323}}</string> + <string>{{446, 149}, {251, 333}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>{{698, 703}, {184, 133}}</string> @@ -5133,7 +5176,7 @@ <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> - <string>{{298, 420}, {273, 303}}</string> + <string>{{567, 171}, {273, 313}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>{{312, 683}, {231, 153}}</string> @@ -5200,7 +5243,7 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{379, 490}, {292, 233}}</string> + <string>{{648, 251}, {292, 233}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{{829, 663}, {268, 173}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -5226,7 +5269,7 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{162, 280}, {295, 443}}</string> + <string>{{360, 39}, {295, 443}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>{{180, 535}, {182, 253}}</string> @@ -5399,7 +5442,7 @@ </object> </object> <nil key="sourceID"/> - <int key="maxID">1190</int> + <int key="maxID">1206</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -5642,6 +5685,13 @@ </object> <object class="IBPartialClassDescription"> <string key="className">NSMenu</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPMenuAdditions.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSMenu</string> <string key="superclassName">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBUserSource</string> @@ -5953,8 +6003,10 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> + <string>bundleCommandDispatcher:</string> <string>donate:</string> <string>duplicateTab:</string> + <string>executeBundleItemForApp:</string> <string>newTab:</string> <string>newWindow:</string> <string>openAboutPanel:</string> @@ -5986,14 +6038,18 @@ <string>id</string> <string>id</string> <string>id</string> + <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="actionInfosByName"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> + <string>bundleCommandDispatcher:</string> <string>donate:</string> <string>duplicateTab:</string> + <string>executeBundleItemForApp:</string> <string>newTab:</string> <string>newWindow:</string> <string>openAboutPanel:</string> @@ -6011,6 +6067,10 @@ <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBActionInfo"> + <string key="name">bundleCommandDispatcher:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">donate:</string> <string key="candidateClassName">id</string> </object> @@ -6019,6 +6079,10 @@ <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">executeBundleItemForApp:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">newTab:</string> <string key="candidateClassName">id</string> </object> @@ -6117,6 +6181,25 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">SPBundleCommandTextView</string> + <string key="superclassName">NSTextView</string> + <object class="NSMutableDictionary" key="outlets"> + <string key="NS.key.0">commandScrollView</string> + <string key="NS.object.0">NSScrollView</string> + </object> + <object class="NSMutableDictionary" key="toOneOutletInfosByName"> + <string key="NS.key.0">commandScrollView</string> + <object class="IBToOneOutletInfo" key="NS.object.0"> + <string key="name">commandScrollView</string> + <string key="candidateClassName">NSScrollView</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPBundleCommandTextView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">SPBundleEditorController</string> <string key="superclassName">NSWindowController</string> <object class="NSMutableDictionary" key="actions"> @@ -6124,16 +6207,23 @@ <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>addCommandBundle:</string> + <string>closeUndeleteDefaultBundlesSheet:</string> <string>duplicateCommandBundle:</string> <string>inputFallbackPopupButtonChanged:</string> <string>inputPopupButtonChanged:</string> + <string>metaButtonChanged:</string> <string>outputPopupButtonChanged:</string> + <string>performClose:</string> + <string>reloadBundles:</string> <string>removeCommandBundle:</string> <string>revealCommandBundleInFinder:</string> <string>saveAndCloseWindow:</string> <string>saveBundle:</string> <string>scopeButtonChanged:</string> <string>showHelp:</string> + <string>triggerButtonChanged:</string> + <string>undeleteDefaultBundles:</string> + <string>withBlobButtonChanged:</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -6148,6 +6238,13 @@ <string>id</string> <string>id</string> <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="actionInfosByName"> @@ -6155,16 +6252,23 @@ <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>addCommandBundle:</string> + <string>closeUndeleteDefaultBundlesSheet:</string> <string>duplicateCommandBundle:</string> <string>inputFallbackPopupButtonChanged:</string> <string>inputPopupButtonChanged:</string> + <string>metaButtonChanged:</string> <string>outputPopupButtonChanged:</string> + <string>performClose:</string> + <string>reloadBundles:</string> <string>removeCommandBundle:</string> <string>revealCommandBundleInFinder:</string> <string>saveAndCloseWindow:</string> <string>saveBundle:</string> <string>scopeButtonChanged:</string> <string>showHelp:</string> + <string>triggerButtonChanged:</string> + <string>undeleteDefaultBundles:</string> + <string>withBlobButtonChanged:</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -6173,6 +6277,10 @@ <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">closeUndeleteDefaultBundlesSheet:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">duplicateCommandBundle:</string> <string key="candidateClassName">id</string> </object> @@ -6185,10 +6293,22 @@ <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">metaButtonChanged:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">outputPopupButtonChanged:</string> <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">performClose:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">reloadBundles:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">removeCommandBundle:</string> <string key="candidateClassName">id</string> </object> @@ -6212,121 +6332,223 @@ <string key="name">showHelp:</string> <string key="candidateClassName">id</string> </object> + <object class="IBActionInfo"> + <string key="name">triggerButtonChanged:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">undeleteDefaultBundles:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">withBlobButtonChanged:</string> + <string key="candidateClassName">id</string> + </object> </object> </object> <object class="NSMutableDictionary" key="outlets"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> + <string>addButton</string> + <string>authorLabelField</string> + <string>authorTextField</string> + <string>cancelButton</string> <string>categoryTextField</string> - <string>commandBundleArrayController</string> + <string>commandBundleTreeController</string> + <string>commandLabelField</string> + <string>commandScrollView</string> <string>commandTextView</string> - <string>commandsTableView</string> - <string>dataTableScopeButton</string> - <string>disableCheckBox</string> + <string>commandsOutlineView</string> + <string>contactLabelField</string> + <string>contactTextField</string> + <string>descriptionLabelField</string> + <string>descriptionScrollView</string> + <string>descriptionTextView</string> + <string>disabledCheckbox</string> <string>duplicateMenuItem</string> - <string>editorScopeButton</string> <string>fallbackLabelField</string> + <string>helpButton</string> <string>inputFallbackPopupButton</string> - <string>inputFieldScopeButton</string> <string>inputPopupButton</string> <string>keyEquivalentField</string> <string>nameTextField</string> <string>outputPopupButton</string> <string>removeButton</string> <string>revealInFinderMenuItem</string> - <string>tootlipTextField</string> + <string>saveButton</string> + <string>scopePopupButton</string> + <string>showHideMetaButton</string> + <string>splitView</string> + <string>tooltipTextField</string> + <string>triggerPopupButton</string> + <string>undeleteSheet</string> + <string>undeleteTableView</string> + <string>withBlobLabelField</string> + <string>withBlobPopupButton</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> + <string>NSButton</string> + <string>NSTextField</string> <string>NSTextField</string> - <string>NSArrayController</string> - <string>id</string> - <string>NSTableView</string> <string>NSButton</string> + <string>NSTextField</string> + <string>NSTreeController</string> + <string>NSTextField</string> + <string>NSScrollView</string> + <string>SPBundleCommandTextView</string> + <string>SPOutlineView</string> + <string>NSTextField</string> + <string>NSTextField</string> + <string>NSTextField</string> + <string>NSScrollView</string> + <string>NSTextView</string> <string>NSButton</string> <string>NSMenuItem</string> - <string>NSButton</string> <string>NSTextField</string> - <string>NSPopUpButton</string> <string>NSButton</string> <string>NSPopUpButton</string> + <string>NSPopUpButton</string> <string>SRRecorderControl</string> <string>NSTextField</string> <string>NSPopUpButton</string> <string>NSButton</string> <string>NSMenuItem</string> + <string>NSButton</string> + <string>NSPopUpButton</string> + <string>NSButton</string> + <string>BWSplitView</string> + <string>NSTextField</string> + <string>NSPopUpButton</string> + <string>id</string> + <string>NSTableView</string> <string>NSTextField</string> + <string>NSPopUpButton</string> </object> </object> <object class="NSMutableDictionary" key="toOneOutletInfosByName"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> + <string>addButton</string> + <string>authorLabelField</string> + <string>authorTextField</string> + <string>cancelButton</string> <string>categoryTextField</string> - <string>commandBundleArrayController</string> + <string>commandBundleTreeController</string> + <string>commandLabelField</string> + <string>commandScrollView</string> <string>commandTextView</string> - <string>commandsTableView</string> - <string>dataTableScopeButton</string> - <string>disableCheckBox</string> + <string>commandsOutlineView</string> + <string>contactLabelField</string> + <string>contactTextField</string> + <string>descriptionLabelField</string> + <string>descriptionScrollView</string> + <string>descriptionTextView</string> + <string>disabledCheckbox</string> <string>duplicateMenuItem</string> - <string>editorScopeButton</string> <string>fallbackLabelField</string> + <string>helpButton</string> <string>inputFallbackPopupButton</string> - <string>inputFieldScopeButton</string> <string>inputPopupButton</string> <string>keyEquivalentField</string> <string>nameTextField</string> <string>outputPopupButton</string> <string>removeButton</string> <string>revealInFinderMenuItem</string> - <string>tootlipTextField</string> + <string>saveButton</string> + <string>scopePopupButton</string> + <string>showHideMetaButton</string> + <string>splitView</string> + <string>tooltipTextField</string> + <string>triggerPopupButton</string> + <string>undeleteSheet</string> + <string>undeleteTableView</string> + <string>withBlobLabelField</string> + <string>withBlobPopupButton</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBToOneOutletInfo"> + <string key="name">addButton</string> + <string key="candidateClassName">NSButton</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">authorLabelField</string> + <string key="candidateClassName">NSTextField</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">authorTextField</string> + <string key="candidateClassName">NSTextField</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">cancelButton</string> + <string key="candidateClassName">NSButton</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">categoryTextField</string> <string key="candidateClassName">NSTextField</string> </object> <object class="IBToOneOutletInfo"> - <string key="name">commandBundleArrayController</string> - <string key="candidateClassName">NSArrayController</string> + <string key="name">commandBundleTreeController</string> + <string key="candidateClassName">NSTreeController</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">commandLabelField</string> + <string key="candidateClassName">NSTextField</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">commandScrollView</string> + <string key="candidateClassName">NSScrollView</string> </object> <object class="IBToOneOutletInfo"> <string key="name">commandTextView</string> - <string key="candidateClassName">id</string> + <string key="candidateClassName">SPBundleCommandTextView</string> </object> <object class="IBToOneOutletInfo"> - <string key="name">commandsTableView</string> - <string key="candidateClassName">NSTableView</string> + <string key="name">commandsOutlineView</string> + <string key="candidateClassName">SPOutlineView</string> </object> <object class="IBToOneOutletInfo"> - <string key="name">dataTableScopeButton</string> - <string key="candidateClassName">NSButton</string> + <string key="name">contactLabelField</string> + <string key="candidateClassName">NSTextField</string> </object> <object class="IBToOneOutletInfo"> - <string key="name">disableCheckBox</string> - <string key="candidateClassName">NSButton</string> + <string key="name">contactTextField</string> + <string key="candidateClassName">NSTextField</string> </object> <object class="IBToOneOutletInfo"> - <string key="name">duplicateMenuItem</string> - <string key="candidateClassName">NSMenuItem</string> + <string key="name">descriptionLabelField</string> + <string key="candidateClassName">NSTextField</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">descriptionScrollView</string> + <string key="candidateClassName">NSScrollView</string> </object> <object class="IBToOneOutletInfo"> - <string key="name">editorScopeButton</string> + <string key="name">descriptionTextView</string> + <string key="candidateClassName">NSTextView</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">disabledCheckbox</string> <string key="candidateClassName">NSButton</string> </object> <object class="IBToOneOutletInfo"> + <string key="name">duplicateMenuItem</string> + <string key="candidateClassName">NSMenuItem</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">fallbackLabelField</string> <string key="candidateClassName">NSTextField</string> </object> <object class="IBToOneOutletInfo"> - <string key="name">inputFallbackPopupButton</string> - <string key="candidateClassName">NSPopUpButton</string> + <string key="name">helpButton</string> + <string key="candidateClassName">NSButton</string> </object> <object class="IBToOneOutletInfo"> - <string key="name">inputFieldScopeButton</string> - <string key="candidateClassName">NSButton</string> + <string key="name">inputFallbackPopupButton</string> + <string key="candidateClassName">NSPopUpButton</string> </object> <object class="IBToOneOutletInfo"> <string key="name">inputPopupButton</string> @@ -6353,9 +6575,45 @@ <string key="candidateClassName">NSMenuItem</string> </object> <object class="IBToOneOutletInfo"> - <string key="name">tootlipTextField</string> + <string key="name">saveButton</string> + <string key="candidateClassName">NSButton</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">scopePopupButton</string> + <string key="candidateClassName">NSPopUpButton</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">showHideMetaButton</string> + <string key="candidateClassName">NSButton</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">splitView</string> + <string key="candidateClassName">BWSplitView</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">tooltipTextField</string> + <string key="candidateClassName">NSTextField</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">triggerPopupButton</string> + <string key="candidateClassName">NSPopUpButton</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">undeleteSheet</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">undeleteTableView</string> + <string key="candidateClassName">NSTableView</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">withBlobLabelField</string> <string key="candidateClassName">NSTextField</string> </object> + <object class="IBToOneOutletInfo"> + <string key="name">withBlobPopupButton</string> + <string key="candidateClassName">NSPopUpButton</string> + </object> </object> </object> <object class="IBClassDescriptionSource" key="sourceIdentifier"> @@ -6539,7 +6797,7 @@ <string>NSTextView</string> <string>NSWindow</string> <string>NSMenuItem</string> - <string>NSTableView</string> + <string>SPFavoritesOutlineView</string> <string>NSButton</string> <string>NSProgressIndicator</string> <string>NSTextField</string> @@ -6657,7 +6915,7 @@ </object> <object class="IBToOneOutletInfo"> <string key="name">favoritesTable</string> - <string key="candidateClassName">NSTableView</string> + <string key="candidateClassName">SPFavoritesOutlineView</string> </object> <object class="IBToOneOutletInfo"> <string key="name">helpButton</string> @@ -7051,6 +7309,7 @@ <string>editorFontMenuItem</string> <string>encodingPopUp</string> <string>errorText</string> + <string>errorTextScrollView</string> <string>helpNavigator</string> <string>helpSearchField</string> <string>helpSearchFieldCell</string> @@ -7106,6 +7365,7 @@ <string>NSMenuItem</string> <string>NSPopUpButton</string> <string>id</string> + <string>NSScrollView</string> <string>NSSegmentedControl</string> <string>NSSearchField</string> <string>NSSearchFieldCell</string> @@ -7164,6 +7424,7 @@ <string>editorFontMenuItem</string> <string>encodingPopUp</string> <string>errorText</string> + <string>errorTextScrollView</string> <string>helpNavigator</string> <string>helpSearchField</string> <string>helpSearchFieldCell</string> @@ -7265,6 +7526,10 @@ <string key="candidateClassName">id</string> </object> <object class="IBToOneOutletInfo"> + <string key="name">errorTextScrollView</string> + <string key="candidateClassName">NSScrollView</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">helpNavigator</string> <string key="candidateClassName">NSSegmentedControl</string> </object> @@ -7767,6 +8032,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> + <string>activitiesScrollView</string> <string>addDatabaseButton</string> <string>chooseDatabaseButton</string> <string>connectionErrorDialog</string> @@ -7820,6 +8086,7 @@ <string>tableDataInstance</string> <string>tableDumpInstance</string> <string>tableInfoCollapseButton</string> + <string>tableInfoScrollView</string> <string>tableInfoTable</string> <string>tableListSplitter</string> <string>tableRelationsInstance</string> @@ -7838,6 +8105,7 @@ </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> + <string>NSScrollView</string> <string>id</string> <string>id</string> <string>NSWindow</string> @@ -7891,6 +8159,7 @@ <string>id</string> <string>id</string> <string>NSButton</string> + <string>NSScrollView</string> <string>NSTableView</string> <string>NSSplitView</string> <string>id</string> @@ -7912,6 +8181,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> + <string>activitiesScrollView</string> <string>addDatabaseButton</string> <string>chooseDatabaseButton</string> <string>connectionErrorDialog</string> @@ -7965,6 +8235,7 @@ <string>tableDataInstance</string> <string>tableDumpInstance</string> <string>tableInfoCollapseButton</string> + <string>tableInfoScrollView</string> <string>tableInfoTable</string> <string>tableListSplitter</string> <string>tableRelationsInstance</string> @@ -7984,6 +8255,10 @@ <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBToOneOutletInfo"> + <string key="name">activitiesScrollView</string> + <string key="candidateClassName">NSScrollView</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">addDatabaseButton</string> <string key="candidateClassName">id</string> </object> @@ -8196,6 +8471,10 @@ <string key="candidateClassName">NSButton</string> </object> <object class="IBToOneOutletInfo"> + <string key="name">tableInfoScrollView</string> + <string key="candidateClassName">NSScrollView</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">tableInfoTable</string> <string key="candidateClassName">NSTableView</string> </object> @@ -8518,6 +8797,7 @@ <string>exportCustomFilenameViewButton</string> <string>exportCustomFilenameViewLabelButton</string> <string>exportDeselectAllTablesButton</string> + <string>exportDotForceLowerTableNamesCheck</string> <string>exportExcelSheetOrFilePerTableMatrix</string> <string>exportFilePerTableCheck</string> <string>exportFilenameDividerBox</string> @@ -8575,6 +8855,7 @@ <string>NSButton</string> <string>NSButton</string> <string>NSButton</string> + <string>NSButton</string> <string>NSMatrix</string> <string>NSButton</string> <string>NSBox</string> @@ -8635,6 +8916,7 @@ <string>exportCustomFilenameViewButton</string> <string>exportCustomFilenameViewLabelButton</string> <string>exportDeselectAllTablesButton</string> + <string>exportDotForceLowerTableNamesCheck</string> <string>exportExcelSheetOrFilePerTableMatrix</string> <string>exportFilePerTableCheck</string> <string>exportFilenameDividerBox</string> @@ -8750,6 +9032,10 @@ <string key="candidateClassName">NSButton</string> </object> <object class="IBToOneOutletInfo"> + <string key="name">exportDotForceLowerTableNamesCheck</string> + <string key="candidateClassName">NSButton</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">exportExcelSheetOrFilePerTableMatrix</string> <string key="candidateClassName">NSMatrix</string> </object> @@ -8953,6 +9239,14 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">SPFavoritesOutlineView</string> + <string key="superclassName">NSOutlineView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPFavoritesOutlineView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">SPHistoryController</string> <string key="superclassName">NSObject</string> <object class="NSMutableDictionary" key="actions"> @@ -9004,6 +9298,14 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">SPOutlineView</string> + <string key="superclassName">NSOutlineView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPOutlineView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">SPProcessListController</string> <string key="superclassName">NSWindowController</string> <object class="NSMutableDictionary" key="actions"> @@ -10077,35 +10379,14 @@ <string key="className">SPTextView</string> <string key="superclassName">NSTextView</string> <object class="NSMutableDictionary" key="actions"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>executeBundleItemForEditor:</string> - <string>showMySQLHelpForCurrentWord:</string> - </object> - <object class="NSMutableArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>id</string> - <string>id</string> - </object> + <string key="NS.key.0">showMySQLHelpForCurrentWord:</string> + <string key="NS.object.0">id</string> </object> <object class="NSMutableDictionary" key="actionInfosByName"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>executeBundleItemForEditor:</string> - <string>showMySQLHelpForCurrentWord:</string> - </object> - <object class="NSMutableArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="IBActionInfo"> - <string key="name">executeBundleItemForEditor:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">showMySQLHelpForCurrentWord:</string> - <string key="candidateClassName">id</string> - </object> + <string key="NS.key.0">showMySQLHelpForCurrentWord:</string> + <object class="IBActionInfo" key="NS.object.0"> + <string key="name">showMySQLHelpForCurrentWord:</string> + <string key="candidateClassName">id</string> </object> </object> <object class="NSMutableDictionary" key="outlets"> @@ -10178,6 +10459,7 @@ <string>addSchemaPriv:</string> <string>addUser:</string> <string>checkAllPrivileges:</string> + <string>closeErrorsSheet:</string> <string>doApply:</string> <string>doCancel:</string> <string>refresh:</string> @@ -10199,6 +10481,7 @@ <string>id</string> <string>id</string> <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="actionInfosByName"> @@ -10209,6 +10492,7 @@ <string>addSchemaPriv:</string> <string>addUser:</string> <string>checkAllPrivileges:</string> + <string>closeErrorsSheet:</string> <string>doApply:</string> <string>doCancel:</string> <string>refresh:</string> @@ -10236,6 +10520,10 @@ <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">closeErrorsSheet:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">doApply:</string> <string key="candidateClassName">id</string> </object> @@ -10272,6 +10560,8 @@ <string>addSchemaPrivButton</string> <string>availableController</string> <string>availableTableView</string> + <string>errorsSheet</string> + <string>errorsTextView</string> <string>grantedController</string> <string>grantedTableView</string> <string>maxConnectionsTextField</string> @@ -10292,6 +10582,8 @@ <string>NSButton</string> <string>NSArrayController</string> <string>NSTableView</string> + <string>NSWindow</string> + <string>NSTextView</string> <string>NSArrayController</string> <string>NSTableView</string> <string>NSTextField</string> @@ -10315,6 +10607,8 @@ <string>addSchemaPrivButton</string> <string>availableController</string> <string>availableTableView</string> + <string>errorsSheet</string> + <string>errorsTextView</string> <string>grantedController</string> <string>grantedTableView</string> <string>maxConnectionsTextField</string> @@ -10345,6 +10639,14 @@ <string key="candidateClassName">NSTableView</string> </object> <object class="IBToOneOutletInfo"> + <string key="name">errorsSheet</string> + <string key="candidateClassName">NSWindow</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">errorsTextView</string> + <string key="candidateClassName">NSTextView</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">grantedController</string> <string key="candidateClassName">NSArrayController</string> </object> diff --git a/Interfaces/English.lproj/MainWindow.xib b/Interfaces/English.lproj/MainWindow.xib index ce80bb42..fe840a94 100644 --- a/Interfaces/English.lproj/MainWindow.xib +++ b/Interfaces/English.lproj/MainWindow.xib @@ -2,10 +2,10 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">10F569</string> + <string key="IBDocument.SystemVersion">10J567</string> <string key="IBDocument.InterfaceBuilderVersion">788</string> - <string key="IBDocument.AppKitVersion">1038.29</string> - <string key="IBDocument.HIToolboxVersion">461.00</string> + <string key="IBDocument.AppKitVersion">1038.35</string> + <string key="IBDocument.HIToolboxVersion">462.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="NS.object.0">788</string> @@ -44,7 +44,7 @@ <string key="NSWindowRect">{{238, 168}, {948, 555}}</string> <int key="NSWTFlags">544735232</int> <string key="NSWindowTitle">Window</string> - <string key="NSWindowClass">NSWindow</string> + <string key="NSWindowClass">SPWindow</string> <nil key="NSViewClass"/> <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSWindowContentMinSize">{705, 400}</string> @@ -224,9 +224,9 @@ </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>{{321, 246}, {948, 555}}</string> + <string>{{54, 246}, {948, 555}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{321, 246}, {948, 555}}</string> + <string>{{54, 246}, {948, 555}}</string> <boolean value="NO"/> <string>{196, 240}</string> <string>{{202, 428}, {480, 270}}</string> @@ -266,10 +266,10 @@ </object> </object> <object class="IBPartialClassDescription"> - <string key="className">NSObject</string> + <string key="className">NSMenu</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> - <string key="minorKey">Frameworks/MCPKit/MCPFoundationKit/MCPConnection.h</string> + <string key="minorKey">Source/SPMenuAdditions.h</string> </object> </object> <object class="IBPartialClassDescription"> @@ -434,6 +434,14 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">SPWindow</string> + <string key="superclassName">NSWindow</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPWindow.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">SPWindowController</string> <string key="superclassName">NSWindowController</string> <object class="NSMutableDictionary" key="actions"> @@ -900,6 +908,27 @@ <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRRecorderCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRRecorderControl.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRValidator.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> <string key="minorKey">Sparkle.framework/Headers/SUAppcast.h</string> </object> </object> diff --git a/Interfaces/English.lproj/Preferences.xib b/Interfaces/English.lproj/Preferences.xib index 17f5b526..97017f06 100644 --- a/Interfaces/English.lproj/Preferences.xib +++ b/Interfaces/English.lproj/Preferences.xib @@ -2,10 +2,10 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">10H574</string> + <string key="IBDocument.SystemVersion">10J567</string> <string key="IBDocument.InterfaceBuilderVersion">823</string> <string key="IBDocument.AppKitVersion">1038.35</string> - <string key="IBDocument.HIToolboxVersion">461.00</string> + <string key="IBDocument.HIToolboxVersion">462.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> @@ -66,43 +66,6 @@ <object class="NSUserDefaultsController" id="151174232"> <bool key="NSSharedInstance">YES</bool> </object> - <object class="NSArrayController" id="937123943"> - <object class="NSMutableArray" key="NSDeclaredKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>name</string> - <string>fav</string> - <string>host</string> - <string>user</string> - <string>database</string> - <string>socket</string> - <string>port</string> - <string>useSSH</string> - <string>sshHost</string> - <string>sshUser</string> - <string>sshPort</string> - <object class="NSMutableString"> - <characters key="NS.bytes">selectedFavoritePassword</characters> - </object> - <string>DisplayTableViewVerticalGridlines</string> - <string>type</string> - <string>TableRowCountQueryLevel</string> - <string>sshKeyLocationEnabled</string> - <string>sshKeyLocation</string> - <string>useSSL</string> - <string>sslKeyFileLocation</string> - <string>sslKeyFileLocationEnabled</string> - <string>sslCertificateFileLocation</string> - <string>sslCertificateFileLocationEnabled</string> - <string>sslCACertFileLocation</string> - <string>sslCACertFileLocationEnabled</string> - </object> - <bool key="NSEditable">YES</bool> - <bool key="NSAutomaticallyPreparesContent">YES</bool> - <object class="_NSManagedProxy" key="_NSManagedProxy"/> - <bool key="NSSelectsInsertedObjects">YES</bool> - <bool key="NSFilterRestrictsInsertion">YES</bool> - <bool key="NSClearsFilterPredicateOnInsertion">YES</bool> - </object> <object class="NSWindowTemplate" id="1005"> <int key="NSWindowStyleMask">4107</int> <int key="NSWindowBacking">2</int> @@ -2533,15 +2496,128 @@ AQAAAAA</bytes> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="1033452264"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder"/> <int key="NSvFlags">268</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSStepper" id="720862952"> + <reference key="NSNextResponder" ref="1033452264"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{437, 251}, {15, 22}}</string> + <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> + <bool key="NSEnabled">YES</bool> + <object class="NSStepperCell" key="NSCell" id="241334663"> + <int key="NSCellFlags">68025888</int> + <int key="NSCellFlags2">131072</int> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="720862952"/> + <double key="NSValue">1</double> + <double key="NSMinValue">1</double> + <double key="NSMaxValue">32</double> + <double key="NSIncrement">1</double> + <bool key="NSAutorepeat">YES</bool> + </object> + </object> + <object class="NSTextField" id="277335147"> + <reference key="NSNextResponder" ref="1033452264"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{407, 253}, {23, 19}}</string> + <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="546511116"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">-2076048384</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="26"/> + <object class="NSNumberFormatter" key="NSFormatter" id="242266609"> + <object class="NSMutableDictionary" key="NS.attributes"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>allowsFloats</string> + <string>formatterBehavior</string> + <string>locale</string> + <string>maximum</string> + <string>minimum</string> + <string>negativeInfinitySymbol</string> + <string>nilSymbol</string> + <string>positiveInfinitySymbol</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <boolean value="NO"/> + <integer value="1040"/> + <reference ref="894463536"/> + <real value="32"/> + <real value="1"/> + <string>-∞</string> + <string/> + <string>+∞</string> + </object> + </object> + <string key="NS.positiveformat">#</string> + <string key="NS.negativeformat">#</string> + <nil key="NS.positiveattrs"/> + <nil key="NS.negativeattrs"/> + <nil key="NS.zero"/> + <object class="NSAttributedString" key="NS.nil"> + <string key="NSString"/> + </object> + <object class="NSAttributedString" key="NS.nan"> + <string key="NSString">NaN</string> + <reference key="NSAttributes" ref="938616923"/> + </object> + <real value="1" key="NS.min"/> + <real value="32" key="NS.max"/> + <object class="NSDecimalNumberHandler" key="NS.rounding"> + <int key="NS.roundingmode">3</int> + <bool key="NS.raise.overflow">YES</bool> + <bool key="NS.raise.underflow">YES</bool> + <bool key="NS.raise.dividebyzero">YES</bool> + </object> + <string key="NS.decimal">.</string> + <string key="NS.thousand">,</string> + <bool key="NS.hasthousands">NO</bool> + <bool key="NS.localized">NO</bool> + <bool key="NS.allowsfloats">NO</bool> + </object> + <reference key="NSControlView" ref="277335147"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="1001357688"/> + <reference key="NSTextColor" ref="6928728"/> + </object> + </object> + <object class="NSButton" id="378838807"> + <reference key="NSNextResponder" ref="1033452264"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{270, 254}, {131, 18}}</string> + <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="1729"> + <int key="NSCellFlags">-2080244224</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents">Soft indent</string> + <reference key="NSSupport" ref="320262838"/> + <reference key="NSControlView" ref="378838807"/> + <int key="NSButtonFlags">1211912703</int> + <int key="NSButtonFlags2">2</int> + <reference key="NSNormalImage" ref="752798171"/> + <reference key="NSAlternateImage" ref="888311049"/> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> <object class="NSTextField" id="187965597"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{124, 27}, {121, 14}}</string> + <string key="NSFrame">{{124, 21}, {121, 14}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="983858855"> <int key="NSCellFlags">68288064</int> @@ -2556,8 +2632,9 @@ AQAAAAA</bytes> <object class="NSTextField" id="919512780"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{49, 27}, {83, 14}}</string> + <string key="NSFrame">{{49, 21}, {83, 14}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="133660147"> <int key="NSCellFlags">68288064</int> @@ -2582,8 +2659,9 @@ AQAAAAA</bytes> <object class="NSTableView" id="953919633"> <reference key="NSNextResponder" ref="25515031"/> <int key="NSvFlags">256</int> - <string key="NSFrameSize">{220, 242}</string> + <string key="NSFrameSize">{220, 249}</string> <reference key="NSSuperview" ref="25515031"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="_NSCornerView" key="NSCornerView"> <nil key="NSNextResponder"/> @@ -2664,8 +2742,9 @@ AQAAAAA</bytes> <int key="NSTableViewDraggingDestinationStyle">0</int> </object> </object> - <string key="NSFrame">{{1, 1}, {220, 242}}</string> + <string key="NSFrame">{{1, 1}, {220, 249}}</string> <reference key="NSSuperview" ref="288292400"/> + <reference key="NSWindow"/> <reference key="NSNextKeyView" ref="953919633"/> <reference key="NSDocView" ref="953919633"/> <reference key="NSBGColor" ref="887465699"/> @@ -2676,6 +2755,7 @@ AQAAAAA</bytes> <int key="NSvFlags">-2147483392</int> <string key="NSFrame">{{-100, -100}, {15, 102}}</string> <reference key="NSSuperview" ref="288292400"/> + <reference key="NSWindow"/> <reference key="NSTarget" ref="288292400"/> <string key="NSAction">_doScroller:</string> <double key="NSPercent">0.99658703804016113</double> @@ -2685,14 +2765,16 @@ AQAAAAA</bytes> <int key="NSvFlags">-2147483392</int> <string key="NSFrame">{{-100, -100}, {223, 15}}</string> <reference key="NSSuperview" ref="288292400"/> + <reference key="NSWindow"/> <int key="NSsFlags">1</int> <reference key="NSTarget" ref="288292400"/> <string key="NSAction">_doScroller:</string> <double key="NSPercent">0.57142859697341919</double> </object> </object> - <string key="NSFrame">{{20, 54}, {222, 244}}</string> + <string key="NSFrame">{{20, 47}, {222, 251}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <reference key="NSNextKeyView" ref="25515031"/> <int key="NSsFlags">2</int> <reference key="NSVScroller" ref="662661535"/> @@ -2703,8 +2785,9 @@ AQAAAAA</bytes> <object class="NSPopUpButton" id="748242000"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{20, 22}, {24, 24}}</string> + <string key="NSFrame">{{20, 16}, {24, 24}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSPopUpButtonCell" key="NSCell" id="373813305"> <int key="NSCellFlags">71433792</int> @@ -2815,8 +2898,9 @@ AQAAAAA</bytes> <object class="NSTextField" id="1018119488"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{407, 20}, {23, 19}}</string> + <string key="NSFrame">{{407, 19}, {23, 19}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="248584789"> <int key="NSCellFlags">-1804468671</int> @@ -2887,8 +2971,9 @@ AQAAAAA</bytes> <object class="NSTextField" id="304684720"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{269, 22}, {133, 17}}</string> + <string key="NSFrame">{{269, 21}, {133, 17}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="273262177"> <int key="NSCellFlags">68288064</int> @@ -2903,8 +2988,9 @@ AQAAAAA</bytes> <object class="NSStepper" id="161634003"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{437, 18}, {15, 22}}</string> + <string key="NSFrame">{{437, 17}, {15, 22}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSStepperCell" key="NSCell" id="93125704"> <int key="NSCellFlags">68025888</int> @@ -2923,6 +3009,7 @@ AQAAAAA</bytes> <int key="NSvFlags">268</int> <string key="NSFrame">{{17, 322}, {182, 17}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="10706281"> <int key="NSCellFlags">68288064</int> @@ -2939,6 +3026,7 @@ AQAAAAA</bytes> <int key="NSvFlags">268</int> <string key="NSFrame">{{433, 313}, {133, 32}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="345790946"> <int key="NSCellFlags">67239424</int> @@ -2959,6 +3047,7 @@ AQAAAAA</bytes> <int key="NSvFlags">268</int> <string key="NSFrame">{{204, 320}, {207, 22}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="66452133"> <int key="NSCellFlags">-2076049856</int> @@ -2976,6 +3065,7 @@ AQAAAAA</bytes> <int key="NSvFlags">268</int> <string key="NSFrame">{{270, 282}, {292, 18}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="823431848"> <int key="NSCellFlags">-2080244224</int> @@ -2996,8 +3086,9 @@ AQAAAAA</bytes> <object class="NSButton" id="571822117"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{270, 253}, {292, 18}}</string> + <string key="NSFrame">{{270, 227}, {292, 18}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="743257684"> <int key="NSCellFlags">-2080244224</int> @@ -3018,8 +3109,9 @@ AQAAAAA</bytes> <object class="NSButton" id="1030846368"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{270, 195}, {292, 18}}</string> + <string key="NSFrame">{{270, 169}, {292, 18}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="231642073"> <int key="NSCellFlags">67239424</int> @@ -3040,8 +3132,9 @@ AQAAAAA</bytes> <object class="NSButton" id="397485802"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{270, 224}, {292, 18}}</string> + <string key="NSFrame">{{270, 198}, {292, 18}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="491730308"> <int key="NSCellFlags">-2080244224</int> @@ -3062,8 +3155,9 @@ AQAAAAA</bytes> <object class="NSButton" id="787536920"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{270, 138}, {292, 18}}</string> + <string key="NSFrame">{{270, 122}, {292, 18}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="496801621"> <int key="NSCellFlags">-2080244224</int> @@ -3084,8 +3178,9 @@ AQAAAAA</bytes> <object class="NSButton" id="782193237"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{270, 51}, {292, 18}}</string> + <string key="NSFrame">{{270, 45}, {292, 18}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="131748905"> <int key="NSCellFlags">67239424</int> @@ -3106,8 +3201,9 @@ AQAAAAA</bytes> <object class="NSButton" id="827082642"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{270, 109}, {292, 18}}</string> + <string key="NSFrame">{{270, 94}, {292, 18}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="92164221"> <int key="NSCellFlags">67239424</int> @@ -3128,8 +3224,9 @@ AQAAAAA</bytes> <object class="NSTextField" id="184945490"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{370, 84}, {29, 19}}</string> + <string key="NSFrame">{{370, 69}, {29, 19}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="409964321"> <int key="NSCellFlags">-1538130368</int> @@ -3201,8 +3298,9 @@ AQAAAAA</bytes> <object class="NSTextField" id="892250776"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{269, 86}, {96, 14}}</string> + <string key="NSFrame">{{269, 71}, {96, 14}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="1060023867"> <int key="NSCellFlags">605158976</int> @@ -3217,8 +3315,9 @@ AQAAAAA</bytes> <object class="NSStepper" id="107658761"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{405, 82}, {15, 22}}</string> + <string key="NSFrame">{{405, 67}, {15, 22}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSStepperCell" key="NSCell" id="171005061"> <int key="NSCellFlags">604896800</int> @@ -3235,8 +3334,9 @@ AQAAAAA</bytes> <object class="NSTextField" id="1009372112"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{423, 86}, {140, 14}}</string> + <string key="NSFrame">{{423, 71}, {140, 14}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="201150384"> <int key="NSCellFlags">605158976</int> @@ -3251,8 +3351,9 @@ AQAAAAA</bytes> <object class="NSButton" id="774563613"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">-2147483380</int> - <string key="NSFrame">{{270, -11}, {292, 18}}</string> + <string key="NSFrame">{{270, 0}, {292, 18}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="420702000"> <int key="NSCellFlags">-1543373312</int> @@ -3273,8 +3374,9 @@ AQAAAAA</bytes> <object class="NSTextField" id="16021182"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{370, 170}, {29, 19}}</string> + <string key="NSFrame">{{370, 144}, {29, 19}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="992523117"> <int key="NSCellFlags">-1538130368</int> @@ -3346,8 +3448,9 @@ AQAAAAA</bytes> <object class="NSTextField" id="140155660"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{269, 172}, {96, 14}}</string> + <string key="NSFrame">{{269, 146}, {96, 14}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="499174965"> <int key="NSCellFlags">605158976</int> @@ -3362,8 +3465,9 @@ AQAAAAA</bytes> <object class="NSStepper" id="682694750"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{405, 168}, {15, 22}}</string> + <string key="NSFrame">{{405, 142}, {15, 22}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSStepperCell" key="NSCell" id="266600395"> <int key="NSCellFlags">604896800</int> @@ -3380,8 +3484,9 @@ AQAAAAA</bytes> <object class="NSTextField" id="659498064"> <reference key="NSNextResponder" ref="1033452264"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{423, 172}, {140, 14}}</string> + <string key="NSFrame">{{423, 146}, {140, 14}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="516695546"> <int key="NSCellFlags">605158976</int> @@ -3398,6 +3503,7 @@ AQAAAAA</bytes> <int key="NSvFlags">12</int> <string key="NSFrame">{{204, 309}, {356, 5}}</string> <reference key="NSSuperview" ref="1033452264"/> + <reference key="NSWindow"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> @@ -3417,148 +3523,10 @@ AQAAAAA</bytes> </object> </object> <string key="NSFrameSize">{580, 360}</string> + <reference key="NSSuperview"/> + <reference key="NSWindow"/> <string key="NSClassName">NSView</string> </object> - <object class="NSCustomView" id="301032184"> - <nil key="NSNextResponder"/> - <int key="NSvFlags">274</int> - <object class="NSMutableArray" key="NSSubviews"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSTextField" id="200831972"> - <reference key="NSNextResponder" ref="301032184"/> - <int key="NSvFlags">274</int> - <string key="NSFrame">{{2, 10}, {575, 34}}</string> - <reference key="NSSuperview" ref="301032184"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="219723569"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">138674176</int> - <string key="NSContents">Choose a custom SSH key file to use with this connection. Note that standard locations like ~/.ssh are checked automatically, as are any files in your SSH configuration.</string> - <reference key="NSSupport" ref="718282869"/> - <reference key="NSControlView" ref="200831972"/> - <reference key="NSBackgroundColor" ref="700609571"/> - <reference key="NSTextColor" ref="1035618107"/> - </object> - </object> - </object> - <string key="NSFrameSize">{579, 51}</string> - <string key="NSClassName">NSView</string> - </object> - <object class="NSCustomView" id="46104894"> - <nil key="NSNextResponder"/> - <int key="NSvFlags">274</int> - <object class="NSMutableArray" key="NSSubviews"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSTextField" id="532539071"> - <reference key="NSNextResponder" ref="46104894"/> - <int key="NSvFlags">274</int> - <string key="NSFrame">{{2, 10}, {575, 17}}</string> - <reference key="NSSuperview" ref="46104894"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="925838195"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">138674176</int> - <string key="NSContents">Please select the SSL key file to use when establishing a secure connection.</string> - <reference key="NSSupport" ref="718282869"/> - <reference key="NSControlView" ref="532539071"/> - <reference key="NSBackgroundColor" ref="700609571"/> - <reference key="NSTextColor" ref="1035618107"/> - </object> - </object> - </object> - <string key="NSFrameSize">{579, 34}</string> - <string key="NSClassName">NSView</string> - </object> - <object class="NSCustomView" id="962978272"> - <nil key="NSNextResponder"/> - <int key="NSvFlags">274</int> - <object class="NSMutableArray" key="NSSubviews"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSTextField" id="624133663"> - <reference key="NSNextResponder" ref="962978272"/> - <int key="NSvFlags">274</int> - <string key="NSFrame">{{2, 10}, {575, 17}}</string> - <reference key="NSSuperview" ref="962978272"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="602926229"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">138674176</int> - <string key="NSContents">Please select the client SSL certificate file to use when establishing a secure connection.</string> - <reference key="NSSupport" ref="718282869"/> - <reference key="NSControlView" ref="624133663"/> - <reference key="NSBackgroundColor" ref="700609571"/> - <reference key="NSTextColor" ref="1035618107"/> - </object> - </object> - </object> - <string key="NSFrameSize">{579, 34}</string> - <string key="NSClassName">NSView</string> - </object> - <object class="NSCustomView" id="453507512"> - <nil key="NSNextResponder"/> - <int key="NSvFlags">274</int> - <object class="NSMutableArray" key="NSSubviews"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSTextField" id="534911197"> - <reference key="NSNextResponder" ref="453507512"/> - <int key="NSvFlags">274</int> - <string key="NSFrame">{{2, 10}, {575, 34}}</string> - <reference key="NSSuperview" ref="453507512"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="921051913"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">138674176</int> - <string key="NSContents">Please select the client SSL Certificate Authority certificate to use when establishing a secure connection. This must be the same as the server CA certificate.</string> - <reference key="NSSupport" ref="718282869"/> - <reference key="NSControlView" ref="534911197"/> - <reference key="NSBackgroundColor" ref="700609571"/> - <reference key="NSTextColor" ref="1035618107"/> - </object> - </object> - </object> - <string key="NSFrameSize">{579, 51}</string> - <string key="NSClassName">NSView</string> - </object> - <object class="NSMenu" id="982657201"> - <string key="NSTitle"/> - <object class="NSMutableArray" key="NSMenuItems"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMenuItem" id="30395779"> - <reference key="NSMenu" ref="982657201"/> - <string key="NSTitle">Remove</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="1039721224"/> - <reference key="NSMixedImage" ref="720177216"/> - </object> - <object class="NSMenuItem" id="580038192"> - <reference key="NSMenu" ref="982657201"/> - <string key="NSTitle">Duplicate</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="1039721224"/> - <reference key="NSMixedImage" ref="720177216"/> - </object> - <object class="NSMenuItem" id="102426580"> - <reference key="NSMenu" ref="982657201"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="1039721224"/> - <reference key="NSMixedImage" ref="720177216"/> - </object> - <object class="NSMenuItem" id="512106570"> - <reference key="NSMenu" ref="982657201"/> - <string key="NSTitle">Make Default</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="1039721224"/> - <reference key="NSMixedImage" ref="720177216"/> - </object> - </object> - </object> </object> <object class="IBObjectContainer" key="IBDocument.Objects"> <object class="NSMutableArray" key="connectionRecords"> @@ -3885,35 +3853,6 @@ AQAAAAA</bytes> </object> <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> - <string key="label">contentArray: values.favorites</string> - <reference key="source" ref="937123943"/> - <reference key="destination" ref="151174232"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="937123943"/> - <reference key="NSDestination" ref="151174232"/> - <string key="NSLabel">contentArray: values.favorites</string> - <string key="NSBinding">contentArray</string> - <string key="NSKeyPath">values.favorites</string> - <object class="NSDictionary" key="NSOptions"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>NSDeletesObjectsOnRemove</string> - <string>NSHandlesContentAsCompoundValue</string> - </object> - <object class="NSMutableArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - <boolean value="YES"/> - <boolean value="YES"/> - </object> - </object> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">782</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> <string key="label">value: values.CustomQueryMaxHistoryItems</string> <reference key="source" ref="155059"/> <reference key="destination" ref="151174232"/> @@ -4553,14 +4492,6 @@ AQAAAAA</bytes> <int key="connectionID">1545</int> </object> <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">delegate</string> - <reference key="source" ref="982657201"/> - <reference key="destination" ref="1001"/> - </object> - <int key="connectionID">1555</int> - </object> - <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> <string key="label">value: values.SUSendProfileInfo</string> <reference key="source" ref="467474047"/> @@ -4760,14 +4691,6 @@ AQAAAAA</bytes> </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">favoritesController</string> - <reference key="source" ref="343720994"/> - <reference key="destination" ref="937123943"/> - </object> - <int key="connectionID">2078</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">defaultFavoritePopup</string> <reference key="source" ref="343720994"/> <reference key="destination" ref="331339372"/> @@ -5114,6 +5037,62 @@ AQAAAAA</bytes> </object> <int key="connectionID">2184</int> </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: values.CustomQuerySoftIndent</string> + <reference key="source" ref="378838807"/> + <reference key="destination" ref="151174232"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="378838807"/> + <reference key="NSDestination" ref="151174232"/> + <string key="NSLabel">value: values.CustomQuerySoftIndent</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">values.CustomQuerySoftIndent</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">2200</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: values.CustomQuerySoftIndentWidth</string> + <reference key="source" ref="720862952"/> + <reference key="destination" ref="151174232"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="720862952"/> + <reference key="NSDestination" ref="151174232"/> + <string key="NSLabel">value: values.CustomQuerySoftIndentWidth</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">values.CustomQuerySoftIndentWidth</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">2205</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: values.CustomQuerySoftIndentWidth</string> + <reference key="source" ref="277335147"/> + <reference key="destination" ref="151174232"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="277335147"/> + <reference key="NSDestination" ref="151174232"/> + <string key="NSLabel">value: values.CustomQuerySoftIndentWidth</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">values.CustomQuerySoftIndentWidth</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">2209</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">takeIntegerValueFrom:</string> + <reference key="source" ref="277335147"/> + <reference key="destination" ref="720862952"/> + </object> + <int key="connectionID">2214</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -5474,12 +5453,6 @@ AQAAAAA</bytes> <reference key="parent" ref="0"/> </object> <object class="IBObjectRecord"> - <int key="objectID">254</int> - <reference key="object" ref="937123943"/> - <reference key="parent" ref="0"/> - <string key="objectName">Favorites</string> - </object> - <object class="IBObjectRecord"> <int key="objectID">331</int> <reference key="object" ref="721264488"/> <reference key="parent" ref="0"/> @@ -5966,12 +5939,15 @@ AQAAAAA</bytes> <reference ref="184945490"/> <reference ref="827082642"/> <reference ref="774563613"/> - <reference ref="782193237"/> <reference ref="742042283"/> <reference ref="288292400"/> <reference ref="748242000"/> <reference ref="919512780"/> <reference ref="187965597"/> + <reference ref="782193237"/> + <reference ref="378838807"/> + <reference ref="277335147"/> + <reference ref="720862952"/> </object> <reference key="parent" ref="0"/> <string key="objectName">Editor</string> @@ -6700,34 +6676,6 @@ AQAAAAA</bytes> <reference key="parent" ref="1007936999"/> </object> <object class="IBObjectRecord"> - <int key="objectID">1547</int> - <reference key="object" ref="982657201"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="30395779"/> - <reference ref="580038192"/> - <reference ref="102426580"/> - <reference ref="512106570"/> - </object> - <reference key="parent" ref="0"/> - <string key="objectName">Context Menu</string> - </object> - <object class="IBObjectRecord"> - <int key="objectID">1548</int> - <reference key="object" ref="30395779"/> - <reference key="parent" ref="982657201"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">1549</int> - <reference key="object" ref="580038192"/> - <reference key="parent" ref="982657201"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">1551</int> - <reference key="object" ref="102426580"/> - <reference key="parent" ref="982657201"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">1615</int> <reference key="object" ref="467474047"/> <object class="NSMutableArray" key="children"> @@ -6752,11 +6700,6 @@ AQAAAAA</bytes> <reference key="parent" ref="369742224"/> </object> <object class="IBObjectRecord"> - <int key="objectID">1640</int> - <reference key="object" ref="512106570"/> - <reference key="parent" ref="982657201"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">1669</int> <reference key="object" ref="748242000"/> <object class="NSMutableArray" key="children"> @@ -7134,136 +7077,91 @@ AQAAAAA</bytes> <reference key="parent" ref="202566886"/> </object> <object class="IBObjectRecord"> - <int key="objectID">1873</int> - <reference key="object" ref="301032184"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="200831972"/> - </object> + <int key="objectID">2074</int> + <reference key="object" ref="343720994"/> <reference key="parent" ref="0"/> - <string key="objectName">SSH Key Selection Help</string> + <string key="objectName">General</string> </object> <object class="IBObjectRecord"> - <int key="objectID">1874</int> - <reference key="object" ref="200831972"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="219723569"/> - </object> - <reference key="parent" ref="301032184"/> + <int key="objectID">2080</int> + <reference key="object" ref="673566620"/> + <reference key="parent" ref="0"/> + <string key="objectName">Tables</string> </object> <object class="IBObjectRecord"> - <int key="objectID">1875</int> - <reference key="object" ref="219723569"/> - <reference key="parent" ref="200831972"/> + <int key="objectID">2143</int> + <reference key="object" ref="953509484"/> + <reference key="parent" ref="0"/> + <string key="objectName">Notifications</string> </object> <object class="IBObjectRecord"> - <int key="objectID">2040</int> - <reference key="object" ref="453507512"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="534911197"/> - </object> + <int key="objectID">2144</int> + <reference key="object" ref="153863061"/> <reference key="parent" ref="0"/> - <string key="objectName">SSL CA Cert File Selection Help</string> + <string key="objectName">Editor</string> </object> <object class="IBObjectRecord"> - <int key="objectID">2041</int> - <reference key="object" ref="46104894"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="532539071"/> - </object> + <int key="objectID">2145</int> + <reference key="object" ref="913031053"/> <reference key="parent" ref="0"/> - <string key="objectName">SSL Key File Selection Help</string> + <string key="objectName">Auto Update</string> </object> <object class="IBObjectRecord"> - <int key="objectID">2042</int> - <reference key="object" ref="962978272"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="624133663"/> - </object> + <int key="objectID">2146</int> + <reference key="object" ref="424937675"/> <reference key="parent" ref="0"/> - <string key="objectName">SSL Certificate File Selection Help</string> + <string key="objectName">Network</string> </object> <object class="IBObjectRecord"> - <int key="objectID">2043</int> - <reference key="object" ref="624133663"/> + <int key="objectID">2185</int> + <reference key="object" ref="378838807"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="602926229"/> + <reference ref="1729"/> </object> - <reference key="parent" ref="962978272"/> + <reference key="parent" ref="1033452264"/> </object> <object class="IBObjectRecord"> - <int key="objectID">2044</int> - <reference key="object" ref="602926229"/> - <reference key="parent" ref="624133663"/> + <int key="objectID">2186</int> + <reference key="object" ref="1729"/> + <reference key="parent" ref="378838807"/> </object> <object class="IBObjectRecord"> - <int key="objectID">2045</int> - <reference key="object" ref="532539071"/> + <int key="objectID">2188</int> + <reference key="object" ref="277335147"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="925838195"/> + <reference ref="546511116"/> </object> - <reference key="parent" ref="46104894"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">2046</int> - <reference key="object" ref="925838195"/> - <reference key="parent" ref="532539071"/> + <reference key="parent" ref="1033452264"/> </object> <object class="IBObjectRecord"> - <int key="objectID">2047</int> - <reference key="object" ref="534911197"/> + <int key="objectID">2189</int> + <reference key="object" ref="546511116"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="921051913"/> + <reference ref="242266609"/> </object> - <reference key="parent" ref="453507512"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">2048</int> - <reference key="object" ref="921051913"/> - <reference key="parent" ref="534911197"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">2074</int> - <reference key="object" ref="343720994"/> - <reference key="parent" ref="0"/> - <string key="objectName">General</string> - </object> - <object class="IBObjectRecord"> - <int key="objectID">2080</int> - <reference key="object" ref="673566620"/> - <reference key="parent" ref="0"/> - <string key="objectName">Tables</string> + <reference key="parent" ref="277335147"/> </object> <object class="IBObjectRecord"> - <int key="objectID">2143</int> - <reference key="object" ref="953509484"/> - <reference key="parent" ref="0"/> - <string key="objectName">Notifications</string> - </object> - <object class="IBObjectRecord"> - <int key="objectID">2144</int> - <reference key="object" ref="153863061"/> - <reference key="parent" ref="0"/> - <string key="objectName">Editor</string> + <int key="objectID">2196</int> + <reference key="object" ref="720862952"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="241334663"/> + </object> + <reference key="parent" ref="1033452264"/> </object> <object class="IBObjectRecord"> - <int key="objectID">2145</int> - <reference key="object" ref="913031053"/> - <reference key="parent" ref="0"/> - <string key="objectName">Auto Update</string> + <int key="objectID">2197</int> + <reference key="object" ref="241334663"/> + <reference key="parent" ref="720862952"/> </object> <object class="IBObjectRecord"> - <int key="objectID">2146</int> - <reference key="object" ref="424937675"/> - <reference key="parent" ref="0"/> - <string key="objectName">Network</string> + <int key="objectID">2203</int> + <reference key="object" ref="242266609"/> + <reference key="parent" ref="546511116"/> </object> </object> </object> @@ -7403,17 +7301,11 @@ AQAAAAA</bytes> <string>1542.IBPluginDependency</string> <string>1543.IBPluginDependency</string> <string>1546.IBPluginDependency</string> - <string>1547.IBEditorWindowLastContentRect</string> - <string>1547.IBPluginDependency</string> - <string>1548.IBPluginDependency</string> - <string>1549.IBPluginDependency</string> - <string>1551.IBPluginDependency</string> <string>1615.IBPluginDependency</string> <string>1615.ImportedFromIB2</string> <string>1616.IBPluginDependency</string> <string>1618.IBPluginDependency</string> <string>1620.IBPluginDependency</string> - <string>1640.IBPluginDependency</string> <string>1669.IBAttributePlaceholdersKey</string> <string>1669.IBPluginDependency</string> <string>1670.IBPluginDependency</string> @@ -7497,33 +7389,25 @@ AQAAAAA</bytes> <string>1824.IBPluginDependency</string> <string>1824.ImportedFromIB2</string> <string>1825.IBPluginDependency</string> - <string>1873.IBEditorWindowLastContentRect</string> - <string>1873.IBPluginDependency</string> - <string>1874.IBPluginDependency</string> - <string>1875.IBPluginDependency</string> <string>2.IBPluginDependency</string> - <string>2040.IBEditorWindowLastContentRect</string> - <string>2040.IBPluginDependency</string> - <string>2041.IBEditorWindowLastContentRect</string> - <string>2041.IBPluginDependency</string> - <string>2042.IBEditorWindowLastContentRect</string> - <string>2042.IBPluginDependency</string> - <string>2043.IBPluginDependency</string> - <string>2044.IBPluginDependency</string> - <string>2045.IBPluginDependency</string> - <string>2046.IBPluginDependency</string> - <string>2047.IBPluginDependency</string> - <string>2048.IBPluginDependency</string> <string>2074.IBPluginDependency</string> <string>2080.IBPluginDependency</string> <string>2143.IBPluginDependency</string> <string>2144.IBPluginDependency</string> <string>2145.IBPluginDependency</string> <string>2146.IBPluginDependency</string> + <string>2185.IBPluginDependency</string> + <string>2186.IBPluginDependency</string> + <string>2188.IBPluginDependency</string> + <string>2189.IBPluginDependency</string> + <string>2196.IBPluginDependency</string> + <string>2197.IBPluginDependency</string> + <string>2203.IBNumberFormatterBehaviorMetadataKey</string> + <string>2203.IBNumberFormatterLocalizesFormatMetadataKey</string> + <string>2203.IBPluginDependency</string> <string>24.IBPluginDependency</string> <string>24.ImportedFromIB2</string> <string>25.IBPluginDependency</string> - <string>254.IBPluginDependency</string> <string>26.IBEditorWindowLastContentRect</string> <string>26.IBPluginDependency</string> <string>26.ImportedFromIB2</string> @@ -7811,17 +7695,11 @@ AQAAAAA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{508, 537}, {142, 73}}</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <object class="NSMutableDictionary"> <string key="NS.key.0">ToolTip</string> <object class="IBToolTipAttribute" key="NS.object.0"> @@ -7949,16 +7827,7 @@ AQAAAAA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{249, 289}, {579, 51}}</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{245, 466}, {579, 51}}</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{245, 483}, {579, 34}}</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{245, 483}, {579, 34}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -7971,11 +7840,12 @@ AQAAAAA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <integer value="1040"/> + <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{{646, 14}, {276, 433}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> @@ -8172,7 +8042,7 @@ AQAAAAA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{450, 315}, {580, 360}}</string> + <string>{{311, 170}, {580, 360}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <object class="NSMutableArray"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -8183,7 +8053,7 @@ AQAAAAA</bytes> </object> <object class="IBUserGuide"> <reference key="view" ref="1033452264"/> - <double key="location">271</double> + <double key="location">315</double> <int key="affinity">0</int> </object> </object> @@ -8225,7 +8095,7 @@ AQAAAAA</bytes> </object> </object> <nil key="sourceID"/> - <int key="maxID">2184</int> + <int key="maxID">2214</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -8238,6 +8108,13 @@ AQAAAAA</bytes> </object> </object> <object class="IBPartialClassDescription"> + <string key="className">NSMenu</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPMenuAdditions.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> diff --git a/Interfaces/English.lproj/QueryFavoriteManager.xib b/Interfaces/English.lproj/QueryFavoriteManager.xib index 6d4ffdc9..c8f467bd 100644 --- a/Interfaces/English.lproj/QueryFavoriteManager.xib +++ b/Interfaces/English.lproj/QueryFavoriteManager.xib @@ -2,10 +2,10 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">10F569</string> - <string key="IBDocument.InterfaceBuilderVersion">788</string> - <string key="IBDocument.AppKitVersion">1038.29</string> - <string key="IBDocument.HIToolboxVersion">461.00</string> + <string key="IBDocument.SystemVersion">10J567</string> + <string key="IBDocument.InterfaceBuilderVersion">804</string> + <string key="IBDocument.AppKitVersion">1038.35</string> + <string key="IBDocument.HIToolboxVersion">462.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> @@ -15,26 +15,22 @@ </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>788</string> - <string>1.2.5</string> + <string>804</string> + <string>1.2.2</string> </object> </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="2"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>com.brandonwalkin.BWToolkit</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.brandonwalkin.BWToolkit</string> </object> <object class="NSMutableDictionary" key="IBDocument.Metadata"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys" id="0"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> - <object class="NSMutableArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> + <string key="NS.key.0">PluginDependencyRecalculationVersion</string> + <integer value="1" key="NS.object.0"/> </object> <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -50,22 +46,23 @@ <object class="NSWindowTemplate" id="1005"> <int key="NSWindowStyleMask">15</int> <int key="NSWindowBacking">2</int> - <string key="NSWindowRect">{{593, 356}, {529, 371}}</string> + <string key="NSWindowRect">{{593, 358}, {563, 369}}</string> <int key="NSWTFlags">813171712</int> <string key="NSWindowTitle">Query Favorite Manager</string> <string key="NSWindowClass">NSWindow</string> <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSWindowContentMinSize">{529, 371}</string> <object class="NSView" key="NSWindowView" id="1006"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSBox" id="594420157"> <reference key="NSNextResponder" ref="1006"/> <int key="NSvFlags">4106</int> - <string key="NSFrame">{{0, 358}, {529, 5}}</string> + <string key="NSFrame">{{0, 356}, {563, 5}}</string> + <string key="NSBounds">{{0, 10}, {563, 5}}</string> <reference key="NSSuperview" ref="1006"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> @@ -392,7 +389,7 @@ <string key="NSColorName">controlBackgroundColor</string> <object class="NSColor" key="NSColor" id="276872502"> <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes> + <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes> </object> </object> <object class="NSColor" key="NSTextColor" id="810868150"> @@ -474,7 +471,6 @@ </object> <string key="NSFrame">{{0, 17}, {178, 322}}</string> <reference key="NSSuperview" ref="205303038"/> - <reference key="NSNextKeyView" ref="522643855"/> <reference key="NSDocView" ref="522643855"/> <reference key="NSBGColor" ref="392588142"/> <int key="NScvFlags">4</int> @@ -508,7 +504,6 @@ </object> <string key="NSFrameSize">{178, 17}</string> <reference key="NSSuperview" ref="205303038"/> - <reference key="NSNextKeyView" ref="724842455"/> <reference key="NSDocView" ref="724842455"/> <reference key="NSBGColor" ref="392588142"/> <int key="NScvFlags">4</int> @@ -517,7 +512,6 @@ </object> <string key="NSFrame">{{0, 22}, {178, 339}}</string> <reference key="NSSuperview" ref="1030932325"/> - <reference key="NSNextKeyView" ref="106335880"/> <int key="NSsFlags">528</int> <reference key="NSVScroller" ref="322405876"/> <reference key="NSHScroller" ref="336819166"/> @@ -559,7 +553,7 @@ <object class="NSPopUpButton" id="150642739"> <reference key="NSNextResponder" ref="954707656"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{40, 15}, {122, 25}}</string> + <string key="NSFrame">{{40, 15}, {144, 25}}</string> <reference key="NSSuperview" ref="954707656"/> <bool key="NSEnabled">YES</bool> <object class="NSPopUpButtonCell" key="NSCell" id="1063983207"> @@ -829,7 +823,7 @@ <object class="NSTextField" id="92903832"> <reference key="NSNextResponder" ref="954707656"/> <int key="NSvFlags">290</int> - <string key="NSFrame">{{92, 54}, {239, 19}}</string> + <string key="NSFrame">{{92, 54}, {273, 19}}</string> <reference key="NSSuperview" ref="954707656"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="276546601"> @@ -888,7 +882,7 @@ <object class="NSTextField" id="247897226"> <reference key="NSNextResponder" ref="954707656"/> <int key="NSvFlags">266</int> - <string key="NSFrame">{{77, 328}, {254, 19}}</string> + <string key="NSFrame">{{77, 328}, {288, 19}}</string> <reference key="NSSuperview" ref="954707656"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="474077606"> @@ -939,7 +933,7 @@ <string>public.url</string> </object> </object> - <string key="NSFrameSize">{309, 14}</string> + <string key="NSFrameSize">{343, 14}</string> <reference key="NSSuperview" ref="221447089"/> <object class="NSTextContainer" key="NSTextContainer" id="74289808"> <object class="NSLayoutManager" key="NSLayoutManager"> @@ -957,7 +951,7 @@ <nil key="NSDelegate"/> </object> <reference key="NSTextView" ref="556251150"/> - <double key="NSWidth">309</double> + <double key="NSWidth">343</double> <int key="NSTCFlags">1</int> </object> <object class="NSTextViewSharedData" key="NSSharedData"> @@ -1013,9 +1007,8 @@ <nil key="NSDelegate"/> </object> </object> - <string key="NSFrame">{{1, 1}, {309, 236}}</string> + <string key="NSFrame">{{1, 1}, {343, 236}}</string> <reference key="NSSuperview" ref="407061848"/> - <reference key="NSNextKeyView" ref="556251150"/> <reference key="NSDocView" ref="556251150"/> <reference key="NSBGColor" ref="359131077"/> <object class="NSCursor" key="NSCursor"> @@ -1046,9 +1039,8 @@ <double key="NSPercent">0.94565218687057495</double> </object> </object> - <string key="NSFrame">{{20, 82}, {311, 238}}</string> + <string key="NSFrame">{{20, 82}, {345, 238}}</string> <reference key="NSSuperview" ref="954707656"/> - <reference key="NSNextKeyView" ref="221447089"/> <int key="NSsFlags">530</int> <reference key="NSVScroller" ref="978638217"/> <reference key="NSHScroller" ref="1008017707"/> @@ -1057,7 +1049,7 @@ <object class="NSButton" id="556514169"> <reference key="NSNextResponder" ref="954707656"/> <int key="NSvFlags">289</int> - <string key="NSFrame">{{248, 13}, {88, 28}}</string> + <string key="NSFrame">{{282, 13}, {88, 28}}</string> <reference key="NSSuperview" ref="954707656"/> <int key="NSTag">1</int> <bool key="NSEnabled">YES</bool> @@ -1083,7 +1075,7 @@ <object class="NSButton" id="602197876"> <reference key="NSNextResponder" ref="954707656"/> <int key="NSvFlags">289</int> - <string key="NSFrame">{{162, 13}, {88, 28}}</string> + <string key="NSFrame">{{196, 13}, {88, 28}}</string> <reference key="NSSuperview" ref="954707656"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="615814080"> @@ -1102,19 +1094,19 @@ </object> </object> </object> - <string key="NSFrame">{{178, 0}, {351, 361}}</string> + <string key="NSFrame">{{178, 0}, {385, 361}}</string> <reference key="NSSuperview" ref="588484039"/> <string key="NSClassName">NSView</string> </object> </object> - <string key="NSFrameSize">{529, 361}</string> + <string key="NSFrame">{{0, -2}, {563, 361}}</string> <reference key="NSSuperview" ref="1006"/> <bool key="NSIsVertical">YES</bool> <int key="NSDividerStyle">2</int> <string key="NSAutosaveName">SPQueryFavoriteSplitView</string> <object class="NSColor" key="BWSVColor"> <int key="NSColorSpace">1</int> - <bytes key="NSRGB">MC42NjY2NjY2ODY1IDAuNjY2NjY2Njg2NSAwLjY2NjY2NjY4NjUAA</bytes> + <bytes key="NSRGB">MC42NjY2NjY2NjY3IDAuNjY2NjY2NjY2NyAwLjY2NjY2NjY2NjcAA</bytes> </object> <bool key="BWSVColorIsEnabled">YES</bool> <object class="NSMutableDictionary" key="BWSVMinValues"> @@ -1127,7 +1119,7 @@ <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> <integer value="152"/> - <integer value="351"/> + <integer value="385"/> </object> </object> <object class="NSMutableDictionary" key="BWSVMaxValues"> @@ -1173,11 +1165,12 @@ <bool key="BWSVDividerCanCollapse">NO</bool> </object> </object> - <string key="NSFrameSize">{529, 371}</string> + <string key="NSFrameSize">{563, 369}</string> + <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> <string key="NSMinSize">{529, 393}</string> - <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSFrameAutosaveName">SPQueryFavoriteManagerWindow</string> </object> <object class="NSUserDefaultsController" id="592597522"> @@ -1614,7 +1607,9 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBObjectRecord"> <int key="objectID">0</int> - <reference key="object" ref="0"/> + <object class="NSArray" key="object" id="0"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> <reference key="children" ref="1000"/> <nil key="parent"/> </object> @@ -2344,9 +2339,9 @@ <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{448, 417}, {529, 371}}</string> + <string>{{448, 419}, {563, 369}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{448, 417}, {529, 371}}</string> + <string>{{448, 419}, {563, 369}}</string> <boolean value="NO"/> <string>{196, 240}</string> <string>{{357, 418}, {480, 270}}</string> @@ -2709,10 +2704,10 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> </object> </object> <object class="IBPartialClassDescription"> - <string key="className">NSObject</string> + <string key="className">NSMenu</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> - <string key="minorKey">Frameworks/MCPKit/MCPFoundationKit/MCPConnection.h</string> + <string key="minorKey">Source/SPMenuAdditions.h</string> </object> </object> <object class="IBPartialClassDescription"> @@ -2811,7 +2806,10 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>doSelectionTitleCase:</string> <string>doSelectionUpperCase:</string> <string>doTranspose:</string> + <string>executeBundleItemForInputField:</string> <string>insertNULLvalue:</string> + <string>moveSelectionLineDown:</string> + <string>moveSelectionLineUp:</string> <string>selectCurrentLine:</string> <string>selectCurrentWord:</string> <string>selectEnclosingBrackets:</string> @@ -2831,6 +2829,9 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>id</string> <string>id</string> <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="actionInfosByName"> @@ -2846,7 +2847,10 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>doSelectionTitleCase:</string> <string>doSelectionUpperCase:</string> <string>doTranspose:</string> + <string>executeBundleItemForInputField:</string> <string>insertNULLvalue:</string> + <string>moveSelectionLineDown:</string> + <string>moveSelectionLineUp:</string> <string>selectCurrentLine:</string> <string>selectCurrentWord:</string> <string>selectEnclosingBrackets:</string> @@ -2890,10 +2894,22 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">executeBundleItemForInputField:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">insertNULLvalue:</string> <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">moveSelectionLineDown:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">moveSelectionLineUp:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">selectCurrentLine:</string> <string key="candidateClassName">id</string> </object> @@ -3118,14 +3134,35 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string key="className">SPCopyTable</string> <string key="superclassName">SPTableView</string> <object class="NSMutableDictionary" key="actions"> - <string key="NS.key.0">copy:</string> - <string key="NS.object.0">id</string> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>copy:</string> + <string>executeBundleItemForDataTable:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + </object> </object> <object class="NSMutableDictionary" key="actionInfosByName"> - <string key="NS.key.0">copy:</string> - <object class="IBActionInfo" key="NS.object.0"> - <string key="name">copy:</string> - <string key="candidateClassName">id</string> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>copy:</string> + <string>executeBundleItemForDataTable:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBActionInfo"> + <string key="name">copy:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">executeBundleItemForDataTable:</string> + <string key="candidateClassName">id</string> + </object> </object> </object> <object class="NSMutableDictionary" key="outlets"> @@ -3161,6 +3198,14 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> </object> </object> <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPCopyTable.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">SPCopyTable</string> + <string key="superclassName">SPTableView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBUserSource</string> <string key="minorKey"/> </object> @@ -3366,6 +3411,7 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>editorFontMenuItem</string> <string>encodingPopUp</string> <string>errorText</string> + <string>errorTextScrollView</string> <string>helpNavigator</string> <string>helpSearchField</string> <string>helpSearchFieldCell</string> @@ -3421,6 +3467,7 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>NSMenuItem</string> <string>NSPopUpButton</string> <string>id</string> + <string>NSScrollView</string> <string>NSSegmentedControl</string> <string>NSSearchField</string> <string>NSSearchFieldCell</string> @@ -3479,6 +3526,7 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>editorFontMenuItem</string> <string>encodingPopUp</string> <string>errorText</string> + <string>errorTextScrollView</string> <string>helpNavigator</string> <string>helpSearchField</string> <string>helpSearchFieldCell</string> @@ -3580,6 +3628,10 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string key="candidateClassName">id</string> </object> <object class="IBToOneOutletInfo"> + <string key="name">errorTextScrollView</string> + <string key="candidateClassName">NSScrollView</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">helpNavigator</string> <string key="candidateClassName">NSSegmentedControl</string> </object> @@ -3781,7 +3833,9 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>import:</string> <string>importFromClipboard:</string> <string>openCurrentConnectionInNewWindow:</string> + <string>openDatabaseInNewTab:</string> <string>optimizeTable:</string> + <string>refreshTables:</string> <string>removeDatabase:</string> <string>renameDatabase:</string> <string>repairTable:</string> @@ -3798,12 +3852,6 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>toggleNavigator:</string> <string>updateWindowTitle:</string> <string>validateSaveConnectionAccessory:</string> - <string>viewContent:</string> - <string>viewQuery:</string> - <string>viewRelations:</string> - <string>viewStatus:</string> - <string>viewStructure:</string> - <string>viewTriggers:</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -3851,10 +3899,6 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>id</string> <string>id</string> <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> </object> </object> <object class="NSMutableDictionary" key="actionInfosByName"> @@ -3886,7 +3930,9 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>import:</string> <string>importFromClipboard:</string> <string>openCurrentConnectionInNewWindow:</string> + <string>openDatabaseInNewTab:</string> <string>optimizeTable:</string> + <string>refreshTables:</string> <string>removeDatabase:</string> <string>renameDatabase:</string> <string>repairTable:</string> @@ -3903,12 +3949,6 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>toggleNavigator:</string> <string>updateWindowTitle:</string> <string>validateSaveConnectionAccessory:</string> - <string>viewContent:</string> - <string>viewQuery:</string> - <string>viewRelations:</string> - <string>viewStatus:</string> - <string>viewStructure:</string> - <string>viewTriggers:</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -4013,10 +4053,18 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">openDatabaseInNewTab:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">optimizeTable:</string> <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">refreshTables:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">removeDatabase:</string> <string key="candidateClassName">id</string> </object> @@ -4080,30 +4128,6 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string key="name">validateSaveConnectionAccessory:</string> <string key="candidateClassName">id</string> </object> - <object class="IBActionInfo"> - <string key="name">viewContent:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">viewQuery:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">viewRelations:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">viewStatus:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">viewStructure:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">viewTriggers:</string> - <string key="candidateClassName">id</string> - </object> </object> </object> <object class="NSMutableDictionary" key="outlets"> @@ -4607,6 +4631,73 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> </object> <object class="IBPartialClassDescription"> <string key="className">SPDatabaseDocument</string> + <object class="NSMutableDictionary" key="actions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>viewContent:</string> + <string>viewQuery:</string> + <string>viewRelations:</string> + <string>viewStatus:</string> + <string>viewStructure:</string> + <string>viewTriggers:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="NSMutableDictionary" key="actionInfosByName"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>viewContent:</string> + <string>viewQuery:</string> + <string>viewRelations:</string> + <string>viewStatus:</string> + <string>viewStructure:</string> + <string>viewTriggers:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBActionInfo"> + <string key="name">viewContent:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">viewQuery:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">viewRelations:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">viewStatus:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">viewStructure:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">viewTriggers:</string> + <string key="candidateClassName">id</string> + </object> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPDatabaseViewController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">SPDatabaseDocument</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> <string key="minorKey">Source/SPPrintController.h</string> @@ -4855,6 +4946,7 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>addTable:</string> <string>closeSheet:</string> <string>copyTable:</string> + <string>openTableInNewTab:</string> <string>removeTable:</string> <string>renameTable:</string> <string>togglePaneCollapse:</string> @@ -4873,6 +4965,7 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>id</string> <string>id</string> <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="actionInfosByName"> @@ -4882,6 +4975,7 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>addTable:</string> <string>closeSheet:</string> <string>copyTable:</string> + <string>openTableInNewTab:</string> <string>removeTable:</string> <string>renameTable:</string> <string>togglePaneCollapse:</string> @@ -4904,6 +4998,10 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">openTableInNewTab:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">removeTable:</string> <string key="candidateClassName">id</string> </object> @@ -4945,6 +5043,8 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>duplicateTableMenuItem</string> <string>extendedTableInfoInstance</string> <string>listFilterField</string> + <string>openTableInNewTabContextMenuItem</string> + <string>openTableInNewTabMenuItem</string> <string>removeTableContextMenuItem</string> <string>removeTableMenuItem</string> <string>renameTableContextMenuItem</string> @@ -4956,7 +5056,6 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>showCreateSyntaxContextMenuItem</string> <string>showCreateSyntaxMenuItem</string> <string>spHistoryControllerInstance</string> - <string>tabView</string> <string>tableContentInstance</string> <string>tableDataInstance</string> <string>tableDocumentInstance</string> @@ -4976,7 +5075,7 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>toolbarAddButton</string> <string>toolbarReloadButton</string> <string>truncateTableButton</string> - <string>truncateTableContextButton</string> + <string>truncateTableContextMenuItem</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -5002,13 +5101,14 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>NSMenuItem</string> <string>NSMenuItem</string> <string>NSMenuItem</string> + <string>NSMenuItem</string> + <string>NSMenuItem</string> <string>SPHistoryController</string> <string>id</string> <string>id</string> <string>id</string> <string>id</string> <string>id</string> - <string>id</string> <string>NSButton</string> <string>id</string> <string>NSSplitView</string> @@ -5023,7 +5123,7 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>id</string> <string>id</string> <string>id</string> - <string>id</string> + <string>NSMenuItem</string> </object> </object> <object class="NSMutableDictionary" key="toOneOutletInfosByName"> @@ -5042,6 +5142,8 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>duplicateTableMenuItem</string> <string>extendedTableInfoInstance</string> <string>listFilterField</string> + <string>openTableInNewTabContextMenuItem</string> + <string>openTableInNewTabMenuItem</string> <string>removeTableContextMenuItem</string> <string>removeTableMenuItem</string> <string>renameTableContextMenuItem</string> @@ -5053,7 +5155,6 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>showCreateSyntaxContextMenuItem</string> <string>showCreateSyntaxMenuItem</string> <string>spHistoryControllerInstance</string> - <string>tabView</string> <string>tableContentInstance</string> <string>tableDataInstance</string> <string>tableDocumentInstance</string> @@ -5073,7 +5174,7 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string>toolbarAddButton</string> <string>toolbarReloadButton</string> <string>truncateTableButton</string> - <string>truncateTableContextButton</string> + <string>truncateTableContextMenuItem</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -5126,6 +5227,14 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string key="candidateClassName">NSSearchField</string> </object> <object class="IBToOneOutletInfo"> + <string key="name">openTableInNewTabContextMenuItem</string> + <string key="candidateClassName">NSMenuItem</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">openTableInNewTabMenuItem</string> + <string key="candidateClassName">NSMenuItem</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">removeTableContextMenuItem</string> <string key="candidateClassName">NSMenuItem</string> </object> @@ -5170,10 +5279,6 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string key="candidateClassName">SPHistoryController</string> </object> <object class="IBToOneOutletInfo"> - <string key="name">tabView</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBToOneOutletInfo"> <string key="name">tableContentInstance</string> <string key="candidateClassName">id</string> </object> @@ -5250,8 +5355,8 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string key="candidateClassName">id</string> </object> <object class="IBToOneOutletInfo"> - <string key="name">truncateTableContextButton</string> - <string key="candidateClassName">id</string> + <string key="name">truncateTableContextMenuItem</string> + <string key="candidateClassName">NSMenuItem</string> </object> </object> </object> @@ -5791,6 +5896,27 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRRecorderCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRRecorderControl.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRValidator.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> <string key="minorKey">Sparkle.framework/Headers/SUAppcast.h</string> </object> </object> @@ -6247,7 +6373,7 @@ IG5vdCBiZSB1c2VkIGluc2lkZSBvZiBhIHRhYiBzbmlwcGV0XeKAqA</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>{15, 15}</string> + <string>{10, 10}</string> <string>{9, 8}</string> <string>{7, 2}</string> <string>{32, 23}</string> diff --git a/Interfaces/English.lproj/UserManagerView.xib b/Interfaces/English.lproj/UserManagerView.xib index 795c247c..fbde0774 100644 --- a/Interfaces/English.lproj/UserManagerView.xib +++ b/Interfaces/English.lproj/UserManagerView.xib @@ -2,10 +2,10 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">10F569</string> - <string key="IBDocument.InterfaceBuilderVersion">804</string> - <string key="IBDocument.AppKitVersion">1038.29</string> - <string key="IBDocument.HIToolboxVersion">461.00</string> + <string key="IBDocument.SystemVersion">10J567</string> + <string key="IBDocument.InterfaceBuilderVersion">788</string> + <string key="IBDocument.AppKitVersion">1038.35</string> + <string key="IBDocument.HIToolboxVersion">462.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> @@ -15,18 +15,19 @@ </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>804</string> + <string>788</string> <string>1.2.5</string> </object> </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="593"/> + <integer value="43"/> + <integer value="984"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>com.brandonwalkin.BWToolkit</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.brandonwalkin.BWToolkit</string> </object> <object class="NSMutableDictionary" key="IBDocument.Metadata"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -56,7 +57,7 @@ <string key="NSWindowTitle">User Managment</string> <string key="NSWindowClass">NSWindow</string> <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSWindowContentMinSize">{752, 506}</string> <object class="NSView" key="NSWindowView" id="846307432"> <reference key="NSNextResponder"/> @@ -148,7 +149,7 @@ <string key="NSColorName">controlBackgroundColor</string> <object class="NSColor" key="NSColor" id="246134814"> <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes> + <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes> </object> </object> <object class="NSColor" key="NSTextColor" id="315534074"> @@ -2224,7 +2225,7 @@ </object> <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> <string key="NSMinSize">{752, 528}</string> - <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> </object> <object class="NSTreeController" id="889422316"> <object class="NSMutableArray" key="NSDeclaredKeys"> @@ -2430,6 +2431,201 @@ </object> </object> </object> + <object class="NSWindowTemplate" id="574715766"> + <int key="NSWindowStyleMask">9</int> + <int key="NSWindowBacking">2</int> + <string key="NSWindowRect">{{157, 20}, {480, 441}}</string> + <int key="NSWTFlags">1954022400</int> + <string key="NSWindowTitle">Errors Sheet</string> + <string key="NSWindowClass">NSWindow</string> + <nil key="NSViewClass"/> + <object class="NSView" key="NSWindowView" id="340939829"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTextField" id="521208280"> + <reference key="NSNextResponder" ref="340939829"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{17, 327}, {446, 94}}</string> + <reference key="NSSuperview" ref="340939829"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="758533948"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">272891904</int> + <string type="base64-UTF8" key="NSContents">RXJyb3JzIG9jY3VycmVkIHdoZW4gYXBwbHlpbmcgeW91ciBjaGFuZ2VzIHRvIHRoZSBzZXJ2ZXIuCgpT +b21lIGNoYW5nZXMgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIGFwcGxpZWQ7IHBsZWFzZSByZXZpZXcgdGhl +IGVycm9ycyBiZWxvdyBiZWZvcmUgcHJvY2VlZGluZy4</string> + <object class="NSFont" key="NSSupport"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">13</double> + <int key="NSfFlags">16</int> + </object> + <reference key="NSControlView" ref="521208280"/> + <reference key="NSBackgroundColor" ref="409859189"/> + <reference key="NSTextColor" ref="315534074"/> + </object> + </object> + <object class="NSScrollView" id="798811064"> + <reference key="NSNextResponder" ref="340939829"/> + <int key="NSvFlags">274</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSClipView" id="306241942"> + <reference key="NSNextResponder" ref="798811064"/> + <int key="NSvFlags">2304</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTextView" id="234756526"> + <reference key="NSNextResponder" ref="306241942"/> + <int key="NSvFlags">2322</int> + <string key="NSFrameSize">{438, 25}</string> + <reference key="NSSuperview" ref="306241942"/> + <object class="NSTextContainer" key="NSTextContainer" id="181756437"> + <object class="NSLayoutManager" key="NSLayoutManager"> + <object class="NSTextStorage" key="NSTextStorage"> + <object class="NSMutableString" key="NSString"> + <characters key="NS.bytes"/> + </object> + <nil key="NSDelegate"/> + </object> + <object class="NSMutableArray" key="NSTextContainers"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="181756437"/> + </object> + <int key="NSLMFlags">134</int> + <nil key="NSDelegate"/> + </object> + <reference key="NSTextView" ref="234756526"/> + <double key="NSWidth">438</double> + <int key="NSTCFlags">1</int> + </object> + <object class="NSTextViewSharedData" key="NSSharedData"> + <int key="NSFlags">11237</int> + <int key="NSTextCheckingTypes">0</int> + <nil key="NSMarkedAttributes"/> + <reference key="NSBackgroundColor" ref="888720323"/> + <object class="NSDictionary" key="NSSelectedAttributes"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>NSBackgroundColor</string> + <string>NSColor</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSColor"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">selectedTextBackgroundColor</string> + <reference key="NSColor" ref="246134814"/> + </object> + <object class="NSColor"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">selectedTextColor</string> + <reference key="NSColor" ref="194396468"/> + </object> + </object> + </object> + <reference key="NSInsertionColor" ref="194396468"/> + <object class="NSDictionary" key="NSLinkAttributes"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>NSColor</string> + <string>NSCursor</string> + <string>NSUnderline</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MCAwIDEAA</bytes> + </object> + <object class="NSCursor"> + <string key="NSHotSpot">{8, -8}</string> + <int key="NSCursorType">13</int> + </object> + <integer value="1"/> + </object> + </object> + <nil key="NSDefaultParagraphStyle"/> + </object> + <int key="NSTVFlags">6</int> + <string key="NSMaxSize">{463, 1e+07}</string> + <string key="NSMinize">{223, 25}</string> + <nil key="NSDelegate"/> + </object> + </object> + <string key="NSFrame">{{1, 1}, {438, 257}}</string> + <reference key="NSSuperview" ref="798811064"/> + <reference key="NSNextKeyView" ref="234756526"/> + <reference key="NSDocView" ref="234756526"/> + <reference key="NSBGColor" ref="888720323"/> + <object class="NSCursor" key="NSCursor"> + <string key="NSHotSpot">{4, -5}</string> + <int key="NSCursorType">1</int> + </object> + <int key="NScvFlags">4</int> + </object> + <object class="NSScroller" id="403581926"> + <reference key="NSNextResponder" ref="798811064"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{424, 1}, {15, 257}}</string> + <reference key="NSSuperview" ref="798811064"/> + <reference key="NSTarget" ref="798811064"/> + <string key="NSAction">_doScroller:</string> + <double key="NSCurValue">1</double> + <double key="NSPercent">0.85256409645080566</double> + </object> + <object class="NSScroller" id="584287791"> + <reference key="NSNextResponder" ref="798811064"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{-100, -100}, {87, 18}}</string> + <reference key="NSSuperview" ref="798811064"/> + <int key="NSsFlags">1</int> + <reference key="NSTarget" ref="798811064"/> + <string key="NSAction">_doScroller:</string> + <double key="NSCurValue">1</double> + <double key="NSPercent">0.94565218687057495</double> + </object> + </object> + <string key="NSFrame">{{20, 60}, {440, 259}}</string> + <reference key="NSSuperview" ref="340939829"/> + <reference key="NSNextKeyView" ref="306241942"/> + <int key="NSsFlags">562</int> + <reference key="NSVScroller" ref="403581926"/> + <reference key="NSHScroller" ref="584287791"/> + <reference key="NSContentView" ref="306241942"/> + </object> + <object class="NSButton" id="942389557"> + <reference key="NSNextResponder" ref="340939829"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{314, 12}, {152, 32}}</string> + <reference key="NSSuperview" ref="340939829"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="521888647"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134217728</int> + <string key="NSContents">OK</string> + <reference key="NSSupport" ref="746597359"/> + <reference key="NSControlView" ref="942389557"/> + <int key="NSButtonFlags">-2038284033</int> + <int key="NSButtonFlags2">129</int> + <string key="NSAlternateContents"/> + <string type="base64-UTF8" key="NSKeyEquivalent">DQ</string> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + </object> + <string key="NSFrameSize">{480, 441}</string> + <reference key="NSSuperview"/> + </object> + <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> + <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + </object> </object> <object class="IBObjectContainer" key="IBDocument.Objects"> <object class="NSMutableArray" key="connectionRecords"> @@ -4145,6 +4341,30 @@ </object> <int key="connectionID">982</int> </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">errorsSheet</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="574715766"/> + </object> + <int key="connectionID">993</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">errorsTextView</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="234756526"/> + </object> + <int key="connectionID">994</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">closeErrorsSheet:</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="942389557"/> + </object> + <int key="connectionID">998</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -5411,6 +5631,80 @@ <reference key="object" ref="765293659"/> <reference key="parent" ref="473921129"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">983</int> + <reference key="object" ref="574715766"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="340939829"/> + </object> + <reference key="parent" ref="0"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">984</int> + <reference key="object" ref="340939829"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="521208280"/> + <reference ref="798811064"/> + <reference ref="942389557"/> + </object> + <reference key="parent" ref="574715766"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">985</int> + <reference key="object" ref="521208280"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="758533948"/> + </object> + <reference key="parent" ref="340939829"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">986</int> + <reference key="object" ref="758533948"/> + <reference key="parent" ref="521208280"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">987</int> + <reference key="object" ref="798811064"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="403581926"/> + <reference ref="584287791"/> + <reference ref="234756526"/> + </object> + <reference key="parent" ref="340939829"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">988</int> + <reference key="object" ref="403581926"/> + <reference key="parent" ref="798811064"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">989</int> + <reference key="object" ref="584287791"/> + <reference key="parent" ref="798811064"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">990</int> + <reference key="object" ref="234756526"/> + <reference key="parent" ref="798811064"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">995</int> + <reference key="object" ref="942389557"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="521888647"/> + </object> + <reference key="parent" ref="340939829"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">996</int> + <reference key="object" ref="521888647"/> + <reference key="parent" ref="942389557"/> + </object> </object> </object> <object class="NSMutableDictionary" key="flattenedProperties"> @@ -5594,6 +5888,19 @@ <string>973.IBNumberFormatterBehaviorMetadataKey</string> <string>973.IBNumberFormatterLocalizesFormatMetadataKey</string> <string>973.IBPluginDependency</string> + <string>983.IBEditorWindowLastContentRect</string> + <string>983.IBPluginDependency</string> + <string>983.IBWindowTemplateEditedContentRect</string> + <string>983.NSWindowTemplate.visibleAtLaunch</string> + <string>984.IBPluginDependency</string> + <string>985.IBPluginDependency</string> + <string>986.IBPluginDependency</string> + <string>987.IBPluginDependency</string> + <string>988.IBPluginDependency</string> + <string>989.IBPluginDependency</string> + <string>990.IBPluginDependency</string> + <string>995.IBPluginDependency</string> + <string>996.IBPluginDependency</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -5617,9 +5924,9 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{315, 326}, {815, 506}}</string> + <string>{{187, 326}, {815, 506}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{315, 326}, {815, 506}}</string> + <string>{{187, 326}, {815, 506}}</string> <boolean value="NO"/> <boolean value="YES"/> <string>{752, 506}</string> @@ -5795,6 +6102,19 @@ <integer value="1040"/> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>{{348, 393}, {480, 441}}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>{{348, 393}, {480, 441}}</string> + <boolean value="NO"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> </object> </object> <object class="NSMutableDictionary" key="unlocalizedProperties"> @@ -5813,7 +6133,7 @@ </object> </object> <nil key="sourceID"/> - <int key="maxID">982</int> + <int key="maxID">998</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -5833,10 +6153,10 @@ </object> </object> <object class="IBPartialClassDescription"> - <string key="className">NSObject</string> + <string key="className">NSMenu</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> - <string key="minorKey">Frameworks/MCPKit/MCPFoundationKit/MCPConnection.h</string> + <string key="minorKey">Source/SPMenuAdditions.h</string> </object> </object> <object class="IBPartialClassDescription"> @@ -5921,6 +6241,143 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">NSTextView</string> + <object class="NSMutableDictionary" key="actions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>doDecomposedStringWithCanonicalMapping:</string> + <string>doDecomposedStringWithCompatibilityMapping:</string> + <string>doPrecomposedStringWithCanonicalMapping:</string> + <string>doPrecomposedStringWithCompatibilityMapping:</string> + <string>doRemoveDiacritics:</string> + <string>doSelectionLowerCase:</string> + <string>doSelectionTitleCase:</string> + <string>doSelectionUpperCase:</string> + <string>doTranspose:</string> + <string>executeBundleItemForInputField:</string> + <string>insertNULLvalue:</string> + <string>moveSelectionLineDown:</string> + <string>moveSelectionLineUp:</string> + <string>selectCurrentLine:</string> + <string>selectCurrentWord:</string> + <string>selectEnclosingBrackets:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="NSMutableDictionary" key="actionInfosByName"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>doDecomposedStringWithCanonicalMapping:</string> + <string>doDecomposedStringWithCompatibilityMapping:</string> + <string>doPrecomposedStringWithCanonicalMapping:</string> + <string>doPrecomposedStringWithCompatibilityMapping:</string> + <string>doRemoveDiacritics:</string> + <string>doSelectionLowerCase:</string> + <string>doSelectionTitleCase:</string> + <string>doSelectionUpperCase:</string> + <string>doTranspose:</string> + <string>executeBundleItemForInputField:</string> + <string>insertNULLvalue:</string> + <string>moveSelectionLineDown:</string> + <string>moveSelectionLineUp:</string> + <string>selectCurrentLine:</string> + <string>selectCurrentWord:</string> + <string>selectEnclosingBrackets:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBActionInfo"> + <string key="name">doDecomposedStringWithCanonicalMapping:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doDecomposedStringWithCompatibilityMapping:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doPrecomposedStringWithCanonicalMapping:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doPrecomposedStringWithCompatibilityMapping:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doRemoveDiacritics:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doSelectionLowerCase:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doSelectionTitleCase:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doSelectionUpperCase:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">doTranspose:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">executeBundleItemForInputField:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">insertNULLvalue:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">moveSelectionLineDown:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">moveSelectionLineUp:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">selectCurrentLine:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">selectCurrentWord:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">selectEnclosingBrackets:</string> + <string key="candidateClassName">id</string> + </object> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPTextViewAdditions.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSWindow</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> @@ -5946,6 +6403,7 @@ <string>addSchemaPriv:</string> <string>addUser:</string> <string>checkAllPrivileges:</string> + <string>closeErrorsSheet:</string> <string>doApply:</string> <string>doCancel:</string> <string>refresh:</string> @@ -5967,6 +6425,7 @@ <string>id</string> <string>id</string> <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="actionInfosByName"> @@ -5977,6 +6436,7 @@ <string>addSchemaPriv:</string> <string>addUser:</string> <string>checkAllPrivileges:</string> + <string>closeErrorsSheet:</string> <string>doApply:</string> <string>doCancel:</string> <string>refresh:</string> @@ -6004,6 +6464,10 @@ <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">closeErrorsSheet:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">doApply:</string> <string key="candidateClassName">id</string> </object> @@ -6040,6 +6504,8 @@ <string>addSchemaPrivButton</string> <string>availableController</string> <string>availableTableView</string> + <string>errorsSheet</string> + <string>errorsTextView</string> <string>grantedController</string> <string>grantedTableView</string> <string>maxConnectionsTextField</string> @@ -6060,6 +6526,8 @@ <string>NSButton</string> <string>NSArrayController</string> <string>NSTableView</string> + <string>NSWindow</string> + <string>NSTextView</string> <string>NSArrayController</string> <string>NSTableView</string> <string>NSTextField</string> @@ -6083,6 +6551,8 @@ <string>addSchemaPrivButton</string> <string>availableController</string> <string>availableTableView</string> + <string>errorsSheet</string> + <string>errorsTextView</string> <string>grantedController</string> <string>grantedTableView</string> <string>maxConnectionsTextField</string> @@ -6113,6 +6583,14 @@ <string key="candidateClassName">NSTableView</string> </object> <object class="IBToOneOutletInfo"> + <string key="name">errorsSheet</string> + <string key="candidateClassName">NSWindow</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">errorsTextView</string> + <string key="candidateClassName">NSTextView</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">grantedController</string> <string key="candidateClassName">NSArrayController</string> </object> @@ -6680,6 +7158,27 @@ <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRRecorderCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRRecorderControl.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRValidator.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> <string key="minorKey">Sparkle.framework/Headers/SUAppcast.h</string> </object> </object> @@ -6879,6 +7378,14 @@ <reference key="sourceIdentifier" ref="739519750"/> </object> <object class="IBPartialClassDescription"> + <string key="className">NSText</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSText.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSTextField</string> <string key="superclassName">NSControl</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> @@ -6895,6 +7402,14 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">NSTextView</string> + <string key="superclassName">NSText</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTextView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSTreeController</string> <string key="superclassName">NSObjectController</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> diff --git a/Models/SPUserManager.xcdatamodel/elements b/Models/SPUserManager.xcdatamodel/elements Binary files differindex d9f1e943..01aa994f 100644 --- a/Models/SPUserManager.xcdatamodel/elements +++ b/Models/SPUserManager.xcdatamodel/elements diff --git a/Models/SPUserManager.xcdatamodel/layout b/Models/SPUserManager.xcdatamodel/layout Binary files differindex 7e8fd9cf..d177ace3 100644 --- a/Models/SPUserManager.xcdatamodel/layout +++ b/Models/SPUserManager.xcdatamodel/layout @@ -1,22 +1,27 @@ BUILDING SEQUEL PRO ------------------- -Before you can start making changes to any of the xib files in Interface -Builder you will need to install the BWToolkit plugin from -http://www.brandonwalkin.com/bwtoolkit/. +Sequel Pro uses two external frameworks which come with .ibplugins (Interface Builder +Plugins); to build Sequel Pro, Interface Builder must have detected these plugins. -To install the plugin you will need to do a Release build of the project so -that the BWTookit plugin and frameworks are compiled. +The two frameworks are: + BWToolkit + ShortcutRecorder -Once you have done this double click on the BWToolkit.ibplugin located at: +Each of these frameworks is included in the Sequel Pro source tree with its .ibplugin; +the locations of these .ibplugins are: + ./Frameworks/BWToolkitFramework.framework/Versions/A/Resources/BWToolkit.ibplugin + ./Frameworks/ShortcutRecorder.framework/Versions/A/Resources/ShortcutRecorder.ibplugin - ./trunk/Frameworks/BWToolkitFramework.framework/build/Release/ +By including these .ibplugins within the frameworks, Interface Builder should detect them automatically when you build. If you get build errors about "Unable to resolve plug-in +dependency for ", automatic detection has failed. The first thing to try is to quit Xcode +and Interface Builder, re-open Xcode, and try again; if this still fails, locate +the .ibplugins and double click on them to add them to Interface Builder. If Interface Builder complains that it's already installed then you might want -to replace the current one with the one you just built. - -To do this go to the Interface Builder preferences and click on 'Plugins' and -remove the BWToolkit plugin using the [ - ] button below the list. +to replace the current version with the version in the project; to do this go to the +Interface Builder preferences, click on 'Plugins', and remove the BWToolkit plugin +using the [ - ] button below the list. You will need to relaunch Interface Builder before you can re-add the plugin from the location mentioned above. diff --git a/Resources/English.lproj/Credits.rtf b/Resources/English.lproj/Credits.rtf index d8a3dfb3..e344a10c 100644 --- a/Resources/English.lproj/Credits.rtf +++ b/Resources/English.lproj/Credits.rtf @@ -1,6 +1,7 @@ {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 {\fonttbl\f0\fnil\fcharset0 LucidaGrande;\f1\fmodern\fcharset0 Courier;} {\colortbl;\red255\green255\blue255;\red25\green25\blue25;\red0\green27\blue199;} +\vieww10500\viewh9600\viewkind0 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\qc\pardirnatural \f0\b\fs22 \cf2 Current Developers @@ -109,6 +110,16 @@ Copyright (c) 2009\ \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\qc\pardirnatural \cf0 All rights reserved.\ \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\qc\pardirnatural + +\b \cf0 ShortcutRecorderFramework +\b0 \ +Copyright (c) 2006-2010\ +\pard\pardeftab720\qc +{\field{\*\fldinst{HYPERLINK "http://code.google.com/p/shortcutrecorder/"}}{\fldrslt \cf0 Jesper, Dauer, Kirkpatrick}}\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\qc\pardirnatural +\cf0 All rights reserved.\ +\ \pard\pardeftab720\qc \b \cf0 Artwork diff --git a/Resources/English.lproj/DBView.strings b/Resources/English.lproj/DBView.strings Binary files differindex b2b0b4b9..35f47990 100644 --- a/Resources/English.lproj/DBView.strings +++ b/Resources/English.lproj/DBView.strings diff --git a/Resources/English.lproj/IndexesView.strings b/Resources/English.lproj/IndexesView.strings Binary files differindex ebbaab67..a2c1a5d7 100644 --- a/Resources/English.lproj/IndexesView.strings +++ b/Resources/English.lproj/IndexesView.strings diff --git a/Resources/English.lproj/Localizable.strings b/Resources/English.lproj/Localizable.strings Binary files differindex 18431777..101f45e3 100644 --- a/Resources/English.lproj/Localizable.strings +++ b/Resources/English.lproj/Localizable.strings diff --git a/Resources/English.lproj/MainWindow.strings b/Resources/English.lproj/MainWindow.strings Binary files differindex 1191d0d2..2afdf3b5 100644 --- a/Resources/English.lproj/MainWindow.strings +++ b/Resources/English.lproj/MainWindow.strings diff --git a/Resources/English.lproj/Preferences.strings b/Resources/English.lproj/Preferences.strings Binary files differindex f906e011..1dc95010 100644 --- a/Resources/English.lproj/Preferences.strings +++ b/Resources/English.lproj/Preferences.strings diff --git a/Resources/English.lproj/UserManagerView.strings b/Resources/English.lproj/UserManagerView.strings Binary files differindex bf8bad55..9f31028f 100644 --- a/Resources/English.lproj/UserManagerView.strings +++ b/Resources/English.lproj/UserManagerView.strings diff --git a/Resources/Plists/CompletionTokens.plist b/Resources/Plists/CompletionTokens.plist index 6d48e267..f089401d 100644 --- a/Resources/Plists/CompletionTokens.plist +++ b/Resources/Plists/CompletionTokens.plist @@ -60,6 +60,7 @@ <string>CASCADE</string> <string>CASCADED</string> <string>CASE</string> + <string>CATALOG_NAME</string> <string>CHAIN</string> <string>CHANGE</string> <string>CHANGED</string> @@ -72,6 +73,7 @@ <string>CHECKSUM</string> <string>CHECKSUM TABLE</string> <string>CIPHER</string> + <string>CLASS_ORIGIN</string> <string>CLIENT</string> <string>CLOSE</string> <string>COALESCE</string> @@ -79,6 +81,7 @@ <string>COLLATE</string> <string>COLLATION</string> <string>COLUMN</string> + <string>COLUMN_NAME</string> <string>COLUMNS</string> <string>COLUMN_FORMAT</string> <string>COMMENT</string> @@ -92,10 +95,14 @@ <string>CONNECTION</string> <string>CONSISTENT</string> <string>CONSTRAINT</string> + <string>CONSTRAINT_CATALOG</string> + <string>CONSTRAINT_NAME</string> + <string>CONSTRAINT_SCHEMA</string> <string>CONTAINS</string> <string>CONTINUE</string> <string>CONTRIBUTORS</string> <string>CONVERT</string> + <string>CURSOR_NAME</string> <string>CREATE</string> <string>CREATE DATABASE</string> <string>CREATE EVENT</string> @@ -104,6 +111,7 @@ <string>CREATE LOGFILE GROUP</string> <string>CREATE PROCEDURE</string> <string>CREATE SCHEMA</string> + <string>CREATE SERVER</string> <string>CREATE TABLE</string> <string>CREATE TABLESPACE</string> <string>CREATE TRIGGER</string> @@ -216,6 +224,7 @@ <string>FOR UPDATE</string> <string>FORCE</string> <string>FOREIGN</string> + <string>FOREIGN DATA WRAPPER</string> <string>FOREIGN KEY</string> <string>FOUND</string> <string>FRAC_SECOND</string> @@ -223,6 +232,7 @@ <string>FULL</string> <string>FULLTEXT</string> <string>FUNCTION</string> + <string>GENERAL</string> <string>GEOMETRY</string> <string>GEOMETRYCOLLECTION</string> <string>GLOBAL</string> @@ -235,6 +245,7 @@ <string>HAVING</string> <string>HELP</string> <string>HIGH_PRIORITY</string> + <string>HOST</string> <string>HOSTS</string> <string>HOUR</string> <string>HOUR_MICROSECOND</string> @@ -243,6 +254,7 @@ <string>IDENTIFIED</string> <string>IF</string> <string>IGNORE</string> + <string>IGNORE_SERVER_IDS</string> <string>IMPORT</string> <string>IN</string> <string>INDEX</string> @@ -315,6 +327,7 @@ <string>LOW_PRIORITY</string> <string>MASTER</string> <string>MASTER_CONNECT_RETRY</string> + <string>MASTER_HEARTBEAT_PERIOD</string> <string>MASTER_HOST</string> <string>MASTER_LOG_FILE</string> <string>MASTER_LOG_POS</string> @@ -342,6 +355,7 @@ <string>MEDIUMTEXT</string> <string>MEMORY</string> <string>MERGE</string> + <string>MESSAGE_TEXT</string> <string>MICROSECOND</string> <string>MIDDLEINT</string> <string>MIGRATE</string> @@ -358,6 +372,7 @@ <string>MULTIPOINT</string> <string>MULTIPOLYGON</string> <string>MUTEX</string> + <string>MYSQL_ERRNO</string> <string>NAME</string> <string>NAMES</string> <string>NATIONAL</string> @@ -394,6 +409,7 @@ <string>OUT</string> <string>OUTER</string> <string>OUTFILE</string> + <string>OWNER</string> <string>PACK_KEYS</string> <string>PARSER</string> <string>PARTIAL</string> @@ -406,6 +422,7 @@ <string>PLUGINS</string> <string>POINT</string> <string>POLYGON</string> + <string>PORT</string> <string>PRECISION</string> <string>PREPARE</string> <string>PRESERVE</string> @@ -453,6 +470,7 @@ <string>REQUIRE</string> <string>RESET</string> <string>RESET MASTER</string> + <string>RESIGNAL</string> <string>RESTORE</string> <string>RESTORE TABLE</string> <string>RESTRICT</string> @@ -475,6 +493,7 @@ <string>SCHEDULER</string> <string>SCHEMA</string> <string>SCHEMAS</string> + <string>SCHEMA_NAME</string> <string>SECOND</string> <string>SECOND_MICROSECOND</string> <string>SECURITY</string> @@ -484,6 +503,7 @@ <string>SEPARATOR</string> <string>SERIAL</string> <string>SERIALIZABLE</string> + <string>SERVER</string> <string>SESSION</string> <string>SET</string> <string>SET GLOBAL</string> @@ -541,11 +561,14 @@ <string>SHOW VARIABLES</string> <string>SHOW WARNINGS</string> <string>SHUTDOWN</string> + <string>SIGNAL</string> <string>SIGNED</string> <string>SIMPLE</string> <string>SLAVE</string> + <string>SLOW</string> <string>SMALLINT</string> <string>SNAPSHOT</string> + <string>SOCKET</string> <string>SOME</string> <string>SONAME</string> <string>SOUNDS</string> @@ -591,6 +614,7 @@ <string>STRAIGHT_JOIN</string> <string>STRING</string> <string>SUBJECT</string> + <string>SUBCLASS_ORIGIN</string> <string>SUBPARTITION</string> <string>SUBPARTITIONS</string> <string>SUPER</string> @@ -598,6 +622,7 @@ <string>TABLE</string> <string>TABLES</string> <string>TABLESPACE</string> + <string>TABLE_NAME</string> <string>TEMPORARY</string> <string>TEMPTABLE</string> <string>TERMINATED</string> @@ -663,6 +688,7 @@ <string>WITH</string> <string>WITH CONSISTENT SNAPSHOT</string> <string>WORK</string> + <string>WRAPPER</string> <string>WRITE</string> <string>X509</string> <string>XA</string> diff --git a/Resources/Plists/PreferenceDefaults.plist b/Resources/Plists/PreferenceDefaults.plist index 591bb967..0c34ab58 100644 --- a/Resources/Plists/PreferenceDefaults.plist +++ b/Resources/Plists/PreferenceDefaults.plist @@ -177,7 +177,9 @@ <true/> <key>deletedDefaultBundles</key> <array/> - <key>updatedDefaultBundles</key> - <array/> + <key>CustomQuerySoftIndent</key> + <false/> + <key>CustomQuerySoftIndentWidth</key> + <integer>2</integer> </dict> </plist> diff --git a/Scripts/build-mysql-client.sh b/Scripts/build-mysql-client.sh index 1641053c..fbaef809 100755 --- a/Scripts/build-mysql-client.sh +++ b/Scripts/build-mysql-client.sh @@ -1,16 +1,36 @@ #! /bin/ksh -## $Id: build-mysql-client.sh 1044 2009-07-17 14:30:58Z stuart02 $ -## -## Author: Stuart Connolly (stuconnolly.com) -## Copyright (c) 2009 Stuart Connolly. All rights reserved. -## -## Paramters: -s -- The path to the MySQL source directory. -## -q -- Quiet. Don't output any compiler messages. -## -c -- Clean the source after build completes. -## -d -- Debug. Output the build statements. -## -## Description: Builds the MySQL client libraries for distrubution in Sequel Pro's MCPKit MySQL framework. +# +# $Id$ +# +# build-mysql-client.sh +# sequel-pro +# +# Created by Stuart Connolly (stuconnolly.com) +# Copyright (c) 2009 Stuart Connolly. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# More info at <http://code.google.com/p/sequel-pro/> + +# Builds the MySQL client libraries for distrubution in Sequel Pro's MCPKit MySQL framework. +# +# Paramters: -s -- The path to the MySQL source directory. +# -q -- Quiet. Don't output any compiler messages. +# -c -- Clean the source after build completes. +# -d -- Debug. Output the build statements. QUIET='NO' DEBUG='NO' diff --git a/Scripts/build-version.pl b/Scripts/build-version.pl index fa12bfdb..92dcc15b 100755 --- a/Scripts/build-version.pl +++ b/Scripts/build-version.pl @@ -1,22 +1,42 @@ -#! /usr/bin/perl -w - -## $Id$ -## -## Author: Stuart Connolly (stuconnolly.com) -## Copyright (c) 2009 Stuart Connolly. All rights reserved. -## -## Paramters: <none> -## -## Description: Updates the application/bundle's Info.plist CFBundleVersion to match that of the current -## Subversion revision. +#! /usr/bin/perl + +# +# $Id$ +# +# build-version.pl +# sequel-pro +# +# Created by Stuart Connolly (stuconnolly.com) +# Copyright (c) 2009 Stuart Connolly. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# More info at <http://code.google.com/p/sequel-pro/> + +# Updates the application/bundle's Info.plist CFBundleVersion to match that of the current +# Subversion revision. use strict; use warnings; +use Carp; + die "$0: Must be run from within Xcode. Exiting..." unless $ENV{"BUILT_PRODUCTS_DIR"}; my $revision = `svnversion -n ./`; -my $info_plist = "$ENV{BUILT_PRODUCTS_DIR}/$ENV{INFOPLIST_PATH}"; +my $plist_path = "$ENV{BUILT_PRODUCTS_DIR}/$ENV{INFOPLIST_PATH}"; my $version = $revision; @@ -24,12 +44,18 @@ my $version = $revision; die "$0: No Subversion revision found. Exiting..." unless $version; -open(INFO_FH, "$info_plist") or die "$0: $info_plist: $!"; -my $info = join("", <INFO_FH>); -close(INFO_FH); +open(my $plist, $plist_path) || croak "Unable to open plist file for reading: $!"; + +my $info = join('', <$plist>); + +close($plist); $info =~ s/([\t ]+<key>CFBundleVersion<\/key>\n[\t ]+<string>).*?(<\/string>)/$1$version$2/; -open(INFO_FH, ">$info_plist") or die "$0: $info_plist: $!"; -print INFO_FH $info; -close(INFO_FH); +open($plist, '>', $plist_path) || croak "Unable to open plist file for writing: $!"; + +print $plist $info; + +close($plist); + +exit 0 diff --git a/Scripts/build.sh b/Scripts/build.sh index a9291abb..51ae052c 100755 --- a/Scripts/build.sh +++ b/Scripts/build.sh @@ -1,15 +1,33 @@ #! /bin/ksh -## $Id$ -## -## Author: Stuart Connolly (stuconnolly.com) -## Copyright (c) 2009 Stuart Connolly. All rights reserved. -## -## Paramters: <none> -## -## Description: Generic Sequel Pro build script. This script is intended to replace entering lots of code -## into Xcode's 'Run Scripts' build phase to make it easier to work with. As such this script -## can only be run by Xcode. +# +# $Id$ +# +# build.sh +# sequel-pro +# +# Created by Stuart Connolly (stuconnolly.com). +# Copyright (c) 2009 Stuart Connolly. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# More info at <http://code.google.com/p/sequel-pro/> + +# Generic Sequel Pro build script. This script is intended to replace entering lots of code +# into Xcode's 'Run Scripts' build phase to make it easier to work with. As such this script +# can only be run by Xcode. if [ "${BUILT_PRODUCTS_DIR}x" == 'x' ] then diff --git a/Scripts/create-test-stubs.pl b/Scripts/create-test-stubs.pl new file mode 100755 index 00000000..ac4193ca --- /dev/null +++ b/Scripts/create-test-stubs.pl @@ -0,0 +1,191 @@ +#! /usr/bin/perl + +# +# $Id$ +# +# create-test-stubs.sh +# sequel-pro +# +# Created by Stuart Connolly (stuconnolly.com) on January 8, 2011 +# Copyright (c) 2011 Stuart Connolly. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# More info at <http://code.google.com/p/sequel-pro/> + +use strict; +use warnings; + +use Carp; +use Getopt::Long; + +use constant PROJECT_NAME => 'sequel-pro'; +use constant PROJECT_URL => 'http://code.google.com/p/sequel-pro/'; + +# +# Print this script's usage. +# +sub usage +{ + print << "EOF"; +Usage: perl $0 [options] + +Possible options are: + + --header (-h) Source header file path (required) + --output (-c) The output path (required) + --author (-a) The author of the eventual test cases (required) + --help (-h) Print this help message + +EOF + + exit 0; +} + +# +# Writes the standard license/copyright header to the supplied file handle; +# +sub write_header_to_file +{ + my ($handle, $filename, $author, $is_header) = @_; + + my @date = localtime(time); + + my @months = qw(January February March April May June July August September October November December); + + my $year = ($date[5] + 1900); + my $month = $months[$date[4]]; + + my $project = PROJECT_NAME; + my $project_url = PROJECT_URL; + + $filename = ($is_header) ? "${filename}.h" : "${filename}.m"; + + my $content = << "EOF"; +// +// \$Id\$ +// +// $filename +// $project +// +// Created by $author on $month $date[3], $year +// Copyright (c) $year ${author}. All rights reserved. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// More info at <${project_url}> + +EOF + + print $handle $content; +} + +my ($header, $output, $author, $comments, $help); + +# Get options +GetOptions('header|s=s' => \$header, + 'output|o=s' => \$output, + 'author|a=s' => \$author, + 'comments|c' => \$comments, + 'help|h' => \$help); + +usage if $help; +usage if ((!$header) && (!$output) && (!$author)); + +open(my $header_handle, $header) || croak "Unable to open source header file: $!"; + +my @methods; +my $class_name; +my $category_name; + +# Extract all the methods (both instance and class) from the source header +while (<$header_handle>) +{ + ($_ =~ /^\s*\@interface\s*([a-zA-z0-9_-]+)\s*\(([a-zA-z0-9_-]+)\)\s*$/) && ($class_name = $1, $category_name = $2); + ($_ =~ /^\s*[-|+]\s*\([a-zA-Z\s*\*_-]+\)(.*)$/) && (my $method_sig = $1); + + $class_name =~ s/^\s+// if $class_name; + $class_name =~ s/\s+$// if $class_name; + + $category_name =~ s/^\s+// if $category_name; + $category_name =~ s/\s+$// if $category_name; + + push(@methods, $method_sig) if $method_sig; +} + +close($header_handle); + +my $filename = ($category_name) ? $category_name : $class_name; +my $new_filename = "${filename}Tests"; + +my $header_file = "${output}/${new_filename}.h"; +my $imp_file = "${output}/${new_filename}.m"; + +# Create the new header and implementation files +open(my $output_header_handle, '>', $header_file) || croak "Unable to open output file: $!"; +open(my $output_imp_handle, '>', $imp_file) || croak "Unable to open output file: $!"; + +print "Creating file '${header_file}'...\n"; +print "Creating file '${imp_file}'...\n"; + +# Write the license header to the new files +write_header_to_file($output_header_handle, $new_filename, $author, 1); +write_header_to_file($output_imp_handle, $new_filename, $author, 0); + +print $output_header_handle "#import <SenTestingKit/SenTestingKit.h>\n\n\@interface $new_filename : SenTestCase\n{\n\n}\n\n\@end\n"; +print $output_imp_handle "#import \"${new_filename}.h\"\n#import \"${filename}.h\"\n\n\@implementation $new_filename\n\n"; + +# Write the setup and tear down methods +print $output_imp_handle "/**\n * Test case setup.\n */\n" if $comments; +print $output_imp_handle "- (void)setUp\n{\n\n}\n\n"; +print $output_imp_handle "/**\n * Test case tear down.\n */\n" if $comments; +print $output_imp_handle "- (void)tearDown\n{\n\n}\n\n"; + +# For each of the extracted methods write a test case stub to the new test implementation file +foreach (@methods) +{ + $_ =~ s/\([a-zA-Z\s*\*_-]*\)\s*[a-zA-z0-9_-]+//gi; + $_ =~ s/:\s*([a-zA-z0-9_-]+)\s*/\u$1/gi; + $_ =~ s/://; + $_ =~ s/;//; + + my $method = "test\u$_"; + + print "Writing test case stub: $method\n"; + + print $output_imp_handle "/**\n * $_ test case.\n */\n" if $comments; + print $output_imp_handle "- (void)${method}\n{\n\n}\n\n"; +} + +print $output_imp_handle "\@end\n\n"; + +close($output_header_handle); +close($output_imp_handle); + +print "Test case stub generation complete for class '${filename}'\n"; + +exit 0 diff --git a/Scripts/localize.sh b/Scripts/localize.sh index e3de6957..0c74a01f 100755 --- a/Scripts/localize.sh +++ b/Scripts/localize.sh @@ -1,13 +1,31 @@ -#! /bin/ksh - -## $Id$ -## -## Author: Created by Rowan Beentje. -## Copyright (c) 2010 Sequel Pro Team. All rights reserved. -## -## Paramters: <none> -## -## Description: Localizes all of the application's NIB files. This script should only be run by Xcode. +#! /bin/ksh + +# +# $Id$ +# +# localize.sh +# sequel-pro +# +# Created by Rowan Beentje. +# Copyright (c) 2010 Sequel Pro Team. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# More info at <http://code.google.com/p/sequel-pro/> + +# Localizes all of the application's NIB files. This script should only be run by Xcode. if [ "${BUILT_PRODUCTS_DIR}x" == 'x' ] then diff --git a/Scripts/package-application.sh b/Scripts/package-application.sh index 69e14058..7bc402b9 100755 --- a/Scripts/package-application.sh +++ b/Scripts/package-application.sh @@ -1,17 +1,34 @@ #!/bin/sh -# $Id$ # -# package-application.sh -# sequel-pro +# $Id$ # -# A very basic script to build and sign a disk image for Sequel Pro; based on better work by Stuart Connolly. +# package-application.sh +# sequel-pro # -# Created by Rowan Beentje on 25/03/2009. -# Copyright 2009 Sequel Pro Team. All rights reserved. +# Created by Rowan Beentje on March 25, 2009. +# Copyright (c) 2009 Sequel Pro Team. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# More info at <http://code.google.com/p/sequel-pro/> -# Ensure the path to the application has been supplied - should have occurred when the -# script was run by selecting "Distribution" target and building. +# A very basic script to build and sign a disk image for Sequel Pro; based on better work by Stuart Connolly. +# +# Ensure the path to the application has been supplied - should have occurred when the +# script was run by selecting 'Distribution' target and building. if [ $# -eq 0 ] then diff --git a/Scripts/run-tests.sh b/Scripts/run-tests.sh new file mode 100755 index 00000000..22ed51dd --- /dev/null +++ b/Scripts/run-tests.sh @@ -0,0 +1,36 @@ +#! /bin/ksh + +# +# $Id$ +# +# run-tests.sh +# sequel-pro +# +# Created by Stuart Connolly (stuconnolly.com) +# Copyright (c) 2011 Stuart Connolly. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# More info at <http://code.google.com/p/sequel-pro/> + +# Runs Sequel Pro's unit tests. This script should only be run by Xcode. + +# Add the unit test bundle's Frameworks/ path to the search paths for dynamic libraries +export DYLD_FRAMEWORK_PATH="${CONFIGURATION_BUILD_DIR}/${FULL_PRODUCT_NAME}/Contents/Frameworks" + +# Run the unit tests in this test bundle +"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" + +exit 0 diff --git a/Scripts/trim-application.sh b/Scripts/trim-application.sh index a8194060..bc6a99ec 100755 --- a/Scripts/trim-application.sh +++ b/Scripts/trim-application.sh @@ -1,23 +1,43 @@ -#! /bin/ksh - -## $Id$ -## -## Author: Stuart Connolly (stuconnolly.com) -## Copyright (c) 2009 Stuart Connolly. All rights reserved. -## -## Largely based on 'trim-app' by Ankur Kothari ( http://lipidity.com/downloads/trim-app/ ) -## -## Paramters: -p -- The path to the application that is to be trimmed -## -d -- Remove unnecessary files (i.e. .DS_Store files, etc) (optional). -## -n -- Trim nib files (i.e. remove .info.nib, classes.nib, data.dependency and designable.nib) (optional). -## -s -- Strip debug symbols from application binary (optional). -## -t -- Compress tiff images using LZW compression (optional). -## -f -- Remove framework headers (optional). -## -r -- Remove resource forks (optional). -## -a -- All of above optional options. Equivalent to '-d -n -s -t -f -r'. -## -## Description: Trims an application bundle of unnecessary files and resources that are generally not required and otherwise -## waste disk space. +#! /bin/ksh + +# +# $Id$ +# +# trim-application.sh +# sequel-pro +# +# Created by Stuart Connolly (stuconnolly.com) +# Copyright (c) 2009 Stuart Connolly. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# More info at <http://code.google.com/p/sequel-pro/> + +# Trims an application bundle of unnecessary files and resources that are generally not required and otherwise +# waste disk space. +# +# Largely based on 'trim-app' by Ankur Kothari ( http://lipidity.com/downloads/trim-app/ ) +# +# Parameters: -p -- The path to the application that is to be trimmed +# -d -- Remove unnecessary files (i.e. .DS_Store files, etc) (optional). +# -n -- Trim nib files (i.e. remove .info.nib, classes.nib, data.dependency and designable.nib) (optional). +# -s -- Strip debug symbols from application binary (optional). +# -t -- Compress tiff images using LZW compression (optional). +# -f -- Remove framework headers (optional). +# -r -- Remove resource forks (optional). +# -a -- All of above optional options. Equivalent to '-d -n -s -t -f -r'. usage() { diff --git a/SharedSupport/Default Bundles/CopyAsJSON.spBundle/command.plist b/SharedSupport/Default Bundles/CopyAsJSON.spBundle/command.plist new file mode 100644 index 00000000..f4f1ecd9 --- /dev/null +++ b/SharedSupport/Default Bundles/CopyAsJSON.spBundle/command.plist @@ -0,0 +1,132 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>author</key> + <string>Hans-Jörg Bibiko</string> + <key>category</key> + <string>Copy</string> + <key>command</key> + <string>cat | perl -e ' + +# read first line to get the column names (header) +$firstLine = <>; + +# bail if nothing could read +if(!defined($firstLine)) { + exit 0; +} + +# store the column names +chomp($firstLine); +$firstLine =~ s/\"/\\\"/g; # escape " +@header = split(/\t/, $firstLine); + +$h_cnt = $#header; # number of columns + +# get the column definitions +open(META, $ENV{"SP_BUNDLE_INPUT_TABLE_METADATA"}) or die $!; +@meta = (); +while(<META>) { + chomp(); + my @arr = split(/\t/); + push @meta, \@arr; +} +close(META); + +print "{\n\t\"data\":\n\t[\n"; + +# read row data of each selected row +$rowData=<>; +while($rowData) { + + print "\t\t{\n"; + + # remove line ending + chomp($rowData); + + # escape " + $rowData=~s/\"/\\\"/g; + + # split column data which are tab-delimited + @data = split(/\t/, $rowData); + for($i=0; $i<=$h_cnt; $i++) { + + # re-escape \t and \n + $cellData = $data[$i]; + $cellData =~ s/↵/\n/g; + $cellData =~ s/⇥/\t/g; + + print "\t\t\t\"$header[$i]\": "; + + # check for data types + if($cellData eq "NULL") { + print "null"; + } + elsif($meta[$i]->[1] eq "integer" || $meta[$i]->[1] eq "float") { + chomp($cellData); + $d = $cellData+0; + print "$d"; + } else { + chomp($cellData); + print "\"$cellData\""; + } + + # suppress last , + if($i<$h_cnt) { + print ","; + } + + print "\n"; + + } + + print "\t\t}"; + + # get next row + $rowData=<>; + + # suppress last , + if($rowData) { + print ","; + } + + print "\n"; +} + +print "\t]\n}"; + +' | __CF_USER_TEXT_ENCODING=$UID:0x8000100:0x8000100 pbcopy</string> + <key>contact</key> + <string>znvy@ovovxb.qr</string> + <key>description</key> + <string>Copies the selected rows excluding any BLOB data in a data table JSON formatted into the pasteboard. + +Version 1.0</string> + <key>input</key> + <string>selectedtablerowsastab</string> + <key>internalKeyEquivalent</key> + <dict> + <key>characters</key> + <string>C</string> + <key>keyCode</key> + <integer>8</integer> + <key>modifierFlags</key> + <integer>262144</integer> + </dict> + <key>keyEquivalent</key> + <string>^c</string> + <key>name</key> + <string>Copy as JSON</string> + <key>output</key> + <string>none</string> + <key>scope</key> + <string>datatable</string> + <key>tooltip</key> + <string>Copies the selected rows excluding any BLOB data JSON formatted into the pasteboard</string> + <key>uuid</key> + <string>CBB8B7A7-5AB9-4F4C-A404-D99CA9521337</string> + <key>isDefaultBundle</key> + <true/> +</dict> +</plist> diff --git a/SharedSupport/Default Bundles/CopySingleLineQuoted.spBundle/command.plist b/SharedSupport/Default Bundles/CopySingleLineQuoted.spBundle/command.plist new file mode 100644 index 00000000..56cdd9c4 --- /dev/null +++ b/SharedSupport/Default Bundles/CopySingleLineQuoted.spBundle/command.plist @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>author</key> + <string>Hans-Jörg Bibiko</string> + <key>category</key> + <string>Query Editor</string> + <key>command</key> + <string>cat | perl -ne 'chomp;s/\t/ /g;s/"/\\"/g;print "\"".$_."\" . \"\\n\" .\n"' | sed '$ s/.........$//' | sed '$ s/$/;/' | __CF_USER_TEXT_ENCODING=$UID:0x8000100:0x8000100 pbcopy</string> + <key>contact</key> + <string>znvy@ovovxb.qr</string> + <key>description</key> + <string>Takes the current query or the selection and copies it as a single line quoted multi-line string by appending a ; into the pasteboard for usage in other IDEs as e.g. PHP code snippet. + +Example: + +SELECT a + FROM b + ORDER BY c DESC + +will copy + +"SELECT a" . "\n" . +" FROM b" . "\n" . +" ORDER BY c DESC"; + +Version 1.0 +</string> + <key>input</key> + <string>selectedtext</string> + <key>input_fallback</key> + <string>currentquery</string> + <key>keyEquivalent</key> + <string></string> + <key>name</key> + <string>Copy Single Line Quoted</string> + <key>output</key> + <string>none</string> + <key>scope</key> + <string>inputfield</string> + <key>tooltip</key> + <string>Takes the current query or the selection and copies it as a single line quoted multi-line string by appending a ; into the pasteboard</string> + <key>uuid</key> + <string>CDAC825A-AE80-4544-9DBB-8E68A5C540D0</string> + <key>isDefaultBundle</key> + <true/> +</dict> +</plist> diff --git a/SharedSupport/Default Bundles/DB Report.spBundle/Support/header.html b/SharedSupport/Default Bundles/DB Report.spBundle/Support/header.html new file mode 100644 index 00000000..b67b633c --- /dev/null +++ b/SharedSupport/Default Bundles/DB Report.spBundle/Support/header.html @@ -0,0 +1,41 @@ +<html> + <head> + <title>Database Report</title> + <style type="text/css"> + hr { + background: #606060; + color: #606060; + border-style: solid; + border-color: #606060; + border-width: 2px 0 0 0; + margin-top: 0; + } + a:hover { + text-decoration: none; + } + a { + text-decoration: none; + } + a:hover:after { + content: " ➪"; + } + .nonVisible { + display:none; + } + </style> + <script type="text/javascript" charset="utf-8"> + function toggle_display(elt) + { + var e; var p; + e = elt.getAttribute("id") + ":data"; + if (window.document.getElementById(e).className != "") { + window.document.getElementById(e).className = ""; + elt.innerHTML = "▼"; + } else { + window.document.getElementById(e).className = "nonVisible"; + elt.innerHTML = "▶"; + } + } + </script> + </head> +<body> diff --git a/SharedSupport/Default Bundles/DB Report.spBundle/Support/processTableData.pl b/SharedSupport/Default Bundles/DB Report.spBundle/Support/processTableData.pl new file mode 100755 index 00000000..7d0b5545 --- /dev/null +++ b/SharedSupport/Default Bundles/DB Report.spBundle/Support/processTableData.pl @@ -0,0 +1,32 @@ +#!/usr/bin/env perl -w + +while(<>) { + + # split tab delimited data + @data = split(/\t/); + + $pid = $ENV{"PID"}; + $db = $ENV{"DB"}; + $res = $ENV{"RES"}; + $itemType = "table"; + + # $data[1] is NULL indicates item is a view + if($data[1] eq "NULL") { + $img = "file://$res/table-view-small-square.tiff"; + $itemType = "view"; + } else { + $img = "file://$res/table-small-square.tiff"; + } + + print <<HTML4; + <tr> + <td align=center width='40px'><img src=\"$img\"></td> + <td><a href=\"sequelpro://$pid\@passToDoc/SelectDatabase/$db/$data[0]/\" title=\"Click to select $itemType “$db.$data[0]”\">$data[0]</a></td> + <td>$data[1]</td> + <td align=right>$data[4]</td> + <td align=right>$data[6]</td> + <td align=right>$data[11]</td> + <td align=right>$data[12]</td> + </tr> +HTML4 +}
\ No newline at end of file diff --git a/SharedSupport/Default Bundles/DB Report.spBundle/command.plist b/SharedSupport/Default Bundles/DB Report.spBundle/command.plist new file mode 100644 index 00000000..e6c808ae --- /dev/null +++ b/SharedSupport/Default Bundles/DB Report.spBundle/command.plist @@ -0,0 +1,174 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>author</key> + <string>Hans-Jörg Bibiko</string> + <key>category</key> + <string>Report</string> + <key>command</key> + <string> +# Since this command will execute SQL statements at the front most +# document window's connection check for a passed process ID to cancel +# this command by displaying a tooltip. Otherwise the loop after +# “open "sequelpro://$SP_PROCESS_ID@passToDoc/ExecuteQuery"” +# won't break. +if [ -z $SP_PROCESS_ID ]; then + echo "<font color=red>No front most connection window found!</font>" + exit $SP_BUNDLE_EXIT_SHOW_AS_HTML_TOOLTIP +fi + +# send query to Sequel Pro +cat <<SQL > "$SP_QUERY_FILE" +SELECT TABLE_SCHEMA AS Name, FORMAT((SUM(DATA_LENGTH)+SUM(INDEX_LENGTH))/1000, 1) AS \`Size (kiB) incl. indices\` +FROM information_schema.TABLES +GROUP BY TABLE_SCHEMA +SQL + +# execute the SQL statement; the result will be available in the file $SP_QUERY_RESULT_FILE +open "sequelpro://$SP_PROCESS_ID@passToDoc/ExecuteQuery" + +# wait for Sequel Pro; status file will be written to disk if query was finished +while [ 1 ] +do + [[ -e "$SP_QUERY_RESULT_STATUS_FILE" ]] && break + sleep 0.01 +done + +# Prepair HTML code +cat "$SP_BUNDLE_PATH/Support/header.html" +cat <<HTML1 +<center> +<h3><font color=blue>Connection: ‘$SP_CURRENT_HOST’ – $SP_RDBMS_TYPE ($SP_RDBMS_VERSION)</font></h3> +<table width=80%> + <tr> + <td align=center><img width='96px' src='file://$SP_ICON_FILE'></td> + <td> + <table style='border-collapse:collapse'> + <tr> + <th align=left> +HTML1 + +# Check for possible MySQL error +if [ `cat "$SP_QUERY_RESULT_STATUS_FILE"` == 1 ]; then + + # If error + echo "<i>No global summary available</i>" + +else + + # $SP_QUERY_RESULT_FILE contains the file path to the query result + + # First line contains the column names - wrap them into <th> tags + cat "$SP_QUERY_RESULT_FILE" | head -n 1 |perl -pe 's!\t!</th><th></th><th align=right>!g;s!$!</th></tr><tr><td>!' + + # Output all row except the first one and wrap them into <tr><td> tags + cat "$SP_QUERY_RESULT_FILE" | sed '1d' | perl -pe 's!\t!</td><td>&nbsp;&nbsp;</td><td align='right'>!g;s!$!</tr><tr><td>!' + +fi +cat <<HTML2 + </table> + </td> + </tr> +</table> +<hr> +</center> +HTML2 + +# Clear hand-shake files for further usage +rm -f "$SP_QUERY_FILE" +rm -f "$SP_QUERY_RESULT_STATUS_FILE" +rm -f "$SP_QUERY_RESULT_FILE" +rm -f "$SP_QUERY_RESULT_META_FILE" + +# Read all databases into a BASH array; $SP_ALL_DATABASES provides them as a tab delimited string +# Set the Internal Field Separator IFS to 'tab' and process the array by using the new IFS due to +# the fact that a database name could contain 'spaces' +OLDIFS="$IFS" +IFS=" " +dbs=("$SP_ALL_DATABASES") + +# Loop through all databases +cnt=1 +for db in $dbs +do + + cat <<HTML3 + <br> + <table width=100% style='background-color:#ECECEC;'> + <tr> + <td width=20px><span id="$cnt" onclick=toggle_display(this) style="cursor:pointer;color:gray;font-size:smaller;" title="Toggle visibility">▼</span></td> + <td align=center width='40px'><img src='file://$SP_APP_RESOURCES_DIRECTORY/database-small.png'></td> + <td><big><a href='sequelpro://$SP_PROCESS_ID@passToDoc/SelectDatabase/$db' title='Click to select database “$db”'>$db</big></a></td> + </tr> + </table> + <table id="$cnt:data" border=1 style='border-collapse:collapse' width=100%> + <tr> + <th></th><th>Name</th><th>Engine</th><th>Rows</th><th>Size</th><th>Created</th><th>Updated</th> + </tr> +HTML3 + + # Query for table status + echo "SHOW TABLE STATUS IN \`$db\`" > "$SP_QUERY_FILE" + open "sequelpro://$SP_PROCESS_ID@passToDoc/ExecuteQuery" + + # wait for Sequel Pro; status file will be written to disk if query was finished + while [ 1 ] + do + [[ -e "$SP_QUERY_RESULT_STATUS_FILE" ]] && break + sleep 0.01 + done + + cnt=$((cnt+1)) + + export DB="$db" + export PID="$SP_PROCESS_ID" + export RES="$SP_APP_RESOURCES_DIRECTORY"; + cat "$SP_QUERY_RESULT_FILE" | sed '1d' | perl "$SP_BUNDLE_PATH/Support/processTableData.pl" + + echo "</table>" + + # Clear hand-shake files + rm -f "$SP_QUERY_FILE" + rm -f "$SP_QUERY_RESULT_STATUS_FILE" + rm -f "$SP_QUERY_RESULT_FILE" + rm -f "$SP_QUERY_RESULT_META_FILE" + +done + +# Reset IFS +IFS="$OLDIFS" + +echo "</body></html>" +</string> + <key>contact</key> + <string>znvy@ovovxb.qr</string> + <key>description</key> + <string>Display a report about all databases of the current connection including the possibility to select a database or table via hyperlink. + +Version 1.0</string> + <key>internalKeyEquivalent</key> + <dict> + <key>characters</key> + <string>A</string> + <key>keyCode</key> + <integer>0</integer> + <key>modifierFlags</key> + <integer>1835008</integer> + </dict> + <key>keyEquivalent</key> + <string>^~@a</string> + <key>name</key> + <string>Database Report</string> + <key>output</key> + <string>showashtml</string> + <key>scope</key> + <string>general</string> + <key>tooltip</key> + <string>Display report about all databases of the current connection</string> + <key>uuid</key> + <string>AC45C093-9157-4E18-9683-C94415995935</string> + <key>isDefaultBundle</key> + <true/> +</dict> +</plist> diff --git a/SharedSupport/Default Bundles/Format SQL.spBundle/command.plist b/SharedSupport/Default Bundles/Format SQL.spBundle/command.plist new file mode 100644 index 00000000..13e86145 --- /dev/null +++ b/SharedSupport/Default Bundles/Format SQL.spBundle/command.plist @@ -0,0 +1,203 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>author</key> + <string>Hans-Jörg Bibiko</string> + <key>category</key> + <string>Format</string> + <key>command</key> + <string> + +# check for empty STDIN +SQL=$(cat) +if [ -z "$SQL" ]; then + echo "No SQL statements passed." + exit $SP_BUNDLE_EXIT_SHOW_AS_TEXT_TOOLTIP +fi + +# check if connected to the internet and if server is up +connected=$(/sbin/ping -t 8 -c 1 -on www.dpriver.com 2> /dev/null | grep '69\.5\.11\.169' | wc -l) +if [ $connected -eq "0" ]; then + echo "<font color=red>You are probably not connected to the internet or http://www.dpriver.com/ server is down.</font>" + exit $SP_BUNDLE_EXIT_SHOW_AS_HTML_TOOLTIP +fi + +# show info alert about sending the SQL statements to an online service +if [ ! -e infoShowed ]; then + touch infoShowed + osascript -e 'tell app "Sequel Pro" to display dialog "This command will send the SQL statement(s) - unencrypted - to an online service (http://www.dpriver.com). Please consider this before sending confidential data!\n\nThis message will only be displayed once." with icon caution' 2> 1 + if [ `cat 1 | wc -c` -ne 0 ]; then + rm -f 1 + exit $SP_BUNDLE_EXIT_NONE + fi + rm -f 1 +fi + +# send SQL to www.dpriver.com and replace the formatted SQL string in first responder; if a parser error occurred +# show error message and try to jump to the error +cat <<HTML +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> + <base href="http://www.dpriver.com/pp/"> + <title>Connecting www.dpriver.com</title> + <script> + function lookForResult() { + if(document.all.outputsql.value.length > 8) { + if(document.all.errorhint.style.display == "inline") { + var errormes = document.all.outputsql.value; + var re = /.*?\(\d+\s*,\s*(\d+)\).*/; + re.exec(errormes); + var pos = parseInt(RegExp.\$1) - 1; + re = /.*?(\d+).*/; + re.exec('$SP_SELECTED_TEXT_RANGE'); + var offset = parseInt(RegExp.\$1); + pos = pos + offset; + alert(document.all.outputsql.value); + window.system.setSelectedTextRange(pos+''); + } else { + var txt = document.all.outputsql.value; + var len = txt.length; + window.system.setSelectedTextRange('$SP_SELECTED_TEXT_RANGE'); + window.system.insertText(txt.slice(0,len-2)); + } + window.system.closeHTMLOutputWindow(); + } else { + setTimeout("lookForResult()",50); + } + } + + function waitForResult() { + window.system.suppressExceptionAlert(); + setTimeout("lookForResult()",50); + } + </script> + <script language="JavaScript" type="text/javascript" src="pp.js"></script> +</head> +<body onload='window.resizeTo(300,200);SQLFMT.format(document.all.sp_submit);waitForResult()'> +<div id="retvalues"></div> +<p><b>Copyright &copy; 2001-2010 Gudu Software<br>All Rights Reserved<br><a href="mailto:support@dpriver.com">Contact US</a></b></p> +<br><br><br><br><br> +<p align=right>Please wait…</p> +<div class="page-container-1" style="display:none;"> + <div id="container"> + <div id="wrapper"> + <div id="content"> + <form id="SqlFmtForm" name="frm_sqlformat" method="post" action="/cgi-bin/ppserver" onsubmit="return false;"> + <div id="secondpanel"> + <div id="sp_database"> + <label class="desc" style="display:inline;">Database</label> + <select name="dbvendor"> + <option value="mysql" selected>MySQL</option> + </select> + <label class="desc" style="display:inline;padding:0 0 0px 40px; border:0px solid;">Output:</label> + <select name="outputfmt"> + <option value="SQL" selected>SQL(Text)</option> + </select> + </div> + </div> + <div id="sqlpanel"> + <div id="sp_inputsql"> + <textarea id ="inputsql" name="inputsql" cols="1" rows="1" wrap="off"> + $SQL + </textarea> + </div> + <div id="sp_submit"> + <input type="button" id="btnformat" name="print" value="Format SQL" onclick="SQLFMT.format(this)" value="Format SQL"> + <label style="display:none;">(Time used: <span id="timestamp">0</span> seconds)</label> + </div> + <div id="sp_submit" style="text-align:left;"> + </div> + <label id="errorhint" class="desc" style="color:#DF0000 !important;display:none;"> + Can't format input sql, make sure there is no syntax error and select correct database. + <a href="" style="display:none;">OR Report a bug of this sql beautifier</a> + </label> + <iframe id="ioutputsql" ></iframe> + <div id="sp_outputsql" style="display:none;"> + <textarea id = "outputsql" name="outputsql" cols="80" rows="15" wrap="off" > + </textarea> + </div> + <div id="sp_errormsg" style="display:none;"> + Error message goes to here! + </div> + </div> + <div id="formatoptions"> + <select name="keywordcs"> + <option value="Uppercase" selected >Uppercase</option> + <option value="Lowercase" >Lowercase</option> + <option value="InitCap" >InitCap</option> + <option value="Unchanged" >Unchanged</option> + </select> + <select name="identifiercs"> + <option value="Uppercase" >Uppercase</option> + <option value="Lowercase" selected >Lowercase</option> + <option value="InitCap" >InitCap</option> + <option value="Unchanged" >Unchanged</option> + <option value="initcapeachword" >Init cap each word</option> + </select> + <select name="functioncs"> + <option value="Uppercase" >Uppercase</option> + <option value="Lowercase" >Lowercase</option> + <option value="InitCap" selected >InitCap</option> + <option value="Unchanged" >Unchanged</option> + </select> + <input type="radio" name="lnbrwithcomma" value="after" checked > After + <input type="radio" name="lnbrwithcomma" value="before" > Before + <input type="radio" name="lnbrwithcomma" value= "beforewithspace" > Before with space + <input type="radio" name="liststyle" value="stack" checked>Stacked + <input type="radio" name="liststyle" value="nostack">Not Stacked + <input type="radio" name="salign" value="sleft" checked> Align left + <input type="radio" name="salign" value="sright" > Align right + <input type="checkbox" name="andorunderwhere" value="yes" checked> And/Or under Where + <input type="checkbox" name="removelnbr" value="no" checked> Remove Linebreak before beautify + <input type="checkbox" name="trimquotechar" value="yes"> Trim Quoted Char of Each Line quoted char of eachline: <input type="text" name="quotechar" value= "&#34" size = 5 > + <input type="checkbox" name="compactmode" value="yes"> Compact the output of sql output + <input type="text" name="maxlenincm" value= "80" size = 5 > + </div> + <input type="hidden" name="clientid" value="4149-9094-8133-2031" /> + </form> + </div> + </div> + </div> +</div> + +</body> +</html> +HTML +</string> + <key>contact</key> + <string>znvy@ovovxb.qr</string> + <key>description</key> + <string>Send the current query or selection to www.dpriver.com and replace the current query or selection of the first responder by the server's formatted output. If a parser error occurred alert that error and tries to jump to the error location. + +Version 1.0</string> + <key>input</key> + <string>selectedtext</string> + <key>input_fallback</key> + <string>currentquery</string> + <key>internalKeyEquivalent</key> + <dict> + <key>characters</key> + <string>T</string> + <key>keyCode</key> + <integer>17</integer> + <key>modifierFlags</key> + <integer>1835008</integer> + </dict> + <key>keyEquivalent</key> + <string>^~@t</string> + <key>name</key> + <string>Format SQL</string> + <key>output</key> + <string>showashtml</string> + <key>scope</key> + <string>inputfield</string> + <key>tooltip</key> + <string>Send query or selection to www.dpriver.com to insert the SQL statement formatted</string> + <key>uuid</key> + <string>36E1F94D-D6C4-460A-A663-C694AF85E099</string> + <key>isDefaultBundle</key> + <true/> +</dict> +</plist> diff --git a/SharedSupport/Default Bundles/Toggle JSON Format.spBundle/command.plist b/SharedSupport/Default Bundles/Toggle JSON Format.spBundle/command.plist new file mode 100644 index 00000000..39555369 --- /dev/null +++ b/SharedSupport/Default Bundles/Toggle JSON Format.spBundle/command.plist @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>author</key> + <string>Hans-Jörg Bibiko</string> + <key>category</key> + <string>Format</string> + <key>command</key> + <string>DATA=$(cat) + +FORMAT=$(echo "$DATA" | head -n 1 | perl -e '$l=<>;if($l=~m/^\s*\{\s*$/) {print "1";} else {print "2";}') + +# if FORMAT == 1 then serialize JSON data otherwise pretty print them +if [ "$FORMAT" -eq "1" ]; then + + DATA=$(echo "$DATA" | php -r ' + $jsonData = ""; + $inputStream = fopen("php://stdin", "r"); + while($d = fgets($inputStream)) { $jsonData .= $d; } + print json_encode(json_decode($jsonData)); + ') + if [ "$DATA" == "null" ]; then + echo "<font>An error occured while serializing JSON data!</font>" + exit $SP_BUNDLE_EXIT_SHOW_AS_HTML_TOOLTIP + fi + +else + + DATA=$(echo "$DATA" | python -mjson.tool) + +fi + +# if there's a need to preserve Unicode characters remove the first to characters of the following line +# DATA=$(echo "$DATA" | perl -Xpe 'binmode STDIN,":utf8";binmode STDOUT,":utf8";s/\\u([0-9A-F]{4})/chr(hex($1))/ieg') + +printf "%b" "$DATA"</string> + <key>contact</key> + <string>znvy@ovovxb.qr</string> + <key>description</key> + <string>If the first line of the selection or the entire content of the current text input field only contains a "{" then serialize the JSON data otherwise the JSON data will be pretty printed. If there's a need to preserve the Unicode characters you can uncomment the line 22. + +Version 1.0</string> + <key>input</key> + <string>selectedtext</string> + <key>input_fallback</key> + <string>entirecontent</string> + <key>internalKeyEquivalent</key> + <dict> + <key>characters</key> + <string>J</string> + <key>keyCode</key> + <integer>38</integer> + <key>modifierFlags</key> + <integer>1572864</integer> + </dict> + <key>keyEquivalent</key> + <string>~@j</string> + <key>name</key> + <string>Toggle JSON Format</string> + <key>output</key> + <string>replaceselection</string> + <key>scope</key> + <string>inputfield</string> + <key>tooltip</key> + <string>Serialize or pretty print JSON data</string> + <key>uuid</key> + <string>87FD8A4F-90AA-4020-9E0B-8CDD05764D08</string> + <key>isDefaultBundle</key> + <true/> +</dict> +</plist> diff --git a/SharedSupport/Default Bundles/WrapInDelimiter.spBundle/command.plist b/SharedSupport/Default Bundles/WrapInDelimiter.spBundle/command.plist new file mode 100644 index 00000000..3588396e --- /dev/null +++ b/SharedSupport/Default Bundles/WrapInDelimiter.spBundle/command.plist @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>author</key> + <string>Hans-Jörg Bibiko</string> + <key>category</key> + <string>Query Editor</string> + <key>command</key> + <string>echo "DELIMITER \${0:;;}" +echo "\${1:`cat`}\${1:\$0}" +echo "DELIMITER ;"</string> + <key>contact</key> + <string>znvy@ovovxb.qr</string> + <key>description</key> + <string>Wrap the current query or the selection in DELIMITER inserted as snippet to allow to modify the default delimiter ;; + +Version 1.0</string> + <key>input</key> + <string>selectedtext</string> + <key>input_fallback</key> + <string>currentquery</string> + <key>internalKeyEquivalent</key> + <dict> + <key>characters</key> + <string>W</string> + <key>keyCode</key> + <integer>13</integer> + <key>modifierFlags</key> + <integer>1835008</integer> + </dict> + <key>keyEquivalent</key> + <string>^~@w</string> + <key>name</key> + <string>Wrap query/selection in DELIMITER</string> + <key>output</key> + <string>insertassnippet</string> + <key>scope</key> + <string>inputfield</string> + <key>tooltip</key> + <string>Wrap the current query or selection in DELIMITER ;;</string> + <key>uuid</key> + <string>A67BDE10-0A76-45C2-98DB-B35AC731E8DA</string> + <key>isDefaultBundle</key> + <true/> +</dict> +</plist> diff --git a/Source/MGTemplateEngine.m b/Source/MGTemplateEngine.m index 86068b66..89ea3a1d 100644 --- a/Source/MGTemplateEngine.m +++ b/Source/MGTemplateEngine.m @@ -177,10 +177,16 @@ - (void)reportError:(NSString *)errorStr code:(NSInteger)code continuing:(BOOL)continuing { if (delegate) { - NSString *errStr = NSLocalizedString(errorStr, nil); - if (!continuing) { - errStr = [NSString stringWithFormat:@"%@: %@", NSLocalizedString(@"Fatal Error", nil), errStr]; - } + + NSString *errStr; + if(errorStr) + errStr = [NSString stringWithString:errorStr]; + else + errStr = NSLocalizedString(@"MGTemplateEngine Error", @"mgtemplateengine error"); + + if (!continuing) + errStr = [NSString stringWithFormat:@"%@: %@", NSLocalizedString(@"Fatal Error", @"fatal error"), errStr]; + SEL selector = @selector(templateEngine:encounteredError:isContinuing:); if ([(NSObject *)delegate respondsToSelector:selector]) { NSError *error = [NSError errorWithDomain:TEMPLATE_ENGINE_ERROR_DOMAIN diff --git a/Source/NoodleLineNumberView.m b/Source/NoodleLineNumberView.m index 9e0d284a..3df2b423 100644 --- a/Source/NoodleLineNumberView.m +++ b/Source/NoodleLineNumberView.m @@ -191,75 +191,78 @@ NSLayoutManager *layoutManager; NSTextContainer *container; NSRange nullRange; - NSMutableArray *lines; + NSArray *lines; id view; - + view = [self clientView]; visibleRect = [[[self scrollView] contentView] bounds]; - + lines = [self lineIndices]; location += NSMinY(visibleRect); if ([view isKindOfClass:[NSTextView class]]) { + nullRange = NSMakeRange(NSNotFound, 0); layoutManager = [view layoutManager]; container = [view textContainer]; count = [lines count]; - - for (line = 0; line < count; line++) + + // Find the characters that are currently visible + NSRange range = [layoutManager characterRangeForGlyphRange:[layoutManager glyphRangeForBoundingRect:visibleRect inTextContainer:container] actualGlyphRange:NULL]; + + // Fudge the range a tad in case there is an extra new line at end. + // It doesn't show up in the glyphs so would not be accounted for. + range.length++; + + for (line = [self lineNumberForCharacterIndex:range.location inText:@""]; line < count; line++) { + index = [NSArrayObjectAtIndex(lines, line) unsignedIntegerValue]; - + rects = [layoutManager rectArrayForCharacterRange:NSMakeRange(index, 0) withinSelectedCharacterRange:nullRange inTextContainer:container rectCount:&rectCount]; - + for (i = 0; i < rectCount; i++) - { if ((location >= NSMinY(rects[i])) && (location < NSMaxY(rects[i]))) - { return line + 1; - } - } - } + + } } return NSNotFound; } - (void)calculateLines { - id view; - - view = [self clientView]; + id view = [self clientView]; if ([view isKindOfClass:[NSTextView class]]) { - NSUInteger index, numberOfLines, stringLength, lineEnd, contentEnd; + NSUInteger index, stringLength, lineEnd, contentEnd; NSString *text; CGFloat oldThickness, newThickness; text = [view string]; stringLength = [text length]; + // Switch off line numbering if text larger than 6MB // for performance reasons. // TODO improve performance maybe via threading if(stringLength>6000000) return; - if (lineIndices) [lineIndices release]; - lineIndices = [[NSMutableArray alloc] init]; + + if (lineIndices) [lineIndices release], lineIndices = nil; + lineIndices = [[NSMutableArray alloc] initWithCapacity:1]; index = 0; - numberOfLines = 0; do { [lineIndices addObject:[NSNumber numberWithUnsignedInteger:index]]; - index = NSMaxRange([text lineRangeForRange:NSMakeRange(index, 0)]); - numberOfLines++; } while (index < stringLength); @@ -274,7 +277,7 @@ newThickness = [self requiredThickness]; if (fabs(oldThickness - newThickness) > 1) { - NSInvocation *invocation; + NSInvocation *invocation; // Not a good idea to resize the view during calculations (which can happen during // display). Do a delayed perform (using NSInvocation since arg is a float). @@ -381,7 +384,7 @@ CGFloat ypos, yinset; NSDictionary *textAttributes; NSSize stringSize; - NSMutableArray *lines; + NSArray *lines; layoutManager = [view layoutManager]; container = [view textContainer]; @@ -407,7 +410,7 @@ CGFloat boundsRULERMargin2 = NSWidth(bounds) - RULER_MARGIN * 2.0; CGFloat boundsWidthRULER = NSWidth(bounds) - RULER_MARGIN; - CGFloat yinsetMinY = yinset - NSMinY(visibleRect); + CGFloat yinsetMinY = yinset - NSMinY(visibleRect); for (line = [self lineNumberForCharacterIndex:range.location inText:text]; line < count; line++) { @@ -462,11 +465,11 @@ if (line != NSNotFound) { NSUInteger selectionStart, selectionEnd; - NSMutableArray *lines = [self lineIndices]; + NSArray *lines = [self lineIndices]; - selectionStart = [[lines objectAtIndex:(line - 1)] unsignedIntegerValue]; + selectionStart = [NSArrayObjectAtIndex(lines, (line - 1)) unsignedIntegerValue]; if (line < [lines count]) { - selectionEnd = [[lines objectAtIndex:line] unsignedIntegerValue]; + selectionEnd = [NSArrayObjectAtIndex(lines, line) unsignedIntegerValue]; } else { selectionEnd = [[view string] length]; } @@ -489,7 +492,7 @@ if (line != NSNotFound) { NSUInteger selectionStart, selectionEnd; - NSMutableArray *lines = [self lineIndices]; + NSArray *lines = [self lineIndices]; if (line >= dragSelectionStartLine) { startLine = dragSelectionStartLine; endLine = line; @@ -498,9 +501,9 @@ endLine = dragSelectionStartLine; } - selectionStart = [[lines objectAtIndex:(startLine - 1)] unsignedIntegerValue]; + selectionStart = [NSArrayObjectAtIndex(lines, (startLine - 1)) unsignedIntegerValue]; if (endLine < [lines count]) { - selectionEnd = [[lines objectAtIndex:endLine] unsignedIntegerValue]; + selectionEnd = [NSArrayObjectAtIndex(lines, endLine) unsignedIntegerValue]; } else { selectionEnd = [[view string] length]; } diff --git a/Source/SPAppController.m b/Source/SPAppController.m index d89f0cce..ba65df6f 100644 --- a/Source/SPAppController.m +++ b/Source/SPAppController.m @@ -42,6 +42,19 @@ #import <PSMTabBar/PSMTabBarControl.h> #import <Sparkle/Sparkle.h> +#import "SPEditorTokens.h" + +#pragma mark lex init + +/* +* Include all the extern variables and prototypes required for flex (used for syntax highlighting) +*/ +extern NSUInteger yylex(); +extern NSUInteger yyuoffset, yyuleng; +typedef struct yy_buffer_state *YY_BUFFER_STATE; +void yy_switch_to_buffer(YY_BUFFER_STATE); +YY_BUFFER_STATE yy_scan_string (const char *); + @implementation SPAppController @synthesize lastBundleBlobFilesDirectory; @@ -496,7 +509,7 @@ NSFileManager *fm = [NSFileManager defaultManager]; - NSString *bundlePath = [[NSFileManager defaultManager] applicationSupportDirectoryForSubDirectory:SPBundleSupportFolder error:nil]; + NSString *bundlePath = [fm applicationSupportDirectoryForSubDirectory:SPBundleSupportFolder error:nil]; if(!bundlePath) return; @@ -539,6 +552,11 @@ if (cmdData) [cmdData release]; return; } + + // Reload Bundles if Sequel Pro didn't run + if(![installedBundleUUIDs count]) + [self reloadBundles:self]; + if([[installedBundleUUIDs allKeys] containsObject:[cmdData objectForKey:SPBundleFileUUIDKey]]) { NSAlert *alert = [NSAlert alertWithMessageText:[NSString stringWithFormat:NSLocalizedString(@"Installing Bundle", @"Open Files : Bundle : Already-Installed : 'Update Bundle' question dialog title")] defaultButton:NSLocalizedString(@"Update", @"Open Files : Bundle : Already-Installed : Update button") @@ -550,10 +568,11 @@ NSInteger answer = [alert runModal]; if(answer == NSAlertDefaultReturn) { NSError *error = nil; - NSString *moveToTrashCommand = [NSString stringWithFormat:@"osascript -e 'tell application \"Finder\" to move (POSIX file \"%@\") to the trash'", newPath]; + NSString *removePath = [[[installedBundleUUIDs objectForKey:[cmdData objectForKey:SPBundleFileUUIDKey]] objectForKey:@"path"] substringToIndex:([[[installedBundleUUIDs objectForKey:[cmdData objectForKey:SPBundleFileUUIDKey]] objectForKey:@"path"] length]-[SPBundleFileName length]-1)]; + NSString *moveToTrashCommand = [NSString stringWithFormat:@"osascript -e 'tell application \"Finder\" to move (POSIX file \"%@\") to the trash'", removePath]; [moveToTrashCommand runBashCommandWithEnvironment:nil atCurrentDirectoryPath:nil error:&error]; if(error != nil) { - NSAlert *alert = [NSAlert alertWithMessageText:[NSString stringWithFormat:NSLocalizedString(@"Error while moving “%@” to Trash.", @"Open Files : Bundle : Already-Installed : Delete-Old-Error : Could not delete old bundle before installing new version."), [[installedBundleUUIDs objectForKey:[cmdData objectForKey:SPBundleFileUUIDKey]] objectForKey:@"path"]] + NSAlert *alert = [NSAlert alertWithMessageText:[NSString stringWithFormat:NSLocalizedString(@"Error while moving “%@” to Trash.", @"Open Files : Bundle : Already-Installed : Delete-Old-Error : Could not delete old bundle before installing new version."), removePath] defaultButton:NSLocalizedString(@"OK", @"Open Files : Bundle : Already-Installed : Delete-Old-Error : OK button") alternateButton:nil otherButton:nil @@ -621,7 +640,12 @@ { NSURL *url = [NSURL URLWithString:[[event paramDescriptorForKeyword:keyDirectObject] stringValue]]; - [self handleEventWithURL:url]; + if(url) + [self handleEventWithURL:url]; + else { + NSBeep(); + NSLog(@"Error in sequelpro URL scheme"); + } } - (void)handleEventWithURL:(NSURL*)url @@ -635,13 +659,14 @@ else parameter = [NSArray array]; + NSFileManager *fm = [NSFileManager defaultManager]; // Handle commands which don't need a connection window if([command isEqualToString:@"chooseItemFromList"]) { NSString *statusFileName = [NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultStatusPathHeader, (passedProcessID && [passedProcessID length]) ? passedProcessID : @""]; NSString *resultFileName = [NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultPathHeader, (passedProcessID && [passedProcessID length]) ? passedProcessID : @""]; - [[NSFileManager defaultManager] removeItemAtPath:statusFileName error:nil]; - [[NSFileManager defaultManager] removeItemAtPath:resultFileName error:nil]; + [fm removeItemAtPath:statusFileName error:nil]; + [fm removeItemAtPath:resultFileName error:nil]; NSString *result = @""; NSString *status = @"0"; if([parameter count]) { @@ -659,6 +684,50 @@ return; } + if([command isEqualToString:@"SyntaxHighlighting"]) { + + BOOL isDir; + + NSString *anUUID = (passedProcessID && [passedProcessID length]) ? passedProcessID : @""; + NSString *queryFileName = [NSString stringWithFormat:@"%@%@", SPURLSchemeQueryInputPathHeader, anUUID]; + NSString *resultFileName = [NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultPathHeader, anUUID]; + NSString *metaFileName = [NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultMetaPathHeader, anUUID]; + NSString *statusFileName = [NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultStatusPathHeader, anUUID]; + + NSError *inError = nil; + NSString *query = [NSString stringWithContentsOfFile:queryFileName encoding:NSUTF8StringEncoding error:inError]; + NSString *result = @""; + NSString *status = @"0"; + + if([fm fileExistsAtPath:queryFileName isDirectory:&isDir] && !isDir) { + + if(inError == nil && query && [query length]) { + if([parameter count] > 0) { + if([[parameter lastObject] isEqualToString:@"html"]) + result = [NSString stringWithString:[self doSQLSyntaxHighlightForString:query cssLike:NO]]; + else if([[parameter lastObject] isEqualToString:@"htmlcss"]) + result = [NSString stringWithString:[self doSQLSyntaxHighlightForString:query cssLike:YES]]; + } + } + } + + [fm removeItemAtPath:queryFileName error:nil]; + [fm removeItemAtPath:resultFileName error:nil]; + [fm removeItemAtPath:metaFileName error:nil]; + [fm removeItemAtPath:statusFileName error:nil]; + + if(![result writeToFile:resultFileName atomically:YES encoding:NSUTF8StringEncoding error:nil]) + status = @"1"; + + // write status file as notification that query was finished + BOOL succeed = [status writeToFile:statusFileName atomically:YES encoding:NSUTF8StringEncoding error:nil]; + if(!succeed) { + NSBeep(); + SPBeginAlertSheet(NSLocalizedString(@"BASH Error", @"bash error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, [self parentWindow], self, nil, nil, + NSLocalizedString(@"Status file for sequelpro url scheme command couldn't be written!", @"status file for sequelpro url scheme command couldn't be written error message")); + } + return; + } NSString *activeProcessID = [[[[self frontDocumentWindow] delegate] selectedTableDocument] processID]; @@ -695,14 +764,33 @@ [cmdDict setObject:parameter forKey:@"parameter"]; [cmdDict setObject:(passedProcessID)?:@"" forKey:@"id"]; [processDocument handleSchemeCommand:cmdDict]; - return; - } - else { + } else { SPBeginAlertSheet(NSLocalizedString(@"sequelpro URL Scheme Error", @"sequelpro url Scheme Error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, [NSApp mainWindow], self, nil, nil, [NSString stringWithFormat:@"%@ “%@”:\n%@", NSLocalizedString(@"Error for", @"error for message"), [command description], NSLocalizedString(@"sequelpro URL scheme command not supported.", @"sequelpro URL scheme command not supported.")]); + + // If command failed notify the file handle hand shake mechanism + NSString *out = @"1"; + NSString *anUUID = @""; + if(command && passedProcessID && [passedProcessID length]) + anUUID = passedProcessID; + else + anUUID = command; - return; + [out writeToFile:[NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultStatusPathHeader, anUUID] + atomically:YES + encoding:NSUTF8StringEncoding + error:nil]; + + out = @"Error"; + [out writeToFile:[NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultPathHeader, anUUID] + atomically:YES + encoding:NSUTF8StringEncoding + error:nil]; + } + + return; + } if(passedProcessID && [passedProcessID length]) { @@ -723,10 +811,10 @@ usleep(5000); - [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultStatusPathHeader, passedProcessID] error:nil]; - [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultPathHeader, passedProcessID] error:nil]; - [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultMetaPathHeader, passedProcessID] error:nil]; - [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@%@", SPURLSchemeQueryInputPathHeader, passedProcessID] error:nil]; + [fm removeItemAtPath:[NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultStatusPathHeader, passedProcessID] error:nil]; + [fm removeItemAtPath:[NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultPathHeader, passedProcessID] error:nil]; + [fm removeItemAtPath:[NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultMetaPathHeader, passedProcessID] error:nil]; + [fm removeItemAtPath:[NSString stringWithFormat:@"%@%@", SPURLSchemeQueryInputPathHeader, passedProcessID] error:nil]; @@ -745,6 +833,86 @@ } +/** + * Return an HTML formatted string representing the passed SQL string syntax highlighted + */ +- (NSString*)doSQLSyntaxHighlightForString:(NSString*)sqlText cssLike:(BOOL)cssLike +{ + + NSMutableString *sqlHTML = [[[NSMutableString alloc] initWithCapacity:[sqlText length]] autorelease]; + + NSRange textRange = NSMakeRange(0, [sqlText length]); + NSString *tokenColor; + NSString *cssId; + size_t token; + NSRange tokenRange; + + // initialise flex + yyuoffset = 0; yyuleng = 0; + yy_switch_to_buffer(yy_scan_string([sqlText UTF8String])); + BOOL skipFontTag; + + while (token=yylex()){ + skipFontTag = NO; + switch (token) { + case SPT_SINGLE_QUOTED_TEXT: + case SPT_DOUBLE_QUOTED_TEXT: + tokenColor = @"#A7221C"; + cssId = @"sp_sql_quoted"; + break; + case SPT_BACKTICK_QUOTED_TEXT: + tokenColor = @"#001892"; + cssId = @"sp_sql_backtick"; + break; + case SPT_RESERVED_WORD: + tokenColor = @"#0041F6"; + cssId = @"sp_sql_keyword"; + break; + case SPT_NUMERIC: + tokenColor = @"#67350F"; + cssId = @"sp_sql_numeric"; + break; + case SPT_COMMENT: + tokenColor = @"#265C10"; + cssId = @"sp_sql_comment"; + break; + case SPT_VARIABLE: + tokenColor = @"#6C6C6C"; + cssId = @"sp_sql_variable"; + break; + case SPT_WHITESPACE: + skipFontTag = YES; + cssId = @""; + break; + default: + skipFontTag = YES; + cssId = @""; + } + + tokenRange = NSMakeRange(yyuoffset, yyuleng); + + if(skipFontTag) + [sqlHTML appendString:[[sqlText substringWithRange:tokenRange] HTMLEscapeString]]; + else { + if(cssLike) + [sqlHTML appendFormat:@"<span class=\"%@\">%@</span>", cssId, [[sqlText substringWithRange:tokenRange] HTMLEscapeString]]; + else + [sqlHTML appendFormat:@"<font color=%@>%@</font>", tokenColor, [[sqlText substringWithRange:tokenRange] HTMLEscapeString]]; + } + + } + + // Wrap lines, and replace tabs with spaces + [sqlHTML replaceOccurrencesOfString:@"\n" withString:@"<br>" options:NSLiteralSearch range:NSMakeRange(0, [sqlHTML length])]; + [sqlHTML replaceOccurrencesOfString:@"\t" withString:@" " options:NSLiteralSearch range:NSMakeRange(0, [sqlHTML length])]; + + if(sqlHTML) + return sqlHTML; + else + return @""; + +} + - (IBAction)executeBundleItemForApp:(id)sender { @@ -760,6 +928,7 @@ } if(!infoPath) { + NSLog(@"No path to Bundle command passed"); NSBeep(); return; } @@ -939,8 +1108,6 @@ } } - // if(doc && [doc shellVariables]) [env addEntriesFromDictionary:[doc shellVariables]]; - // if(doc) [doc release]; id firstResponder = [[NSApp keyWindow] firstResponder]; if([firstResponder respondsToSelector:@selector(executeBundleItemForInputField:)]) { BOOL selfIsQueryEditor = ([[[firstResponder class] description] isEqualToString:@"SPTextView"]) ; @@ -999,6 +1166,19 @@ { [runningActivitiesArray addObject:commandDict]; [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadWithName:SPActivitiesUpdateNotification object:nil]; + + SPDatabaseDocument* frontMostDoc = [self frontDocument]; + if(frontMostDoc) { + if([runningActivitiesArray count] || [[frontMostDoc runningActivities] count]) + [frontMostDoc performSelector:@selector(setActivityPaneHidden:) withObject:[NSNumber numberWithInteger:0] afterDelay:1.0]; + else { + [NSObject cancelPreviousPerformRequestsWithTarget:frontMostDoc + selector:@selector(setActivityPaneHidden:) + object:[NSNumber numberWithInteger:0]]; + [frontMostDoc setActivityPaneHidden:[NSNumber numberWithInteger:1]]; + } + } + } - (void)removeRegisteredActivity:(NSInteger)pid @@ -1009,7 +1189,20 @@ break; } } + [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadWithName:SPActivitiesUpdateNotification object:nil]; + + SPDatabaseDocument* frontMostDoc = [self frontDocument]; + if(frontMostDoc) { + if([runningActivitiesArray count] || [[frontMostDoc runningActivities] count]) + [frontMostDoc performSelector:@selector(setActivityPaneHidden:) withObject:[NSNumber numberWithInteger:0] afterDelay:1.0]; + else { + [NSObject cancelPreviousPerformRequestsWithTarget:frontMostDoc + selector:@selector(setActivityPaneHidden:) + object:[NSNumber numberWithInteger:0]]; + [frontMostDoc setActivityPaneHidden:[NSNumber numberWithInteger:1]]; + } + } } - (NSArray*)runningActivities @@ -1324,6 +1517,7 @@ - (IBAction)reloadBundles:(id)sender { + // Force releasing of any HTML output windows for(id c in bundleHTMLOutputController) { if(![[c window] isVisible]) { [c release]; @@ -1346,26 +1540,38 @@ // Clean menu [menu compatibleRemoveAllItems]; + // Set up the bundle search paths + // First process all in Application Support folder installed ones then Default ones + NSFileManager *fm = [NSFileManager defaultManager]; + NSError *appPathError = nil; NSArray *bundlePaths = [NSArray arrayWithObjects: - ([[NSFileManager defaultManager] applicationSupportDirectoryForSubDirectory:SPBundleSupportFolder createIfNotExists:NO error:nil])?:@"", + [fm applicationSupportDirectoryForSubDirectory:SPBundleSupportFolder createIfNotExists:YES error:&appPathError], [NSString stringWithFormat:@"%@/Contents/SharedSupport/Default Bundles", [[NSBundle mainBundle] bundlePath]], nil]; + // If ~/Library/Application Path/Sequel Pro/Bundles couldn't be created bail + if(appPathError != nil) { + NSAlert *alert = [NSAlert alertWithMessageText:NSLocalizedString(@"Bundles Installation Error", @"bundles installation error") + defaultButton:NSLocalizedString(@"OK", @"OK button") + alternateButton:nil + otherButton:nil + informativeTextWithFormat:[NSString stringWithFormat:NSLocalizedString(@"Couldn't create Application Support Bundle folder!\nError: %@", @"Couldn't create Application Support Bundle folder!\nError: %@"), [appPathError localizedDescription]]]; + + [alert runModal]; + return; + } + BOOL processDefaultBundles = NO; - NSFileManager *fm = [NSFileManager defaultManager]; - + NSArray *deletedDefaultBundles; - NSMutableArray *updatedDefaultBundles = [NSMutableArray array]; - if([[NSUserDefaults standardUserDefaults] objectForKey:SPBundleDeletedDefaultBundlesKey]) { + + if([[NSUserDefaults standardUserDefaults] objectForKey:SPBundleDeletedDefaultBundlesKey]) deletedDefaultBundles = [[[NSUserDefaults standardUserDefaults] objectForKey:SPBundleDeletedDefaultBundlesKey] retain]; - } else { + else deletedDefaultBundles = [[NSArray array] retain]; - } - if([[NSUserDefaults standardUserDefaults] objectForKey:SPBundleUpdatedDefaultBundlesKey]) { - [updatedDefaultBundles setArray:[[NSUserDefaults standardUserDefaults] objectForKey:SPBundleUpdatedDefaultBundlesKey]]; - } NSMutableString *infoAboutUpdatedDefaultBundles = [NSMutableString string]; + BOOL doBundleUpdate = ([[NSUserDefaults standardUserDefaults] objectForKey:@"doBundleUpdate"]) ? YES : NO; for(NSString* bundlePath in bundlePaths) { if([bundlePath length]) { @@ -1386,125 +1592,115 @@ NSString *infoPath = [NSString stringWithFormat:@"%@/%@/%@", bundlePath, bundle, SPBundleFileName]; NSData *pData = [NSData dataWithContentsOfFile:infoPath options:NSUncachedRead error:&readError]; - cmdData = [[NSPropertyListSerialization propertyListFromData:pData - mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&convError] retain]; + cmdData = [NSPropertyListSerialization propertyListFromData:pData + mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&convError]; if(!cmdData || readError != nil || [convError length] || !(format == NSPropertyListXMLFormat_v1_0 || format == NSPropertyListBinaryFormat_v1_0)) { - NSLog(@"“%@” file couldn't be read.", infoPath); NSBeep(); + continue; + } - } else { - if((![cmdData objectForKey:SPBundleFileDisabledKey] || ![[cmdData objectForKey:SPBundleFileDisabledKey] intValue]) - && [cmdData objectForKey:SPBundleFileNameKey] - && [[cmdData objectForKey:SPBundleFileNameKey] length] - && [cmdData objectForKey:SPBundleFileScopeKey]) - { - - if([cmdData objectForKey:SPBundleFileUUIDKey] && [[cmdData objectForKey:SPBundleFileUUIDKey] length]) { - - if(processDefaultBundles) { - - // Skip deleted default Bundles - BOOL bundleWasDeleted = NO; - if([deletedDefaultBundles count]) { - for(NSArray* item in deletedDefaultBundles) { - if([[item objectAtIndex:0] isEqualToString:[cmdData objectForKey:SPBundleFileUUIDKey]]) { - bundleWasDeleted = YES; - break; - } + if((![cmdData objectForKey:SPBundleFileDisabledKey] || ![[cmdData objectForKey:SPBundleFileDisabledKey] intValue]) + && [cmdData objectForKey:SPBundleFileNameKey] + && [[cmdData objectForKey:SPBundleFileNameKey] length] + && [cmdData objectForKey:SPBundleFileScopeKey]) + { + + BOOL defaultBundleWasUpdated = NO; + + if([cmdData objectForKey:SPBundleFileUUIDKey] && [[cmdData objectForKey:SPBundleFileUUIDKey] length]) { + + if(processDefaultBundles) { + + // Skip deleted default Bundles + BOOL bundleWasDeleted = NO; + if([deletedDefaultBundles count]) { + for(NSArray* item in deletedDefaultBundles) { + if([[item objectAtIndex:0] isEqualToString:[cmdData objectForKey:SPBundleFileUUIDKey]]) { + bundleWasDeleted = YES; + break; } } - if(bundleWasDeleted) continue; + } + if(bundleWasDeleted) continue; + + // If default Bundle is already installed check for possible update, + // if so duplicate the modified one by appending (user) and updated it + if(doBundleUpdate || [installedBundleUUIDs objectForKey:[cmdData objectForKey:SPBundleFileUUIDKey]] == nil) { - // If default Bundle is already install check for possible update, - // if so duplicate the modified one by appending (user) and updated it if([installedBundleUUIDs objectForKey:[cmdData objectForKey:SPBundleFileUUIDKey]]) { - if([updatedDefaultBundles containsObject:[cmdData objectForKey:SPBundleFileUUIDKey]]) { - - NSString *oldPath = [NSString stringWithFormat:@"%@/%@/%@", [bundlePaths objectAtIndex:0], bundle, SPBundleFileName]; - NSError *readError = nil; - NSString *convError = nil; - NSPropertyListFormat format; - NSDictionary *cmdData = nil; - - NSData *pData = [NSData dataWithContentsOfFile:oldPath options:NSUncachedRead error:&readError]; - cmdData = [[NSPropertyListSerialization propertyListFromData:pData - mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&convError] retain]; - if(!cmdData || readError != nil || [convError length] || !(format == NSPropertyListXMLFormat_v1_0 || format == NSPropertyListBinaryFormat_v1_0)) { - NSLog(@"“%@” file couldn't be read.", oldPath); - NSBeep(); - if (cmdData) [cmdData release]; - continue; - } else { - NSString *oldBundle = [NSString stringWithFormat:@"%@/%@", [bundlePaths objectAtIndex:0], bundle]; - // Check for modifications - if([cmdData objectForKey:SPBundleFileDefaultBundleWasModifiedKey]) { - - // Duplicate Bundle, change the UUID and rename the menu label - NSString *duplicatedBundle = [NSString stringWithFormat:@"%@/%@_%ld.%@", [bundlePaths objectAtIndex:0], [bundle substringToIndex:([bundle length] - [SPUserBundleFileExtension length] - 1)], (NSUInteger)(random() % 35000), SPUserBundleFileExtension]; - if(![[NSFileManager defaultManager] copyItemAtPath:oldBundle toPath:duplicatedBundle error:nil]) { - NSLog(@"Couldn't copy “%@” to update it", bundle); - NSBeep(); - if (cmdData) [cmdData release]; - continue; - } - NSError *readError1 = nil; - NSString *convError1 = nil; - NSMutableDictionary *dupData = [NSMutableDictionary dictionary]; - NSString *duplicatedBundleCommand = [NSString stringWithFormat:@"%@/%@", duplicatedBundle, SPBundleFileName]; - NSData *dData = [NSData dataWithContentsOfFile:duplicatedBundleCommand options:NSUncachedRead error:&readError1]; - [dupData setDictionary:[NSPropertyListSerialization propertyListFromData:dData - mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&convError1]]; - if(!dupData && ![dupData count] || readError1 != nil || [convError1 length] || !(format == NSPropertyListXMLFormat_v1_0 || format == NSPropertyListBinaryFormat_v1_0)) { - NSLog(@"“%@” file couldn't be read.", duplicatedBundleCommand); - NSBeep(); - continue; - } - [dupData setObject:[NSString stringWithNewUUID] forKey:SPBundleFileUUIDKey]; - NSString *orgName = [dupData objectForKey:SPBundleFileNameKey]; - [dupData setObject:[NSString stringWithFormat:@"%@ (user)", orgName] forKey:SPBundleFileNameKey]; - [dupData removeObjectForKey:SPBundleFileIsDefaultBundleKey]; - [dupData writeToFile:duplicatedBundleCommand atomically:YES]; - - NSError *error = nil; - NSString *moveToTrashCommand = [NSString stringWithFormat:@"osascript -e 'tell application \"Finder\" to move (POSIX file \"%@\") to the trash'", oldBundle]; - [moveToTrashCommand runBashCommandWithEnvironment:nil atCurrentDirectoryPath:nil error:&error]; - - if(error != nil) { - NSAlert *alert = [NSAlert alertWithMessageText:[NSString stringWithFormat:NSLocalizedString(@"Error while moving “%@” to Trash.", @"error while moving “%@” to trash"), [[installedBundleUUIDs objectForKey:[cmdData objectForKey:SPBundleFileUUIDKey]] objectForKey:@"path"]] - defaultButton:NSLocalizedString(@"OK", @"OK button") - alternateButton:nil - otherButton:nil - informativeTextWithFormat:[error localizedDescription]]; - - [alert setAlertStyle:NSCriticalAlertStyle]; - [alert runModal]; - if (cmdData) [cmdData release]; - continue; - } - [infoAboutUpdatedDefaultBundles appendFormat:@"• %@\n", orgName]; - } else { - - // If no modifications are done simply remove the old one - if(![fm removeItemAtPath:oldBundle error:nil]) { - NSLog(@"Couldn't remove “%@” to update it", bundle); - NSBeep(); - if (cmdData) [cmdData release]; - continue; - } + NSString *oldPath = [NSString stringWithFormat:@"%@/%@/%@", [bundlePaths objectAtIndex:0], bundle, SPBundleFileName]; + NSError *readError = nil; + NSString *convError = nil; + NSPropertyListFormat format; + NSDictionary *cmdDataOld = nil; + + NSData *pDataOld = [NSData dataWithContentsOfFile:oldPath options:NSUncachedRead error:&readError]; + cmdDataOld = [NSPropertyListSerialization propertyListFromData:pDataOld + mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&convError]; + if(!cmdDataOld || readError != nil || [convError length] || !(format == NSPropertyListXMLFormat_v1_0 || format == NSPropertyListBinaryFormat_v1_0)) { + NSLog(@"“%@” file couldn't be read.", oldPath); + NSBeep(); + continue; + } else { + NSString *oldBundle = [NSString stringWithFormat:@"%@/%@", [bundlePaths objectAtIndex:0], bundle]; + // Check for modifications + if([cmdDataOld objectForKey:SPBundleFileDefaultBundleWasModifiedKey]) { + + // Duplicate Bundle, change the UUID and rename the menu label + NSString *duplicatedBundle = [NSString stringWithFormat:@"%@/%@_%ld.%@", [bundlePaths objectAtIndex:0], [bundle substringToIndex:([bundle length] - [SPUserBundleFileExtension length] - 1)], (NSUInteger)(random() % 35000), SPUserBundleFileExtension]; + if(![[NSFileManager defaultManager] copyItemAtPath:oldBundle toPath:duplicatedBundle error:nil]) { + NSLog(@"Couldn't copy “%@” to update it", bundle); + NSBeep(); + continue; } + NSError *readError1 = nil; + NSString *convError1 = nil; + NSMutableDictionary *dupData = [NSMutableDictionary dictionary]; + NSString *duplicatedBundleCommand = [NSString stringWithFormat:@"%@/%@", duplicatedBundle, SPBundleFileName]; + NSData *dData = [NSData dataWithContentsOfFile:duplicatedBundleCommand options:NSUncachedRead error:&readError1]; + [dupData setDictionary:[NSPropertyListSerialization propertyListFromData:dData + mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&convError1]]; + if(!dupData && ![dupData count] || readError1 != nil || [convError1 length] || !(format == NSPropertyListXMLFormat_v1_0 || format == NSPropertyListBinaryFormat_v1_0)) { + NSLog(@"“%@” file couldn't be read.", duplicatedBundleCommand); + NSBeep(); + continue; + } + [dupData setObject:[NSString stringWithNewUUID] forKey:SPBundleFileUUIDKey]; + NSString *orgName = [dupData objectForKey:SPBundleFileNameKey]; + [dupData setObject:[NSString stringWithFormat:@"%@ (user)", orgName] forKey:SPBundleFileNameKey]; + [dupData removeObjectForKey:SPBundleFileIsDefaultBundleKey]; + [dupData writeToFile:duplicatedBundleCommand atomically:YES]; + + NSError *error = nil; + NSString *moveToTrashCommand = [NSString stringWithFormat:@"osascript -e 'tell application \"Finder\" to move (POSIX file \"%@\") to the trash'", oldBundle]; + [moveToTrashCommand runBashCommandWithEnvironment:nil atCurrentDirectoryPath:nil error:&error]; + + if(error != nil) { + NSAlert *alert = [NSAlert alertWithMessageText:[NSString stringWithFormat:NSLocalizedString(@"Error while moving “%@” to Trash.", @"error while moving “%@” to trash"), [[installedBundleUUIDs objectForKey:[cmdDataOld objectForKey:SPBundleFileUUIDKey]] objectForKey:@"path"]] + defaultButton:NSLocalizedString(@"OK", @"OK button") + alternateButton:nil + otherButton:nil + informativeTextWithFormat:[error localizedDescription]]; + + [alert setAlertStyle:NSCriticalAlertStyle]; + [alert runModal]; + continue; + } + [infoAboutUpdatedDefaultBundles appendFormat:@"• %@\n", orgName]; + } else { - // Remove item from update list which will be updated in the Prefs - [updatedDefaultBundles removeObject:[cmdData objectForKey:SPBundleFileUUIDKey]]; + // If no modifications are done simply remove the old one + if(![fm removeItemAtPath:oldBundle error:nil]) { + NSLog(@"Couldn't remove “%@” to update it", bundle); + NSBeep(); + continue; + } } - if (cmdData) [cmdData release]; - - } else { - continue; } } @@ -1523,96 +1719,93 @@ } infoPath = [NSString stringWithString:newInfoPath]; - } - - [installedBundleUUIDs setObject:[NSDictionary dictionaryWithObjectsAndKeys: - [NSString stringWithFormat:@"%@ (%@)", bundle, [cmdData objectForKey:SPBundleFileNameKey]], @"name", - infoPath, @"path", nil] forKey:[cmdData objectForKey:SPBundleFileUUIDKey]]; - - } else { - NSLog(@"No UUID for %@", bundle); - NSBeep(); - continue; - } - - NSArray *scopes = [[cmdData objectForKey:SPBundleFileScopeKey] componentsSeparatedByString:@" "]; - for(NSString *scope in scopes) { + defaultBundleWasUpdated = YES; - if(![bundleUsedScopes containsObject:scope]) { - [bundleUsedScopes addObject:scope]; - [bundleItems setObject:[NSMutableArray array] forKey:scope]; - [bundleCategories setObject:[NSMutableArray array] forKey:scope]; - [bundleKeyEquivalents setObject:[NSMutableDictionary dictionary] forKey:scope]; } - if([cmdData objectForKey:SPBundleFileCategoryKey] && [[cmdData objectForKey:SPBundleFileCategoryKey] length] && ![[bundleCategories objectForKey:scope] containsObject:[cmdData objectForKey:SPBundleFileCategoryKey]]) - [[bundleCategories objectForKey:scope] addObject:[cmdData objectForKey:SPBundleFileCategoryKey]]; - } + if(!defaultBundleWasUpdated) continue; - NSMutableDictionary *aDict = [NSMutableDictionary dictionary]; - [aDict setObject:[cmdData objectForKey:SPBundleFileNameKey] forKey:SPBundleInternLabelKey]; - [aDict setObject:infoPath forKey:SPBundleInternPathToFileKey]; - - // Register trigger - if([cmdData objectForKey:SPBundleFileTriggerKey]) { - if(![bundleTriggers objectForKey:[cmdData objectForKey:SPBundleFileTriggerKey]]) - [bundleTriggers setObject:[NSMutableArray array] forKey:[cmdData objectForKey:SPBundleFileTriggerKey]]; - [[bundleTriggers objectForKey:[cmdData objectForKey:SPBundleFileTriggerKey]] addObject: - [NSString stringWithFormat:@"%@|%@|%@", - infoPath, - [cmdData objectForKey:SPBundleFileScopeKey], - ([[cmdData objectForKey:SPBundleFileOutputActionKey] isEqualToString:SPBundleOutputActionShowAsHTML])?[cmdData objectForKey:SPBundleFileUUIDKey]:@""]]; } - if([cmdData objectForKey:SPBundleFileKeyEquivalentKey] && [[cmdData objectForKey:SPBundleFileKeyEquivalentKey] length]) { - - NSString *theKey = [cmdData objectForKey:SPBundleFileKeyEquivalentKey]; - NSString *theChar = [theKey substringFromIndex:[theKey length]-1]; - NSString *theMods = [theKey substringToIndex:[theKey length]-1]; - NSUInteger mask = 0; - if([theMods rangeOfString:@"^"].length) - mask = mask | NSControlKeyMask; - if([theMods rangeOfString:@"@"].length) - mask = mask | NSCommandKeyMask; - if([theMods rangeOfString:@"~"].length) - mask = mask | NSAlternateKeyMask; - if([theMods rangeOfString:@"$"].length) - mask = mask | NSShiftKeyMask; - for(NSString* scope in scopes) { - if(![[bundleKeyEquivalents objectForKey:scope] objectForKey:[cmdData objectForKey:SPBundleFileKeyEquivalentKey]]) - [[bundleKeyEquivalents objectForKey:scope] setObject:[NSMutableArray array] forKey:[cmdData objectForKey:SPBundleFileKeyEquivalentKey]]; - - [[[bundleKeyEquivalents objectForKey:scope] objectForKey:[cmdData objectForKey:SPBundleFileKeyEquivalentKey]] addObject: - [NSDictionary dictionaryWithObjectsAndKeys: - infoPath, @"path", - [cmdData objectForKey:SPBundleFileNameKey], @"title", - ([cmdData objectForKey:SPBundleFileTooltipKey]) ?: @"", @"tooltip", - nil]]; + [installedBundleUUIDs setObject:[NSDictionary dictionaryWithObjectsAndKeys: + [NSString stringWithFormat:@"%@ (%@)", bundle, [cmdData objectForKey:SPBundleFileNameKey]], @"name", + infoPath, @"path", nil] forKey:[cmdData objectForKey:SPBundleFileUUIDKey]]; - } + } else { + NSLog(@"No UUID for %@", bundle); + NSBeep(); + continue; + } - [aDict setObject:[NSArray arrayWithObjects:theChar, [NSNumber numberWithInteger:mask], nil] forKey:SPBundleInternKeyEquivalentKey]; - } + // Register Bundle + NSString *scope = [cmdData objectForKey:SPBundleFileScopeKey]; - if([cmdData objectForKey:SPBundleFileTooltipKey] && [[cmdData objectForKey:SPBundleFileTooltipKey] length]) - [aDict setObject:[cmdData objectForKey:SPBundleFileTooltipKey] forKey:SPBundleFileTooltipKey]; + // Register scope/category menu structure + if(![bundleUsedScopes containsObject:scope]) { + [bundleUsedScopes addObject:scope]; + [bundleItems setObject:[NSMutableArray array] forKey:scope]; + [bundleCategories setObject:[NSMutableArray array] forKey:scope]; + [bundleKeyEquivalents setObject:[NSMutableDictionary dictionary] forKey:scope]; + } + if([cmdData objectForKey:SPBundleFileCategoryKey] && [[cmdData objectForKey:SPBundleFileCategoryKey] length] && ![[bundleCategories objectForKey:scope] containsObject:[cmdData objectForKey:SPBundleFileCategoryKey]]) + [[bundleCategories objectForKey:scope] addObject:[cmdData objectForKey:SPBundleFileCategoryKey]]; + + NSMutableDictionary *aDict = [NSMutableDictionary dictionary]; + [aDict setObject:[cmdData objectForKey:SPBundleFileNameKey] forKey:SPBundleInternLabelKey]; + [aDict setObject:infoPath forKey:SPBundleInternPathToFileKey]; + + // Register trigger + if([cmdData objectForKey:SPBundleFileTriggerKey]) { + if(![bundleTriggers objectForKey:[cmdData objectForKey:SPBundleFileTriggerKey]]) + [bundleTriggers setObject:[NSMutableArray array] forKey:[cmdData objectForKey:SPBundleFileTriggerKey]]; + [[bundleTriggers objectForKey:[cmdData objectForKey:SPBundleFileTriggerKey]] addObject: + [NSString stringWithFormat:@"%@|%@|%@", + infoPath, + [cmdData objectForKey:SPBundleFileScopeKey], + ([[cmdData objectForKey:SPBundleFileOutputActionKey] isEqualToString:SPBundleOutputActionShowAsHTML])?[cmdData objectForKey:SPBundleFileUUIDKey]:@""]]; + } - if([cmdData objectForKey:SPBundleFileCategoryKey] && [[cmdData objectForKey:SPBundleFileCategoryKey] length]) - [aDict setObject:[cmdData objectForKey:SPBundleFileCategoryKey] forKey:SPBundleFileCategoryKey]; + // Register key equivalent + if([cmdData objectForKey:SPBundleFileKeyEquivalentKey] && [[cmdData objectForKey:SPBundleFileKeyEquivalentKey] length]) { + + NSString *theKey = [cmdData objectForKey:SPBundleFileKeyEquivalentKey]; + NSString *theChar = [theKey substringFromIndex:[theKey length]-1]; + NSString *theMods = [theKey substringToIndex:[theKey length]-1]; + NSUInteger mask = 0; + if([theMods rangeOfString:@"^"].length) mask = mask | NSControlKeyMask; + if([theMods rangeOfString:@"@"].length) mask = mask | NSCommandKeyMask; + if([theMods rangeOfString:@"~"].length) mask = mask | NSAlternateKeyMask; + if([theMods rangeOfString:@"$"].length) mask = mask | NSShiftKeyMask; + + if(![[bundleKeyEquivalents objectForKey:scope] objectForKey:[cmdData objectForKey:SPBundleFileKeyEquivalentKey]]) + [[bundleKeyEquivalents objectForKey:scope] setObject:[NSMutableArray array] forKey:[cmdData objectForKey:SPBundleFileKeyEquivalentKey]]; + + if(!doBundleUpdate || (doBundleUpdate && (![[cmdData objectForKey:SPBundleFileIsDefaultBundleKey] boolValue] || processDefaultBundles))) + [[[bundleKeyEquivalents objectForKey:scope] objectForKey:[cmdData objectForKey:SPBundleFileKeyEquivalentKey]] addObject: + [NSDictionary dictionaryWithObjectsAndKeys: + infoPath, @"path", + [cmdData objectForKey:SPBundleFileNameKey], @"title", + ([cmdData objectForKey:SPBundleFileTooltipKey]) ?: @"", @"tooltip", + nil]]; + + [aDict setObject:[NSArray arrayWithObjects:theChar, [NSNumber numberWithInteger:mask], nil] forKey:SPBundleInternKeyEquivalentKey]; + } - if([cmdData objectForKey:SPBundleFileKeyEquivalentKey] && [[cmdData objectForKey:SPBundleFileKeyEquivalentKey] length]) - [aDict setObject:[cmdData objectForKey:SPBundleFileKeyEquivalentKey] forKey:@"key"]; + if([cmdData objectForKey:SPBundleFileTooltipKey] && [[cmdData objectForKey:SPBundleFileTooltipKey] length]) + [aDict setObject:[cmdData objectForKey:SPBundleFileTooltipKey] forKey:SPBundleFileTooltipKey]; - for(NSString* scope in scopes) - [[bundleItems objectForKey:scope] addObject:aDict]; + if([cmdData objectForKey:SPBundleFileCategoryKey] && [[cmdData objectForKey:SPBundleFileCategoryKey] length]) + [aDict setObject:[cmdData objectForKey:SPBundleFileCategoryKey] forKey:SPBundleFileCategoryKey]; - } + if([cmdData objectForKey:SPBundleFileKeyEquivalentKey] && [[cmdData objectForKey:SPBundleFileKeyEquivalentKey] length]) + [aDict setObject:[cmdData objectForKey:SPBundleFileKeyEquivalentKey] forKey:@"key"]; - if (cmdData) [cmdData release]; + [[bundleItems objectForKey:scope] addObject:aDict]; } } + // Sort items for menus NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:SPBundleInternLabelKey ascending:YES] autorelease]; for(NSString* scope in [bundleItems allKeys]) { [[bundleItems objectForKey:scope] sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]]; @@ -1624,9 +1817,10 @@ } [deletedDefaultBundles release]; - - // Synchronize updated Bundles - [[NSUserDefaults standardUserDefaults] setObject:updatedDefaultBundles forKey:SPBundleUpdatedDefaultBundlesKey]; + if(doBundleUpdate) { + [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"doBundleUpdate"]; + [[NSUserDefaults standardUserDefaults] synchronize]; + } // Inform user about default Bundle updates which were modified by the user and re-run Reload Bundles if([infoAboutUpdatedDefaultBundles length]) { diff --git a/Source/SPBundleCommandTextView.m b/Source/SPBundleCommandTextView.m index 6411ccfd..d9aae0f7 100644 --- a/Source/SPBundleCommandTextView.m +++ b/Source/SPBundleCommandTextView.m @@ -31,8 +31,8 @@ - (void)dealloc { - [prefs removeObserver:self forKeyPath:SPCustomQueryEditorTabStopWidth]; [[NSNotificationCenter defaultCenter] removeObserver:self]; + [prefs removeObserver:self forKeyPath:SPCustomQueryEditorTabStopWidth]; [prefs release]; [lineNumberView release]; } @@ -58,12 +58,13 @@ // Re-define tab stops for a better editing [self setTabStops]; - // add NSViewBoundsDidChangeNotification to scrollView - [[commandScrollView contentView] setPostsBoundsChangedNotifications:YES]; - // disabled to get the current text range in textView safer [[self layoutManager] setBackgroundLayoutEnabled:NO]; + // add NSViewBoundsDidChangeNotification to scrollView + [commandScrollView setPostsBoundsChangedNotifications:YES]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(boundsDidChangeNotification:) name:NSViewBoundsDidChangeNotification object:[commandScrollView contentView]]; + } - (void)drawRect:(NSRect)rect @@ -781,6 +782,15 @@ textWasChanged = YES; } +/** + * Scrollview delegate after the command textView's view port was changed. + * Manily used to render line numbering. + */ +- (void)boundsDidChangeNotification:(NSNotification *)notification +{ + [commandScrollView display]; +} + #pragma mark - // Store the font in the prefs for selected delegates only diff --git a/Source/SPBundleEditorController.h b/Source/SPBundleEditorController.h index ac4c9e6b..1c3c0dab 100644 --- a/Source/SPBundleEditorController.h +++ b/Source/SPBundleEditorController.h @@ -27,7 +27,7 @@ #import "SPBundleCommandTextView.h" #import "SPOutlineView.h" -@class SRRecorderControl; +@class SRRecorderControl, BWSplitView; @interface SPBundleEditorController : NSWindowController { @@ -61,9 +61,9 @@ IBOutlet NSMenuItem *revealInFinderMenuItem; IBOutlet SRRecorderControl *keyEquivalentField; IBOutlet NSButton *disabledCheckbox; - IBOutlet NSView *bundleDataView; IBOutlet NSScrollView *commandScrollView; IBOutlet NSScrollView *descriptionScrollView; + IBOutlet BWSplitView *splitView; IBOutlet id undeleteSheet; IBOutlet NSTableView *undeleteTableView; diff --git a/Source/SPBundleEditorController.m b/Source/SPBundleEditorController.m index de779e67..279002f4 100644 --- a/Source/SPBundleEditorController.m +++ b/Source/SPBundleEditorController.m @@ -38,6 +38,8 @@ #define SP_BUNDLEEDITOR_SCOPE_GENERAL_STRING NSLocalizedString(@"General", @"Bundle Editor : Scope dropdown : 'general' item") #define SP_BUNDLEEDITOR_OUTLINE_BUNDLE_TOOLTIP_STRING NSLocalizedString(@"“%@” Bundle",@"Bundle Editor : Outline View : Bundle item : tooltip") +#define SP_BUNDLEEDITOR_SPLITVIEW_AUTOSAVE_STRING @"SPBundleEditorSplitView" + @interface SPBundleEditorController (PrivateAPI) - (void)_updateBundleDataView; @@ -116,6 +118,15 @@ - (void)awakeFromNib { + // Set up the splitview width manually; autosave appears to save but not restore this value + // here, so restore in code if present. + NSString *splitViewKeyName = [NSString stringWithFormat:@"NSSplitView Subview Frames %@", SP_BUNDLEEDITOR_SPLITVIEW_AUTOSAVE_STRING]; + if ([[NSUserDefaults standardUserDefaults] arrayForKey:splitViewKeyName]) { + NSString *detailString = [[[NSUserDefaults standardUserDefaults] arrayForKey:splitViewKeyName] objectAtIndex:0]; + float dividerPosition = [[[detailString componentsSeparatedByString:@", "] objectAtIndex:2] floatValue]; + [splitView setPosition:dividerPosition ofDividerAtIndex:0]; + } + // Init all needed variables; popup menus (with the chance for localization); and set // defaults @@ -131,6 +142,7 @@ [[commandBundleTree objectForKey:kChildrenKey] addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:[NSMutableArray array], kChildrenKey, SP_BUNDLEEDITOR_SCOPE_INPUTFIELD_STRING, kBundleNameKey, nil]]; [[commandBundleTree objectForKey:kChildrenKey] addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:[NSMutableArray array], kChildrenKey, SP_BUNDLEEDITOR_SCOPE_DATATABLE_STRING, kBundleNameKey, nil]]; [[commandBundleTree objectForKey:kChildrenKey] addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:[NSMutableArray array], kChildrenKey, SP_BUNDLEEDITOR_SCOPE_GENERAL_STRING, kBundleNameKey, nil]]; + [commandBundleTreeController setContent:commandBundleTree]; // Init all needed menus inputGeneralScopePopUpMenu = [[NSMenu alloc] initWithTitle:@""]; @@ -353,6 +365,7 @@ SPBundleShellVariableSelectedTable, SPBundleShellVariableSelectedTables, SPBundleShellVariableSelectedText, + SPBundleShellVariableSelectedTextRange, SPBundleShellVariableUsedQueryForTable, nil ] retain]; @@ -1031,10 +1044,13 @@ if(deletionSuccessfully) { [commandBundleTreeController removeObjectsAtArrangedObjectIndexPaths:selIndexPaths]; [commandBundleTreeController rearrangeObjects]; - } else { - [self reloadBundles:self]; } + [self reloadBundles:self]; + + [commandBundleTreeController setSelectionIndexPath:[[selIndexPaths objectAtIndex:0] indexPathByRemovingLastIndex]]; + [commandsOutlineView expandItem:[self _currentSelectedNode] expandChildren:NO]; + // Set focus to table view to avoid an unstable state [[self window] makeFirstResponder:commandsOutlineView]; @@ -1291,7 +1307,7 @@ [touchedBundleArray addObject:oldBundleName]; [self _updateBundleDataView]; - + [commandTextView setSelectedRange:NSMakeRange(0,0)]; } - (BOOL)outlineView:(NSOutlineView *)outlineView shouldShowOutlineCellForItem:(id)item @@ -1793,7 +1809,6 @@ [removeButton setEnabled:([[commandBundleTreeController selectedObjects] count] == 1 && ![[[commandBundleTreeController selectedObjects] objectAtIndex:0] objectForKey:kChildrenKey])]; [addButton setEnabled:([[commandBundleTreeController selectionIndexPath] length] > 1)]; - [commandBundleTreeController setContent:commandBundleTree]; NSUInteger *selPath[2]; selPath[0] = 0; selPath[1] = 0; diff --git a/Source/SPBundleHTMLOutputController.h b/Source/SPBundleHTMLOutputController.h index ea0b96da..3665fc8e 100644 --- a/Source/SPBundleHTMLOutputController.h +++ b/Source/SPBundleHTMLOutputController.h @@ -33,6 +33,7 @@ NSString *initHTMLSourceString; NSString *windowUUID; NSString *docUUID; + BOOL suppressExceptionAlert; WebPreferences *webPreferences; } @@ -41,6 +42,7 @@ @property(readwrite,retain) NSString *initHTMLSourceString; @property(readwrite,retain) NSString *windowUUID; @property(readwrite,retain) NSString *docUUID; +@property(assign) BOOL suppressExceptionAlert; - (IBAction)printDocument:(id)sender; diff --git a/Source/SPBundleHTMLOutputController.m b/Source/SPBundleHTMLOutputController.m index 7bcff455..3c47964a 100644 --- a/Source/SPBundleHTMLOutputController.m +++ b/Source/SPBundleHTMLOutputController.m @@ -33,6 +33,7 @@ @synthesize initHTMLSourceString; @synthesize windowUUID; @synthesize docUUID; +@synthesize suppressExceptionAlert; /** * Initialisation @@ -50,6 +51,7 @@ [webView setEditable:NO]; [webView setShouldCloseWithWindow:YES]; [webView setShouldUpdateWhileOffscreen:NO]; + suppressExceptionAlert = NO; } @@ -364,8 +366,18 @@ return @"run"; if (aSelector == @selector(getShellEnvironmentForName:)) return @"getShellEnvironmentForName"; + if (aSelector == @selector(insertText:)) + return @"insertText"; + if (aSelector == @selector(setText:)) + return @"setText"; + if (aSelector == @selector(setSelectedTextRange:)) + return @"setSelectedTextRange"; if (aSelector == @selector(makeHTMLOutputWindowKeyWindow)) return @"makeHTMLOutputWindowKeyWindow"; + if (aSelector == @selector(closeHTMLOutputWindow)) + return @"closeHTMLOutputWindow"; + if (aSelector == @selector(suppressExceptionAlert)) + return @"suppressExceptionAlert"; return @""; } @@ -376,9 +388,24 @@ if (selector == @selector(getShellEnvironmentForName:)) { return NO; } + if (selector == @selector(insertText:)) { + return NO; + } + if (selector == @selector(setText:)) { + return NO; + } + if (selector == @selector(setSelectedTextRange:)) { + return NO; + } if (selector == @selector(makeHTMLOutputWindowKeyWindow)) { return NO; } + if (selector == @selector(closeHTMLOutputWindow)) { + return NO; + } + if (selector == @selector(suppressExceptionAlert)) { + return NO; + } return YES; } @@ -389,6 +416,15 @@ if (strcmp(property, "getShellEnvironmentForName") == 0) { return NO; } + if (strcmp(property, "insertText") == 0) { + return NO; + } + if (strcmp(property, "setText") == 0) { + return NO; + } + if (strcmp(property, "setSelectedTextRange") == 0) { + return NO; + } if (strcmp(property, "makeHTMLOutputWindowKeyWindow") == 0) { return NO; } @@ -411,8 +447,14 @@ - (void)webView:(WebView *)webView exceptionWasRaised:(WebScriptCallFrame *)frame sourceId:(NSInteger)sid line:(NSInteger)lineno forWebFrame:(WebFrame *)webFrame { + NSString *mes = [NSString stringWithFormat:@"Exception:\nline = %ld\nfunction = %@\ncaller = %@\nexception = %@", lineno, [frame functionName], [frame caller], [frame userInfo], [frame exception]]; + if([self suppressExceptionAlert]) { + NSLog(@"%@", mes); + return; + } + NSAlert *alert = [NSAlert alertWithMessageText:NSLocalizedString(@"JavaScript Exception", @"javascript exception") defaultButton:NSLocalizedString(@"OK", @"OK button") alternateButton:nil @@ -441,6 +483,70 @@ } /** + * JavaScript window.system.makeHTMLOutputWindowKeyWindow() function + * to close the HTML window + */ +- (void)closeHTMLOutputWindow +{ + [[self window] close]; +} + +/** + * JavaScript window.system.insertText(text) function + * to insert text into the first responder + */ +- (void)insertText:(NSString*)text +{ + id firstResponder = [[NSApp keyWindow] firstResponder]; + if([firstResponder isKindOfClass:[NSTextView class]]) { + [firstResponder insertText:text]; + return; + } + NSBeep(); +} + +/** + * JavaScript window.system.setText(text) function + * to set the content of the first responder to text + */ +- (void)setText:(NSString*)text +{ + id firstResponder = [[NSApp keyWindow] firstResponder]; + if([firstResponder isKindOfClass:[NSTextView class]]) { + [firstResponder setSelectedRange:NSMakeRange(0, [[firstResponder string] length])]; + [firstResponder insertText:text]; + return; + } + NSBeep(); +} + +/** + * JavaScript window.system.setSelectedRange({location,length}) function + * to set the selection range of the first responder + */ +- (void)setSelectedTextRange:(NSString*)range +{ + id firstResponder = [[NSApp keyWindow] firstResponder]; + if([firstResponder isKindOfClass:[NSTextView class]]) { + NSRange theRange = NSIntersectionRange(NSRangeFromString(range), NSMakeRange(0, [[firstResponder string] length])); + if(theRange.location != NSNotFound) { + [firstResponder setSelectedRange:theRange]; + } + return; + } + NSBeep(); +} + +/** + * JavaScript window.system.suppressExceptionAlert() function + * to suppress an exception alert, instead write the message to NSLog + */ +- (void)suppressExceptionAlert +{ + [self setSuppressExceptionAlert:YES]; +} + +/** * JavaScript window.system.run('a_command'|new Array('a_command', 'uuid')) function * to return the result of the BASH command a_command */ diff --git a/Source/SPConnectionController.h b/Source/SPConnectionController.h index 73a7ef77..590349bc 100644 --- a/Source/SPConnectionController.h +++ b/Source/SPConnectionController.h @@ -83,6 +83,7 @@ NSString *sshKeyLocation; NSString *sshPort; + NSString *connectionKeychainID; NSString *connectionKeychainItemName; NSString *connectionKeychainItemAccount; NSString *connectionSSHKeychainItemName; diff --git a/Source/SPConnectionController.m b/Source/SPConnectionController.m index c12f1ac4..9f542cec 100644 --- a/Source/SPConnectionController.m +++ b/Source/SPConnectionController.m @@ -285,15 +285,10 @@ static NSComparisonResult compareFavoritesUsingKey(id favorite1, id favorite2, v [favoritesOutlineView setEnabled:NO]; [addToFavoritesButton setHidden:YES]; - [addToFavoritesButton display]; [helpButton setHidden:YES]; - [helpButton display]; [connectButton setEnabled:NO]; - [connectButton display]; [progressIndicator startAnimation:self]; - [progressIndicator display]; [progressIndicatorText setHidden:NO]; - [progressIndicatorText display]; // Start the current tab's progress indicator [dbDocument setIsProcessing:YES]; @@ -424,7 +419,7 @@ static NSComparisonResult compareFavoritesUsingKey(id favorite1, id favorite2, v [self setSslCertificateFileLocation:nil]; return; } - permittedFileTypes = [NSArray arrayWithObjects:@"pem", @"cert", @"", nil]; + permittedFileTypes = [NSArray arrayWithObjects:@"pem", @"cert", @"crt", @"", nil]; [openPanel setAccessoryView:sslCertificateLocationHelp]; // SSL CA certificate file location: @@ -433,7 +428,7 @@ static NSComparisonResult compareFavoritesUsingKey(id favorite1, id favorite2, v [self setSslCACertFileLocation:nil]; return; } - permittedFileTypes = [NSArray arrayWithObjects:@"pem", @"cert", @"", nil]; + permittedFileTypes = [NSArray arrayWithObjects:@"pem", @"cert", @"crt", @"", nil]; [openPanel setAccessoryView:sslCACertLocationHelp]; } diff --git a/Source/SPConnectionHandler.m b/Source/SPConnectionHandler.m index 6d777ff5..adf21ffa 100644 --- a/Source/SPConnectionHandler.m +++ b/Source/SPConnectionHandler.m @@ -330,13 +330,7 @@ certificateAuthorityCertificatePath:[self sslCACertFileLocationEnabled] ? [self for (NSInteger i = 0; i < [toolbarItems count]; i++) [[toolbarItems objectAtIndex:i] setEnabled:YES]; - // Set keychain id for saving SPF files - if ([self valueForKeyPath:@"selectedFavorite.id"]) { - [dbDocument setKeychainID:[[self valueForKeyPath:@"selectedFavorite.id"] stringValue]]; - } - else { - [dbDocument setKeychainID:@""]; - } + if (connectionKeychainID) [dbDocument setKeychainID:connectionKeychainID]; // Pass the connection to the table document, allowing it to set // up the other classes and the rest of the interface. diff --git a/Source/SPConstants.h b/Source/SPConstants.h index c5a932ea..3a15f71c 100644 --- a/Source/SPConstants.h +++ b/Source/SPConstants.h @@ -180,6 +180,16 @@ typedef enum SPEncodingEUCKRKorean = 180 } SPEncodingTypes; +// Table index type menu tags +typedef enum +{ + SPPrimaryKeyMenuTag = 0, + SPIndexMenuTag = 1, + SPUniqueMenuTag = 2, + SPFullTextMenuTag = 3, + SPSpatialMenuTag = 4 +} SPTableIndexTypeTags; + // File compression formats typedef enum { @@ -312,6 +322,8 @@ extern NSString *SPCustomQueryAutoComplete; extern NSString *SPCustomQueryAutoCompleteDelay; extern NSString *SPCustomQueryFunctionCompletionInsertsArguments; extern NSString *SPCustomQueryEditorThemeName; +extern NSString *SPCustomQuerySoftIndent; +extern NSString *SPCustomQuerySoftIndentWidth; // AutoUpdate Prefpane extern NSString *SPLastUsedVersion; @@ -369,7 +381,6 @@ extern NSString *SPLastImportIntoNewTableEncoding; extern NSString *SPLastImportIntoNewTableType; extern NSString *SPGlobalValueHistory; extern NSString *SPBundleDeletedDefaultBundlesKey; -extern NSString *SPBundleUpdatedDefaultBundlesKey; // URLs extern NSString *SPDonationsURL; @@ -510,6 +521,7 @@ extern NSString *SPBundleShellVariableSelectedText; extern NSString *SPBundleShellVariableCurrentWord; extern NSString *SPBundleShellVariableCurrentLine; extern NSString *SPBundleShellVariableSelectedRowIndices; +extern NSString *SPBundleShellVariableSelectedTextRange; extern NSString *SPBundleShellVariableAllDatabases; extern NSString *SPBundleShellVariableSelectedTables; extern NSString *SPBundleShellVariableSelectedDatabase; diff --git a/Source/SPConstants.m b/Source/SPConstants.m index c7ac921d..df1d71dc 100644 --- a/Source/SPConstants.m +++ b/Source/SPConstants.m @@ -123,6 +123,8 @@ NSString *SPCustomQueryAutoComplete = @"CustomQueryAutoComplete"; NSString *SPCustomQueryAutoCompleteDelay = @"CustomQueryAutoCompleteDelay"; NSString *SPCustomQueryFunctionCompletionInsertsArguments = @"CustomQueryFunctionCompletionInsertsArguments"; NSString *SPCustomQueryEditorThemeName = @"CustomQueryEditorThemeName"; +NSString *SPCustomQuerySoftIndent = @"CustomQuerySoftIndent"; +NSString *SPCustomQuerySoftIndentWidth = @"CustomQuerySoftIndentWidth"; // AutoUpdate Prefpane NSString *SPLastUsedVersion = @"LastUsedVersion"; @@ -180,11 +182,10 @@ NSString *SPLastImportIntoNewTableEncoding = @"LastImportIntoNewTableEncod NSString *SPLastImportIntoNewTableType = @"LastImportIntoNewTableType"; NSString *SPGlobalValueHistory = @"GlobalValueHistory"; NSString *SPBundleDeletedDefaultBundlesKey = @"deletedDefaultBundles"; -NSString *SPBundleUpdatedDefaultBundlesKey = @"updatedDefaultBundles"; // URLs NSString *SPDonationsURL = @"http://www.sequelpro.com/donate.html"; -NSString *SPMySQLSearchURL = @"http://search.mysql.com/search?q=%@&site=refman-%@&lr=lang_%@"; +NSString *SPMySQLSearchURL = @"http://search.mysql.com/search/query/search?q=%@&group=refman-%@"; NSString *SPDevURL = @"http://code.google.com/p/sequel-pro/"; // Toolbar constants @@ -325,7 +326,7 @@ NSString *SPBundleShellVariableExitShowAsHTML = @"SP_BUNDLE_EXIT_S NSString *SPBundleShellVariableExitShowAsHTMLTooltip = @"SP_BUNDLE_EXIT_SHOW_AS_HTML_TOOLTIP"; NSString *SPBundleShellVariableExitInsertAsSnippet = @"SP_BUNDLE_EXIT_INSERT_AS_SNIPPET"; NSString *SPBundleShellVariableExitInsertAsText = @"SP_BUNDLE_EXIT_INSERT_AS_TEXT"; -NSString *SPBundleShellVariableExitShowAsTextTooltip = @"SP_BUNDLE_EXIT_SHOW_AS_TEXT_TOOLTIP"; +NSString *SPBundleShellVariableExitShowAsTextTooltip = @"SP_BUNDLE_EXIT_SHOW_AS_TEXT_TOOLTIP"; NSString *SPBundleShellVariableExitNone = @"SP_BUNDLE_EXIT_NONE"; NSString *SPBundleShellVariableExitReplaceContent = @"SP_BUNDLE_EXIT_REPLACE_CONTENT"; NSString *SPBundleShellVariableExitReplaceSelection = @"SP_BUNDLE_EXIT_REPLACE_SELECTION"; @@ -345,6 +346,7 @@ NSString *SPBundleShellVariableSelectedRowIndices = @"SP_SELECTED_ROW_ NSString *SPBundleShellVariableSelectedTable = @"SP_SELECTED_TABLE"; NSString *SPBundleShellVariableSelectedTables = @"SP_SELECTED_TABLES"; NSString *SPBundleShellVariableSelectedText = @"SP_SELECTED_TEXT"; +NSString *SPBundleShellVariableSelectedTextRange = @"SP_SELECTED_TEXT_RANGE"; NSString *SPBundleShellVariableUsedQueryForTable = @"SP_USED_QUERY_FOR_TABLE"; const NSInteger SPBundleRedirectActionNone = 200; diff --git a/Source/SPCopyTable.m b/Source/SPCopyTable.m index 827672b5..3b84d867 100644 --- a/Source/SPCopyTable.m +++ b/Source/SPCopyTable.m @@ -698,6 +698,10 @@ NSInteger kBlobAsImageFile = 4; NSUInteger columnWidth; NSUInteger allColumnWidths = 0; + // Determine the available size + NSScrollView *parentScrollView = [[self superview] superview]; + CGFloat visibleTableWidth = [parentScrollView bounds].size.width - [NSScroller scrollerWidth] - [columnDefinitions count] * 3.5; + for (NSDictionary *columnDefinition in columnDefinitions) { if ([[NSThread currentThread] isCancelled]) return nil; @@ -707,7 +711,7 @@ NSInteger kBlobAsImageFile = 4; } // Compare the column widths to the table width. If wider, narrow down wide columns as necessary - if (allColumnWidths > [self bounds].size.width) { + if (allColumnWidths > visibleTableWidth) { NSUInteger availableWidthToReduce = 0; // Look for columns that are wider than the multi-column max @@ -717,7 +721,7 @@ NSInteger kBlobAsImageFile = 4; } // Determine how much width can be reduced - NSUInteger widthToReduce = allColumnWidths - [self bounds].size.width; + NSUInteger widthToReduce = allColumnWidths - visibleTableWidth; if (availableWidthToReduce < widthToReduce) widthToReduce = availableWidthToReduce; // Proportionally decrease the column sizes @@ -930,6 +934,10 @@ NSInteger kBlobAsImageFile = 4; { NSInteger menuItemTag = [anItem tag]; + if ([anItem action] == @selector(performFindPanelAction:)) { + return (menuItemTag == 1 && [[self delegate] isKindOfClass:[SPTableContent class]]); + } + // Don't validate anything other than the copy commands if (menuItemTag != MENU_EDIT_COPY && menuItemTag != MENU_EDIT_COPY_WITH_COLUMN && menuItemTag != MENU_EDIT_COPY_AS_SQL) { return YES; @@ -1091,6 +1099,13 @@ NSInteger kBlobAsImageFile = 4; [super keyDown:theEvent]; } +- (void)performFindPanelAction:(id)sender +{ + if([sender tag] == 1 && [[self delegate] isKindOfClass:[SPTableContent class]]) { + [[self delegate] showFilterTable:self]; + } +} + #pragma mark - #pragma mark Bundle Command Support @@ -1221,33 +1236,47 @@ NSInteger kBlobAsImageFile = 4; return; } + + // Create an array of table column mappings for fast iteration + NSArray *columns = [self tableColumns]; + NSUInteger numColumns = [columns count]; + NSUInteger *columnMappings = malloc(numColumns * sizeof(NSUInteger)); + NSInteger c; + for ( c = 0; c < numColumns; c++ ) + columnMappings[c] = [[NSArrayObjectAtIndex(columns, c) identifier] unsignedIntValue]; + NSMutableString *tableMetaData = [NSMutableString string]; if([[self delegate] isKindOfClass:[SPCustomQuery class]]) { [env setObject:@"query" forKey:SPBundleShellVariableDataTableSource]; NSArray *defs = [[self delegate] dataColumnDefinitions]; - for(NSDictionary* col in defs) { - [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"type"]]; - [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"typegrouping"]]; - [tableMetaData appendFormat:@"%@\t", ([col objectForKey:@"char_length"]) ? : @""]; - [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"UNSIGNED_FLAG"]]; - [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"AUTO_INCREMENT_FLAG"]]; - [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"PRI_KEY_FLAG"]]; - [tableMetaData appendString:@"\n"]; - } + if(defs && [defs count] == numColumns) + for( c = 0; c < numColumns; c++ ) { + NSDictionary *col = NSArrayObjectAtIndex(defs, columnMappings[c]); + [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"type"]]; + [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"typegrouping"]]; + [tableMetaData appendFormat:@"%@\t", ([col objectForKey:@"char_length"]) ? : @""]; + [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"UNSIGNED_FLAG"]]; + [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"AUTO_INCREMENT_FLAG"]]; + [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"PRI_KEY_FLAG"]]; + [tableMetaData appendString:@"\n"]; + } } else if([[self delegate] isKindOfClass:[SPTableContent class]]) { [env setObject:@"content" forKey:SPBundleShellVariableDataTableSource]; NSArray *defs = [[self delegate] dataColumnDefinitions]; - for(NSDictionary* col in defs) { - [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"type"]]; - [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"typegrouping"]]; - [tableMetaData appendFormat:@"%@\t", ([col objectForKey:@"length"]) ? : @""]; - [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"unsigned"]]; - [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"autoincrement"]]; - [tableMetaData appendFormat:@"%@\t", ([col objectForKey:@"isprimarykey"]) ? : @"0"]; - [tableMetaData appendFormat:@"%@\n", [col objectForKey:@"comment"]]; - } + if(defs && [defs count] == numColumns) + for( c = 0; c < numColumns; c++ ) { + NSDictionary *col = NSArrayObjectAtIndex(defs, columnMappings[c]); + [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"type"]]; + [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"typegrouping"]]; + [tableMetaData appendFormat:@"%@\t", ([col objectForKey:@"length"]) ? : @""]; + [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"unsigned"]]; + [tableMetaData appendFormat:@"%@\t", [col objectForKey:@"autoincrement"]]; + [tableMetaData appendFormat:@"%@\t", ([col objectForKey:@"isprimarykey"]) ? : @"0"]; + [tableMetaData appendFormat:@"%@\n", [col objectForKey:@"comment"]]; + } } + free(columnMappings); inputFileError = nil; [tableMetaData writeToFile:bundleInputTableMetaDataFilePath diff --git a/Source/SPCustomQuery.h b/Source/SPCustomQuery.h index f4c2440d..317db0c9 100644 --- a/Source/SPCustomQuery.h +++ b/Source/SPCustomQuery.h @@ -147,6 +147,7 @@ BOOL queryIsTableSorter; BOOL isDesc; BOOL isFieldEditable; + BOOL textViewWasChanged; NSNumber *sortField; NSIndexSet *selectionIndexToRestore; @@ -170,6 +171,8 @@ NSString *kCellEditorErrorTooManyMatches; } +@property(assign) BOOL textViewWasChanged; + // IBAction methods - (IBAction)runAllQueries:(id)sender; - (void) runAllQueriesCallback; @@ -245,7 +248,7 @@ - (void)commentOutCurrentQueryTakingSelection:(BOOL)takeSelection; - (NSString *)usedQuery; - (NSString *)argumentForRow:(NSUInteger)rowIndex ofTable:(NSString *)tableForColumn andDatabase:(NSString *)database includeBlobs:(BOOL)includeBlobs; -- (NSArray*)fieldEditStatusForRow:(NSInteger)rowIndex andColumn:(NSInteger)columnIndex; +- (NSArray*)fieldEditStatusForRow:(NSInteger)rowIndex andColumn:(NSNumber *)columnIndex; - (NSUInteger)numberOfQueries; - (NSRange)currentQueryRange; - (NSString *)buildHistoryString; diff --git a/Source/SPCustomQuery.m b/Source/SPCustomQuery.m index e8420b7c..b2859010 100644 --- a/Source/SPCustomQuery.m +++ b/Source/SPCustomQuery.m @@ -45,6 +45,8 @@ @implementation SPCustomQuery +@synthesize textViewWasChanged; + #pragma mark IBAction methods /* @@ -940,7 +942,8 @@ // Split the current text into ranges of queries // only if the textView was really changed, otherwise use the cache - if([[textView textStorage] editedMask] != 0) { + if([[textView textStorage] editedMask] != 0 || [self textViewWasChanged]) { + [self setTextViewWasChanged:NO]; customQueryParser = [[SPSQLParser alloc] initWithString:[textView string]]; [customQueryParser setDelimiterSupport:YES]; queries = [[NSArray alloc] initWithArray:[customQueryParser splitStringIntoRangesByCharacter:';']]; @@ -1634,7 +1637,7 @@ * -2 for other errors * and the used WHERE clause to identify */ -- (NSArray*)fieldEditStatusForRow:(NSInteger)rowIndex andColumn:(NSInteger)columnIndex +- (NSArray*)fieldEditStatusForRow:(NSInteger)rowIndex andColumn:(NSNumber*)columnIndex { NSDictionary *columnDefinition = nil; @@ -2580,6 +2583,7 @@ BOOL isLookBehind = YES; NSRange currentSelection = [textView selectedRange]; NSUInteger caretPosition = currentSelection.location; + NSRange qRange = [self queryRangeAtPosition:caretPosition lookBehind:&isLookBehind]; if(qRange.length) @@ -3679,8 +3683,9 @@ column = [customQueryView editedColumn]; // Retrieve the column defintion + NSNumber *colIdentifier = [NSArrayObjectAtIndex([customQueryView tableColumns], column) identifier]; for(id c in cqColumnDefinition) { - if([[c objectForKey:@"datacolumnindex"] isEqualToNumber:[NSNumber numberWithInteger:column]]) { + if([[c objectForKey:@"datacolumnindex"] isEqualToNumber:colIdentifier]) { columnDefinition = [NSDictionary dictionaryWithDictionary:c]; break; } @@ -3688,8 +3693,8 @@ if(!columnDefinition) return NO; - NSArray *editStatus = [self fieldEditStatusForRow:row andColumn:[NSArrayObjectAtIndex([customQueryView tableColumns], column) identifier]]; - NSInteger numberOfPossibleUpdateRows = [[editStatus objectAtIndex:0] integerValue]; + NSArray *editStatus = [self fieldEditStatusForRow:row andColumn:colIdentifier]; + NSInteger numberOfPossibleUpdateRows = [NSArrayObjectAtIndex(editStatus, 0) integerValue]; NSPoint pos = [[tableDocumentInstance parentWindow] convertBaseToScreen:[customQueryView convertPoint:[customQueryView frameOfCellAtColumn:column row:row].origin toView:nil]]; pos.y -= 20; switch(numberOfPossibleUpdateRows) { diff --git a/Source/SPDatabaseDocument.h b/Source/SPDatabaseDocument.h index bcd92d59..3459b9b8 100644 --- a/Source/SPDatabaseDocument.h +++ b/Source/SPDatabaseDocument.h @@ -65,6 +65,9 @@ IBOutlet NSSearchField *listFilterField; + IBOutlet NSScrollView *tableInfoScrollView; + IBOutlet NSScrollView *activitiesScrollView; + IBOutlet NSView *parentView; IBOutlet id titleAccessoryView; @@ -363,6 +366,7 @@ - (void)handleSchemeCommand:(NSDictionary*)commandDict; - (void)registerActivity:(NSDictionary*)commandDict; - (void)removeRegisteredActivity:(NSInteger)pid; +- (void)setActivityPaneHidden:(NSNumber*)hide; - (NSArray*)runningActivities; - (NSDictionary*)shellVariables; diff --git a/Source/SPDatabaseDocument.m b/Source/SPDatabaseDocument.m index 787817bc..e122205e 100644 --- a/Source/SPDatabaseDocument.m +++ b/Source/SPDatabaseDocument.m @@ -56,18 +56,6 @@ #import "SPDatabaseRename.h" #import "SPServerSupport.h" #import "SPTooltip.h" -#import "SPEditorTokens.h" - -#pragma mark lex init - -/* -* Include all the extern variables and prototypes required for flex (used for syntax highlighting) -*/ -extern NSUInteger yylex(); -extern NSUInteger yyuoffset, yyuleng; -typedef struct yy_buffer_state *YY_BUFFER_STATE; -void yy_switch_to_buffer(YY_BUFFER_STATE); -YY_BUFFER_STATE yy_scan_string (const char *); @interface SPDatabaseDocument (PrivateAPI) @@ -2514,8 +2502,10 @@ YY_BUFFER_STATE yy_scan_string (const char *); [saveConnectionEncrypt setState:[[spfDocData objectForKey:@"encrypted"] boolValue]]; if([spfDocData objectForKey:@"include_session"]) [saveConnectionIncludeData setState:[[spfDocData objectForKey:@"include_session"] boolValue]]; - if([spfDocData objectForKey:@"save_editor_content"]) + if([[spfDocData objectForKey:@"save_editor_content"] boolValue]) [saveConnectionIncludeQuery setState:[[spfDocData objectForKey:@"save_editor_content"] boolValue]]; + else + [saveConnectionIncludeQuery setState:NSOnState]; [saveConnectionIncludeQuery setEnabled:([[[[customQueryInstance valueForKeyPath:@"textView"] textStorage] string] length])]; @@ -2568,8 +2558,10 @@ YY_BUFFER_STATE yy_scan_string (const char *); [saveConnectionEncrypt setState:[[spfSessionData objectForKey:@"encrypted"] boolValue]]; if([spfSessionData objectForKey:@"include_session"]) [saveConnectionIncludeData setState:[[spfSessionData objectForKey:@"include_session"] boolValue]]; - if([spfSessionData objectForKey:@"save_editor_content"]) + if([[spfSessionData objectForKey:@"save_editor_content"] boolValue]) [saveConnectionIncludeQuery setState:[[spfSessionData objectForKey:@"save_editor_content"] boolValue]]; + else + [saveConnectionIncludeQuery setState:YES]; // Update accessory button states [self validateSaveConnectionAccessory:nil]; @@ -4558,86 +4550,6 @@ YY_BUFFER_STATE yy_scan_string (const char *); #pragma mark Scheme scripting methods /** - * Return an HTML formatted string representing the passed SQL string syntax highlighted - */ -- (NSString*)doSQLSyntaxHighlightForString:(NSString*)sqlText cssLike:(BOOL)cssLike -{ - - NSMutableString *sqlHTML = [[[NSMutableString alloc] initWithCapacity:[sqlText length]] autorelease]; - - NSRange textRange = NSMakeRange(0, [sqlText length]); - NSString *tokenColor; - NSString *cssId; - size_t token; - NSRange tokenRange; - - // initialise flex - yyuoffset = 0; yyuleng = 0; - yy_switch_to_buffer(yy_scan_string([sqlText UTF8String])); - BOOL skipFontTag; - - while (token=yylex()){ - skipFontTag = NO; - switch (token) { - case SPT_SINGLE_QUOTED_TEXT: - case SPT_DOUBLE_QUOTED_TEXT: - tokenColor = @"#A7221C"; - cssId = @"sp_sql_quoted"; - break; - case SPT_BACKTICK_QUOTED_TEXT: - tokenColor = @"#001892"; - cssId = @"sp_sql_backtick"; - break; - case SPT_RESERVED_WORD: - tokenColor = @"#0041F6"; - cssId = @"sp_sql_keyword"; - break; - case SPT_NUMERIC: - tokenColor = @"#67350F"; - cssId = @"sp_sql_numeric"; - break; - case SPT_COMMENT: - tokenColor = @"#265C10"; - cssId = @"sp_sql_comment"; - break; - case SPT_VARIABLE: - tokenColor = @"#6C6C6C"; - cssId = @"sp_sql_variable"; - break; - case SPT_WHITESPACE: - skipFontTag = YES; - cssId = @""; - break; - default: - skipFontTag = YES; - cssId = @""; - } - - tokenRange = NSMakeRange(yyuoffset, yyuleng); - - if(skipFontTag) - [sqlHTML appendString:[[sqlText substringWithRange:tokenRange] HTMLEscapeString]]; - else { - if(cssLike) - [sqlHTML appendFormat:@"<span class=\"%@\">%@</span>", cssId, [[sqlText substringWithRange:tokenRange] HTMLEscapeString]]; - else - [sqlHTML appendFormat:@"<font color=%@>%@</font>", tokenColor, [[sqlText substringWithRange:tokenRange] HTMLEscapeString]]; - } - - } - - // Wrap lines, and replace tabs with spaces - [sqlHTML replaceOccurrencesOfString:@"\n" withString:@"<br>" options:NSLiteralSearch range:NSMakeRange(0, [sqlHTML length])]; - [sqlHTML replaceOccurrencesOfString:@"\t" withString:@" " options:NSLiteralSearch range:NSMakeRange(0, [sqlHTML length])]; - - if(sqlHTML) - return sqlHTML; - else - return @""; - -} - -/** * Called by handleSchemeCommand: to break a while loop */ - (void)setTimeout @@ -4733,57 +4645,52 @@ YY_BUFFER_STATE yy_scan_string (const char *); return; } - if([command isEqualToString:@"SyntaxHighlighting"]) { - - NSFileManager *fm = [NSFileManager defaultManager]; - BOOL isDir; - - NSString *queryFileName = [NSString stringWithFormat:@"%@%@", SPURLSchemeQueryInputPathHeader, docProcessID]; - NSString *resultFileName = [NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultPathHeader, docProcessID]; - NSString *metaFileName = [NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultMetaPathHeader, docProcessID]; - NSString *statusFileName = [NSString stringWithFormat:@"%@%@", SPURLSchemeQueryResultStatusPathHeader, docProcessID]; - - NSError *inError = nil; - NSString *query = [NSString stringWithContentsOfFile:queryFileName encoding:NSUTF8StringEncoding error:inError]; - NSString *result = @""; - NSString *status = @"0"; + // ==== the following commands need an authentication for safety reasons - if([fm fileExistsAtPath:queryFileName isDirectory:&isDir] && !isDir) { + // Authenticate command + if(![docProcessID isEqualToString:[commandDict objectForKey:@"id"]]) { + SPBeginAlertSheet(NSLocalizedString(@"Remote Error", @"remote error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, [self parentWindow], self, nil, nil, + NSLocalizedString(@"URL scheme command couldn't authenticated", @"URL scheme command couldn't authenticated")); + return; + } - if(inError == nil && query && [query length]) { - if([params count] > 1) { - if([[params lastObject] isEqualToString:@"html"]) - result = [NSString stringWithString:[self doSQLSyntaxHighlightForString:query cssLike:NO]]; - else if([[params lastObject] isEqualToString:@"htmlcss"]) - result = [NSString stringWithString:[self doSQLSyntaxHighlightForString:query cssLike:YES]]; + if([command isEqualToString:@"SetSelectedTextRange"]) { + if([params count] > 1) { + id firstResponder = [parentWindow firstResponder]; + if([firstResponder isKindOfClass:[NSTextView class]]) { + NSRange theRange = NSIntersectionRange(NSRangeFromString([params objectAtIndex:1]), NSMakeRange(0, [[firstResponder string] length])); + if(theRange.location != NSNotFound) { + [firstResponder setSelectedRange:theRange]; } + return; } + NSBeep(); } + return; + } - [fm removeItemAtPath:queryFileName error:nil]; - [fm removeItemAtPath:resultFileName error:nil]; - [fm removeItemAtPath:metaFileName error:nil]; - [fm removeItemAtPath:statusFileName error:nil]; - - if(![result writeToFile:resultFileName atomically:YES encoding:NSUTF8StringEncoding error:nil]) - status = @"1"; - - // write status file as notification that query was finished - BOOL succeed = [status writeToFile:statusFileName atomically:YES encoding:NSUTF8StringEncoding error:nil]; - if(!succeed) { + if([command isEqualToString:@"InsertText"]) { + if([params count] > 1) { + id firstResponder = [parentWindow firstResponder]; + if([firstResponder isKindOfClass:[NSTextView class]]) { + [firstResponder insertText:[params objectAtIndex:1]]; + return; + } NSBeep(); - SPBeginAlertSheet(NSLocalizedString(@"BASH Error", @"bash error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, [self parentWindow], self, nil, nil, - NSLocalizedString(@"Status file for sequelpro url scheme command couldn't be written!", @"status file for sequelpro url scheme command couldn't be written error message")); } return; } - // ==== the following commands need an authentication for safety reasons - - // Authenticate command - if(![docProcessID isEqualToString:[commandDict objectForKey:@"id"]]) { - SPBeginAlertSheet(NSLocalizedString(@"Remote Error", @"remote error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, [self parentWindow], self, nil, nil, - NSLocalizedString(@"URL scheme command couldn't authenticated", @"URL scheme command couldn't authenticated")); + if([command isEqualToString:@"SetText"]) { + if([params count] > 1) { + id firstResponder = [parentWindow firstResponder]; + if([firstResponder isKindOfClass:[NSTextView class]]) { + [firstResponder setSelectedRange:NSMakeRange(0, [[firstResponder string] length])]; + [firstResponder insertText:[params objectAtIndex:1]]; + return; + } + NSBeep(); + } return; } @@ -5141,17 +5048,50 @@ YY_BUFFER_STATE yy_scan_string (const char *); { [runningActivitiesArray addObject:commandDict]; [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadWithName:SPActivitiesUpdateNotification object:nil]; + + if([runningActivitiesArray count] || [[[NSApp delegate] runningActivities] count]) + [self performSelector:@selector(setActivityPaneHidden:) withObject:[NSNumber numberWithInteger:0] afterDelay:1.0]; + else { + [NSObject cancelPreviousPerformRequestsWithTarget:self + selector:@selector(setActivityPaneHidden:) + object:[NSNumber numberWithInteger:0]]; + [self setActivityPaneHidden:[NSNumber numberWithInteger:1]]; + } + } - (void)removeRegisteredActivity:(NSInteger)pid { + for(id cmd in runningActivitiesArray) { if([[cmd objectForKey:@"pid"] integerValue] == pid) { [runningActivitiesArray removeObject:cmd]; break; } } + + if([runningActivitiesArray count] || [[[NSApp delegate] runningActivities] count]) + [self performSelector:@selector(setActivityPaneHidden:) withObject:[NSNumber numberWithInteger:0] afterDelay:1.0]; + else { + [NSObject cancelPreviousPerformRequestsWithTarget:self + selector:@selector(setActivityPaneHidden:) + object:[NSNumber numberWithInteger:0]]; + [self setActivityPaneHidden:[NSNumber numberWithInteger:1]]; + } + [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadWithName:SPActivitiesUpdateNotification object:nil]; + +} + +- (void)setActivityPaneHidden:(NSNumber*)hide +{ + if(![hide integerValue] == 1) { + [tableInfoScrollView setHidden:YES]; + [activitiesScrollView setHidden:NO]; + } else { + [activitiesScrollView setHidden:YES]; + [tableInfoScrollView setHidden:NO]; + } } - (NSArray*)runningActivities diff --git a/Source/SPEditorTokens.l b/Source/SPEditorTokens.l index a5726cce..7b19804a 100644 --- a/Source/SPEditorTokens.l +++ b/Source/SPEditorTokens.l @@ -56,9 +56,9 @@ ops "+"|"-"|"*"|"/" word [a-z_\.0-9À-゚@] variable @{1,2}[a-z_\.0-9À-゚$]+ nonword [^a-z_0-9À-゚#\n\t\r] -keyworda (G(R(OUP{s}BY|ANT(S)?)|E(T_FORMAT|OMETRY(COLLECTION)?)|LOBAL)|B(Y(TE)?|TREE|I(GINT|N(LOG|ARY)|T)|O(TH|OL(EAN)?)|E(GIN|TWEEN|FORE)|LOB|ACKUP{s}TABLE)|H(IGH_PRIORITY|O(STS|UR(_(MI(NUTE|CROSECOND)|SECOND))?)|ELP|A(SH|NDLER|VING))|C(R(OSS|EATE)|H(ECK(SUM)?|A(R(SET|ACTER)?|NGE(D)?|IN))|IPHER|O(M(M(IT(TED)?|ENT)|P(RESSED|LETION|ACT))|N(S(TRAINT|ISTENT)|NECTION|CURRENT|T(RIBUTORS|INUE|AINS)|DITION|VERT)|DE|L(UMN(_FORMAT)?|LATE)|ALESCE{s}PARTITION)|U(R(RENT_(TIME(STAMP)?|DATE|USER)|SOR)|BE)|L(IENT|OSE)|A(S(CADE(D)?|E)|CHE{s}INDEX|LL))|I(GNORE|MPORT{s}TABLESPACE|S(SUER|OLATION)?|N(S(TALL({s}PLUGIN)?|E(RT(_METHOD)?|NSITIVE))|N(O(BASE|DB)|ER)|T(1|2|8|3|O({s}(DUMP|OUT)FILE)?|4|E(RVAL|GER))?|ITIAL_SIZE|OUT|DEX(ES)?|VOKER|FILE)?|TERATE|O_THREAD|DENTIFIED|F)|D(ROP|YNAMIC|I(RECTORY|S(CARD{s}TABLESPACE|TINCT(ROW)?|K|ABLE{s}KEYS)|V)|O(UBLE)?|U(MPFILE|PLICATE|AL)|E(S(C(RIBE)?|_KEY_FILE)|C(IMAL|LARE)?|TERMINISTIC|F(INER|AULT)|L(ETE|AY(_KEY_WRITE|ED))|ALLOCATE)|A(Y(_(MI(NUTE|CROSECOND)|SECOND|HOUR))?|T(E(TIME)?|A(BASE(S)?|FILE)?)))|JOIN|E(RRORS|X(TEN(T_SIZE|DED)|I(STS|T)|P(LAIN|ANSION)|ECUTE)|SCAPE(D{s}BY)?|N(GINE(S)?|CLOSED{s}BY|D(S)?|UM|ABLE{s}KEYS)|VE(RY|NT)|LSE(IF)?|ACH)|K(ILL({s}(CONNECTION|QUERY))?|EY(S|_BLOCK_SIZE)?)|F(R(OM|AC_SECOND)|I(RST|XED|LE)|O(R(CE|EIGN)?|UND)|U(NCTION|LL(TEXT)?)|ETCH|L(OAT(8|4)?|USH)|A(ST|LSE))|A(G(GREGATE|AINST)|S(C(II)?|ENSITIVE)?|N(Y|D|ALYZE)|C(CESSIBLE|TION)|T|DD|UT(HORS|O(_INCREMENT|EXTEND_SIZE))|VG(_ROW_LENGTH)?|FTER|L(GORITHM|TER|L))) -keywordl (R(TREE|IGHT|O(UTINE|W(S|_FORMAT)?|LL(BACK|UP))|E(GEXP|MOVE{s}PARTITIONING|BUILD{s}PARTITION|S(T(RICT|ORE{s}TABLE)|UME|ET)|NAME|COVER|TURN(S)?|ORGANIZE{s}PARTITION|D(O(_BUFFER_SIZE|FILE)|UNDANT)|P(EAT(ABLE)?|L(ICATION|ACE)|AIR)|VOKE|QUIRE|FERENCES|L(OAD|EASE|AY_(THREAD|LOG_(POS|FILE)))|A(D(S|_(ONLY|WRITE))?|L))|LIKE|ANGE)|M(I(GRATE|N(_ROWS|UTE(_(MICROSECOND|SECOND))?)|CROSECOND|DDLEINT)|O(NTH|D(IF(Y|IES)|E)?)|U(TEX|LTI(PO(INT|LYGON)|LINESTRING))|E(RGE|MORY|DIUM(BLOB|TEXT|INT)?)|A(X(_(ROWS|SIZE|CONNECTIONS_PER_HOUR|U(SER_CONNECTIONS|PDATES_PER_HOUR)|QUERIES_PER_HOUR)|VALUE)|STER(_(S(SL(_(C(IPHER|ERT|A(PATH)?)|VERIFY_SERVER_CERT|KEY))?|ERVER_ID)|HOST|CONNECT_RETRY|USER|P(ORT|ASSWORD)|LOG_(POS|FILE)))?|TCH))|N(CHAR|O(NE|_W(RITE_TO_BINLOG|AIT)|T|DEGROUP)?|DB(CLUSTER)?|U(MERIC|LL)|E(XT|W)|VARCHAR|A(ME(S)?|T(IONAL|URAL)))|O(R(DER{s}BY)?|N({s}(DUPLICATE{s}KEY{s}UPDATE)?|E(_SHOT)?|LINE)|UT(ER|FILE)?|P(TI(MIZE|ON(S|ALLY)?)|EN)|FF(SET|LINE)|LD_PASSWORD)|P(R(I(MARY|VILEGES)|OCE(SS|DURE{s}(ANALYSE)?)|E(SERVE|CISION|PARE|V))|HASE|O(INT|LYGON)|URGE|A(R(SER|TI(TION(S|ING)?|AL))|SSWORD|CK_KEYS))|QU(ICK|ERY|ARTER)|L(I(MIT|ST|NE(S(TRING)?|AR)|KE)|O(G(S|FILE({s}GROUP))|NG(BLOB|TEXT)?|C(K(S)?|AL(TIME(STAMP)?)?)|OP|W_PRIORITY|AD{s}(DATA|INDEX{s}INTO{s}CACHE|XML))|E(SS|VEL|FT|A(DING|VE(S)?))|A(ST|NGUAGE))) -keywords (X(OR|509|A)|S(MALLINT|SL|H(OW({s}(E(NGINE(S)?|RRORS)|M(ASTER|UTEX)|BINLOG|GRANTS|INNODB|P(RIVILEGES|ROFILE(S)?|ROCEDURE{s}CODE)|SLAVE{s}(HOSTS|STATUS)|TRIGGERS|VARIABLES|WARNINGS|(FULL{s})?PROCESSLIST|FIELDS|PLUGIN(S)?|STORAGE{s}ENGINES|TABLE{s}TYPES|CO(LUMNS|LLATION)|BINLOG{s}EVENTS))?|UTDOWN|ARE)|NAPSHOT|CHE(MA(S)?|DULE(R)?)|T(R(ING|AIGHT_JOIN)|O(RAGE|P)|A(RT(S|ING{s}BY)?|TUS))|I(GNED|MPLE)|O(ME|NAME|UNDS)|U(B(JECT|PARTITION(S)?)|SPEND|PER)|P(ECIFIC|ATIAL)|E(RIAL(IZABLE)?|SSION|NSITIVE|C(OND(_MICROSECOND)?|URITY)|T({s}(PASSWORD|NAMES|ONE_SHOT))?|PARATOR|LECT)|QL(STATE|_(MAX_JOIN_SIZE|B(IG_(RESULT|SELECTS|TABLES)|UFFER_RESULT)|S(MALL_RESULT|ELECT_LIMIT|LAVE_SKIP_COUNTER|AFE_UPDATES)|NO_CACHE|CA(CHE|LC_FOUND_ROWS)|T(SI_(M(INUTE|ONTH)|SECOND|HOUR|YEAR|DAY|QUARTER|FRAC_SECOND|WEEK)|HREAD)|QUOTE_SHOW_CREATE|WARNINGS|LO(G_(BIN|OFF|UPDATE)|W_PRIORITY_UPDATES)|AUTO_IS_NULL)|EXCEPTION|WARNING)?|LAVE|AVEPOINT)|YEAR(_MONTH)?|T(R(IGGER(S)?|U(NCATE|E)|A(NSACTION|ILING))|H(EN|AN)|YPE|I(ME(STAMP(DIFF|ADD)?)?|NY(BLOB|TEXT|INT))|O|E(RMINATED{s}BY|XT|MP(TABLE|ORARY))|ABLE(S(PACE)?)?)|ZEROFILL|U(S(ING|E(R(_RESOURCES)?|_FRM)?|AGE)|N(SIGNED|COMMITTED|TIL|I(NSTALL({s}PLUGIN)?|CODE|ON|QUE)|D(O(_BUFFER_SIZE|FILE)?|EFINED)|KNOWN|LOCK)|TC_(TIME(STAMP)?|DATE)|P(GRADE|DATE))|V(IEW|A(R(BINARY|YING|CHAR(ACTER)?|IABLES)|LUE(S)?))|W(RITE|H(ILE|E(RE|N))|ITH({s}PARSER)?|ORK|EEK|A(RNINGS|IT))) +keyworda (G(R(OUP{s}BY|ANT(S)?)|E(NERAL|T_FORMAT|OMETRY(COLLECTION)?)|LOBAL)|B(Y(TE)?|TREE|I(GINT|N(LOG|ARY)|T)|O(TH|OL(EAN)?)|E(GIN|TWEEN|FORE)|LOB|ACKUP{s}TABLE)|H(IGH_PRIORITY|O(ST(S)?|UR(_(MI(NUTE|CROSECOND)|SECOND))?)|ELP|A(SH|NDLER|VING))|C(R(OSS|EATE)|H(ECK(SUM)?|A(R(SET|ACTER)?|NGE(D)?|IN))|IPHER|O(M(M(IT(TED)?|ENT)|P(RESSED|LETION|ACT))|N(S(TRAINT(_(SCHEMA|NAME|CATALOG))?|ISTENT)|NECTION|CURRENT|T(RIBUTORS|INUE|AINS)|DITION|VERT)|DE|L(UMN(S|_(NAME|FORMAT))?|LATE)|ALESCE{s}PARTITION)|U(R(RENT_(TIME(STAMP)?|DATE|USER)|SOR(_NAME)?)|BE)|L(IENT|OSE|ASS_ORIGIN)|A(S(CADE(D)?|E)|CHE{s}INDEX|TALOG_NAME|LL))|I(GNORE(_SERVER_IDS)?|MPORT{s}TABLESPACE|S(SUER|OLATION)?|N(S(TALL({s}PLUGIN)?|E(RT(_METHOD)?|NSITIVE))|N(O(BASE|DB)|ER)|T(1|2|8|3|O({s}(DUMP|OUT)FILE)?|4|E(RVAL|GER))?|ITIAL_SIZE|OUT|DEX(ES)?|VOKER|FILE)?|TERATE|O_THREAD|DENTIFIED|F)|D(ROP|YNAMIC|I(RECTORY|S(CARD{s}TABLESPACE|TINCT(ROW)?|K|ABLE{s}KEYS)|V)|O(UBLE)?|U(MPFILE|PLICATE|AL)|E(S(C(RIBE)?|_KEY_FILE)|C(IMAL|LARE)?|TERMINISTIC|F(INER|AULT)|L(ETE|AY(_KEY_WRITE|ED))|ALLOCATE)|A(Y(_(MI(NUTE|CROSECOND)|SECOND|HOUR))?|T(E(TIME)?|A(BASE(S)?|FILE)?)))|JOIN|E(RRORS|X(TEN(T_SIZE|DED)|I(STS|T)|P(LAIN|ANSION)|ECUTE)|SCAPE(D{s}BY)?|N(GINE(S)?|CLOSED{s}BY|D(S)?|UM|ABLE{s}KEYS)|VE(RY|NT)|LSE(IF)?|ACH)|K(ILL({s}(CONNECTION|QUERY))?|EY(S|_BLOCK_SIZE)?)|F(R(OM|AC_SECOND)|I(RST|XED|LE)|O(R(CE|EIGN)?|UND)|U(NCTION|LL(TEXT)?)|ETCH|L(OAT(8|4)?|USH)|A(ST|LSE))|A(G(GREGATE|AINST)|S(C(II)?|ENSITIVE)?|N(Y|D|ALYZE)|C(CESSIBLE|TION)|T|DD|UT(HORS|O(_INCREMENT|EXTEND_SIZE))|VG(_ROW_LENGTH)?|FTER|L(GORITHM|TER|L))) +keywordl (R(TREE|IGHT|O(UTINE|W(S|_FORMAT)?|LL(BACK|UP))|E(GEXP|MOVE{s}PARTITIONING|BUILD{s}PARTITION|S(T(RICT|ORE{s}TABLE)|IGNAL|UME|ET)|NAME|COVER|TURN(S)?|ORGANIZE{s}PARTITION|D(O(_BUFFER_SIZE|FILE)|UNDANT)|P(EAT(ABLE)?|L(ICATION|ACE)|AIR)|VOKE|QUIRE|FERENCES|L(OAD|EASE|AY_(THREAD|LOG_(POS|FILE)))|A(D(S|_(ONLY|WRITE))?|L))|LIKE|ANGE)|M(YSQL_ERRNO|I(GRATE|N(_ROWS|UTE(_(MICROSECOND|SECOND))?)|CROSECOND|DDLEINT)|O(NTH|D(IF(Y|IES)|E)?)|U(TEX|LTI(PO(INT|LYGON)|LINESTRING))|E(RGE|MORY|SSAGE_TEXT|DIUM(BLOB|TEXT|INT)?)|A(X(_(ROWS|SIZE|CONNECTIONS_PER_HOUR|U(SER_CONNECTIONS|PDATES_PER_HOUR)|QUERIES_PER_HOUR)|VALUE)|STER(_(S(SL(_(C(IPHER|ERT|A(PATH)?)|VERIFY_SERVER_CERT|KEY))?|ERVER_ID)|H(OST|EARTBEAT_PERIOD)|CONNECT_RETRY|USER|P(ORT|ASSWORD)|LOG_(POS|FILE)))?|TCH))|N(CHAR|O(NE|_W(RITE_TO_BINLOG|AIT)|T|DEGROUP)?|DB(CLUSTER)?|U(MERIC|LL)|E(XT|W)|VARCHAR|A(ME(S)?|T(IONAL|URAL)))|O(R(DER{s}BY)?|N({s}(DUPLICATE{s}KEY{s}UPDATE)?|E(_SHOT)?|LINE)|UT(ER|FILE)?|P(TI(MIZE|ON(S|ALLY)?)|EN)|FF(SET|LINE)|WNER|LD_PASSWORD)|P(R(I(MARY|VILEGES)|OCE(SS|DURE{s}(ANALYSE)?)|E(SERVE|CISION|PARE|V))|HASE|O(RT|INT|LYGON)|URGE|A(R(SER|TI(TION(S|ING)?|AL))|SSWORD|CK_KEYS))|QU(ICK|ERY|ARTER)|L(I(MIT|ST|NE(S(TRING)?|AR)|KE)|O(G(S|FILE({s}GROUP))|NG(BLOB|TEXT)?|C(K(S)?|AL(TIME(STAMP)?)?)|OP|W_PRIORITY|AD{s}(DATA|INDEX{s}INTO{s}CACHE|XML))|E(SS|VEL|FT|A(DING|VE(S)?))|A(ST|NGUAGE))) +keywords (X(OR|509|A)|S(MALLINT|SL|H(OW({s}(E(NGINE(S)?|RRORS)|M(ASTER|UTEX)|BINLOG|GRANTS|INNODB|P(RIVILEGES|ROFILE(S)?|ROCEDURE{s}CODE)|SLAVE{s}(HOSTS|STATUS)|TRIGGERS|VARIABLES|WARNINGS|(FULL{s})?PROCESSLIST|FIELDS|PLUGIN(S)?|STORAGE{s}ENGINES|TABLE{s}TYPES|CO(LUMNS|LLATION)|BINLOG{s}EVENTS))?|UTDOWN|ARE)|NAPSHOT|CHE(MA(S|_NAME)?|DULE(R)?)|T(R(ING|AIGHT_JOIN)|O(RAGE|P)|A(RT(S|ING{s}BY)?|TUS))|I(GN(ED|AL)|MPLE)|O(ME|NAME|CKET|UNDS)|U(B(CLASS_ORIGIN|JECT|PARTITION(S)?)|SPEND|PER)|P(ECIFIC|ATIAL)|E(R(IAL(IZABLE)?|VER)|SSION|NSITIVE|C(OND(_MICROSECOND)?|URITY)|T({s}(PASSWORD|NAMES|ONE_SHOT))?|PARATOR|LECT)|QL(STATE|_(MAX_JOIN_SIZE|B(IG_(RESULT|SELECTS|TABLES)|UFFER_RESULT)|S(MALL_RESULT|ELECT_LIMIT|LAVE_SKIP_COUNTER|AFE_UPDATES)|NO_CACHE|CA(CHE|LC_FOUND_ROWS)|T(SI_(M(INUTE|ONTH)|SECOND|HOUR|YEAR|DAY|QUARTER|FRAC_SECOND|WEEK)|HREAD)|QUOTE_SHOW_CREATE|WARNINGS|LO(G_(BIN|OFF|UPDATE)|W_PRIORITY_UPDATES)|AUTO_IS_NULL)|EXCEPTION|WARNING)?|L(OW|AVE)|AVEPOINT)|YEAR(_MONTH)?|T(R(IGGER(S)?|U(NCATE|E)|A(NSACTION|ILING))|H(EN|AN)|YPE|I(ME(STAMP(DIFF|ADD)?)?|NY(BLOB|TEXT|INT))|O|E(RMINATED{s}BY|XT|MP(TABLE|ORARY))|ABLE(S(PACE)?|_NAME)?)|ZEROFILL|U(S(ING|E(R(_RESOURCES)?|_FRM)?|AGE)|N(SIGNED|COMMITTED|TIL|I(NSTALL({s}PLUGIN)?|CODE|ON|QUE)|D(O(_BUFFER_SIZE|FILE)?|EFINED)|KNOWN|LOCK)|TC_(TIME(STAMP)?|DATE)|P(GRADE|DATE))|V(IEW|A(R(BINARY|YING|CHAR(ACTER)?|IABLES)|LUE(S)?))|W(R(ITE|APPER)|H(ILE|E(RE|N))|ITH({s}PARSER)?|ORK|EEK|A(RNINGS|IT))) %x comment @@ -87,6 +87,7 @@ keywords (X(OR|509|A)|S(MALLINT|SL|H(OW({s}(E(NGINE(S)?|RRORS)|M(ASTER|UTEX)|BIN */ #[^\n\r]*(\n|\r)? | /* # Comments */ +--[\n\r] { return SPT_COMMENT; } /* -- */ --[ \t][^\n\r]*(\n|\r)? { return SPT_COMMENT; } /* -- Comments */ {variable}/{ops} { BEGIN(varequation); return SPT_VARIABLE; }/* SQL variables before operator*/ @@ -216,6 +217,7 @@ CALL CASCADE CASCADED CASE +CATALOG_NAME CHAIN CHANGE CHANGED @@ -225,6 +227,7 @@ CHARSET CHECK CHECKSUM CIPHER +CLASS_ORIGIN CLIENT CLOSE COALESCE{s}PARTITION @@ -232,6 +235,8 @@ CODE COLLATE COLUMN COLUMN_FORMAT +COLUMN_NAME +COLUMNS COMMENT COMMIT COMMITTED @@ -243,6 +248,9 @@ CONDITION CONNECTION CONSISTENT CONSTRAINT +CONSTRAINT_CATALOG +CONSTRAINT_NAME +CONSTRAINT_SCHEMA CONTAINS CONTINUE CONTRIBUTORS @@ -255,6 +263,7 @@ CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR +CURSOR_NAME DATA DATABASE DATABASES @@ -334,6 +343,7 @@ FROM FULL FULLTEXT FUNCTION +GENERAL GEOMETRY GEOMETRYCOLLECTION GET_FORMAT @@ -346,6 +356,7 @@ HASH HAVING HELP HIGH_PRIORITY +HOST HOSTS HOUR HOUR_MICROSECOND @@ -354,6 +365,7 @@ HOUR_SECOND IDENTIFIED IF IGNORE +IGNORE_SERVER_IDS IMPORT{s}TABLESPACE IN INDEX @@ -417,6 +429,7 @@ LOOP LOW_PRIORITY MASTER MASTER_CONNECT_RETRY +MASTER_HEARTBEAT_PERIOD MASTER_HOST MASTER_LOG_FILE MASTER_LOG_POS @@ -445,6 +458,7 @@ MEDIUMINT MEDIUMTEXT MEMORY MERGE +MESSAGE_TEXT MICROSECOND MIDDLEINT MIGRATE @@ -461,6 +475,7 @@ MULTILINESTRING MULTIPOINT MULTIPOLYGON MUTEX +MYSQL_ERRNO NAME NAMES NATIONAL @@ -489,13 +504,14 @@ ON{s}(DUPLICATE{s}KEY{s}UPDATE)? OPEN OPTIMIZE OPTION -OPTIONS OPTIONALLY +OPTIONS OR ORDER{s}BY OUT OUTER OUTFILE +OWNER PACK_KEYS PARSER PARTIAL @@ -506,6 +522,7 @@ PASSWORD PHASE POINT POLYGON +PORT PRECISION PREPARE PRESERVE @@ -546,6 +563,7 @@ REPLACE REPLICATION REQUIRE RESET +RESIGNAL RESTORE{s}TABLE RESTRICT RESUME @@ -566,6 +584,7 @@ SCHEDULE SCHEDULER SCHEMA SCHEMAS +SCHEMA_NAME SECOND SECOND_MICROSECOND SECURITY @@ -574,16 +593,20 @@ SENSITIVE SEPARATOR SERIAL SERIALIZABLE +SERVER SESSION SET({s}(PASSWORD|NAMES|ONE_SHOT))? SHARE SHOW({s}(E(NGINE(S)?|RRORS)|M(ASTER|UTEX)|BINLOG|GRANTS|INNODB|P(RIVILEGES|ROFILE(S)?|ROCEDURE{s}CODE)|SLAVE{s}(HOSTS|STATUS)|TRIGGERS|VARIABLES|WARNINGS|(FULL{s})?PROCESSLIST|FIELDS|PLUGIN(S)?|STORAGE{s}ENGINES|TABLE{s}TYPES|CO(LUMNS|LLATION)|BINLOG{s}EVENTS))? SHUTDOWN +SIGNAL SIGNED SIMPLE SLAVE +SLOW SMALLINT SNAPSHOT +SOCKET SOME SONAME SOUNDS @@ -631,6 +654,7 @@ STOP STORAGE STRAIGHT_JOIN STRING +SUBCLASS_ORIGIN SUBJECT SUBPARTITION SUBPARTITIONS @@ -639,6 +663,7 @@ SUSPEND TABLE TABLES TABLESPACE +TABLE_NAME TEMPORARY TEMPTABLE TERMINATED{s}BY @@ -700,6 +725,7 @@ WHERE WHILE WITH({s}PARSER)? WORK +WRAPPER WRITE X509 XA diff --git a/Source/SPExportController.m b/Source/SPExportController.m index 1d70f88f..9081b942 100644 --- a/Source/SPExportController.m +++ b/Source/SPExportController.m @@ -282,10 +282,12 @@ static const NSString *SPTableViewDropColumnID = @"drop"; // Close the advanced options view if it's open [exportAdvancedOptionsView setHidden:YES]; [exportAdvancedOptionsViewButton setState:NSOffState]; + showAdvancedView = NO; // Close the customize filename view if it's open [exportCustomFilenameView setHidden:YES]; [exportCustomFilenameViewButton setState:NSOffState]; + showCustomFilenameView = NO; // If open close the advanced options view and custom filename view [self _resizeWindowForAdvancedOptionsViewByHeightDelta:0]; diff --git a/Source/SPExtendedTableInfo.m b/Source/SPExtendedTableInfo.m index a765f6df..6f039659 100644 --- a/Source/SPExtendedTableInfo.m +++ b/Source/SPExtendedTableInfo.m @@ -98,7 +98,7 @@ } // Alter table's storage type - [connection queryString:[NSString stringWithFormat:@"ALTER TABLE %@ TYPE = %@", [selectedTable backtickQuotedString], newType]]; + [connection queryString:[NSString stringWithFormat:@"ALTER TABLE %@ %@ = %@", [selectedTable backtickQuotedString], [[tableDocumentInstance serverSupport] engineTypeQueryName], newType]]; if ([connection getLastErrorID] == 0) { // Reload the table's data diff --git a/Source/SPFieldEditorController.m b/Source/SPFieldEditorController.m index 2e761f80..5075ffaf 100644 --- a/Source/SPFieldEditorController.m +++ b/Source/SPFieldEditorController.m @@ -917,7 +917,10 @@ */ - (id)previewPanel:(id)panel previewItemAtIndex:(NSInteger)index { - return [NSURL fileURLWithPath:tmpFileName]; + if(tmpFileName) + return [NSURL fileURLWithPath:tmpFileName]; + + return nil; } /** diff --git a/Source/SPHistoryController.m b/Source/SPHistoryController.m index 3fb0e100..107c24cb 100644 --- a/Source/SPHistoryController.m +++ b/Source/SPHistoryController.m @@ -269,6 +269,7 @@ NSIndexSet *contentSelectedIndexSet = [tableContentInstance selectedRowIndexes]; NSRect contentViewport = [tableContentInstance viewport]; NSDictionary *contentFilter = [tableContentInstance filterSettings]; + NSData *filterTableData = [tableContentInstance filterTableData]; if (!theDatabase) return; // If a table is selected, save state information @@ -283,6 +284,7 @@ if (contentSortCol) [contentState setObject:contentSortCol forKey:@"sortCol"]; if (contentSelectedIndexSet) [contentState setObject:contentSelectedIndexSet forKey:@"selection"]; if (contentFilter) [contentState setObject:contentFilter forKey:@"filter"]; + if (filterTableData) [contentState setObject:filterTableData forKey:@"filterTable"]; // Update the table content states with this information - used when switching tables to restore last used view. [tableContentStates setObject:contentState forKey:[NSString stringWithFormat:@"%@.%@", [theDatabase backtickQuotedString], [theTable backtickQuotedString]]]; diff --git a/Source/SPIndexesController.m b/Source/SPIndexesController.m index 27b4471d..49ac8594 100644 --- a/Source/SPIndexesController.m +++ b/Source/SPIndexesController.m @@ -39,7 +39,7 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; - (void)_reloadIndexedColumnsTableData; - (void)_addIndexUsingDetails:(NSDictionary *)indexDetails; -- (void)_removeIndexUsingDeatails:(NSDictionary *)indexDetails; +- (void)_removeIndexUsingDetails:(NSDictionary *)indexDetails; - (void)_resizeWindowForAdvancedOptionsViewByHeightDelta:(NSInteger)delta; @@ -122,18 +122,26 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; // Check whether a save of the current field row is required. if (![tableStructure saveRowOnDeselect]) return; - [indexTypePopUpButton insertItemWithTitle:@"PRIMARY KEY" atIndex:0]; + // Reset visibility of the primary key item + [[[indexTypePopUpButton menu] itemWithTag:SPPrimaryKeyMenuTag] setHidden:NO]; // Set sheet defaults - key type PRIMARY, key name PRIMARY and disabled - [indexTypePopUpButton selectItemAtIndex:0]; + [indexTypePopUpButton selectItemWithTag:SPPrimaryKeyMenuTag]; [indexNameTextField setEnabled:NO]; [indexNameTextField setStringValue:@"PRIMARY"]; - - // If the table is of type MyISAM and Spatial extension support is available, add the SPATIAL type + + // Remove any existing SPATIAL menu item + if ([indexTypePopUpButton indexOfItemWithTag:SPSpatialMenuTag] != -1) + [indexTypePopUpButton removeItemAtIndex:[indexTypePopUpButton indexOfItemWithTag:SPSpatialMenuTag]]; + + // If the table is of type MyISAM and Spatial extension support is available, (re-)add the SPATIAL type NSString *engine = [[tableData statusValues] objectForKey:@"Engine"]; if ([engine isEqualToString:@"MyISAM"] && [[dbDocument serverSupport] supportsSpatialExtensions]) { - [indexTypePopUpButton addItemWithTitle:@"SPATIAL"]; + NSMenuItem *spatialMenuItem = [[[NSMenuItem alloc] init] autorelease]; + [spatialMenuItem setTitle:NSLocalizedString(@"SPATIAL", @"Spatial index menu item title")]; + [spatialMenuItem setTag:SPSpatialMenuTag]; + [[indexTypePopUpButton menu] addItem:spatialMenuItem]; } // Check to see whether a primary key already exists for the table, and if so select INDEX instead @@ -156,11 +164,11 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; if (isPrimaryKey || hasCompositePrimaryKey) { - // Remove primary key option - [indexTypePopUpButton removeItemAtIndex:0]; + // Hide primary key option + [[[indexTypePopUpButton menu] itemWithTag:SPPrimaryKeyMenuTag] setHidden:YES]; // Select INDEX type - [indexTypePopUpButton selectItemAtIndex:0]; + [indexTypePopUpButton selectItemWithTag:SPIndexMenuTag]; [indexNameTextField setEnabled:YES]; [indexNameTextField setStringValue:@""]; @@ -188,8 +196,11 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; break; } } + + // If no initial field has been selected yet - all fields are indexed - add the first field. + if (!initialField) initialField = [fields objectAtIndex:0]; - if (initialField) [indexedFieldNames release], initialField = nil; + if (indexedFieldNames) [indexedFieldNames release], indexedFieldNames = nil; // Reset the indexed columns [indexedFields removeAllObjects]; @@ -275,11 +286,12 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; */ - (IBAction)chooseIndexType:(id)sender { - NSString *indexType = [indexTypePopUpButton titleOfSelectedItem]; + NSInteger *indexType = [[indexTypePopUpButton selectedItem] tag]; - if ([indexType isEqualToString:@"PRIMARY KEY"] ) { + if (indexType == SPPrimaryKeyMenuTag) { [indexNameTextField setEnabled:NO]; [indexNameTextField setStringValue:@"PRIMARY"]; + [indexStorageTypePopUpButton setEnabled:NO]; } else { [indexNameTextField setEnabled:YES]; @@ -289,7 +301,7 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; } // Specifiying an index storage type (i.e. HASH or BTREE) is not permitted with SPATIAL indexes - [indexStorageTypePopUpButton setEnabled:(![indexType isEqualToString:@"SPATIAL"])]; + [indexStorageTypePopUpButton setEnabled:(indexType != SPSpatialMenuTag)]; } } @@ -301,6 +313,7 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; // Close the advanced options view if it's open [indexAdvancedOptionsView setHidden:YES]; [indexAdvancedOptionsViewButton setState:NSOffState]; + showAdvancedView = NO; // Hide the size column [indexSizeTableColumn setHidden:YES]; @@ -532,14 +545,30 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; [indexDetails setObject:indexedFields forKey:SPNewIndexIndexedColumns]; [indexDetails setObject:[indexNameTextField stringValue] forKey:SPNewIndexIndexName]; - [indexDetails setObject:[indexTypePopUpButton titleOfSelectedItem] forKey:SPNewIndexIndexType]; + switch ([[indexTypePopUpButton selectedItem] tag]) { + case SPPrimaryKeyMenuTag: + [indexDetails setObject:@"PRIMARY KEY" forKey:SPNewIndexIndexType]; + break; + case SPIndexMenuTag: + [indexDetails setObject:@"INDEX" forKey:SPNewIndexIndexType]; + break; + case SPUniqueMenuTag: + [indexDetails setObject:@"UNIQUE" forKey:SPNewIndexIndexType]; + break; + case SPFullTextMenuTag: + [indexDetails setObject:@"FULLTEXT" forKey:SPNewIndexIndexType]; + break; + case SPSpatialMenuTag: + [indexDetails setObject:@"SPATIAL" forKey:SPNewIndexIndexType]; + break; + } // If there is a key block size set it means the database version supports it if ([[indexKeyBlockSizeTextField stringValue] length]) { [indexDetails setObject:[NSNumber numberWithInteger:[indexKeyBlockSizeTextField integerValue]] forKey:SPNewIndexKeyBlockSize]; } - if (([indexStorageTypePopUpButton indexOfSelectedItem] > 0) && (![[indexTypePopUpButton titleOfSelectedItem] isEqualToString:@"SPATIAL"])) { + if (([indexStorageTypePopUpButton indexOfSelectedItem] > 0) && ([[indexTypePopUpButton selectedItem] tag] != SPSpatialMenuTag)) { [indexDetails setObject:[indexStorageTypePopUpButton titleOfSelectedItem] forKey:SPNewIndexStorageType]; } @@ -572,12 +601,12 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; [indexDetails setObject:[NSNumber numberWithBool:[contextInfo hasSuffix:@"AndForeignKey"]] forKey:@"RemoveForeignKey"]; if ([NSThread isMainThread]) { - [NSThread detachNewThreadSelector:@selector(_removeIndexUsingDeatails:) toTarget:self withObject:indexDetails]; + [NSThread detachNewThreadSelector:@selector(_removeIndexUsingDetails:) toTarget:self withObject:indexDetails]; [dbDocument enableTaskCancellationWithTitle:NSLocalizedString(@"Cancel", @"cancel button") callbackObject:self callbackFunction:NULL]; } else { - [self _removeIndexUsingDeatails:indexDetails]; + [self _removeIndexUsingDetails:indexDetails]; } } } @@ -729,14 +758,14 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; [query appendString:indexName]; } - // Add the columns - [query appendFormat:@" (%@)", [tempIndexedColumns componentsJoinedByCommas]]; - // If supplied specify the index's storage type if (indexStorageType) { [query appendString:@" USING "]; [query appendString:indexStorageType]; } + + // Add the columns + [query appendFormat:@" (%@)", [tempIndexedColumns componentsJoinedByCommas]]; // If supplied specify the index's key block size if (indexKeyBlockSize) { @@ -776,7 +805,7 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; * * @param indexDetails A dictionary containing the details of the index to be removed */ -- (void)_removeIndexUsingDeatails:(NSDictionary *)indexDetails +- (void)_removeIndexUsingDetails:(NSDictionary *)indexDetails { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; diff --git a/Source/SPNarrowDownCompletion.h b/Source/SPNarrowDownCompletion.h index 7b33dea0..192bbf38 100644 --- a/Source/SPNarrowDownCompletion.h +++ b/Source/SPNarrowDownCompletion.h @@ -55,6 +55,7 @@ NSRange theCharRange; NSRange theParseRange; NSString *theDbName; + NSString *theAliasName; NSTimer *stateTimer; NSArray *syncArrowImages; @@ -78,7 +79,7 @@ dictMode:(BOOL)mode dbMode:(BOOL)theDbMode tabTriggerMode:(BOOL)tabTriggerMode fuzzySearch:(BOOL)fuzzySearch backtickMode:(NSInteger)theBackTickMode withDbName:(NSString*)dbName withTableName:(NSString*)tableName selectedDb:(NSString*)selectedDb caretMovedLeft:(BOOL)caretMovedLeft autoComplete:(BOOL)autoComplete oneColumn:(BOOL)oneColumn - isQueryingDBStructure:(BOOL)isQueryingDBStructure; + alias:(NSString*)anAlias isQueryingDBStructure:(BOOL)isQueryingDBStructure; - (void)setCaretPos:(NSPoint)aPos; - (void)insert_text:(NSString* )aString; - (void)insertAutocompletePlaceholder; diff --git a/Source/SPNarrowDownCompletion.m b/Source/SPNarrowDownCompletion.m index f86c66c5..abc00d9a 100644 --- a/Source/SPNarrowDownCompletion.m +++ b/Source/SPNarrowDownCompletion.m @@ -215,7 +215,7 @@ dictMode:(BOOL)mode dbMode:(BOOL)theDbMode tabTriggerMode:(BOOL)tabTriggerMode fuzzySearch:(BOOL)fuzzySearch backtickMode:(NSInteger)theBackTickMode withDbName:(NSString*)dbName withTableName:(NSString*)tableName selectedDb:(NSString*)selectedDb caretMovedLeft:(BOOL)caretMovedLeft autoComplete:(BOOL)autoComplete oneColumn:(BOOL)oneColumn - isQueryingDBStructure:(BOOL)isQueryingDBStructure + alias:(NSString*)anAlias isQueryingDBStructure:(BOOL)isQueryingDBStructure { if(self = [self init]) { @@ -228,6 +228,7 @@ autoCompletionMode = autoComplete; + theAliasName = anAlias; oneColumnMode = oneColumn; isQueryingDatabaseStructure = isQueryingDBStructure; @@ -953,8 +954,10 @@ NSString* toInsert = [curMatch substringFromIndex:[originalFilterString length]]; theCharRange.length += [toInsert length] - currentAutocompleteLength; theParseRange.length += [toInsert length]; + [theView breakUndoCoalescing]; [theView insertText:[toInsert lowercaseString]]; + autocompletePlaceholderWasInserted = YES; // Restore the text selection location, and clearly mark the autosuggested text @@ -970,8 +973,14 @@ { if (!autocompletePlaceholderWasInserted) return; + [theView breakUndoCoalescing]; + if (useFastMethod) { - [theView setSelectedRange:theCharRange]; + if(backtickMode) { + NSRange r = NSMakeRange(theCharRange.location+1,theCharRange.length); + [theView setSelectedRange:r]; + } else + [theView setSelectedRange:theCharRange]; [theView insertText:originalFilterString]; } else { NSRange attributeResultRange = NSMakeRange(0, 0); @@ -1015,12 +1024,30 @@ if(NSMaxRange(theCharRange) > [[theView string] length]) theCharRange = NSIntersectionRange(NSMakeRange(0,[[theView string] length]), theCharRange); + [theView breakUndoCoalescing]; + NSRange r = [theView selectedRange]; if(r.length) [theView setSelectedRange:r]; - else - [theView setSelectedRange:theCharRange]; + else { + if(backtickMode == 100) { + NSString *replaceString = [[theView string] substringWithRange:theCharRange]; + BOOL nextCharIsBacktick = ([replaceString hasSuffix:@"`"]); + if(theCharRange.length == 1) nextCharIsBacktick = NO; + if(!nextCharIsBacktick) { + if([replaceString hasPrefix:@"`"]) + [theView setSelectedRange:NSMakeRange(theCharRange.location, theCharRange.length+2)]; + else + [theView setSelectedRange:theCharRange]; + } else { + [theView setSelectedRange:theCharRange]; + } + backtickMode = 0; + } else + [theView setSelectedRange:theCharRange]; + } + [theView breakUndoCoalescing]; [theView insertText:aString]; // If completion string contains backticks move caret out of the backticks @@ -1052,10 +1079,9 @@ NSString* candidateMatch = [selectedItem objectForKey:@"match"] ?: [selectedItem objectForKey:@"display"]; if([selectedItem objectForKey:@"isRef"] && ([[NSApp currentEvent] modifierFlags] & (NSShiftKeyMask)) - && [[selectedItem objectForKey:@"path"] length]) { + && [[selectedItem objectForKey:@"path"] length] && theAliasName == nil) { NSString *path = [[[selectedItem objectForKey:@"path"] componentsSeparatedByString:SPUniqueSchemaDelimiter] componentsJoinedByPeriodAndBacktickQuotedAndIgnoreFirst]; - // Check if path's db name is the current selected db name NSRange r = [path rangeOfString:[currentDb backtickQuotedString] options:NSCaseInsensitiveSearch range:NSMakeRange(0, [[currentDb backtickQuotedString] length])]; theCharRange = theParseRange; @@ -1068,7 +1094,7 @@ } else { // Is completion string a schema name for current connection if([selectedItem objectForKey:@"isRef"]) { - backtickMode = 0; // suppress move the caret one step rightwards + backtickMode = 100; // suppress move the caret one step rightwards [self insert_text:[candidateMatch backtickQuotedString]]; } else { [self insert_text:candidateMatch]; diff --git a/Source/SPPreferencesUpgrade.m b/Source/SPPreferencesUpgrade.m index 6f95057b..51bcd1b4 100644 --- a/Source/SPPreferencesUpgrade.m +++ b/Source/SPPreferencesUpgrade.m @@ -48,7 +48,7 @@ void SPApplyRevisionChanges(void) // Get the current revision if ([prefs objectForKey:@"lastUsedVersion"]) recordedVersionNumber = [[prefs objectForKey:@"lastUsedVersion"] integerValue]; if ([prefs objectForKey:SPLastUsedVersion]) recordedVersionNumber = [[prefs objectForKey:SPLastUsedVersion] integerValue]; - + // Skip processing if the current version matches or is less than recorded version if (currentVersionNumber <= recordedVersionNumber) return; @@ -57,7 +57,10 @@ void SPApplyRevisionChanges(void) [prefs setObject:[NSNumber numberWithInteger:currentVersionNumber] forKey:SPLastUsedVersion]; return; } - + + // Inform SPAppController to check installed default Bundles for available updates + [prefs setObject:[NSNumber numberWithBool:YES] forKey:@"doBundleUpdate"]; + // For versions prior to r336 (0.9.4), where column widths have been saved, walk through them and remove // any table widths set to 15 or less (fix for mangled columns caused by Issue #140) if (recordedVersionNumber < 336 && [prefs objectForKey:SPTableColumnWidths] != nil) { diff --git a/Source/SPQueryFavoriteManager.m b/Source/SPQueryFavoriteManager.m index 609b083e..5e270a07 100644 --- a/Source/SPQueryFavoriteManager.m +++ b/Source/SPQueryFavoriteManager.m @@ -465,6 +465,7 @@ */ - (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(NSInteger)rowIndex { + if (rowIndex == -1) return YES; return ([[favorites objectAtIndex:rowIndex] objectForKey:@"headerOfFileURL"]) ? NO : YES; } diff --git a/Source/SPSSHTunnel.m b/Source/SPSSHTunnel.m index 76508304..0d4b5993 100644 --- a/Source/SPSSHTunnel.m +++ b/Source/SPSSHTunnel.m @@ -328,8 +328,8 @@ [taskEnvironment setObject:tunnelConnectionVerifyHash forKey:@"SP_CONNECTION_VERIFY_HASH"]; if (passwordInKeychain) { [taskEnvironment setObject:[[NSNumber numberWithInteger:SPSSHPasswordUsesKeychain] stringValue] forKey:@"SP_PASSWORD_METHOD"]; - [taskEnvironment setObject:keychainName forKey:@"SP_KEYCHAIN_ITEM_NAME"]; - [taskEnvironment setObject:keychainAccount forKey:@"SP_KEYCHAIN_ITEM_ACCOUNT"]; + [taskEnvironment setObject:[keychainName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] forKey:@"SP_KEYCHAIN_ITEM_NAME"]; + [taskEnvironment setObject:[keychainAccount stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] forKey:@"SP_KEYCHAIN_ITEM_ACCOUNT"]; } else if (password) { [taskEnvironment setObject:[[NSNumber numberWithInteger:SPSSHPasswordAsksUI] stringValue] forKey:@"SP_PASSWORD_METHOD"]; } else { diff --git a/Source/SPServerSupport.h b/Source/SPServerSupport.h index fc16b426..bf18a8e8 100644 --- a/Source/SPServerSupport.h +++ b/Source/SPServerSupport.h @@ -65,6 +65,7 @@ BOOL supportsShowPrivileges; // Storage engines + NSString *engineTypeQueryName; BOOL supportsInformationSchemaEngines; BOOL supportsPre41StorageEngines; BOOL supportsBlackholeStorageEngine; @@ -172,6 +173,11 @@ @property (readonly) BOOL supportsShowPrivileges; /** + * @property engineTypeQueryName Returns the appropriate query part for specifying table engine - ENGINE or TYPE + */ +@property (readonly) NSString *engineTypeQueryName; + +/** * @property supportsInformationSchemaEngines Indicates if the server supports the information_schema.engines table */ @property (readonly) BOOL supportsInformationSchemaEngines; diff --git a/Source/SPServerSupport.m b/Source/SPServerSupport.m index 0b3ba79d..6f8213d6 100644 --- a/Source/SPServerSupport.m +++ b/Source/SPServerSupport.m @@ -54,6 +54,7 @@ @synthesize supportsFullDropUser; @synthesize supportsUserMaxVars; @synthesize supportsShowPrivileges; +@synthesize engineTypeQueryName; @synthesize supportsInformationSchemaEngines; @synthesize supportsPre41StorageEngines; @synthesize supportsBlackholeStorageEngine; @@ -150,7 +151,10 @@ // The SHOW PRIVILEGES statement wasn't added until MySQL 4.1.0 supportsShowPrivileges = [self isEqualToOrGreaterThanMajorVersion:4 minor:1 release:0]; - + + // MySQL 4.0.18+ and 4.1.2+ changed the TYPE option to ENGINE, but 4.x supports both + engineTypeQueryName = [self isEqualToOrGreaterThanMajorVersion:5 minor:0 release:0]?@"ENGINE":@"TYPE"; + // Before MySQL 4.1 the MEMORY engine was known as HEAP and the ISAM engine was available supportsPre41StorageEngines = (![self isEqualToOrGreaterThanMajorVersion:4 minor:1 release:0]); @@ -245,6 +249,7 @@ supportsFullDropUser = NO; supportsUserMaxVars = NO; supportsShowPrivileges = NO; + engineTypeQueryName = @"ENGINE"; supportsInformationSchemaEngines = NO; supportsPre41StorageEngines = NO; supportsBlackholeStorageEngine = NO; diff --git a/Source/SPTableContent.h b/Source/SPTableContent.h index e3fd8a53..0b33146b 100644 --- a/Source/SPTableContent.h +++ b/Source/SPTableContent.h @@ -226,12 +226,14 @@ - (void) setFiltersToRestore:(NSDictionary *)filterSettings; - (void) storeCurrentDetailsForRestoration; - (void) clearDetailsToRestore; +- (void) setFilterTableData:(NSData*)arcData; +- (NSData*) filterTableData; - (NSString *)escapeFilterArgument:(NSString *)argument againstClause:(NSString *)clause; - (void)openContentFilterManager; - (void)makeContentFilterHaveFocus; -- (NSArray*)fieldEditStatusForRow:(NSInteger)rowIndex andColumn:(NSInteger)columnIndex; +- (NSArray*)fieldEditStatusForRow:(NSInteger)rowIndex andColumn:(NSNumber *)columnIndex; - (void)updateFilterTableClause:(id)currentValue; - (NSString*)escapeFilterTableDefaultOperator:(NSString*)anOperator; diff --git a/Source/SPTableContent.m b/Source/SPTableContent.m index 8e2bde89..b136d90a 100644 --- a/Source/SPTableContent.m +++ b/Source/SPTableContent.m @@ -1604,6 +1604,12 @@ column = NSArrayObjectAtIndex(dataColumns, i); if ([column objectForKey:@"default"] == nil || [column objectForKey:@"default"] == [NSNull null]) { [newRow addObject:[NSNull null]]; + } else if ([[column objectForKey:@"default"] isEqualToString:@""] + && ![[column objectForKey:@"null"] boolValue] + && ([[column objectForKey:@"typegrouping"] isEqualToString:@"float"] + || [[column objectForKey:@"typegrouping"] isEqualToString:@"integer"])) + { + [newRow addObject:@"0"]; } else { [newRow addObject:[column objectForKey:@"default"]]; } @@ -2394,9 +2400,11 @@ NSMutableArray *rowFieldsToSave = [[NSMutableArray alloc] initWithCapacity:[dataColumns count]]; NSMutableArray *rowValuesToSave = [[NSMutableArray alloc] initWithCapacity:[dataColumns count]]; NSInteger i; + NSDictionary *fieldDefinition; id rowObject; for (i = 0; i < [dataColumns count]; i++) { rowObject = [tableValues cellDataAtRow:currentlyEditingRow column:i]; + fieldDefinition = NSArrayObjectAtIndex(dataColumns, i); // Skip "not loaded" cells entirely - these only occur when editing tables when the // preference setting is enabled, and don't need to be saved back to the table. @@ -2408,13 +2416,13 @@ // Prepare to derive the value to save NSString *fieldValue; - NSString *fieldTypeGroup = [NSArrayObjectAtIndex(dataColumns, i) objectForKey:@"typegrouping"]; + NSString *fieldTypeGroup = [fieldDefinition objectForKey:@"typegrouping"]; // Use NULL when the user has entered the nullValue string defined in the preferences, // or when a numeric field is empty. if ([rowObject isNSNull] || (([fieldTypeGroup isEqualToString:@"float"] || [fieldTypeGroup isEqualToString:@"integer"]) - && [[rowObject description] isEqualToString:@""])) + && [[rowObject description] isEqualToString:@""] && [[fieldDefinition objectForKey:@"null"] boolValue])) { fieldValue = @"NULL"; @@ -2449,7 +2457,7 @@ } // Store the key and value in the ordered arrays for saving. - [rowFieldsToSave addObject:[NSArrayObjectAtIndex(dataColumns, i) objectForKey:@"name"]]; + [rowFieldsToSave addObject:[fieldDefinition objectForKey:@"name"]]; [rowValuesToSave addObject:fieldValue]; } @@ -2490,10 +2498,19 @@ } else { NSBeep(); } - [tableValues replaceRowAtIndex:currentlyEditingRow withRowContents:oldRow]; + + // If creating a new row, remove the row; otherwise revert the row contents + if (isEditingNewRow) { + tableRowsCount--; + [tableValues removeRowAtIndex:currentlyEditingRow]; + [self updateCountText]; + isEditingNewRow = NO; + } else { + [tableValues replaceRowAtIndex:currentlyEditingRow withRowContents:oldRow]; + } isEditingRow = NO; - isEditingNewRow = NO; currentlyEditingRow = -1; + [tableContentView reloadData]; [[SPQueryController sharedQueryController] showErrorInConsole:NSLocalizedString(@"/* WARNING: No rows have been affected */\n", @"warning shown in the console when no rows have been affected after writing to the db") connection:[tableDocumentInstance name]]; return YES; @@ -2784,7 +2801,7 @@ * -2 for other errors * and the used WHERE clause to identify */ -- (NSArray*)fieldEditStatusForRow:(NSInteger)rowIndex andColumn:(NSInteger)columnIndex +- (NSArray*)fieldEditStatusForRow:(NSInteger)rowIndex andColumn:(NSNumber *)columnIndex { NSDictionary *columnDefinition = nil; @@ -2919,10 +2936,12 @@ NSInteger row = -1; NSInteger column = -1; + NSInteger editedColumn = -1; if(contextInfo) { row = [[contextInfo objectForKey:@"row"] integerValue]; column = [[contextInfo objectForKey:@"column"] integerValue]; + editedColumn = [[contextInfo objectForKey:@"editedColumn"] integerValue]; } if (data && contextInfo) { @@ -2958,8 +2977,8 @@ [[tableDocumentInstance parentWindow] makeFirstResponder:tableContentView]; - if(row > -1 && column > -1) - [tableContentView editColumn:column row:row withEvent:nil select:YES]; + if(row > -1 && editedColumn > -1) + [tableContentView editColumn:editedColumn row:row withEvent:nil select:YES]; } #pragma mark - @@ -3278,6 +3297,25 @@ [self setFiltersToRestore:nil]; } +- (void) setFilterTableData:(NSData*)arcData +{ + if(!arcData) return; + NSDictionary *filterData = [NSUnarchiver unarchiveObjectWithData:arcData]; + [filterTableData removeAllObjects]; + [filterTableData addEntriesFromDictionary:filterData]; + [filterTableWindow makeKeyAndOrderFront:nil]; + // [filterTableView reloadData]; +} + +- (NSData*) filterTableData +{ + if(![filterTableWindow isVisible]) return nil; + + [filterTableView deselectAll:nil]; + + return [NSArchiver archivedDataWithRootObject:filterTableData]; +} + #pragma mark - #pragma mark Table drawing and editing @@ -3494,8 +3532,9 @@ return c; } else return NSArrayObjectAtIndex([[filterTableData objectForKey:[NSNumber numberWithInteger:rowIndex]] objectForKey:@"filter"], [[aTableColumn identifier] integerValue]-1); - else + else { return NSArrayObjectAtIndex([[filterTableData objectForKey:[aTableColumn identifier]] objectForKey:@"filter"], rowIndex); + } } else if(aTableView == tableContentView) { @@ -4050,6 +4089,12 @@ if ([cellValue isNSNull]) cellValue = [NSString stringWithString:[prefs objectForKey:SPNullValue]]; + NSInteger editedColumn = 0; + for(NSTableColumn* col in [tableContentView tableColumns]) { + if([[col identifier] isEqualToNumber:[aTableColumn identifier]]) break; + editedColumn++; + } + [fieldEditor editWithObject:cellValue fieldName:[[aTableColumn headerCell] stringValue] usingEncoding:[mySQLConnection stringEncoding] @@ -4060,6 +4105,7 @@ contextInfo:[NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInteger:rowIndex], @"row", [aTableColumn identifier], @"column", + [NSNumber numberWithInteger:editedColumn], @"editedColumn", [NSNumber numberWithBool:isFieldEditable], @"isFieldEditable", nil]]; @@ -4444,6 +4490,8 @@ NSString *re1 = @"^\\s*(<[=>]?|>=?|!?=|≠|≤|≥)\\s*(.*?)\\s*$"; NSString *re2 = @"^\\s*(.*)\\s+(.*?)\\s*$"; NSCharacterSet *whiteSpaceCharSet = [NSCharacterSet whitespaceAndNewlineCharacterSet]; + NSInteger editedRow = [filterTableView editedRow]; + if(currentValue == filterTableGearLookAllFields) { numberOfRows = 1; @@ -4477,7 +4525,7 @@ } // Take value from currently edited table cell } else if([currentValue isKindOfClass:[NSString class]]){ - if(index == [filterTableView editedColumn] && i == [filterTableView editedRow]) + if(i == editedRow && index == [[NSArrayObjectAtIndex([filterTableView tableColumns], [filterTableView editedColumn]) identifier] integerValue]) filterCell = (NSString*)currentValue; else filterCell = NSArrayObjectAtIndex([filterCellData objectForKey:@"filter"], i); diff --git a/Source/SPTableStructure.m b/Source/SPTableStructure.m index f57a881f..1cd5ca4e 100644 --- a/Source/SPTableStructure.m +++ b/Source/SPTableStructure.m @@ -758,13 +758,7 @@ */ - (void)setAutoIncrementTo:(NSString*)valueAsString { - NSString *selTable = nil; - - // if selectedTable is nil try to get the name from SPTablesList - if (selectedTable == nil || ![selectedTable length]) - selTable = [tablesListInstance tableName]; - else - selTable = [NSString stringWithString:selectedTable]; + NSString *selTable = [tablesListInstance tableName]; if (selTable == nil || ![selTable length]) return; @@ -1219,8 +1213,18 @@ alertSheetOpened = NO; if(contextInfo && [contextInfo isEqualToString:@"autoincrementindex"]) { - if(returnCode) { - autoIncrementIndex = [chooseKeyButton titleOfSelectedItem]; + if (returnCode) { + switch ([[chooseKeyButton selectedItem] tag]) { + case SPPrimaryKeyMenuTag: + autoIncrementIndex = @"PRIMARY KEY"; + break; + case SPIndexMenuTag: + autoIncrementIndex = @"INDEX"; + break; + case SPUniqueMenuTag: + autoIncrementIndex = @"UNIQUE"; + break; + } } else { autoIncrementIndex = nil; if([tableSourceView selectedRow] > -1 && [extraFieldSuggestions count]) diff --git a/Source/SPTableStructureDelegate.m b/Source/SPTableStructureDelegate.m index d63064e2..17ad817d 100644 --- a/Source/SPTableStructureDelegate.m +++ b/Source/SPTableStructureDelegate.m @@ -116,9 +116,10 @@ isCurrentExtraAutoIncrement = [[[anObject stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString] isEqualToString:@"AUTO_INCREMENT"]; if(isCurrentExtraAutoIncrement) { [currentRow setObject:[NSNumber numberWithInteger:0] forKey:@"null"]; + // Asks the user to add an index to query if AUTO_INCREMENT is set and field isn't indexed if ((![currentRow objectForKey:@"Key"] || [[currentRow objectForKey:@"Key"] isEqualToString:@""])) { - [chooseKeyButton selectItemAtIndex:0]; + [chooseKeyButton selectItemWithTag:SPPrimaryKeyMenuTag]; [NSApp beginSheet:keySheet modalForWindow:[tableDocumentInstance parentWindow] modalDelegate:self diff --git a/Source/SPTablesList.h b/Source/SPTablesList.h index e53fb178..7729ed1d 100644 --- a/Source/SPTablesList.h +++ b/Source/SPTablesList.h @@ -103,6 +103,9 @@ BOOL tableListContainsViews; BOOL alertSheetOpened; + + NSFont *smallSystemFont; + } // IBAction methods diff --git a/Source/SPTablesList.m b/Source/SPTablesList.m index da787a6d..a0a9bf92 100644 --- a/Source/SPTablesList.m +++ b/Source/SPTablesList.m @@ -1477,34 +1477,51 @@ /** * Table view delegate method */ -- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex +- (void)tableView:(NSTableView *)aTableView willDisplayCell:(ImageAndTextCell*)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { - if (rowIndex > 0 && rowIndex < [filteredTableTypes count] - && [[aTableColumn identifier] isEqualToString:@"tables"]) { - if(![[filteredTables objectAtIndex:rowIndex] isKindOfClass:[NSString class]]) { - [(ImageAndTextCell*)aCell setImage:nil]; - [(ImageAndTextCell*)aCell setIndentationLevel:0]; - } - else if ([[filteredTableTypes objectAtIndex:rowIndex] integerValue] == SPTableTypeView) { - [(ImageAndTextCell*)aCell setImage:[NSImage imageNamed:@"table-view-small"]]; - } else if ([[filteredTableTypes objectAtIndex:rowIndex] integerValue] == SPTableTypeTable) { - [(ImageAndTextCell*)aCell setImage:[NSImage imageNamed:@"table-small"]]; - } else if ([[filteredTableTypes objectAtIndex:rowIndex] integerValue] == SPTableTypeProc) { - [(ImageAndTextCell*)aCell setImage:[NSImage imageNamed:@"proc-small"]]; - } else if ([[filteredTableTypes objectAtIndex:rowIndex] integerValue] == SPTableTypeFunc) { - [(ImageAndTextCell*)aCell setImage:[NSImage imageNamed:@"func-small"]]; + if (rowIndex > 0 && rowIndex < [filteredTableTypes count] && [[aTableColumn identifier] isEqualToString:@"tables"]) { + + id item = NSArrayObjectAtIndex(filteredTables, rowIndex); + + if(![item isKindOfClass:[NSString class]]) { + [aCell setImage:nil]; + [aCell setIndentationLevel:0]; + return; } - if ([[filteredTableTypes objectAtIndex:rowIndex] integerValue] == SPTableTypeNone) { - [(ImageAndTextCell*)aCell setImage:nil]; - [(ImageAndTextCell*)aCell setIndentationLevel:0]; - } else { - [(ImageAndTextCell*)aCell setIndentationLevel:1]; - [(ImageAndTextCell*)aCell setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]]; + switch([NSArrayObjectAtIndex(filteredTableTypes, rowIndex) integerValue]) { + case SPTableTypeView: + [aCell setImage:[NSImage imageNamed:@"table-view-small"]]; + [aCell setIndentationLevel:1]; + [aCell setFont:smallSystemFont]; + break; + case SPTableTypeTable: + [aCell setImage:[NSImage imageNamed:@"table-small"]]; + [aCell setIndentationLevel:1]; + [aCell setFont:smallSystemFont]; + break; + case SPTableTypeProc: + [aCell setImage:[NSImage imageNamed:@"proc-small"]]; + [aCell setIndentationLevel:1]; + [aCell setFont:smallSystemFont]; + break; + case SPTableTypeFunc: + [aCell setImage:[NSImage imageNamed:@"func-small"]]; + [aCell setIndentationLevel:1]; + [aCell setFont:smallSystemFont]; + break; + case SPTableTypeNone: + [aCell setImage:nil]; + [aCell setIndentationLevel:0]; + break; + default: + [aCell setIndentationLevel:1]; + [aCell setFont:smallSystemFont]; } + } else { - [(ImageAndTextCell*)aCell setImage:nil]; - [(ImageAndTextCell*)aCell setIndentationLevel:0]; + [aCell setImage:nil]; + [aCell setIndentationLevel:0]; } } @@ -1775,6 +1792,7 @@ selectedTableType = SPTableTypeNone; selectedTableName = nil; [tables addObject:NSLocalizedString(@"TABLES",@"header for table list")]; + smallSystemFont = [NSFont systemFontOfSize:[NSFont smallSystemFontSize]]; } return self; @@ -2007,7 +2025,7 @@ // If there is a type selected other than the default we must specify it in CREATE TABLE statement if ([tableTypeButton indexOfSelectedItem] > 0) { - engineStatement = [NSString stringWithFormat:@"ENGINE = %@", [tableType backtickQuotedString]]; + engineStatement = [NSString stringWithFormat:@"%@ = %@", [[tableDocumentInstance serverSupport] engineTypeQueryName], [tableType backtickQuotedString]]; } NSString *createStatement = [NSString stringWithFormat:@"CREATE TABLE %@ (%@) %@ %@", [tableName backtickQuotedString], ([tableType isEqualToString:@"CSV"]) ? @"id INT NOT NULL" : @"id INT", charSetStatement, engineStatement]; diff --git a/Source/SPTextView.h b/Source/SPTextView.h index 797fff34..b15030b4 100644 --- a/Source/SPTextView.h +++ b/Source/SPTextView.h @@ -107,6 +107,7 @@ - (BOOL) isNextCharMarkedBy:(id)attribute withValue:(id)aValue; - (BOOL) areAdjacentCharsLinked; - (BOOL) isCaretAdjacentToAlphanumCharWithInsertionOf:(unichar)aChar; +- (BOOL) isCaretAtIndentPositionIgnoreLineStart:(BOOL)ignoreLineStart; - (BOOL) wrapSelectionWithPrefix:(NSString *)prefix suffix:(NSString *)suffix; - (BOOL) shiftSelectionRight; - (BOOL) shiftSelectionLeft; diff --git a/Source/SPTextView.m b/Source/SPTextView.m index af4356a2..82bfdedf 100644 --- a/Source/SPTextView.m +++ b/Source/SPTextView.m @@ -144,7 +144,6 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) [self setAutohelp:[prefs boolForKey:SPCustomQueryUpdateAutoHelp]]; [self setAutouppercaseKeywords:[prefs boolForKey:SPCustomQueryAutoUppercaseKeywords]]; [self setCompletionWasReinvokedAutomatically:NO]; - // Re-define tab stops for a better editing [self setTabStops]; @@ -153,9 +152,8 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) [[self layoutManager] setBackgroundLayoutEnabled:NO]; // add NSViewBoundsDidChangeNotification to scrollView - [[scrollView contentView] setPostsBoundsChangedNotifications:YES]; - NSNotificationCenter *aNotificationCenter = [NSNotificationCenter defaultCenter]; - [aNotificationCenter addObserver:self selector:@selector(boundsDidChangeNotification:) name:@"NSViewBoundsDidChangeNotification" object:[scrollView contentView]]; + [scrollView setPostsBoundsChangedNotifications:YES]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(boundsDidChangeNotification:) name:NSViewBoundsDidChangeNotification object:[scrollView contentView]]; [self setQueryHiliteColor:[NSUnarchiver unarchiveObjectWithData:[prefs dataForKey:SPCustomQueryEditorHighlightQueryColor]]]; [self setQueryEditorBackgroundColor:[NSUnarchiver unarchiveObjectWithData:[prefs dataForKey:SPCustomQueryEditorBackgroundColor]]]; @@ -775,6 +773,7 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) object:nil]; // Check for table name aliases + NSString *alias = nil; if(dbBrowseMode && tableDocumentInstance && customQueryInstance) { NSString *theDb = (dbName == nil) ? [NSString stringWithString:currentDb] : [NSString stringWithString:dbName]; NSString *connectionID = [tableDocumentInstance connectionID]; @@ -790,7 +789,7 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) for(NSString* m in matches) { NSRange aliasRange = [m rangeOfRegex:re capture:1L]; if(aliasRange.length) { - NSString *alias = [[m substringWithRange:aliasRange] stringByReplacingOccurrencesOfString:@"``" withString:@"`"]; + alias = [[m substringWithRange:aliasRange] stringByReplacingOccurrencesOfString:@"``" withString:@"`"]; // If alias refers to db.table split and check it if([alias rangeOfString:@"."].length) { NSRange dbRange = [alias rangeOfRegex:@"^`?(.*?)`?\\." capture:1L]; @@ -819,6 +818,7 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) } if (completionIsOpen) [completionPopup close], completionPopup = nil; + completionIsOpen = YES; completionPopup = [[SPNarrowDownCompletion alloc] initWithItems:[self suggestionsForSQLCompletionWith:currentWord dictMode:isDictMode browseMode:dbBrowseMode withTableName:tableName withDbName:dbName] alreadyTyped:filter @@ -839,24 +839,19 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) caretMovedLeft:caretMovedLeft autoComplete:autoCompleteMode oneColumn:isDictMode + alias:alias isQueryingDBStructure:[mySQLConnection isQueryingDatabaseStructure]]; completionParseRangeLocation = parseRange.location; //Get the NSPoint of the first character of the current word - NSRange glyphRange = [[self layoutManager] glyphRangeForCharacterRange:NSMakeRange(completionRange.location,0) actualCharacterRange:NULL]; + NSRange glyphRange = [[self layoutManager] glyphRangeForCharacterRange:NSMakeRange(completionRange.location,1) actualCharacterRange:NULL]; NSRect boundingRect = [[self layoutManager] boundingRectForGlyphRange:glyphRange inTextContainer:[self textContainer]]; - boundingRect = [self convertRect: boundingRect toView: NULL]; - NSPoint pos = [[self window] convertBaseToScreen: NSMakePoint(boundingRect.origin.x + boundingRect.size.width,boundingRect.origin.y + boundingRect.size.height)]; - - // TODO: check if needed - // if(filter) - // pos.x -= [filter sizeWithAttributes:[NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName]].width; - - // Adjust list location to be under the current word or insertion point + boundingRect = [self convertRect:boundingRect toView:nil]; + NSPoint pos = [[self window] convertBaseToScreen:NSMakePoint(boundingRect.origin.x + boundingRect.size.width,boundingRect.origin.y + boundingRect.size.height)]; pos.y -= [[self font] pointSize]*1.25; - [completionPopup setCaretPos:pos]; + [completionPopup orderFront:self]; [completionPopup insertAutocompletePlaceholder]; @@ -924,6 +919,24 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) } /** + * Checks if all the characters left from the caret are white spaces or caret is at the line begin. + */ +- (BOOL) isCaretAtIndentPositionIgnoreLineStart:(BOOL)ignoreLineStart +{ + NSString *textViewString = [[self textStorage] string]; + NSUInteger caretPosition = [self selectedRange].location; + NSUInteger currentLineStartPosition = [textViewString lineRangeForRange:NSMakeRange(caretPosition, 0)].location; + + // Check if caret is at the beginning of a line + // - used for deleteBackward: to allow to delete leading \n + if(!ignoreLineStart && caretPosition == currentLineStartPosition) + return NO; + + NSString *lineHeadToCaret = [textViewString substringWithRange:NSMakeRange(currentLineStartPosition, caretPosition-currentLineStartPosition)]; + return (![lineHeadToCaret length] || [lineHeadToCaret isMatchedByRegex:@"^\\s+$"]); +} + +/** * Checks if the caret is wrapped by auto-paired characters. * e.g. [| := caret]: "|" */ @@ -1112,27 +1125,39 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) { NSString *textViewString = [[self textStorage] string]; NSRange currentLineRange; - - if ([self selectedRange].location == NSNotFound || ![self isEditable]) return NO; + NSRange selectedRange = [self selectedRange]; + + if (selectedRange.location == NSNotFound || ![self isEditable]) return NO; + + NSString *indentString = @"\t"; + if ([prefs boolForKey:SPCustomQuerySoftIndent]) { + NSUInteger numberOfSpaces = [prefs integerForKey:SPCustomQuerySoftIndentWidth]; + if(numberOfSpaces < 1) numberOfSpaces = 1; + if(numberOfSpaces > 32) numberOfSpaces = 32; + NSMutableString *spaces = [NSMutableString string]; + for(NSInteger i = 0; i < numberOfSpaces; i++) + [spaces appendString:@" "]; + indentString = [NSString stringWithString:spaces]; + } // Indent the currently selected line if the caret is within a single line - if ([self selectedRange].length == 0) { + if (selectedRange.length == 0) { // Extract the current line range based on the text caret - currentLineRange = [textViewString lineRangeForRange:[self selectedRange]]; + currentLineRange = [textViewString lineRangeForRange:selectedRange]; // Register the indent for undo - [self shouldChangeTextInRange:NSMakeRange(currentLineRange.location, 0) replacementString:@"\t"]; + [self shouldChangeTextInRange:NSMakeRange(currentLineRange.location, 0) replacementString:indentString]; // Insert the new tab - [self replaceCharactersInRange:NSMakeRange(currentLineRange.location, 0) withString:@"\t"]; + [self replaceCharactersInRange:NSMakeRange(currentLineRange.location, 0) withString:indentString]; return YES; } // Otherwise, something is selected - NSRange firstLineRange = [textViewString lineRangeForRange:NSMakeRange([self selectedRange].location,0)]; - NSUInteger lastLineMaxRange = NSMaxRange([textViewString lineRangeForRange:NSMakeRange(NSMaxRange([self selectedRange])-1,0)]); + NSRange firstLineRange = [textViewString lineRangeForRange:NSMakeRange(selectedRange.location,0)]; + NSUInteger lastLineMaxRange = NSMaxRange([textViewString lineRangeForRange:NSMakeRange(NSMaxRange(selectedRange)-1,0)]); // Expand selection for first and last line to begin and end resp. but not the last line ending NSRange blockRange = NSMakeRange(firstLineRange.location, lastLineMaxRange - firstLineRange.location); @@ -1143,13 +1168,13 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) NSString *newString; // check for line ending if([textViewString characterAtIndex:NSMaxRange(firstLineRange)-1] == '\r') - newString = [[NSString stringWithString:@"\t"] stringByAppendingString: + newString = [indentString stringByAppendingString: [[textViewString substringWithRange:blockRange] - stringByReplacingOccurrencesOfString:@"\r" withString:@"\r\t"]]; + stringByReplacingOccurrencesOfString:@"\r" withString:[NSString stringWithFormat:@"\r%@", indentString]]]; else - newString = [[NSString stringWithString:@"\t"] stringByAppendingString: + newString = [indentString stringByAppendingString: [[textViewString substringWithRange:blockRange] - stringByReplacingOccurrencesOfString:@"\n" withString:@"\n\t"]]; + stringByReplacingOccurrencesOfString:@"\n" withString:[NSString stringWithFormat:@"\n%@", indentString]]]; // Register the indent for undo [self shouldChangeTextInRange:blockRange replacementString:newString]; @@ -1190,11 +1215,30 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) || ([textViewString characterAtIndex:currentLineRange.location] != '\t' && [textViewString characterAtIndex:currentLineRange.location] != ' ')) return NO; + NSRange replaceRange; + + // Check for soft indention + NSUInteger indentStringLength = 1; + if ([prefs boolForKey:SPCustomQuerySoftIndent]) { + NSUInteger numberOfSpaces = [prefs integerForKey:SPCustomQuerySoftIndentWidth]; + if(numberOfSpaces < 1) numberOfSpaces = 1; + if(numberOfSpaces > 32) numberOfSpaces = 32; + indentStringLength = numberOfSpaces; + replaceRange = NSIntersectionRange(NSMakeRange(currentLineRange.location, indentStringLength), NSMakeRange(0,[[self string] length])); + // Correct length for only white spaces + NSString *possibleIndentString = [[[self textStorage] string] substringWithRange:replaceRange]; + NSUInteger numberOfLeadingWhiteSpaces = [possibleIndentString rangeOfRegex:@"^(\\s*)" capture:1L].length; + if(numberOfLeadingWhiteSpaces == NSNotFound) numberOfLeadingWhiteSpaces = 0; + replaceRange = NSMakeRange(currentLineRange.location, numberOfLeadingWhiteSpaces); + } else { + replaceRange = NSMakeRange(currentLineRange.location, indentStringLength); + } + // Register the undent for undo - [self shouldChangeTextInRange:NSMakeRange(currentLineRange.location, 1) replacementString:@""]; + [self shouldChangeTextInRange:replaceRange replacementString:@""]; // Remove the tab - [self replaceCharactersInRange:NSMakeRange(currentLineRange.location, 1) withString:@""]; + [self replaceCharactersInRange:replaceRange withString:@""]; return YES; } @@ -1208,25 +1252,36 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) if([textViewString characterAtIndex:NSMaxRange(blockRange)-1] == '\n' || [textViewString characterAtIndex:NSMaxRange(blockRange)-1] == '\r') blockRange.length--; + // Check for soft or hard indention + NSString *indentString = @"\t"; + NSUInteger indentStringLength = 1; + if ([prefs boolForKey:SPCustomQuerySoftIndent]) { + indentStringLength = [prefs integerForKey:SPCustomQuerySoftIndentWidth]; + if(indentStringLength < 1) indentStringLength = 1; + if(indentStringLength > 32) indentStringLength = 32; + NSMutableString *spaces = [NSMutableString string]; + for(NSInteger i = 0; i < indentStringLength; i++) + [spaces appendString:@" "]; + indentString = [NSString stringWithString:spaces]; + } + // Check if blockRange starts with SPACE or TAB // (this also catches the first line of the entire text buffer or // if only one line is selected) NSInteger leading = 0; if([textViewString characterAtIndex:blockRange.location] == ' ' || [textViewString characterAtIndex:blockRange.location] == '\t') - leading++; + leading += indentStringLength; // Replace \n[ \t] by \n of all lines in blockRange NSString *newString; // check for line ending if([textViewString characterAtIndex:NSMaxRange(firstLineRange)-1] == '\r') - newString = [[[textViewString substringWithRange:NSMakeRange(blockRange.location+leading, blockRange.length-leading)] - stringByReplacingOccurrencesOfString:@"\r\t" withString:@"\r"] - stringByReplacingOccurrencesOfString:@"\r " withString:@"\r"]; + newString = [[textViewString substringWithRange:NSMakeRange(blockRange.location+leading, blockRange.length-leading)] + stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"\r%@", indentString] withString:@"\r"]; else - newString = [[[textViewString substringWithRange:NSMakeRange(blockRange.location+leading, blockRange.length-leading)] - stringByReplacingOccurrencesOfString:@"\n\t" withString:@"\n"] - stringByReplacingOccurrencesOfString:@"\n " withString:@"\n"]; + newString = [[textViewString substringWithRange:NSMakeRange(blockRange.location+leading, blockRange.length-leading)] + stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"\n%@", indentString] withString:@"\n"]; // Register the unindent for undo [self shouldChangeTextInRange:blockRange replacementString:newString]; @@ -1407,10 +1462,11 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) caretMovedLeft:NO autoComplete:NO oneColumn:NO + alias:nil isQueryingDBStructure:NO]; //Get the NSPoint of the first character of the current word - NSRange glyphRange = [[self layoutManager] glyphRangeForCharacterRange:NSMakeRange(aRange.location,0) actualCharacterRange:NULL]; + NSRange glyphRange = [[self layoutManager] glyphRangeForCharacterRange:NSMakeRange(aRange.location,1) actualCharacterRange:NULL]; NSRect boundingRect = [[self layoutManager] boundingRectForGlyphRange:glyphRange inTextContainer:[self textContainer]]; boundingRect = [self convertRect: boundingRect toView: NULL]; NSPoint pos = [[self window] convertBaseToScreen: NSMakePoint(boundingRect.origin.x + boundingRect.size.width,boundingRect.origin.y + boundingRect.size.height)]; @@ -1563,10 +1619,11 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) caretMovedLeft:NO autoComplete:NO oneColumn:YES + alias:nil isQueryingDBStructure:NO]; //Get the NSPoint of the first character of the current word - NSRange glyphRange = [[self layoutManager] glyphRangeForCharacterRange:NSMakeRange(r2.location,0) actualCharacterRange:NULL]; + NSRange glyphRange = [[self layoutManager] glyphRangeForCharacterRange:NSMakeRange(r2.location,1) actualCharacterRange:NULL]; NSRect boundingRect = [[self layoutManager] boundingRectForGlyphRange:glyphRange inTextContainer:[self textContainer]]; boundingRect = [self convertRect: boundingRect toView: NULL]; NSPoint pos = [[self window] convertBaseToScreen: NSMakePoint(boundingRect.origin.x + boundingRect.size.width,boundingRect.origin.y + boundingRect.size.height)]; @@ -2033,6 +2090,7 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) } // Check for {SHIFT}TAB to try to insert query favorite via TAB trigger if SPTextView belongs to SPCustomQuery + // and TAB as soft indention if ([theEvent keyCode] == 48 && [self isEditable] && [[self delegate] isKindOfClass:[SPCustomQuery class]]){ NSRange targetRange = [self getRangeForCurrentWord]; NSString *tabTrigger = [[self string] substringWithRange:targetRange]; @@ -2079,13 +2137,19 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) } // Check if tab trigger is defined; if so insert it, otherwise pass through event - if(snippetControlCounter < 0 && [tableDocumentInstance fileURL]) { + if(snippetControlCounter < 0 && [tabTrigger length] && [tableDocumentInstance fileURL]) { NSArray *snippets = [[SPQueryController sharedQueryController] queryFavoritesForFileURL:[tableDocumentInstance fileURL] andTabTrigger:tabTrigger includeGlobals:YES]; if([snippets count] > 0 && [(NSString*)[(NSDictionary*)[snippets objectAtIndex:0] objectForKey:@"query"] length]) { [self insertAsSnippet:[(NSDictionary*)[snippets objectAtIndex:0] objectForKey:@"query"] atRange:targetRange]; return; } } + + // Check for TAB as indention for current line, i.e. left of the caret there are only white spaces + // but only if Soft Indent is set + if([prefs boolForKey:SPCustomQuerySoftIndent] && [self isCaretAtIndentPositionIgnoreLineStart:YES]) { + if([self shiftSelectionRight]) return; + } } // Note: switch(insertedCharacter) {} does not work instead use charactersIgnoringModifiers @@ -2277,7 +2341,14 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) - (void)moveWordRight:(id)sender { [super moveWordRight:sender]; - while([self selectedRange].location < [[[self textStorage] string] length] && [[[self textStorage] string] characterAtIndex:[self selectedRange].location] == '.') + NSCharacterSet *whiteSet = [NSCharacterSet whitespaceAndNewlineCharacterSet]; + while([self selectedRange].location < [[[self textStorage] string] length] + && ([[[self textStorage] string] characterAtIndex:[self selectedRange].location] == '.' + || ( + [[[self textStorage] string] characterAtIndex:[self selectedRange].location-1] == '.' + && ![whiteSet characterIsMember:[[[self textStorage] string] characterAtIndex:[self selectedRange].location]] + ) + )) [super moveWordRight:sender]; } @@ -2298,22 +2369,41 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) - (void)moveWordRightAndModifySelection:(id)sender { [super moveWordRightAndModifySelection:sender]; - while(NSMaxRange([self selectedRange]) < [[[self textStorage] string] length] && [[[self textStorage] string] characterAtIndex:NSMaxRange([self selectedRange])] == '.') + NSCharacterSet *whiteSet = [NSCharacterSet whitespaceAndNewlineCharacterSet]; + while(NSMaxRange([self selectedRange]) < [[[self textStorage] string] length] + && ([[[self textStorage] string] characterAtIndex:NSMaxRange([self selectedRange])] == '.' + || ( + [[[self textStorage] string] characterAtIndex:NSMaxRange([self selectedRange])-1] == '.' + && ![whiteSet characterIsMember:[[[self textStorage] string] characterAtIndex:NSMaxRange([self selectedRange])]] + ) + )) [super moveWordRightAndModifySelection:sender]; } - (void) deleteBackward:(id)sender { - // If the caret is currently inside a marked auto-pair, delete the characters on both sides - // of the caret. NSRange currentRange = [self selectedRange]; - if (currentRange.length == 0 && currentRange.location > 0 && [self areAdjacentCharsLinked]) - [self setSelectedRange:NSMakeRange(currentRange.location - 1,2)]; - // Avoid auto-uppercasing if resulting word would be a SQL keyword; - // e.g. type inta| and deleteBackward: - delBackwardsWasPressed = YES; + if (currentRange.length == 0) { + + // If the caret is currently inside a marked auto-pair, delete the characters on both sides + // of the caret. + if (currentRange.location > 0 && [self areAdjacentCharsLinked]) { + [self setSelectedRange:NSMakeRange(currentRange.location - 1,2)]; + // Avoid auto-uppercasing if resulting word would be a SQL keyword; + // e.g. type inta| and deleteBackward: + delBackwardsWasPressed = YES; + } + + // Remove soft indent if active and left from caret are only white spaces + else if ([prefs boolForKey:SPCustomQuerySoftIndent] && [self isCaretAtIndentPositionIgnoreLineStart:NO]) + { + [self shiftSelectionLeft]; + return; + } + + } [super deleteBackward:sender]; @@ -2365,6 +2455,18 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) // Return to avoid the original implementation, preventing double linebreaks return; } + + // Remove soft indent if active and left from caret are only white spaces + if (aSelector == @selector(deleteForward:) + && ![self selectedRange].length + && [prefs boolForKey:SPCustomQuerySoftIndent] + && [self isCaretAtIndentPositionIgnoreLineStart:YES] + && [self selectedRange].location < [[self string] length] && [[self string] characterAtIndex:[self selectedRange].location] == ' ') + { + [self shiftSelectionLeft]; + return; + } + [super doCommandBySelector:aSelector]; } @@ -3015,9 +3117,9 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) /** * Scrollview delegate after the textView's view port was changed. - * Manily used to update the syntax highlighting for a large text size. + * Manily used to update the syntax highlighting for a large text size and line numbering rendering. */ -- (void) boundsDidChangeNotification:(NSNotification *)notification +- (void)boundsDidChangeNotification:(NSNotification *)notification { // Invoke syntax highlighting if text view port was changed for large text if(startListeningToBoundChanges && [[self string] length] > SP_TEXT_SIZE_TRIGGER_FOR_PARTLY_PARSING) @@ -3029,6 +3131,8 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) if(![[self textStorage] changeInLength]) [self performSelector:@selector(doSyntaxHighlighting) withObject:nil afterDelay:0.4]; } + // else + // [scrollView displayRect:[scrollView visibleRect]]; } @@ -3057,7 +3161,7 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) } // Start autocompletion if enabled - if([[NSApp keyWindow] firstResponder] == self && [prefs boolForKey:SPCustomQueryAutoComplete] && !completionIsOpen && editedMask != 1 && [textStore editedRange].length) + if([[NSApp keyWindow] firstResponder] == self && [prefs boolForKey:SPCustomQueryAutoComplete] && !completionIsOpen && editedMask != 1 && [textStore changeInLength] == 1) [self performSelector:@selector(doAutoCompletion) withObject:nil afterDelay:[[prefs valueForKey:SPCustomQueryAutoCompleteDelay] doubleValue]]; // Cancel calling doSyntaxHighlighting for large text @@ -3069,6 +3173,8 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) // Do syntax highlighting/re-calculate snippet ranges only if the user really changed the text if(editedMask != 1) { + [customQueryInstance setTextViewWasChanged:YES]; + // Re-calculate snippet ranges if snippet session is active if(snippetControlCounter > -1 && !snippetWasJustInserted && !isProcessingMirroredSnippets) { // Remove any fully nested snippets relative to the current snippet which was edited @@ -3132,6 +3238,7 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) [self doSyntaxHighlighting]; } else { + [customQueryInstance setTextViewWasChanged:NO]; textBufferSizeIncreased = NO; } diff --git a/Source/SPTextViewAdditions.m b/Source/SPTextViewAdditions.m index 2e1f8f9b..9cefa758 100644 --- a/Source/SPTextViewAdditions.m +++ b/Source/SPTextViewAdditions.m @@ -41,41 +41,34 @@ if (curRange.length) return curRange; - NSUInteger curLocation = curRange.location; + NSInteger curLocation = curRange.location; + NSInteger start = curLocation; + NSInteger end = curLocation; + NSUInteger strLen = [[self string] length]; + + NSMutableCharacterSet *wordCharSet = [NSMutableCharacterSet alphanumericCharacterSet]; + [wordCharSet addCharactersInString:@"_."]; + [wordCharSet removeCharactersInString:@"`"]; + + if(start) { + start--; + while([wordCharSet characterIsMember:[[self string] characterAtIndex:start]]) { + start--; + if(start < 0) break; + } + start++; + } - [self moveWordLeft:self]; - [self moveWordRightAndModifySelection:self]; - - NSUInteger newStartRange = [self selectedRange].location; - NSUInteger newEndRange = newStartRange + [self selectedRange].length; - - // if current location does not intersect with found range - // then caret is at the begin of a word -> change strategy - if(curLocation < newStartRange || curLocation > newEndRange) - { - [self setSelectedRange:curRange]; - [self moveWordRight:self]; - [self moveWordLeftAndModifySelection:self]; - newStartRange = [self selectedRange].location; - newEndRange = newStartRange + [self selectedRange].length; + while(end < strLen && [wordCharSet characterIsMember:[[self string] characterAtIndex:end]]) { + end++; } - - // how many space in front of the selection - NSInteger bias = [self selectedRange].length - [[[[self string] substringWithRange:[self selectedRange]] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length]; - [self setSelectedRange:NSMakeRange([self selectedRange].location+bias, [self selectedRange].length-bias)]; - newStartRange += bias; - newEndRange -= bias; - - // is caret inside the selection still? - if(curLocation < newStartRange || curLocation > newEndRange - || [[[self string] substringWithRange:[self selectedRange]] rangeOfCharacterFromSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].location != NSNotFound) - [self setSelectedRange:curRange]; - - NSRange wordRange = [self selectedRange]; - - [self setSelectedRange:curRange]; - + + NSRange wordRange = NSMakeRange(start, end-start); + if(wordRange.length && [[self string] characterAtIndex:NSMaxRange(wordRange)-1] == '.') + wordRange.length--; + return(wordRange); + } /* @@ -534,7 +527,7 @@ [[NSFileManager defaultManager] removeItemAtPath:bundleInputFilePath error:nil]; - BOOL selfIsQueryEditor = ([[[self class] description] isEqualToString:@"SPTextView"] && [self respondsToSelector:@selector(currentQueryRange)]) ; + BOOL selfIsQueryEditor = ([[[self class] description] isEqualToString:@"SPTextView"] && [[self delegate] respondsToSelector:@selector(currentQueryRange)]); if([cmdData objectForKey:SPBundleFileInputSourceKey]) inputAction = [[cmdData objectForKey:SPBundleFileInputSourceKey] lowercaseString]; @@ -562,7 +555,7 @@ replaceRange = currentLineRange; else if([inputFallBackAction isEqualToString:SPBundleInputSourceCurrentQuery]) replaceRange = currentQueryRange; - else if([inputAction isEqualToString:SPBundleInputSourceEntireContent]) + else if([inputFallBackAction isEqualToString:SPBundleInputSourceEntireContent]) replaceRange = NSMakeRange(0,[[self string] length]); } else { replaceRange = currentSelectionRange; @@ -622,8 +615,11 @@ if(currentLineRange.length) [env setObject:[[self string] substringWithRange:currentLineRange] forKey:SPBundleShellVariableCurrentLine]; + [env setObject:NSStringFromRange(replaceRange) forKey:SPBundleShellVariableSelectedTextRange]; + NSError *inputFileError = nil; NSString *input = [NSString stringWithString:[[self string] substringWithRange:replaceRange]]; + [input writeToFile:bundleInputFilePath atomically:YES encoding:NSUTF8StringEncoding @@ -739,8 +735,9 @@ } else if([action isEqualToString:SPBundleOutputActionReplaceSelection]) { - [self shouldChangeTextInRange:replaceRange replacementString:output]; - [self replaceCharactersInRange:replaceRange withString:output]; + NSRange safeRange = NSIntersectionRange(replaceRange, NSMakeRange(0, [[self string] length])); + [self shouldChangeTextInRange:safeRange replacementString:output]; + [self replaceCharactersInRange:safeRange withString:output]; } } else { diff --git a/Source/SPTooltip.m b/Source/SPTooltip.m index e1cccbf9..b0344d52 100644 --- a/Source/SPTooltip.m +++ b/Source/SPTooltip.m @@ -257,24 +257,20 @@ static CGFloat slow_in_out (CGFloat t) id fr = [[NSApp keyWindow] firstResponder]; //If first responder is a textview return the caret position - if([fr respondsToSelector:@selector(getRangeForCurrentWord)] ) { - NSRange range = NSMakeRange([fr selectedRange].location,0); + if(([fr isMemberOfClass:[NSTextView class]] && [fr alignment] == NSLeftTextAlignment) || [[[fr class] description] isEqualToString:@"SPTextView"]) { + NSRange range = NSMakeRange([fr selectedRange].location,1); NSRange glyphRange = [[fr layoutManager] glyphRangeForCharacterRange:range actualCharacterRange:NULL]; NSRect boundingRect = [[fr layoutManager] boundingRectForGlyphRange:glyphRange inTextContainer:[fr textContainer]]; - boundingRect = [fr convertRect: boundingRect toView: NULL]; + boundingRect = [fr convertRect: boundingRect toView:NULL]; pos = [[fr window] convertBaseToScreen: NSMakePoint(boundingRect.origin.x + boundingRect.size.width,boundingRect.origin.y + boundingRect.size.height)]; NSFont* font = [fr font]; - pos.y -= [font pointSize]*1.3; + if(font) pos.y -= [font pointSize]*1.3; return pos; - // Otherwise return the upper left corner of the current keyWindow + // Otherwise return mouse location } else { pos = [NSEvent mouseLocation]; pos.y -= 16; return pos; - // pos = [[NSApp keyWindow] frame].origin; - // pos.x += 5; - // pos.y += [[NSApp keyWindow] frame].size.height - 23; - // return pos; } } diff --git a/Source/SPUserManager.h b/Source/SPUserManager.h index c4eff098..8bb4e4d2 100644 --- a/Source/SPUserManager.h +++ b/Source/SPUserManager.h @@ -59,6 +59,9 @@ IBOutlet NSTextField *userNameTextField; + IBOutlet NSWindow *errorsSheet; + IBOutlet NSTextView *errorsTextView; + IBOutlet BWAnchoredButtonBar *splitViewButtonBar; NSMutableArray *schemas; @@ -67,6 +70,9 @@ NSArray *treeSortDescriptors; NSSortDescriptor *treeSortDescriptor; + + BOOL isSaving; + NSMutableString *errorsString; } @property (nonatomic, retain) MCPConnection *mySqlConnection; @@ -93,6 +99,7 @@ - (IBAction)doApply:(id)sender; - (IBAction)checkAllPrivileges:(id)sender; - (IBAction)uncheckAllPrivileges:(id)sender; +- (IBAction)closeErrorsSheet:(id)sender; // Schema Privieges - (IBAction)addSchemaPriv:(id)sender; diff --git a/Source/SPUserManager.m b/Source/SPUserManager.m index b8d0e826..9118d8a9 100644 --- a/Source/SPUserManager.m +++ b/Source/SPUserManager.m @@ -91,6 +91,7 @@ static const NSString *SPTableViewNameColumnID = @"NameColumn"; schemas = [[NSMutableArray alloc] init]; availablePrivs = [[NSMutableArray alloc] init]; grantedSchemaPrivs = [[NSMutableArray alloc] init]; + isSaving = NO; } return self; @@ -112,7 +113,11 @@ static const NSString *SPTableViewNameColumnID = @"NameColumn"; // Set the button delegate [splitViewButtonBar setSplitViewDelegate:self]; - + + // Set schema table double-click actions + [grantedTableView setDoubleAction:@selector(doubleClickSchemaPriv:)]; + [availableTableView setDoubleAction:@selector(doubleClickSchemaPriv:)]; + [self _initializeUsers]; [self _initializeSchemaPrivs]; @@ -363,6 +368,10 @@ static const NSString *SPTableViewNameColumnID = @"NameColumn"; { // Assumes that the child has already been initialized with values from the // global user table. + + // Set an originalhost key on the child to allow the tracking of edits + [child setPrimitiveValue:[child valueForKey:@"host"] forKey:@"originalhost"]; + // Select rows from the db table that contains schema privs for each user/host NSString *queryString = [NSString stringWithFormat:@"SELECT * from mysql.db d WHERE d.user = %@ and d.host = %@", [[[child parent] valueForKey:@"user"] tickQuotedString], [[child valueForKey:@"host"] tickQuotedString]]; @@ -597,21 +606,29 @@ static const NSString *SPTableViewNameColumnID = @"NameColumn"; - (IBAction)doApply:(id)sender { NSError *error = nil; + errorsString = [[NSMutableString alloc] init]; //Change the first responder to end editing in any field [[self window] makeFirstResponder:self]; + isSaving = YES; [[self managedObjectContext] save:&error]; - - if (error != nil) { - [[NSApplication sharedApplication] presentError:error]; - } - else { - // Close sheet - [self.mySqlConnection queryString:@"FLUSH PRIVILEGES"]; - [NSApp endSheet:[self window] returnCode:0]; - [[self window] orderOut:self]; + isSaving = NO; + if (error != nil) [errorsString appendString:[error localizedDescription]]; + + [self.mySqlConnection queryString:@"FLUSH PRIVILEGES"]; + + // Display any errors + if ([errorsString length]) { + [errorsTextView setString:errorsString]; + [NSApp beginSheet:errorsSheet modalForWindow:[NSApp keyWindow] modalDelegate:nil didEndSelector:NULL contextInfo:nil]; + [errorsString release]; + return; } + + // Otherwise, close the sheet + [NSApp endSheet:[self window] returnCode:0]; + [[self window] orderOut:self]; } /** @@ -779,6 +796,23 @@ static const NSString *SPTableViewNameColumnID = @"NameColumn"; } /** + * Move double-clicked rows across to the other table, using the + * appropriate methods. + */ +- (IBAction)doubleClickSchemaPriv:(id)sender +{ + + // Ignore double-clicked header cells + if ([sender clickedRow] == -1) return; + + if (sender == availableTableView) { + [self addSchemaPriv:sender]; + } else { + [self removeSchemaPriv:sender]; + } +} + +/** * Refreshes the current list of users. */ - (IBAction)refresh:(id)sender @@ -934,12 +968,25 @@ static const NSString *SPTableViewNameColumnID = @"NameColumn"; } } +/** + * Closes the supplied sheet, before closing the master window. + */ +- (IBAction)closeErrorsSheet:(id)sender +{ + [NSApp endSheet:[sender window] returnCode:[sender tag]]; + [[sender window] orderOut:self]; + + // Close the window + [NSApp endSheet:[self window] returnCode:0]; + [[self window] orderOut:self]; +} + #pragma mark - #pragma mark Notifications /** * This notification is called when the managedObjectContext save happens. - * This takes the inserted, updated, and deleted arrays and applys them to + * This takes the inserted, updated, and deleted arrays and applies them to * the database. */ - (void)contextDidSave:(NSNotification *)notification @@ -995,7 +1042,7 @@ static const NSString *SPTableViewNameColumnID = @"NameColumn"; NSString *renameUserStatement = [NSString stringWithFormat: @"RENAME USER %@@%@ TO %@@%@", [[user valueForKey:@"originaluser"] tickQuotedString], - [[child host] tickQuotedString], + [([child valueForKey:@"originalhost"]?[child valueForKey:@"originalhost"]:[child host]) tickQuotedString], [[user valueForKey:@"user"] tickQuotedString], [[child host] tickQuotedString]]; @@ -1020,6 +1067,19 @@ static const NSString *SPTableViewNameColumnID = @"NameColumn"; } } else { + + // If the hostname has changed, remane the detail before editing details. + if (![[user valueForKey:@"host"] isEqualToString:[user valueForKey:@"originalhost"]]) { + NSString *renameUserStatement = [NSString stringWithFormat: + @"RENAME USER %@@%@ TO %@@%@", + [[[user parent] valueForKey:@"originaluser"] tickQuotedString], + [[user valueForKey:@"originalhost"] tickQuotedString], + [[[user parent] valueForKey:@"user"] tickQuotedString], + [[user valueForKey:@"host"] tickQuotedString]]; + + [self.mySqlConnection queryString:renameUserStatement]; + } + if ([serverSupport supportsUserMaxVars]) [self updateResourcesForUser:user]; [self grantPrivilegesToUser:user]; @@ -1366,11 +1426,14 @@ static const NSString *SPTableViewNameColumnID = @"NameColumn"; - (BOOL)_checkAndDisplayMySqlError { if ([self.mySqlConnection queryErrored]) { - - SPBeginAlertSheet(NSLocalizedString(@"An error occurred", @"mysql error occurred message"), - NSLocalizedString(@"OK", @"OK button"), nil, nil, [self window], self, nil, nil, - [NSString stringWithFormat:NSLocalizedString(@"An error occurred whilst trying to perform the operation.\n\nMySQL said: %@", @"mysql error occurred informative message"), [self.mySqlConnection getLastErrorMessage]]); - + if (isSaving) { + [errorsString appendFormat:@"%@\n", [self.mySqlConnection getLastErrorMessage]]; + } else { + SPBeginAlertSheet(NSLocalizedString(@"An error occurred", @"mysql error occurred message"), + NSLocalizedString(@"OK", @"OK button"), nil, nil, [self window], self, nil, nil, + [NSString stringWithFormat:NSLocalizedString(@"An error occurred whilst trying to perform the operation.\n\nMySQL said: %@", @"mysql error occurred informative message"), [self.mySqlConnection getLastErrorMessage]]); + } + return NO; } @@ -1470,7 +1533,7 @@ static const NSString *SPTableViewNameColumnID = @"NameColumn"; */ - (CGFloat)splitView:(NSSplitView *)sender constrainMaxCoordinate:(CGFloat)proposedMax ofSubviewAt:(NSInteger)offset { - return (proposedMax - 555); + return (proposedMax - 620); } /** diff --git a/Source/SPWindow.h b/Source/SPWindow.h new file mode 100644 index 00000000..369ce769 --- /dev/null +++ b/Source/SPWindow.h @@ -0,0 +1,32 @@ +// +// $Id$ +// +// SPWindow.h +// sequel-pro +// +// Created by Rowan Beentje on January 23, 2011 +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// More info at <http://code.google.com/p/sequel-pro/> + +#import <Cocoa/Cocoa.h> + + +@interface SPWindow : NSWindow { + +} + +@end diff --git a/Source/SPWindow.m b/Source/SPWindow.m new file mode 100644 index 00000000..58f38d0b --- /dev/null +++ b/Source/SPWindow.m @@ -0,0 +1,112 @@ +// +// $Id$ +// +// SPWindow.m +// sequel-pro +// +// Created by Rowan Beentje on January 23, 2011 +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// More info at <http://code.google.com/p/sequel-pro/> + +#import "SPWindow.h" + + +@implementation SPWindow + +#pragma mark - +#pragma mark Keyboard shortcut additions + +/** + * While keyboard shortcuts are an easy way to apply code app-wide, alternate menu + * items only collapse if the unmodified key matches; this method allows keyboard + * shortcuts without menu equivalents for a window, or the use of different base shortcuts. + */ +- (void) sendEvent:(NSEvent *)theEvent +{ + + if ([theEvent type] == NSKeyDown && [[theEvent characters] length]) { + + unichar theCharacter = [[theEvent charactersIgnoringModifiers] characterAtIndex:0]; + + // ⌃⎋ sends a right-click to order front the context menu under the first responder's visible Rect + if ([theEvent keyCode] == 53 && (([theEvent modifierFlags] & NSDeviceIndependentModifierFlagsMask) == (NSAlternateKeyMask))) { + + id firstResponder = [[NSApp keyWindow] firstResponder]; + + if(firstResponder && [firstResponder respondsToSelector:@selector(menuForEvent:)]) { + + NSRect theRect = [firstResponder visibleRect]; + NSPoint loc = theRect.origin; + loc.y += theRect.size.height+5; + loc = [firstResponder convertPoint:loc toView:nil]; + NSEvent *anEvent = [NSEvent + mouseEventWithType:NSRightMouseDown + location:loc + modifierFlags:0 + timestamp:1 + windowNumber:[self windowNumber] + context:[NSGraphicsContext currentContext] + eventNumber:0 + clickCount:1 + pressure:0.0]; + + [NSMenu popUpContextMenu:[firstResponder menuForEvent:theEvent] withEvent:anEvent forView:firstResponder]; + + return; + + } + + } + + switch (theCharacter) { + + // Alternate keys for switching tabs - ⇧⌘[ and ⇧⌘]. These seem to be standards on some apps, + // including Apple applications under some circumstances + case '}': + if (([theEvent modifierFlags] & NSDeviceIndependentModifierFlagsMask) == (NSCommandKeyMask | NSShiftKeyMask)) + { + return [[self windowController] selectNextDocumentTab:self]; + } + break; + case '{': + if (([theEvent modifierFlags] & NSDeviceIndependentModifierFlagsMask) == (NSCommandKeyMask | NSShiftKeyMask)) + { + return [[self windowController] selectPreviousDocumentTab:self]; + } + break; + + // Also support ⌥⌘← and ⌥⌘→, used in other applications, for maximum compatibility + case NSRightArrowFunctionKey: + if (([theEvent modifierFlags] & NSDeviceIndependentModifierFlagsMask) == (NSCommandKeyMask | NSAlternateKeyMask | NSNumericPadKeyMask | NSFunctionKeyMask)) + { + return [[self windowController] selectNextDocumentTab:self]; + } + break; + case NSLeftArrowFunctionKey: + if (([theEvent modifierFlags] & NSDeviceIndependentModifierFlagsMask) == (NSCommandKeyMask | NSAlternateKeyMask | NSNumericPadKeyMask | NSFunctionKeyMask)) + { + return [[self windowController] selectPreviousDocumentTab:self]; + } + break; + } + } + + [super sendEvent:theEvent]; +} + + +@end diff --git a/Source/SequelProTunnelAssistant.m b/Source/SequelProTunnelAssistant.m index bbf21a3c..eb16ef5e 100644 --- a/Source/SequelProTunnelAssistant.m +++ b/Source/SequelProTunnelAssistant.m @@ -72,8 +72,8 @@ int main(int argc, const char *argv[]) // request the password if ([[environment objectForKey:@"SP_PASSWORD_METHOD"] integerValue] == SPSSHPasswordUsesKeychain) { SPKeychain *keychain; - NSString *keychainName = [environment objectForKey:@"SP_KEYCHAIN_ITEM_NAME"]; - NSString *keychainAccount = [environment objectForKey:@"SP_KEYCHAIN_ITEM_ACCOUNT"]; + NSString *keychainName = [[environment objectForKey:@"SP_KEYCHAIN_ITEM_NAME"] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; + NSString *keychainAccount = [[environment objectForKey:@"SP_KEYCHAIN_ITEM_ACCOUNT"] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; if (!keychainName || !keychainAccount) { NSLog(@"SSH Tunnel: keychain authentication specified but insufficient internal details supplied"); @@ -82,17 +82,16 @@ int main(int argc, const char *argv[]) } keychain = [[SPKeychain alloc] init]; - if (![keychain passwordExistsForName:keychainName account:keychainAccount]) { - NSLog(@"SSH Tunnel: specified keychain password not found"); + if ([keychain passwordExistsForName:keychainName account:keychainAccount]) { + printf("%s\n", [[keychain getPasswordForName:keychainName account:keychainAccount] UTF8String]); [keychain release]; [pool release]; - return 1; + return 0; } - printf("%s\n", [[keychain getPasswordForName:keychainName account:keychainAccount] UTF8String]); - [keychain release]; - [pool release]; - return 0; + // If retrieving the password failed, log an error and fall back to requesting from the GUI + NSLog(@"SSH Tunnel: specified keychain password not found"); + argument = [NSString stringWithFormat:NSLocalizedString(@"The SSH password could not be loaded from the keychain; please enter the SSH password for %@:", @"Prompt for SSH password when keychain fetch failed"), connectionName]; } // If the password method is set to request the password from the tunnel instance, do so. @@ -113,15 +112,15 @@ int main(int argc, const char *argv[]) } password = [sequelProTunnel getPasswordWithVerificationHash:verificationHash]; - if (!password) { - NSLog(@"SSH Tunnel: unable to successfully request password from Sequel Pro for internal authentication"); + if (password) { + printf("%s\n", [password UTF8String]); [pool release]; - return 1; + return 0; } - - printf("%s\n", [password UTF8String]); - [pool release]; - return 0; + + // If retrieving the password failed, log an error and fall back to requesting from the GUI + NSLog(@"SSH Tunnel: unable to successfully request password from Sequel Pro for internal authentication"); + argument = [NSString stringWithFormat:NSLocalizedString(@"The SSH password could not be loaded; please enter the SSH password for %@:", @"Prompt for SSH password when direct fetch failed"), connectionName]; } } diff --git a/UnitTests/MCPKitTest.h b/UnitTests/MCPKitTest.h index d4d1ffec..926780fa 100644 --- a/UnitTests/MCPKitTest.h +++ b/UnitTests/MCPKitTest.h @@ -27,6 +27,17 @@ @class MCPConnection; +/** + * @class MCPKitTest MCPKitTest.h + * + * MCPKit test case class. + * + * Note that this test case class uses the 'sakila' database to perform it's tests. It is available from: + * + * http://downloads.mysql.com/docs/sakila-db.zip + * + * You must also create a user called 'sp_tester' with no password and all permissions on the database 'sakila'. + */ @interface MCPKitTest : SenTestCase { MCPConnection *connection; diff --git a/UnitTests/MCPKitTest.m b/UnitTests/MCPKitTest.m index e347d9da..4480b0a1 100644 --- a/UnitTests/MCPKitTest.m +++ b/UnitTests/MCPKitTest.m @@ -27,59 +27,97 @@ #import "MCPKitTest.h" +static const NSString *SPTestDatabaseHost = @"127.0.0.1"; +static const NSString *SPTestDatabaseName = @"sakila"; +static const NSString *SPTestDatabaseUser = @"sp_tester"; +static const NSString *SPTestDatabasePassword = @""; + +static const NSInteger SPTestDatabasePort = 3306; + @implementation MCPKitTest +#pragma mark - +#pragma mark Setup & tear down + +/** + * Sets up the connection for use in the test cases. + */ - (void)setUp { - // For now, we try an find the following database in the local connection. - // If the connection fails for any reasons, tests are not run. - // http://downloads.mysql.com/docs/sakila-db.zip - // - // Set up a user called 'sakila' with no password that has all privs on the - // database 'sakila'. + connection = [[MCPConnection alloc] initToHost:SPTestDatabaseHost withLogin:SPTestDatabaseUser usingPort:SPTestDatabasePort]; + + [connection setPassword:SPTestDatabasePassword]; - connection = [[MCPConnection alloc] initToSocket:@"/var/mysql/mysql.sock" withLogin:@"sakila"]; + [connection setConnectionTimeout:10]; + [connection setUseKeepAlive:1]; + [connection setKeepAliveInterval:60]; - // Set the 'sakila' user's password - [connection setPassword:@""]; + [connection connect]; if (![connection isConnected]) { - [connection dealloc]; - connection = nil; + [connection release], connection = nil; + STFail(@"Error connecting to database server. No tests were run."); } else { - if (![connection selectDB:@"sakila"]) { - [connection dealloc]; - connection = nil; - STFail(@"Error selecting database 'sakila'. No tests were run."); + if (![connection selectDB:SPTestDatabaseName]) { + [connection release], connection = nil; + + STFail(@"Error selecting database '%@'. No tests were run.", SPTestDatabaseName); } } } +/** + * Disconnects the connection if connected. + */ - (void)tearDown { - if (connection != nil) { + if (connection && [connection isConnected]) { [connection disconnect]; - [connection dealloc]; } + + [connection release], connection = nil; } -- (void)testServerVersion +#pragma mark - +#pragma mark Tests + +/** + * Tests the connection's major version number. + */ +- (void)testServerMajorVersion { - if (connection == nil) return; + if ((!connection) || (![connection isConnected])) return; - STAssertTrue([connection serverMajorVersion] != 0, @"server version"); - STAssertTrue([connection serverMajorVersion] != 0, @"server version"); + STAssertTrue(([connection serverMajorVersion] != 0), @"server major version"); } -- (void)testTableList +/** + * Tests the connection's version string. + */ +- (void)testServerVersionString { - if (connection == nil) return; + if ((!connection) || (![connection isConnected])) return; + + STAssertTrue(([[connection serverVersionString] length] > 0), @"server version string"); +} + +/** + * Tests the connection query execution. + */ +- (void)testQueryExexution +{ + if ((!connection) || (![connection isConnected])) return; - MCPResult *queryResult = [connection queryString:@"SELECT * FROM actor"]; + MCPResult *result = [connection queryString:@"SELECT * FROM actor"]; - STAssertEquals([queryResult numOfRows], (my_ulonglong)200, @"actors table count"); + if ([connection queryErrored]) { + STFail(@"Query execution failed with error: %@", [connection getLastErrorMessage]); + } + else { + STAssertEquals([result numOfRows], (my_ulonglong)200, @"'actors' table count"); + } } @end diff --git a/UnitTests/SPStringAdditionsTest.m b/UnitTests/SPStringAdditionsTest.m index 208381a8..8fce7e07 100644 --- a/UnitTests/SPStringAdditionsTest.m +++ b/UnitTests/SPStringAdditionsTest.m @@ -26,32 +26,35 @@ #import "SPStringAdditionsTest.h" #import "SPStringAdditions.h" -@implementation SPStringAdditionsTest - -- (void)setUp -{ - -} +static const NSString *SPASCIITestString = @"this is a big, crazy test st'ring with som'e random spaces and quot'es"; +static const NSString *SPUTFTestString = @"In der Kürze liegt die Würz"; -- (void)tearDown -{ - -} +@implementation SPStringAdditionsTest +/** + * stringByRemovingCharactersInSet test case. + */ - (void)testStringByRemovingCharactersInSet { - NSCharacterSet *junk = [NSCharacterSet characterSetWithCharactersInString:@"abc',ü"]; + NSString *charsToRemove = @"abc',ü"; + + NSCharacterSet *junk = [NSCharacterSet characterSetWithCharactersInString:charsToRemove]; - NSString *s = @"this is big, crazy st'ring"; - NSString *expect = @"this is ig rzy string"; + NSString *actualUTFString = SPUTFTestString; + NSString *actualASCIIString = SPASCIITestString; - STAssertEqualObjects([s stringByRemovingCharactersInSet:junk], expect, @"stringByRemovingCharactersInSet"); + NSString *expectedUTFString = @"In der Krze liegt die Wrz"; + NSString *expectedASCIIString = @"this is ig rzy test string with some rndom spes nd quotes"; - // Check UTF - s = @"In der Kürze liegt die Würz"; - expect = @"In der Krze liegt die Wrz"; + STAssertEqualObjects([actualASCIIString stringByRemovingCharactersInSet:junk], + expectedASCIIString, + @"The following characters should have been removed %@", + charsToRemove); - STAssertEqualObjects([s stringByRemovingCharactersInSet:junk], expect, @"stringByRemovingCharactersInSet"); + STAssertEqualObjects([actualUTFString stringByRemovingCharactersInSet:junk], + expectedUTFString, + @"The following characters should have been removed %@", + charsToRemove); } @end diff --git a/sequel-pro.xcodeproj/project.pbxproj b/sequel-pro.xcodeproj/project.pbxproj index 0baff5ea..48fe7c2a 100644 --- a/sequel-pro.xcodeproj/project.pbxproj +++ b/sequel-pro.xcodeproj/project.pbxproj @@ -39,6 +39,7 @@ 11D44DF0118F5887002AA43C /* OCMock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 11D44DEF118F5887002AA43C /* OCMock.framework */; }; 171312CE109D23C700FB465F /* SPTableTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 171312CD109D23C700FB465F /* SPTableTextFieldCell.m */; }; 17148565125F5FF500321285 /* SPDatabaseCharacterSets.m in Sources */ = {isa = PBXBuildFile; fileRef = 17148564125F5FF500321285 /* SPDatabaseCharacterSets.m */; }; + 1723F08B12F1F9350008253B /* SPWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 1723F08A12F1F9350008253B /* SPWindow.m */; }; 17292443107AC41000B21980 /* SPXMLExporter.m in Sources */ = {isa = PBXBuildFile; fileRef = 17292442107AC41000B21980 /* SPXMLExporter.m */; }; 172A65110F7BED7A001E861A /* SPConsoleMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 172A65100F7BED7A001E861A /* SPConsoleMessage.m */; }; 173284EA1088FEDE0062E892 /* SPConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 173284E91088FEDE0062E892 /* SPConstants.m */; }; @@ -572,6 +573,10 @@ 171312CD109D23C700FB465F /* SPTableTextFieldCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTableTextFieldCell.m; sourceTree = "<group>"; }; 17148563125F5FF500321285 /* SPDatabaseCharacterSets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPDatabaseCharacterSets.h; sourceTree = "<group>"; }; 17148564125F5FF500321285 /* SPDatabaseCharacterSets.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPDatabaseCharacterSets.m; sourceTree = "<group>"; }; + 1723F04A12F1F8850008253B /* create-test-stubs.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = "create-test-stubs.pl"; sourceTree = "<group>"; }; + 1723F04B12F1F8850008253B /* run-tests.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = "run-tests.sh"; sourceTree = "<group>"; }; + 1723F08912F1F9350008253B /* SPWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPWindow.h; sourceTree = "<group>"; }; + 1723F08A12F1F9350008253B /* SPWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPWindow.m; sourceTree = "<group>"; }; 17292441107AC41000B21980 /* SPXMLExporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPXMLExporter.h; sourceTree = "<group>"; }; 17292442107AC41000B21980 /* SPXMLExporter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPXMLExporter.m; sourceTree = "<group>"; }; 172A650F0F7BED7A001E861A /* SPConsoleMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPConsoleMessage.h; sourceTree = "<group>"; }; @@ -1588,7 +1593,9 @@ children = ( 1713122F109C7DF600FB465F /* build.sh */, 1798AB0C12676CD9000D946A /* localize.sh */, + 1723F04B12F1F8850008253B /* run-tests.sh */, 1761FD9D0EF0488900331368 /* build-version.pl */, + 1723F04A12F1F8850008253B /* create-test-stubs.pl */, 178934980F30CDA10097539A /* trim-application.sh */, 17B7B698101611C800F057DE /* build-mysql-client.sh */, 588593F30F7AEC9500ED0E67 /* package-application.sh */, @@ -2018,6 +2025,8 @@ 17E641670EF01F19001BC333 /* Views */ = { isa = PBXGroup; children = ( + 1723F08912F1F9350008253B /* SPWindow.h */, + 1723F08A12F1F9350008253B /* SPWindow.m */, 17E6417E0EF01FA8001BC333 /* SPImageView.h */, 17E6417F0EF01FA8001BC333 /* SPImageView.m */, 584094CC1107BD0500260CFD /* SPAlertSheets.h */, @@ -2964,7 +2973,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n"; + shellScript = "# Run tests\n\"${SRCROOT}/Scripts/run-tests.sh\"\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -3202,6 +3211,7 @@ 17AF713612A842B000C54D6A /* SPTreeNode.m in Sources */, 17AF713912A842DE00C54D6A /* SPFlippedView.m in Sources */, 17AF739D12AAABDD00C54D6A /* SPChooseMenuItemDialog.m in Sources */, + 1723F08B12F1F9350008253B /* SPWindow.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; |