Revision: 5039
          http://skim-app.svn.sourceforge.net/skim-app/?rev=5039&view=rev
Author:   hofman
Date:     2008-12-10 12:58:25 +0000 (Wed, 10 Dec 2008)

Log Message:
-----------
convenience method to append text to a text template tag

Modified Paths:
--------------
    trunk/SKTemplateParser.m
    trunk/SKTemplateTag.h
    trunk/SKTemplateTag.m

Modified: trunk/SKTemplateParser.m
===================================================================
--- trunk/SKTemplateParser.m    2008-12-09 21:30:30 UTC (rev 5038)
+++ trunk/SKTemplateParser.m    2008-12-10 12:58:25 UTC (rev 5039)
@@ -277,7 +277,7 @@
                 
         if ([scanner scanUpToString:START_TAG_OPEN_DELIM 
intoString:&beforeText]) {
             if (currentTag && [(SKTemplateTag *)currentTag type] == 
SKTextTemplateTagType) {
-                [(SKTextTemplateTag *)currentTag setText:[[(SKTextTemplateTag 
*)currentTag text] stringByAppendingString:beforeText]];
+                [(SKTextTemplateTag *)currentTag appendText:beforeText];
             } else {
                 currentTag = [[SKTextTemplateTag alloc] 
initWithText:beforeText];
                 [result addObject:currentTag];
@@ -389,7 +389,7 @@
                     
                     // an open delimiter without a close delimiter, so no 
template tag. Rewind
                     if (currentTag && [(SKTemplateTag *)currentTag type] == 
SKTextTemplateTagType) {
-                        [(SKTextTemplateTag *)currentTag 
setText:[[(SKTextTemplateTag *)currentTag text] 
stringByAppendingString:START_TAG_OPEN_DELIM]];
+                        [(SKTextTemplateTag *)currentTag 
appendText:START_TAG_OPEN_DELIM];
                     } else {
                         currentTag = [[SKTextTemplateTag alloc] 
initWithText:START_TAG_OPEN_DELIM];
                         [result addObject:currentTag];
@@ -545,17 +545,12 @@
         NSString *tag = nil;
         int start;
         NSDictionary *attr = nil;
-        NSMutableAttributedString *tmpAttrStr = nil;
         
         start = [scanner scanLocation];
                 
         if ([scanner scanUpToString:START_TAG_OPEN_DELIM 
intoString:&beforeText]) {
             if (currentTag && [(SKTemplateTag *)currentTag type] == 
SKTextTemplateTagType) {
-                tmpAttrStr = [[(SKRichTextTemplateTag *)currentTag 
attributedText] mutableCopy];
-                [tmpAttrStr appendAttributedString:[template 
attributedSubstringFromRange:NSMakeRange(start, [beforeText length])]];
-                [tmpAttrStr fixAttributesInRange:NSMakeRange(0, [tmpAttrStr 
length])];
-                [(SKRichTextTemplateTag *)currentTag 
setAttributedText:tmpAttrStr];
-                [tmpAttrStr release];
+                [(SKRichTextTemplateTag *)currentTag 
appendAttributedText:[template attributedSubstringFromRange:NSMakeRange(start, 
[beforeText length])]];
             } else {
                 currentTag = [[SKRichTextTemplateTag alloc] 
initWithAttributedText:[template 
attributedSubstringFromRange:NSMakeRange(start, [beforeText length])]];
                 [result addObject:currentTag];
@@ -682,11 +677,7 @@
                     
                     // a START_TAG_OPEN_DELIM without 
COLLECTION_TAG_CLOSE_DELIM, so no template tag. Rewind
                     if (currentTag && [(SKTemplateTag *)currentTag type] == 
SKTextTemplateTagType) {
-                        tmpAttrStr = [[(SKRichTextTemplateTag *)currentTag 
attributedText] mutableCopy];
-                        [tmpAttrStr appendAttributedString:[template 
attributedSubstringFromRange:NSMakeRange(start - [START_TAG_OPEN_DELIM length], 
[START_TAG_OPEN_DELIM length])]];
-                        [tmpAttrStr fixAttributesInRange:NSMakeRange(0, 
[tmpAttrStr length])];
-                        [(SKRichTextTemplateTag *)currentTag 
setAttributedText:tmpAttrStr];
-                        [tmpAttrStr release];
+                        [(SKRichTextTemplateTag *)currentTag 
appendAttributedText:[template attributedSubstringFromRange:NSMakeRange(start - 
[START_TAG_OPEN_DELIM length], [START_TAG_OPEN_DELIM length])]];
                     } else {
                         currentTag = [[SKRichTextTemplateTag alloc] 
initWithAttributedText:[template attributedSubstringFromRange:NSMakeRange(start 
- [START_TAG_OPEN_DELIM length], [START_TAG_OPEN_DELIM length])]];
                         [result addObject:currentTag];

Modified: trunk/SKTemplateTag.h
===================================================================
--- trunk/SKTemplateTag.h       2008-12-09 21:30:30 UTC (rev 5038)
+++ trunk/SKTemplateTag.h       2008-12-10 12:58:25 UTC (rev 5039)
@@ -149,6 +149,8 @@
 - (NSString *)text;
 - (void)setText:(NSString *)newText;
 
+- (void)appendText:(NSString *)newText;
+
 @end
 
 #pragma mark -
@@ -162,4 +164,6 @@
 - (NSAttributedString *)attributedText;
 - (void)setAttributedText:(NSAttributedString *)newAttributedText;
 
+- (void)appendAttributedText:(NSAttributedString *)newAttributedText;
+
 @end

Modified: trunk/SKTemplateTag.m
===================================================================
--- trunk/SKTemplateTag.m       2008-12-09 21:30:30 UTC (rev 5038)
+++ trunk/SKTemplateTag.m       2008-12-10 12:58:25 UTC (rev 5039)
@@ -254,6 +254,10 @@
     }
 }
 
+- (void)appendText:(NSString *)newText {
+    [self setText:[text stringByAppendingString:newText]];
+}
+
 @end
 
 #pragma mark -
@@ -285,4 +289,12 @@
     }
 }
 
+- (void)appendAttributedText:(NSAttributedString *)newAttributedText {
+    NSMutableAttributedString *newAttrText = [attributedText mutableCopy];
+    [newAttrText appendAttributedString:newAttributedText];
+    [newAttrText fixAttributesInRange:NSMakeRange(0, [newAttrText length])];
+    [self setAttributedText:newAttrText];
+    [newAttrText release];
+}
+
 @end


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to