diff options
author | randomguy3 <randomguy3@7c02a99a-9b00-45e3-bf44-6f3dd7fddb64> | 2012-01-06 18:50:09 +0000 |
---|---|---|
committer | randomguy3 <randomguy3@7c02a99a-9b00-45e3-bf44-6f3dd7fddb64> | 2012-01-06 18:50:09 +0000 |
commit | 6458381a1115a4088d6a3a794f3e2ec40ea07987 (patch) | |
tree | 734b8715308bfd871d1717ac338c436c5de33ac9 /src/common/Preambles.m | |
parent | 042a081c40bdd8ab0e5a1cd3d2a7a81182660253 (diff) |
GTK: allow preambles to be added, removed and renamed
git-svn-id: https://tikzit.svn.sourceforge.net/svnroot/tikzit/trunk@355 7c02a99a-9b00-45e3-bf44-6f3dd7fddb64
Diffstat (limited to 'src/common/Preambles.m')
-rw-r--r-- | src/common/Preambles.m | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/common/Preambles.m b/src/common/Preambles.m index 68f41a3..4f74dd0 100644 --- a/src/common/Preambles.m +++ b/src/common/Preambles.m @@ -173,6 +173,26 @@ static NSString *POSTAMBLE = return @"default"; } +- (NSString*)addPreamble { + return [self addPreambleWithNameBase:@"new preamble"]; +} + +- (NSString*)addPreambleWithNameBase:(NSString*)base { + if ([preambleDict objectForKey:base] == nil) { + [self setPreamble:[self defaultPreamble] forName:base]; + return base; + } + int i = 0; + NSString *tryName = nil; + do { + ++i; + tryName = [NSString stringWithFormat:@"%@ %d", base, i]; + } while ([preambleDict objectForKey:tryName] != nil); + + [self setPreamble:[self defaultPreamble] forName:tryName]; + return tryName; +} + - (BOOL)renamePreambleFrom:(NSString*)old to:(NSString*)new { if ([old isEqualToString:@"default"]) return NO; @@ -180,18 +200,31 @@ static NSString *POSTAMBLE = return NO; if ([old isEqualToString:new]) return YES; + BOOL isSelected = NO; + if ([old isEqualToString:selectedPreambleName]) { + [self setSelectedPreambleName:nil]; + isSelected = YES; + } NSString *preamble = [preambleDict objectForKey:old]; [preamble retain]; [preambleDict removeObjectForKey:old]; [preambleDict setObject:preamble forKey:new]; [preamble release]; + if (isSelected) { + [self setSelectedPreambleName:new]; + } return YES; } - (BOOL)removePreamble:(NSString*)name { if ([name isEqualToString:@"default"]) return NO; + // "name" may be held only by being the selected preamble... + [name retain]; + if ([name isEqualToString:selectedPreambleName]) + [self setSelectedPreambleName:nil]; [preambleDict removeObjectForKey:name]; + [name release]; return YES; } |