Changeset 5217

Show
Ignore:
Timestamp:
02/04/08 10:55:46 (5 months ago)
Author:
morris
Message:

Clean up source a bit

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • Tuna/trunk/English.lproj/Profiler.nib/classes.nib

    r3409 r5217  
    1 
    2     IBClasses = ( 
    3         {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },  
    4         { 
    5             ACTIONS = {cancel = id; launch = id; set = id; };  
    6             CLASS = TNProfilerController;  
    7             LANGUAGE = ObjC;  
    8             OUTLETS = { 
    9                 "_argumentsComboBox" = NSComboBox;  
    10                 "_launchButton" = NSButton;  
    11                 "_progressIndicator" = NSProgressIndicator;  
    12                 "_scriptComboBox" = NSComboBox;  
    13                 "_setButton" = NSButton;  
    14             };  
    15             SUPERCLASS = WIWindowController;  
    16         },  
    17         { 
    18             CLASS = WIWindowController;  
    19             LANGUAGE = ObjC;  
    20             SUPERCLASS = NSWindowController;  
    21         } 
    22     );  
    23     IBVersion = 1;  
    24 
     1<?xml version="1.0" encoding="UTF-8"?> 
     2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
     3<plist version="1.0"> 
     4<dict> 
     5        <key>IBClasses</key> 
     6        <array> 
     7                <dict> 
     8                        <key>CLASS</key> 
     9                        <string>FirstResponder</string> 
     10                        <key>LANGUAGE</key> 
     11                        <string>ObjC</string> 
     12                        <key>SUPERCLASS</key> 
     13                        <string>NSObject</string> 
     14                </dict> 
     15                <dict> 
     16                        <key>CLASS</key> 
     17                        <string>WIWindowController</string> 
     18                        <key>LANGUAGE</key> 
     19                        <string>ObjC</string> 
     20                        <key>SUPERCLASS</key> 
     21                        <string>NSWindowController</string> 
     22                </dict> 
     23                <dict> 
     24                        <key>ACTIONS</key> 
     25                        <dict> 
     26                                <key>cancel</key> 
     27                                <string>id</string> 
     28                                <key>launch</key> 
     29                                <string>id</string> 
     30                                <key>set</key> 
     31                                <string>id</string> 
     32                        </dict> 
     33                        <key>CLASS</key> 
     34                        <string>TNProfilerController</string> 
     35                        <key>LANGUAGE</key> 
     36                        <string>ObjC</string> 
     37                        <key>OUTLETS</key> 
     38                        <dict> 
     39                                <key>_argumentsComboBox</key> 
     40                                <string>NSComboBox</string> 
     41                                <key>_launchButton</key> 
     42                                <string>NSButton</string> 
     43                                <key>_progressIndicator</key> 
     44                                <string>NSProgressIndicator</string> 
     45                                <key>_scriptComboBox</key> 
     46                                <string>NSComboBox</string> 
     47                                <key>_setButton</key> 
     48                                <string>NSButton</string> 
     49                        </dict> 
     50                        <key>SUPERCLASS</key> 
     51                        <string>WIWindowController</string> 
     52                </dict> 
     53        </array> 
     54        <key>IBVersion</key> 
     55        <string>1</string> 
     56</dict> 
     57</plist> 
  • Tuna/trunk/English.lproj/Profiler.nib/info.nib

    r3409 r5217  
    11<?xml version="1.0" encoding="UTF-8"?> 
    2 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
     2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
    33<plist version="1.0"> 
    44<dict> 
    5         <key>IBDocumentLocation</key> 
    6         <string>69 53 356 240 0 0 1280 1002 </string> 
    75        <key>IBFramework Version</key> 
    8         <string>443.0</string> 
     6        <string>629</string> 
     7        <key>IBLastKnownRelativeProjectPath</key> 
     8        <string>../../Tuna.xcodeproj</string> 
     9        <key>IBOldestOS</key> 
     10        <integer>5</integer> 
    911        <key>IBOpenObjects</key> 
    10         <array> 
    11                 <integer>5</integer> 
    12         </array> 
     12        <array/> 
    1313        <key>IBSystem Version</key> 
    14         <string>8F46</string> 
     14        <string>9B18</string> 
     15        <key>targetFramework</key> 
     16        <string>IBCocoaFramework</string> 
    1517</dict> 
    1618</plist> 
  • Tuna/trunk/TNMainController.m

    r5208 r5217  
    5353        controller = [[TNProfilerController alloc] init]; 
    5454        [controller showWindow:self]; 
     55        [controller release]; 
    5556} 
    5657 
     
    9596        controller = [[TNProfilerController alloc] init]; 
    9697        [controller showWindow:self]; 
     98        [controller release]; 
    9799         
    98100        return YES; 
  • Tuna/trunk/TNNode.m

    r5215 r5217  
    4040 
    4141 
     42@implementation TNNode(Private) 
     43 
     44@end 
     45 
     46 
     47 
    4248@implementation TNNode 
    4349 
     
    493499 
    494500 
     501@implementation TNPerlNode(Private) 
     502 
     503@end 
     504 
     505 
     506 
    495507@implementation TNPerlNode 
    496508 
  • Tuna/trunk/TNProfilerController.m

    r4995 r5217  
    3434@interface TNProfilerController(Private) 
    3535 
    36 - (void)updateButtons; 
    37 - (void)success; 
    38 - (void)error; 
     36- (void)_updateButtons; 
     37- (void)_success; 
     38- (void)_error; 
    3939 
    4040@end 
    4141 
    4242 
    43  
    44 @implementation TNProfilerController 
    45  
    46 - (id)init { 
    47         self = [super initWithWindowNibName:@"Profiler"]; 
    48          
    49         [[NSNotificationCenter defaultCenter] 
    50                 addObserver:self 
    51                    selector:@selector(taskDidTerminate:) 
    52                            name:NSTaskDidTerminateNotification 
    53                          object:NULL]; 
    54          
    55         _path = [[NSFileManager temporaryPathWithPrefix:@"Tuna"] retain]; 
    56         [[NSFileManager defaultManager] createDirectoryAtPath:_path]; 
    57          
    58         return self; 
    59 
    60  
    61  
    62  
    63 - (void)dealloc { 
    64         [[NSNotificationCenter defaultCenter] removeObserver:self]; 
    65          
    66         [_task release]; 
    67         [_pipe release]; 
    68          
    69         [[NSFileManager defaultManager] removeFileAtPath:_path]; 
    70         [_path release]; 
    71          
    72         [super dealloc]; 
    73 
    74  
    75  
    76  
    77 #pragma mark - 
    78  
    79 - (void)windowDidLoad { 
    80         [[self window] center]; 
    81     [self setShouldCascadeWindows:YES]; 
    82     [self setWindowFrameAutosaveName:@"Profiler"]; 
    83          
    84         [_scriptComboBox addItemsWithObjectValues:[TNSettings objectForKey:TNScriptsHistory]]; 
    85         [_argumentsComboBox addItemsWithObjectValues:[TNSettings objectForKey:TNArgumentsHistory]]; 
    86 
    87  
    88  
    89  
    90  
    91 - (void)windowWillClose:(NSNotification *)notification { 
    92         if(_task) { 
    93                 [_task terminate]; 
    94                 [_task release]; 
    95                 _task = NULL; 
    96         } 
    97  
    98         [self autorelease]; 
    99 
    100  
    101  
    102  
    103 - (void)taskDidTerminate:(NSNotification *)notification { 
    104         if([notification object] == _task) { 
    105                 if([_task terminationStatus] == 0) 
    106                         [self success]; 
    107                 else if(_started) 
    108                         [self error]; 
    109                  
    110                 _started = NO; 
    111  
    112                 [_task release]; 
    113                 _task = NULL; 
    114                  
    115                 [_pipe release]; 
    116                 _pipe = NULL; 
    117                  
    118                 [self updateButtons]; 
    119         } 
    120 
    121  
    122  
    123  
    124 - (void)setPanelDidEnd:(NSOpenPanel *)openPanel returnCode:(int)returnCode contextInfo:(void  *)contextInfo { 
    125         if(returnCode == NSOKButton) 
    126                 [_scriptComboBox setStringValue:[[openPanel filename] stringByAbbreviatingWithTildeInPath]]; 
    127 
    128  
    129  
    130  
    131 #pragma mark - 
    132  
    133 - (void)updateButtons { 
     43@implementation TNProfilerController(Private) 
     44 
     45- (void)_updateButtons { 
    13446        [_scriptComboBox setEnabled:!_started]; 
    13547        [_setButton setEnabled:!_started]; 
     
    14759 
    14860 
    149 - (void)success { 
     61- (void)_success { 
    15062        TNDocument                      *document; 
    15163        NSMutableArray          *scripts, *arguments; 
     
    203115 
    204116 
    205 - (void)error { 
     117- (void)_error { 
    206118        NSFileHandle    *fileHandle; 
    207119        NSData                  *data; 
     
    223135                                          NSLS(@"Tuna could not profile the script, because of Perl errors:\n\n%@", @"Error dialog description (errors)"), 
    224136                                          string); 
     137} 
     138 
     139@end 
     140 
     141 
     142 
     143@implementation TNProfilerController 
     144 
     145- (id)init { 
     146        self = [super initWithWindowNibName:@"Profiler"]; 
     147         
     148        [[NSNotificationCenter defaultCenter] 
     149                addObserver:self 
     150                   selector:@selector(taskDidTerminate:) 
     151                           name:NSTaskDidTerminateNotification 
     152                         object:NULL]; 
     153         
     154        _path = [[NSFileManager temporaryPathWithPrefix:@"Tuna"] retain]; 
     155        [[NSFileManager defaultManager] createDirectoryAtPath:_path]; 
     156         
     157        [self retain]; 
     158         
     159        return self; 
     160} 
     161 
     162 
     163 
     164- (void)dealloc { 
     165        [[NSNotificationCenter defaultCenter] removeObserver:self]; 
     166         
     167        [_task release]; 
     168        [_pipe release]; 
     169         
     170        [[NSFileManager defaultManager] removeFileAtPath:_path]; 
     171        [_path release]; 
     172         
     173        [super dealloc]; 
     174} 
     175 
     176 
     177 
     178#pragma mark - 
     179 
     180- (void)windowDidLoad { 
     181        [[self window] center]; 
     182    [self setShouldCascadeWindows:YES]; 
     183    [self setWindowFrameAutosaveName:@"Profiler"]; 
     184         
     185        [_scriptComboBox addItemsWithObjectValues:[TNSettings objectForKey:TNScriptsHistory]]; 
     186        [_argumentsComboBox addItemsWithObjectValues:[TNSettings objectForKey:TNArgumentsHistory]]; 
     187} 
     188 
     189 
     190 
     191 
     192- (void)windowWillClose:(NSNotification *)notification { 
     193        if(_task) { 
     194                [_task terminate]; 
     195                [_task release]; 
     196                _task = NULL; 
     197        } 
     198 
     199        [self autorelease]; 
     200} 
     201 
     202 
     203 
     204- (void)taskDidTerminate:(NSNotification *)notification { 
     205        if([notification object] == _task) { 
     206                if([_task terminationStatus] == 0) 
     207                        [self _success]; 
     208                else if(_started) 
     209                        [self _error]; 
     210                 
     211                _started = NO; 
     212 
     213                [_task release]; 
     214                _task = NULL; 
     215                 
     216                [_pipe release]; 
     217                _pipe = NULL; 
     218                 
     219                [self _updateButtons]; 
     220        } 
     221} 
     222 
     223 
     224 
     225- (void)setPanelDidEnd:(NSOpenPanel *)openPanel returnCode:(NSInteger)returnCode contextInfo:(void  *)contextInfo { 
     226        if(returnCode == NSOKButton) 
     227                [_scriptComboBox setStringValue:[[openPanel filename] stringByAbbreviatingWithTildeInPath]]; 
    225228} 
    226229 
     
    251254        NSMutableArray  *arguments; 
    252255        NSArray                 *components; 
    253         unsigned int  i, count; 
     256        NSUInteger            i, count; 
    254257         
    255258        if(_started) { 
     
    290293        _started = !_started; 
    291294         
    292         [self updateButtons]; 
     295        [self _updateButtons]; 
    293296} 
    294297 
  • Tuna/trunk/TNSessionController.m

    r5216 r5217  
    3434@interface TNSessionController(Private) 
    3535 
    36 - (void)updateDataMiningStatus; 
    37 - (void)selectHeaviestPath; 
    38 - (void)sortNodes; 
    39 - (TNNode *)selectedNode; 
    40 - (NSArray *)selectedNodes; 
    41 - (NSString *)stringFromTime:(double)time; 
     36- (void)_updateDataMiningStatus; 
     37- (void)_selectHeaviestPath; 
     38- (void)_sortNodes; 
     39- (TNNode *)_selectedNode; 
     40- (NSArray *)_selectedNodes; 
     41- (NSString *)_stringFromTime:(NSTimeInterval)time; 
     42 
     43@end 
     44 
     45 
     46@implementation TNSessionController(Private) 
     47 
     48- (void)_updateDataMiningStatus { 
     49        if([_tree canRestoreRootNode]) 
     50                [_dataMiningTextField setStringValue:NSLS(@"Data Mining Active", "Text field")]; 
     51        else 
     52                [_dataMiningTextField setStringValue:@""]; 
     53
     54 
     55 
     56 
     57- (void)_selectHeaviestPath { 
     58        TNNode          *node; 
     59        double          before, after, delta; 
     60        NSInteger       row; 
     61 
     62        node = [_tree rootNode]; 
     63         
     64        while([node children] > 0) { 
     65                before  = [node cumulativePercent]; 
     66                node    = [node childWithHighestCumulativePercent]; 
     67                after   = [node cumulativePercent]; 
     68                delta   = (before - after) / before; 
     69                 
     70                if(delta > 0.5) 
     71                        break; 
     72                 
     73                [_treeOutlineView expandItem:node]; 
     74        } 
     75         
     76        row = [_treeOutlineView rowForItem:node]; 
     77         
     78        if(row >= 0) { 
     79                [_treeOutlineView selectRow:row byExtendingSelection:NO]; 
     80                [_treeOutlineView scrollRowToVisible:row]; 
     81        } 
     82
     83 
     84 
     85 
     86- (void)_sortNodes { 
     87        NSTableColumn   *tableColumn;; 
     88        SEL                             selector; 
     89         
     90        tableColumn = [_treeOutlineView highlightedTableColumn]; 
     91        selector = @selector(compareSymbol:); 
     92         
     93        if(tableColumn == _selfTableColumn) { 
     94                if(_statsDisplayMode == TNStatsDisplayValue) 
     95                        selector = @selector(compareValue:); 
     96                else if(_statsDisplayMode == TNStatsDisplayPercent) 
     97                        selector = @selector(comparePercent:); 
     98        } 
     99        else if(tableColumn == _totalTableColumn) { 
     100                if(_statsDisplayMode == TNStatsDisplayValue) 
     101                        selector = @selector(compareCumulativeValue:); 
     102                else if(_statsDisplayMode == TNStatsDisplayPercent) 
     103                        selector = @selector(compareCumulativePercent:); 
     104        } 
     105        else if(tableColumn == _libraryTableColumn) 
     106                selector = @selector(compareLibrary:); 
     107        else if(tableColumn == _symbolTableColumn) 
     108                selector = @selector(compareSymbol:); 
     109 
     110        [[_tree rootNode] sortUsingSelector:selector order:[_treeOutlineView sortOrder]]; 
     111
     112 
     113 
     114 
     115- (TNNode *)_selectedNode { 
     116        NSInteger               row; 
     117         
     118        row = [_treeOutlineView selectedRow]; 
     119         
     120        if(row < 0) 
     121                return NULL; 
     122         
     123        return [_treeOutlineView itemAtRow:row]; 
     124
     125 
     126 
     127 
     128- (NSArray *)_selectedNodes { 
     129        NSEnumerator    *enumerator; 
     130        NSMutableArray  *nodes; 
     131        NSNumber                *row; 
     132         
     133        nodes = [NSMutableArray array]; 
     134        enumerator = [_treeOutlineView selectedRowEnumerator]; 
     135         
     136        while((row = [enumerator nextObject])) 
     137                [nodes addObject:[_treeOutlineView itemAtRow:[row unsignedIntValue]]]; 
     138         
     139        return nodes; 
     140
     141 
     142 
     143 
     144- (NSString *)_stringFromTime:(NSTimeInterval)time { 
     145        NSString        *unit; 
     146         
     147        unit = @"s"; 
     148         
     149        if(time < 0.000001) { 
     150                time *= 1000000000.0; 
     151                unit = @"ns"; 
     152        } 
     153        else if(time < 0.001) { 
     154                time *= 1000000.0; 
     155                unit = [NSSWF:@"%Cs", 0x00B5]; 
     156        } 
     157        else if(time < 1.0) { 
     158                time *= 1000.0; 
     159                unit = @"ms"; 
     160        } 
     161         
     162        return [NSSWF:@"%.1f %@", time, unit]; 
     163
    42164 
    43165@end 
     
    87209                [_perlVersionTextField setStringValue:[_tree version]]; 
    88210                [_perlFrequencyTextField setIntValue:[_tree frequency]]; 
    89                 [_perlUserTimeTextField setStringValue:[self stringFromTime:[_tree userTime]]]; 
    90                 [_perlSystemTimeTextField setStringValue:[self stringFromTime:[_tree systemTime]]]; 
    91                 [_perlWallclockTimeTextField setStringValue:[self stringFromTime:[_tree wallclockTime]]]; 
     211                [_perlUserTimeTextField setStringValue:[self _stringFromTime:[_tree userTime]]]; 
     212                [_perlSystemTimeTextField setStringValue:[self _stringFromTime:[_tree systemTime]]]; 
     213                [_perlWallclockTimeTextField setStringValue:[self _stringFromTime:[_tree wallclockTime]]]; 
    92214        } else { 
    93215                [_treeOutlineView removeTableColumn:_selfTableColumn]; 
    94216        } 
    95217         
    96         [self sortNodes]; 
    97         [_treeOutlineView reloadData]; 
    98         [self selectHeaviestPath]; 
    99          
    100         [self updateDataMiningStatus]; 
     218        [self _sortNodes]; 
     219        [_treeOutlineView reloadData]; 
     220        [self _selectHeaviestPath]; 
     221         
     222        [self _updateDataMiningStatus]; 
    101223         
    102224        [[self window] makeFirstResponder:_treeOutlineView]; 
     
    105227 
    106228 
    107 - (void)infoSheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo { 
     229- (void)infoSheetDidEnd:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo { 
    108230        [sheet close]; 
    109231} 
     
    124246           selector == @selector(focusSymbol:) || 
    125247           selector == @selector(focusLibrary:)) { 
    126                 node = [self selectedNode]; 
     248                node = [self _selectedNode]; 
    127249                 
    128250                if(node ) { 
     
    166288 
    167289 
    168 - (void)updateDataMiningStatus { 
    169         if([_tree canRestoreRootNode]) 
    170                 [_dataMiningTextField setStringValue:NSLS(@"Data Mining Active", "Text field")]; 
    171         else 
    172                 [_dataMiningTextField setStringValue:@""]; 
    173 } 
    174  
    175  
    176  
    177 - (void)selectHeaviestPath { 
    178         TNNode          *node; 
    179         double          before, after, delta; 
    180         NSInteger       row; 
    181  
    182         node = [_tree rootNode]; 
    183          
    184         while([node children] > 0) { 
    185                 before  = [node cumulativePercent]; 
    186                 node    = [node childWithHighestCumulativePercent]; 
    187                 after   = [node cumulativePercent]; 
    188                 delta   = (before - after) / before; 
    189                  
    190                 if(delta > 0.5) 
    191                         break; 
    192                  
    193                 [_treeOutlineView expandItem:node]; 
    194         } 
    195          
    196         row = [_treeOutlineView rowForItem:node]; 
    197          
    198         if(row >= 0) { 
    199                 [_treeOutlineView selectRow:row byExtendingSelection:NO]; 
    200                 [_treeOutlineView scrollRowToVisible:row]; 
    201         } 
    202 } 
    203  
    204  
    205  
    206 - (void)sortNodes { 
    207         NSTableColumn   *tableColumn;; 
    208         SEL                             selector; 
    209          
    210         tableColumn = [_treeOutlineView highlightedTableColumn]; 
    211         selector = @selector(compareSymbol:); 
    212          
    213         if(tableColumn == _selfTableColumn) { 
    214                 if(_statsDisplayMode == TNStatsDisplayValue) 
    215                         selector = @selector(compareValue:); 
    216                 else if(_statsDisplayMode == TNStatsDisplayPercent) 
    217                         selector = @selector(comparePercent:); 
    218         } 
    219         else if(tableColumn == _totalTableColumn) { 
    220                 if(_statsDisplayMode == TNStatsDisplayValue) 
    221                         selector = @selector(compareCumulativeValue:); 
    222                 else if(_statsDisplayMode == TNStatsDisplayPercent) 
    223                         selector = @selector(compareCumulativePercent:); 
    224         } 
    225         else if(tableColumn == _libraryTableColumn) 
    226                 selector = @selector(compareLibrary:); 
    227         else if(tableColumn == _symbolTableColumn) 
    228                 selector = @selector(compareSymbol:); 
    229  
    230         [[_tree rootNode] sortUsingSelector:selector order:[_treeOutlineView sortOrder]]; 
    231 } 
    232  
    233  
    234  
    235 - (TNNode *)selectedNode { 
    236         int                     row; 
    237          
    238         row = [_treeOutlineView selectedRow]; 
    239          
    240         if(row < 0) 
    241                 return NULL; 
    242          
    243         return [_treeOutlineView itemAtRow:row]; 
    244 } 
    245  
    246  
    247  
    248 - (NSArray *)selectedNodes { 
    249         NSEnumerator    *enumerator; 
    250         NSMutableArray  *nodes; 
    251         NSNumber                *row; 
    252          
    253         nodes = [NSMutableArray array]; 
    254         enumerator = [_treeOutlineView selectedRowEnumerator]; 
    255          
    256         while((row = [enumerator nextObject])) 
    257                 [nodes addObject:[_treeOutlineView itemAtRow:[row unsignedIntValue]]]; 
    258          
    259         return nodes; 
    260 } 
    261  
    262  
    263  
    264 - (NSString *)stringFromTime:(double)time { 
    265         NSString        *unit; 
    266          
    267         unit = @"s"; 
    268          
    269         if(time < 0.000001) { 
    270                 time *= 1000000000.0; 
    271                 unit = @"ns"; 
    272         } 
    273         else if(time < 0.001) { 
    274                 time *= 1000000.0; 
    275                 unit = [NSSWF:@"%Cs", 0x00B5]; 
    276         } 
    277         else if(time < 1.0) { 
    278                 time *= 1000.0; 
    279                 unit = @"ms"; 
    280         } 
    281          
    282         return [NSSWF:@"%.1f %@", time, unit]; 
    283 } 
    284  
    285  
    286  
    287290#pragma mark - 
    288291 
     
    293296        NSInteger               row; 
    294297         
    295         selectedNode = [self selectedNode]; 
     298        selectedNode = [self _selectedNode]; 
    296299        node = [[_tree rootNode] nodeMatchingSymbolSubstring:string afterNode:selectedNode]; 
    297300         
     
    346349- (void)removeCallstackWithSymbol:(id)sender { 
    347350        TNNode          *node, *rootNode; 
    348         int                   row; 
     351        NSInteger     row; 
    349352         
    350353        row = [_treeOutlineView selectedRow]; 
     
    352355        rootNode = [[_tree rootNode] retain]; 
    353356        node = [rootNode copy]; 
    354         [[self selectedNode] unlink]; 
     357        [[self _selectedNode] unlink]; 
    355358        [rootNode refreshPercent]; 
    356359        [_tree popRootNode]; 
     
    366369                        [_treeOutlineView selectRow:row > 0 ? row - 1 : 0 byExtendingSelection:NO]; 
    367370                 
    368                 [_treeOutlineView expandItem:[self selectedNode]]; 
    369         } 
    370          
    371         [self updateDataMiningStatus]; 
     371                [_treeOutlineView expandItem:[self _selectedNode]]; 
     372        } 
     373         
     374        [self _updateDataMiningStatus]; 
    372375} 
    373376 
     
    378381         
    379382        node = [[TNNode alloc] init]; 
    380         [node addChild:[self selectedNode]]; 
     383        [node addChild:[self _selectedNode]]; 
    381384        [node refreshPercent]; 
    382385        [_tree pushRootNode:node]; 
     
    387390        if([_treeOutlineView numberOfRows] > 0) { 
    388391                [_treeOutlineView selectRow:0 byExtendingSelection:NO]; 
    389                 [_treeOutlineView expandItem:[self selectedNode]]; 
    390         } 
    391  
    392         [self updateDataMiningStatus]; 
     392                [_treeOutlineView expandItem:[self _selectedNode]]; 
     393        } 
     394 
     395        [self _updateDataMiningStatus]; 
    393396} 
    394397 
     
    401404        NSUInteger              i, count; 
    402405         
    403         library = [[[self selectedNode] function] library]; 
     406        library = [[[self _selectedNode] function] library]; 
    404407        node = [[TNNode alloc] init]; 
    405408        nodes = [[_tree rootNode] nodesMatchingLibrary:library]; 
     
    421424        if([_treeOutlineView numberOfRows] > 0) { 
    422425                [_treeOutlineView selectRow:0 byExtendingSelection:NO]; 
    423                 [_treeOutlineView expandItem:[self selectedNode]]; 
    424         } 
    425  
    426         [self updateDataMiningStatus]; 
     426                [_treeOutlineView expandItem:[self _selectedNode]]; 
     427        } 
     428 
     429        [self _updateDataMiningStatus]; 
    427430} 
    428431 
     
    438441        if([_treeOutlineView numberOfRows] > 0) { 
    439442                [_treeOutlineView selectRow:0 byExtendingSelection:NO]; 
    440                 [_treeOutlineView expandItem:[self selectedNode]]; 
    441         } 
    442  
    443         [self updateDataMiningStatus]; 
    444         [self selectHeaviestPath]; 
     443                [_treeOutlineView expandItem:[self _selectedNode]]; 
     444        } 
     445 
     446        [self _updateDataMiningStatus]; 
     447        [self _selectHeaviestPath]; 
    445448} 
    446449 
     
    456459        if([_treeOutlineView numberOfRows] > 0) { 
    457460                [_treeOutlineView selectRow:0 byExtendingSelection:NO]; 
    458                 [_treeOutlineView expandItem:[self selectedNode]]; 
    459         } 
    460  
    461         [self updateDataMiningStatus]; 
    462         [self selectHeaviestPath]; 
     461                [_treeOutlineView expandItem:[self _selectedNode]]; 
     462        } 
     463 
     464        [self _updateDataMiningStatus]; 
     465        [self _selectHeaviestPath]; 
    463466} 
    464467 
     
    501504        [_treeOutlineView reloadData]; 
    502505 
    503         [self updateDataMiningStatus]; 
     506        [self _updateDataMiningStatus]; 
    504507} 
    505508 
     
    522525#pragma mark - 
    523526 
    524 - (int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item { 
     527- (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item { 
    525528        if(!item) 
    526529                return [(TNNode *) [_tree rootNode] children]; 
     
    554557                                        : [(TNPerlNode *) node cumulativeTime]; 
    555558 
    556                                 return [self stringFromTime:time]; 
     559                                return [self _stringFromTime:time]; 
    557560                        } else { 
    558561                                return [NSSWF:@"%u", [node calls]]; 
     
    611614- (BOOL)outlineView:(NSOutlineView *)outlineView shouldSelectTableColumn:(NSTableColumn *)tableColumn { 
    612615    [_treeOutlineView setHighlightedTableColumn:tableColumn]; 
    613     [self sortNodes]; 
     616    [self _sortNodes]; 
    614617    [_treeOutlineView reloadData]; 
    615618 
  • Tuna/trunk/TNTree.m

    r5206 r5217  
    4747        [super dealloc]; 
    4848} 
    49  
    5049 
    5150