Revision: 7662
          http://skim-app.svn.sourceforge.net/skim-app/?rev=7662&view=rev
Author:   hofman
Date:     2012-02-22 11:53:09 +0000 (Wed, 22 Feb 2012)
Log Message:
-----------
Simplify getting possibly removed table column for note outline view

Modified Paths:
--------------
    trunk/SKMainWindowController.m
    trunk/SKNoteOutlineView.h
    trunk/SKNoteOutlineView.m

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2012-02-22 00:32:41 UTC (rev 7661)
+++ trunk/SKMainWindowController.m      2012-02-22 11:53:09 UTC (rev 7662)
@@ -648,8 +648,6 @@
 
 - (void)updatePageColumnWidthForTableView:(NSTableView *)tv {
     NSTableColumn *tableColumn = [tv tableColumnWithIdentifier:PAGE_COLUMNID];
-    if (tableColumn == nil && [tv 
respondsToSelector:@selector(removedTableColumnWithIdentifier:)])
-        tableColumn = [(SKNoteOutlineView *)tv 
removedTableColumnWithIdentifier:PAGE_COLUMNID];
     id cell = [tableColumn dataCell];
     CGFloat labelWidth = [tv headerView] ? [[tableColumn headerCell] 
cellSize].width : 0.0;
     

Modified: trunk/SKNoteOutlineView.h
===================================================================
--- trunk/SKNoteOutlineView.h   2012-02-22 00:32:41 UTC (rev 7661)
+++ trunk/SKNoteOutlineView.h   2012-02-22 11:53:09 UTC (rev 7662)
@@ -42,14 +42,12 @@
 @protocol SKNoteOutlineViewDelegate;
 
 @interface SKNoteOutlineView : SKOutlineView {
-    NSMutableSet *removedTableColumns;
+    NSArray *allTableColumns;
 }
 
 @property (nonatomic, retain) NSArray *tableColumnIdentifiers;
 @property (nonatomic, retain) NSDictionary *tableColumnWidths;
 
-- (NSTableColumn *)removedTableColumnWithIdentifier:(NSString *)identifier;
-
 - (void)toggleTableColumn:(id)sender;
 
 #if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_5

Modified: trunk/SKNoteOutlineView.m
===================================================================
--- trunk/SKNoteOutlineView.m   2012-02-22 00:32:41 UTC (rev 7661)
+++ trunk/SKNoteOutlineView.m   2012-02-22 11:53:09 UTC (rev 7662)
@@ -59,24 +59,8 @@
 
 @dynamic tableColumnIdentifiers, tableColumnWidths;
 
-- (id)initWithFrame:(NSRect)frameRect {
-    self = [super initWithFrame:frameRect];
-    if (self) {
-        removedTableColumns = [[NSMutableSet alloc] init];
-    }
-    return self;
-}
-
-- (id)initWithCoder:(NSCoder *)decoder {
-    self = [super initWithCoder:decoder];
-    if (self) {
-        removedTableColumns = [[NSMutableSet alloc] init];
-    }
-    return self;
-}
-
 - (void)dealloc {
-    SKDESTROY(removedTableColumns);
+    SKDESTROY(allTableColumns);
     [super dealloc];
 }
 
@@ -98,6 +82,8 @@
 }
 
 - (void)awakeFromNib {
+    allTableColumns = [[self tableColumns] copy];
+    
     [[self tableColumnWithIdentifier:COLOR_COLUMNID] 
setDataCell:[[[SKColorCell alloc] init] autorelease]];
     
     NSMenu *menu = [NSMenu menu];
@@ -233,26 +219,13 @@
     }
 }
 
-- (void)addTableColumn:(NSTableColumn *)tableColumn {
-    [super addTableColumn:tableColumn];
-    [removedTableColumns removeObject:tableColumn];
-    if ([[self delegate] 
respondsToSelector:@selector(outlineViewTableColumnsDidChange:)])
-        [[self delegate] outlineViewTableColumnsDidChange:self];
-}
-
-- (void)removeTableColumn:(NSTableColumn *)tableColumn {
-    [removedTableColumns addObject:tableColumn];
-    [super removeTableColumn:tableColumn];
-    if ([[self delegate] 
respondsToSelector:@selector(outlineViewTableColumnsDidChange:)])
-        [[self delegate] outlineViewTableColumnsDidChange:self];
-}
-
-- (NSTableColumn *)removedTableColumnWithIdentifier:(NSString *)identifier {
-    for (NSTableColumn *tc in removedTableColumns) {
-        if ([[tc identifier] isEqualToString:identifier])
-            return tc;
+- (NSTableColumn *)tableColumnWithIdentifier:(NSString *)identifier {
+    NSTableColumn *tc = [super tableColumnWithIdentifier:identifier];
+    if (tc == nil) {
+        for (tc in allTableColumns)
+            if ([[tc identifier] isEqualToString:identifier]) break;
     }
-    return nil;
+    return tc;
 }
 
 - (NSArray *)tableColumnIdentifiers {
@@ -268,7 +241,7 @@
         for (NSString *identifier in identifiers) {
             column = [self columnWithIdentifier:identifier];
             if (column == -1) {
-                NSTableColumn *tc = [self 
removedTableColumnWithIdentifier:identifier];
+                NSTableColumn *tc = [self 
tableColumnWithIdentifier:identifier];
                 if (tc == nil)
                     continue;
                 column = [self numberOfColumns];
@@ -310,11 +283,13 @@
     NSString *identifier = [sender representedObject];
     NSTableColumn *tc = [self tableColumnWithIdentifier:identifier];
     if (tc) {
-        [self removeTableColumn:tc];
+        if ([[self tableColumns] containsObject:tc])
+            [self removeTableColumn:tc];
+        else
+            [self addTableColumn:tc];
         [self sizeToFit];
-    } else if ((tc = [self removedTableColumnWithIdentifier:identifier])) {
-        [self addTableColumn:tc];
-        [self sizeToFit];
+        if ([[self delegate] 
respondsToSelector:@selector(outlineViewTableColumnsDidChange:)])
+            [[self delegate] outlineViewTableColumnsDidChange:self];
     }
 }
 

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


------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to