From dcf64eac4fdb246cf6fb169c1279b67966478173 Mon Sep 17 00:00:00 2001 From: randomguy3 Date: Wed, 18 Jan 2012 10:05:06 +0000 Subject: Rename src/linux to src/gtk (which is more accurate) git-svn-id: https://tikzit.svn.sourceforge.net/svnroot/tikzit/trunk@392 7c02a99a-9b00-45e3-bf44-6f3dd7fddb64 --- tikzit/src/gtk/StyleManager+Storage.m | 81 +++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 tikzit/src/gtk/StyleManager+Storage.m (limited to 'tikzit/src/gtk/StyleManager+Storage.m') diff --git a/tikzit/src/gtk/StyleManager+Storage.m b/tikzit/src/gtk/StyleManager+Storage.m new file mode 100644 index 0000000..112b885 --- /dev/null +++ b/tikzit/src/gtk/StyleManager+Storage.m @@ -0,0 +1,81 @@ +/* + * Copyright 2011 Alex Merry + * + * 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, see . + */ + +#import "StyleManager+Storage.h" +#import "Configuration.h" +#import "NodeStyle+Storage.h" +#import "EdgeStyle+Storage.h" + +static NSString *nodeStyleGroupPrefix = @"Style "; +static NSString *edgeStyleGroupPrefix = @"EdgeStyle "; + +@implementation StyleManager (Storage) + +- (void) loadStylesUsingConfigurationName:(NSString*)name { + if (![Configuration configurationExistsWithName:name]) { + return; + } + NSError *error = nil; + Configuration *stylesConfig = [Configuration configurationWithName:name loadError:&error]; + if (error != nil) { + logError (error, @"Could not load styles configuration"); + // stick with the default config + return; + } + NSArray *groups = [stylesConfig groups]; + NSMutableArray *ns = [NSMutableArray arrayWithCapacity:[groups count]]; + NSMutableArray *es = [NSMutableArray arrayWithCapacity:[groups count]]; + + for (NSString *groupName in groups) { + if ([groupName hasPrefix:nodeStyleGroupPrefix]) { + NodeStyle *style = [[NodeStyle alloc] initFromConfigurationGroup:groupName config:stylesConfig]; + [ns addObject:style]; + } else if ([groupName hasPrefix:edgeStyleGroupPrefix]) { + EdgeStyle *style = [[EdgeStyle alloc] initFromConfigurationGroup:groupName config:stylesConfig]; + [es addObject:style]; + } + } + + [self _setNodeStyles:ns]; + [self _setEdgeStyles:es]; +} + +- (void) saveStylesUsingConfigurationName:(NSString*)name { + NSError *error = nil; + Configuration *stylesConfig = [Configuration emptyConfigurationWithName:name]; + NSArray *ns = [self nodeStyles]; + NSArray *es = [self edgeStyles]; + NSUInteger length = [ns count]; + for (int i = 0; i < length; ++i) { + NodeStyle *style = [ns objectAtIndex:i]; + NSString *groupName = [NSString stringWithFormat:@"%@%d", nodeStyleGroupPrefix, i]; + [style storeToConfigurationGroup:groupName config:stylesConfig]; + } + length = [es count]; + for (int i = 0; i < length; ++i) { + EdgeStyle *style = [es objectAtIndex:i]; + NSString *groupName = [NSString stringWithFormat:@"%@%d", edgeStyleGroupPrefix, i]; + [style storeToConfigurationGroup:groupName config:stylesConfig]; + } + if (![stylesConfig writeToStoreWithError:&error]) { + logError (error, @"Could not write styles configuration"); + } +} + +@end + +// vim:ft=objc:ts=8:et:sts=4:sw=4 -- cgit v1.2.3