diff options
author | stuconnolly <stuart02@gmail.com> | 2009-01-28 17:18:41 +0000 |
---|---|---|
committer | stuconnolly <stuart02@gmail.com> | 2009-01-28 17:18:41 +0000 |
commit | 8b7b5d15730e0586c531bf3867b8192d1e3689f4 (patch) | |
tree | af97f39c6d2af44b3eead9cbeb1c9feeef67ccfe | |
parent | 7d07490a216af0a76585e74e629971c83782d984 (diff) | |
download | sequelpro-8b7b5d15730e0586c531bf3867b8192d1e3689f4.tar.gz sequelpro-8b7b5d15730e0586c531bf3867b8192d1e3689f4.tar.bz2 sequelpro-8b7b5d15730e0586c531bf3867b8192d1e3689f4.zip |
Separate out the creation of a human readable string from the number of bytes into a category class method of NSString so we can potentially use it in other places.
-rw-r--r-- | Interfaces/English.lproj/DBView.xib | 8 | ||||
-rw-r--r-- | Source/SPStringAdditions.h | 29 | ||||
-rw-r--r-- | Source/SPStringAdditions.m | 69 | ||||
-rw-r--r-- | Source/SPTableInfo.h | 25 | ||||
-rw-r--r-- | Source/SPTableInfo.m | 66 | ||||
-rw-r--r-- | sequel-pro.xcodeproj/project.pbxproj | 8 |
6 files changed, 151 insertions, 54 deletions
diff --git a/Interfaces/English.lproj/DBView.xib b/Interfaces/English.lproj/DBView.xib index 14911286..392632b3 100644 --- a/Interfaces/English.lproj/DBView.xib +++ b/Interfaces/English.lproj/DBView.xib @@ -8,8 +8,7 @@ <string key="IBDocument.HIToolboxVersion">353.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="970"/> - <integer value="676"/> + <integer value="4485"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -6882,7 +6881,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{213, 50}</string> <object class="NSView" key="NSWindowView" id="537060735"> - <reference key="NSNextResponder"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -6937,7 +6936,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> </object> <string key="NSFrameSize">{375, 72}</string> - <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> <string key="NSMinSize">{213, 72}</string> @@ -20434,7 +20432,7 @@ Y2hhbmdlIHRoZSBvcmRlcg</string> <string>id</string> <string>id</string> <string>id</string> - <string>id</string> + <string>NSPopUpButton</string> <string>id</string> <string>id</string> <string>id</string> diff --git a/Source/SPStringAdditions.h b/Source/SPStringAdditions.h new file mode 100644 index 00000000..d2ac5d4b --- /dev/null +++ b/Source/SPStringAdditions.h @@ -0,0 +1,29 @@ +// +// SPStringAdditions.h +// sequel-pro +// +// Created by Stuart Connolly (stuconnolly.com) on Jan 28, 2009 +// +// 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 NSString (SPStringAdditions) + ++ (NSString *)stringForByteSize:(int)byteSize; + +@end diff --git a/Source/SPStringAdditions.m b/Source/SPStringAdditions.m new file mode 100644 index 00000000..a51df693 --- /dev/null +++ b/Source/SPStringAdditions.m @@ -0,0 +1,69 @@ +// +// SPStringAdditions.m +// sequel-pro +// +// Created by Stuart Connolly (stuconnolly.com) on Jan 28, 2009 +// +// 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 "SPStringAdditions.h" + +@implementation NSString (SPStringAdditions) + +// ------------------------------------------------------------------------------- +// stringForByteSize: +// +// Returns a human readable version string of the supplied byte size. +// ------------------------------------------------------------------------------- ++ (NSString *)stringForByteSize:(int)byteSize +{ + float size = byteSize; + + NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease]; + + [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; + + if (size < 1023) { + [numberFormatter setFormat:@"#,##0 B"]; + + return [numberFormatter stringFromNumber:[NSNumber numberWithInt:size]]; + } + + size = (size / 1024); + + if (size < 1023) { + [numberFormatter setFormat:@"#,##0.0 KB"]; + + return [numberFormatter stringFromNumber:[NSNumber numberWithFloat:size]]; + } + + size = (size / 1024); + + if (size < 1023) { + [numberFormatter setFormat:@"#,##0.0 MB"]; + + return [numberFormatter stringFromNumber:[NSNumber numberWithFloat:size]]; + } + + size = (size / 1024); + + [numberFormatter setFormat:@"#,##0.0 GB"]; + + return [numberFormatter stringFromNumber:[NSNumber numberWithFloat:size]]; +} + +@end diff --git a/Source/SPTableInfo.h b/Source/SPTableInfo.h index 0613794c..4088feaf 100644 --- a/Source/SPTableInfo.h +++ b/Source/SPTableInfo.h @@ -2,14 +2,28 @@ // SPTableInfo.h // sequel-pro // -// Created by Ben Perry on 6/05/08. -// Copyright 2008 Ben Perry. All rights reserved. +// Created by Ben Perry on Jun 6, 2008 // +// 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 SPTableInfo : NSObject { +@interface SPTableInfo : NSObject +{ IBOutlet id infoTable; IBOutlet id tableList; IBOutlet id tableListInstance; @@ -18,7 +32,4 @@ NSMutableArray *info; } -- (NSString *)sizeFromBytes:(int)bytes; - - @end diff --git a/Source/SPTableInfo.m b/Source/SPTableInfo.m index de50a59b..7bab9322 100644 --- a/Source/SPTableInfo.m +++ b/Source/SPTableInfo.m @@ -2,23 +2,41 @@ // SPTableInfo.m // sequel-pro // -// Created by Ben Perry on 6/05/08. -// Copyright 2008 Ben Perry. All rights reserved. +// Created by Ben Perry on Jun 6, 2008 // +// 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 "SPTableInfo.h" #import "ImageAndTextCell.h" -#import <MCPKit_bundled/MCPKit_bundled.h> #import "CMMCPConnection.h" #import "CMMCPResult.h" #import "TableDocument.h" +#import "SPStringAdditions.h" + +#import <MCPKit_bundled/MCPKit_bundled.h> @implementation SPTableInfo - (id)init { - self = [super init]; - info = [[NSMutableArray alloc] init]; + if ((self = [super init])) { + info = [[NSMutableArray alloc] init]; + } + return self; } @@ -28,11 +46,11 @@ selector:@selector(tableChanged:) name:NSTableViewSelectionDidChangeNotification object:tableList]; + [info addObject:NSLocalizedString(@"TABLE INFORMATION",@"header for table info pane")]; [infoTable reloadData]; } - - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; @@ -141,9 +159,9 @@ objectValueForTableColumn:(NSTableColumn *)aTableColumn // Add the update date to the infoTable [info addObject:[NSString stringWithFormat:@"updated: %@", [updateDateFormatter stringFromDate:update_date]]]; } - + [info addObject:[NSString stringWithFormat:@"rows: %@", [theRow objectForKey:@"Rows"]]]; - [info addObject:[NSString stringWithFormat:@"size: %@", [self sizeFromBytes:[[theRow objectForKey:@"Data_length"] intValue]]]]; + [info addObject:[NSString stringWithFormat:@"size: %@", [NSString stringForByteSize:[[theRow objectForKey:@"Data_length"] intValue]]]]; [info addObject:[NSString stringWithFormat:@"encoding: %@", [[[theRow objectForKey:@"Collation"] componentsSeparatedByString:@"_"] objectAtIndex:0]]]; [info addObject:[NSString stringWithFormat:@"auto_increment: %@", [theRow objectForKey:@"Auto_increment"]]]; @@ -155,36 +173,4 @@ objectValueForTableColumn:(NSTableColumn *)aTableColumn [infoTable reloadData]; } -- (NSString *)sizeFromBytes:(int)theSize -{ - NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease]; - float floatSize = theSize; - - [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; - - if (theSize < 1023) { - [numberFormatter setFormat:@"#,##0 B"]; - return [numberFormatter stringFromNumber:[NSNumber numberWithInt:theSize]]; - } - - floatSize = floatSize / 1024; - - if (floatSize < 1023) { - [numberFormatter setFormat:@"#,##0.0 KB"]; - return [numberFormatter stringFromNumber:[NSNumber numberWithFloat:floatSize]]; - } - - floatSize = floatSize / 1024; - - if (floatSize < 1023) { - [numberFormatter setFormat:@"#,##0.0 MB"]; - return [numberFormatter stringFromNumber:[NSNumber numberWithFloat:floatSize]]; - } - - floatSize = floatSize / 1024; - - [numberFormatter setFormat:@"#,##0.0 GB"]; - return [numberFormatter stringFromNumber:[NSNumber numberWithFloat:floatSize]]; -} - @end diff --git a/sequel-pro.xcodeproj/project.pbxproj b/sequel-pro.xcodeproj/project.pbxproj index 1f9f1209..4b7f7df6 100644 --- a/sequel-pro.xcodeproj/project.pbxproj +++ b/sequel-pro.xcodeproj/project.pbxproj @@ -8,7 +8,7 @@ /* Begin PBXBuildFile section */ 1761FD480EF03A6F00331368 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1761FD460EF03A6F00331368 /* MainMenu.xib */; }; - 1761FD9E0EF0488900331368 /* build-version.pl in Resources */ = {isa = PBXBuildFile; fileRef = 1761FD9D0EF0488900331368 /* build-version.pl */; }; + 1789343C0F30C1DD0097539A /* SPStringAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 1789343B0F30C1DD0097539A /* SPStringAdditions.m */; }; 17E641460EF01EB5001BC333 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 17E641440EF01EB5001BC333 /* main.m */; }; 17E641560EF01EF6001BC333 /* CustomQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = 17E641490EF01EF6001BC333 /* CustomQuery.m */; }; 17E641570EF01EF6001BC333 /* MainController.m in Sources */ = {isa = PBXBuildFile; fileRef = 17E6414B0EF01EF6001BC333 /* MainController.m */; }; @@ -138,6 +138,8 @@ 1703EF400F0B0742005BBE7E /* tables.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = tables.html; sourceTree = "<group>"; }; 1761FD470EF03A6F00331368 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = "<group>"; }; 1761FD9D0EF0488900331368 /* build-version.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = "build-version.pl"; sourceTree = "<group>"; }; + 1789343A0F30C1DD0097539A /* SPStringAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPStringAdditions.h; sourceTree = "<group>"; }; + 1789343B0F30C1DD0097539A /* SPStringAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPStringAdditions.m; sourceTree = "<group>"; }; 17E641440EF01EB5001BC333 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; 17E641450EF01EB5001BC333 /* sequel-pro_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "sequel-pro_Prefix.pch"; sourceTree = "<group>"; }; 17E641480EF01EF6001BC333 /* CustomQuery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomQuery.h; sourceTree = "<group>"; }; @@ -406,6 +408,8 @@ 17E6416E0EF01F3B001BC333 /* Other */ = { isa = PBXGroup; children = ( + 1789343A0F30C1DD0097539A /* SPStringAdditions.h */, + 1789343B0F30C1DD0097539A /* SPStringAdditions.m */, 17E6416F0EF01F4C001BC333 /* Keychain */, 17E641700EF01F52001BC333 /* MCPKit */, 17E641710EF01F5C001BC333 /* GUI */, @@ -658,7 +662,6 @@ 17E6423B0EF0216C001BC333 /* Credits.rtf in Resources */, 17E6423E0EF0218B001BC333 /* InfoPlist.strings in Resources */, 1761FD480EF03A6F00331368 /* MainMenu.xib in Resources */, - 1761FD9E0EF0488900331368 /* build-version.pl in Resources */, B5E2C5FA0F2353B5007446E0 /* TablePropertyIcon.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -706,6 +709,7 @@ 17E641830EF01FA8001BC333 /* CMImageView.m in Sources */, 17E641840EF01FA8001BC333 /* CMTextView.m in Sources */, 17E641890EF01FB4001BC333 /* SSHTunnel.m in Sources */, + 1789343C0F30C1DD0097539A /* SPStringAdditions.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; |