Changeset 7362


Ignore:
Timestamp:
Dec 13, 2008, 5:18:28 PM (12 years ago)
Author:
livings124
Message:

add an all/any button to the group rules sheet

Location:
trunk/macosx
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/macosx/GroupRules.xib

    r7324 r7362  
    198198                                                        <reference key="NSNextResponder" ref="464768712"/>
    199199                                                        <int key="NSvFlags">270</int>
    200                                                         <string key="NSFrame">{{17, 81}, {437, 17}}</string>
     200                                                        <string key="NSFrame">{{76, 81}, {378, 17}}</string>
    201201                                                        <reference key="NSSuperview" ref="464768712"/>
    202202                                                        <bool key="NSEnabled">YES</bool>
     
    204204                                                                <int key="NSCellFlags">67239424</int>
    205205                                                                <int key="NSCellFlags2">272629760</int>
    206                                                                 <string key="NSContents">description</string>
     206                                                                <string key="NSContents">criteria mustbe met to assign a transfer on add.</string>
    207207                                                                <object class="NSFont" key="NSSupport">
    208208                                                                        <string key="NSName">LucidaGrande</string>
     
    223223                                                        </object>
    224224                                                </object>
     225                                                <object class="NSPopUpButton" id="197810941">
     226                                                        <reference key="NSNextResponder" ref="464768712"/>
     227                                                        <int key="NSvFlags">268</int>
     228                                                        <string key="NSFrame">{{17, 77}, {57, 22}}</string>
     229                                                        <reference key="NSSuperview" ref="464768712"/>
     230                                                        <bool key="NSEnabled">YES</bool>
     231                                                        <object class="NSPopUpButtonCell" key="NSCell" id="292386544">
     232                                                                <int key="NSCellFlags">-2076049856</int>
     233                                                                <int key="NSCellFlags2">133120</int>
     234                                                                <object class="NSFont" key="NSSupport">
     235                                                                        <string key="NSName">LucidaGrande</string>
     236                                                                        <double key="NSSize">1.100000e+01</double>
     237                                                                        <int key="NSfFlags">3100</int>
     238                                                                </object>
     239                                                                <reference key="NSControlView" ref="197810941"/>
     240                                                                <int key="NSButtonFlags">109199615</int>
     241                                                                <int key="NSButtonFlags2">129</int>
     242                                                                <string key="NSAlternateContents"/>
     243                                                                <string key="NSKeyEquivalent"/>
     244                                                                <int key="NSPeriodicDelay">400</int>
     245                                                                <int key="NSPeriodicInterval">75</int>
     246                                                                <object class="NSMenuItem" key="NSMenuItem" id="47707498">
     247                                                                        <reference key="NSMenu" ref="533472230"/>
     248                                                                        <string key="NSTitle">All</string>
     249                                                                        <string key="NSKeyEquiv"/>
     250                                                                        <int key="NSKeyEquivModMask">1048576</int>
     251                                                                        <int key="NSMnemonicLoc">2147483647</int>
     252                                                                        <int key="NSState">1</int>
     253                                                                        <object class="NSCustomResource" key="NSOnImage" id="205784288">
     254                                                                                <string key="NSClassName">NSImage</string>
     255                                                                                <string key="NSResourceName">NSMenuCheckmark</string>
     256                                                                        </object>
     257                                                                        <object class="NSCustomResource" key="NSMixedImage" id="293296343">
     258                                                                                <string key="NSClassName">NSImage</string>
     259                                                                                <string key="NSResourceName">NSMenuMixedState</string>
     260                                                                        </object>
     261                                                                        <string key="NSAction">_popUpItemAction:</string>
     262                                                                        <reference key="NSTarget" ref="292386544"/>
     263                                                                </object>
     264                                                                <bool key="NSMenuItemRespectAlignment">YES</bool>
     265                                                                <object class="NSMenu" key="NSMenu" id="533472230">
     266                                                                        <string key="NSTitle">OtherViews</string>
     267                                                                        <object class="NSMutableArray" key="NSMenuItems">
     268                                                                                <bool key="EncodedWithXMLCoder">YES</bool>
     269                                                                                <reference ref="47707498"/>
     270                                                                                <object class="NSMenuItem" id="627736956">
     271                                                                                        <reference key="NSMenu" ref="533472230"/>
     272                                                                                        <string key="NSTitle">Any</string>
     273                                                                                        <string key="NSKeyEquiv"/>
     274                                                                                        <int key="NSKeyEquivModMask">1048576</int>
     275                                                                                        <int key="NSMnemonicLoc">2147483647</int>
     276                                                                                        <reference key="NSOnImage" ref="205784288"/>
     277                                                                                        <reference key="NSMixedImage" ref="293296343"/>
     278                                                                                        <string key="NSAction">_popUpItemAction:</string>
     279                                                                                        <int key="NSTag">1</int>
     280                                                                                        <reference key="NSTarget" ref="292386544"/>
     281                                                                                </object>
     282                                                                        </object>
     283                                                                        <bool key="NSNoAutoenable">YES</bool>
     284                                                                </object>
     285                                                                <int key="NSPreferredEdge">1</int>
     286                                                                <bool key="NSUsesItemFromMenu">YES</bool>
     287                                                                <bool key="NSAltersState">YES</bool>
     288                                                                <int key="NSArrowPosition">2</int>
     289                                                        </object>
     290                                                </object>
    225291                                        </object>
    226292                                        <string key="NSFrameSize">{471, 118}</string>
     
    299365                                        <int key="connectionID">22</int>
    300366                                </object>
     367                                <object class="IBConnectionRecord">
     368                                        <object class="IBOutletConnection" key="connection">
     369                                                <string key="label">fRulesAllAnyButton</string>
     370                                                <reference key="source" ref="1001"/>
     371                                                <reference key="destination" ref="197810941"/>
     372                                        </object>
     373                                        <int key="connectionID">30</int>
     374                                </object>
    301375                        </object>
    302376                        <object class="IBMutableOrderedSet" key="objectRecords">
     
    346420                                                        <reference ref="929052796"/>
    347421                                                        <reference ref="1048345917"/>
     422                                                        <reference ref="772030743"/>
     423                                                        <reference ref="197810941"/>
    348424                                                        <reference ref="332791107"/>
    349                                                         <reference ref="772030743"/>
    350425                                                </object>
    351426                                                <reference key="parent" ref="154698973"/>
     
    418493                                                <reference key="object" ref="1052460241"/>
    419494                                                <reference key="parent" ref="929052796"/>
     495                                        </object>
     496                                        <object class="IBObjectRecord">
     497                                                <int key="objectID">23</int>
     498                                                <reference key="object" ref="197810941"/>
     499                                                <object class="NSMutableArray" key="children">
     500                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     501                                                        <reference ref="292386544"/>
     502                                                </object>
     503                                                <reference key="parent" ref="464768712"/>
     504                                        </object>
     505                                        <object class="IBObjectRecord">
     506                                                <int key="objectID">24</int>
     507                                                <reference key="object" ref="292386544"/>
     508                                                <object class="NSMutableArray" key="children">
     509                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     510                                                        <reference ref="533472230"/>
     511                                                </object>
     512                                                <reference key="parent" ref="197810941"/>
     513                                        </object>
     514                                        <object class="IBObjectRecord">
     515                                                <int key="objectID">25</int>
     516                                                <reference key="object" ref="533472230"/>
     517                                                <object class="NSMutableArray" key="children">
     518                                                        <bool key="EncodedWithXMLCoder">YES</bool>
     519                                                        <reference ref="47707498"/>
     520                                                        <reference ref="627736956"/>
     521                                                </object>
     522                                                <reference key="parent" ref="292386544"/>
     523                                        </object>
     524                                        <object class="IBObjectRecord">
     525                                                <int key="objectID">26</int>
     526                                                <reference key="object" ref="47707498"/>
     527                                                <reference key="parent" ref="533472230"/>
     528                                        </object>
     529                                        <object class="IBObjectRecord">
     530                                                <int key="objectID">27</int>
     531                                                <reference key="object" ref="627736956"/>
     532                                                <reference key="parent" ref="533472230"/>
    420533                                        </object>
    421534                                </object>
     
    440553                                        <string>12.IBPluginDependency</string>
    441554                                        <string>2.IBPluginDependency</string>
     555                                        <string>23.IBPluginDependency</string>
     556                                        <string>24.IBPluginDependency</string>
     557                                        <string>25.IBEditorWindowLastContentRect</string>
     558                                        <string>25.IBPluginDependency</string>
     559                                        <string>26.IBPluginDependency</string>
     560                                        <string>27.IBPluginDependency</string>
    442561                                        <string>3.IBPluginDependency</string>
    443562                                        <string>4.IBPluginDependency</string>
     
    467586                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    468587                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     588                                        <string>{{291, 385}, {84, 37}}</string>
     589                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     590                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     591                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     592                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     593                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    469594                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
    470595                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
     
    494619                        </object>
    495620                        <nil key="sourceID"/>
    496                         <int key="maxID">22</int>
     621                        <int key="maxID">30</int>
    497622                </object>
    498623                <object class="IBClassDescriber" key="IBDocument.Classes">
     
    537662                                                        <string>fGroupRulesSheetWindow</string>
    538663                                                        <string>fRuleEditor</string>
     664                                                        <string>fRulesAllAnyButton</string>
    539665                                                        <string>fRulesSheetCancelButton</string>
    540666                                                        <string>fRulesSheetDescriptionField</string>
     
    554680                                                        <string>NSWindow</string>
    555681                                                        <string>NSRuleEditor</string>
     682                                                        <string>NSPopUpButton</string>
    556683                                                        <string>NSButton</string>
    557684                                                        <string>NSTextField</string>
  • trunk/macosx/GroupsController.h

    r7315 r7362  
    5858- (void) setAutoAssignRules: (NSArray *) rules forIndex: (NSInteger) index;
    5959
     60- (BOOL) rulesNeedAllForIndex: (NSInteger) index;
     61- (void) setRulesNeedAllForIndex: (BOOL) all forIndex: (NSInteger) index;
     62
    6063- (void) addNewGroup;
    6164- (void) removeGroupWithRowIndex: (NSInteger) row;
  • trunk/macosx/GroupsController.m

    r7324 r7362  
    240240}
    241241
     242- (BOOL) rulesNeedAllForIndex: (NSInteger) index
     243{
     244    NSInteger orderIndex = [self rowValueForIndex: index];
     245    if (orderIndex == -1)
     246        return YES;
     247   
     248    NSNumber * enforceAll = [[fGroups objectAtIndex: orderIndex] objectForKey: @"AssignRulesNeedAll"];
     249    return !enforceAll || [enforceAll boolValue];
     250}
     251
     252- (void) setRulesNeedAllForIndex: (BOOL) all forIndex: (NSInteger) index
     253{
     254    NSMutableDictionary * group = [fGroups objectAtIndex: [self rowValueForIndex: index]];
     255   
     256    [group setObject: [NSNumber numberWithBool: all] forKey: @"AssignRulesNeedAll"];
     257   
     258    [[GroupsController groups] saveGroups];
     259}
     260
    242261- (void) addNewGroup
    243262{
     
    431450        return NO;
    432451   
    433     #warning should rules be dict instead of array?
     452    const BOOL needAll = [self rulesNeedAllForIndex: index];
     453   
    434454    NSEnumerator * iterator = [rules objectEnumerator];
    435455    NSArray * rule = nil;
     
    445465            continue;
    446466       
     467        BOOL match = NO;
     468       
    447469        NSStringCompareOptions options = NSCaseInsensitiveSearch;
    448470        if ([place isEqualToString: @"ends"])
    449471            options += NSBackwardsSearch;
    450         BOOL match = NO;
    451472       
    452473        NSEnumerator * enumerator = [values objectEnumerator];
     
    455476        {
    456477            NSRange result = [value rangeOfString: givenValue options: options];
     478           
    457479            if ([place isEqualToString: @"begins"])
    458             {
    459                 if (result.location == 0)
    460                     match = YES;
    461             }
     480                match = result.location == 0;
    462481            else if ([place isEqualToString: @"contains"])
    463             {
    464                 if (result.location != NSNotFound)
    465                     match = YES;
    466             }
     482                match = result.location != NSNotFound;
    467483            else if ([place isEqualToString: @"ends"])
    468             {
    469                 if (NSMaxRange(result) == [value length])
    470                     match = YES;
    471             }
     484                match = NSMaxRange(result) == [value length];
    472485            else
    473486                break;
    474487        }
    475488       
    476         if (!match)
     489        if (match && !needAll)
     490            return YES;
     491        else if (!match && needAll)
    477492            return NO;
    478     }
    479     return YES;
     493        else;
     494    }
     495   
     496    return needAll;
    480497}
    481498
  • trunk/macosx/GroupsPrefsController.h

    r7324 r7362  
    4545    IBOutlet NSButton * fRulesSheetOKButton, * fRulesSheetCancelButton;
    4646    IBOutlet NSTextField * fRulesSheetDescriptionField;
     47    IBOutlet NSPopUpButton * fRulesAllAnyButton;
    4748}
    4849
  • trunk/macosx/GroupsPrefsController.m

    r7327 r7362  
    3434#define REMOVE_TAG 1
    3535
     36#define RULES_ALL_TAG 0
     37#define RULES_ANY_TAG 1
     38
    3639@interface GroupsPrefsController (Private)
    3740
     
    5659    [fRulesSheetOKButton setStringValue: NSLocalizedString(@"OK", "Groups -> rule editor -> button")];
    5760    [fRulesSheetCancelButton setStringValue: NSLocalizedString(@"Cancel", "Groups -> rule editor -> button")];
    58     [fRulesSheetDescriptionField setStringValue: NSLocalizedString(@"All criteria must be met to assign a transfer on add.",
    59                                                     "Groups -> rule editor -> button")];
     61    [fRulesSheetDescriptionField setStringValue: NSLocalizedString(@"criteria must be met to assign a transfer on add.",
     62                                                    "Groups -> rule editor -> button (All/Any criteria must....)")];
     63   
     64    [[fRulesAllAnyButton itemAtIndex: [fRulesAllAnyButton indexOfItemWithTag: RULES_ALL_TAG]] setTitle:
     65        NSLocalizedString(@"All", "Groups -> rule editor -> all/any")];
     66    [[fRulesAllAnyButton itemAtIndex: [fRulesAllAnyButton indexOfItemWithTag: RULES_ANY_TAG]] setTitle:
     67        NSLocalizedString(@"Any", "Groups -> rule editor -> all/any")];
    6068   
    6169    [fSelectedColorView addObserver: self forKeyPath: @"color" options: 0 context: NULL];
     
    273281        includeSubrows: YES];
    274282
    275     NSInteger index = [[GroupsController groups] indexForRow: [fTableView selectedRow]];
     283    const NSInteger index = [[GroupsController groups] indexForRow: [fTableView selectedRow]];
    276284    NSArray * rules = [[GroupsController groups] autoAssignRulesForIndex: index];
    277285    if (rules)
     
    283291        }
    284292    }
    285 
     293   
    286294    if ([fRuleEditor numberOfRows] == 0)
    287295        [fRuleEditor addRow: nil];
    288 
     296   
     297    [fRulesAllAnyButton selectItemWithTag: [[GroupsController groups] rulesNeedAllForIndex: index] ? RULES_ALL_TAG : RULES_ANY_TAG];
     298   
    289299    [NSApp beginSheet: fGroupRulesSheetWindow modalForWindow: [fTableView window] modalDelegate: nil didEndSelector: NULL
    290300        contextInfo: NULL];
     
    311321   
    312322    NSInteger index = [[GroupsController groups] indexForRow: [fTableView selectedRow]];
     323    [[GroupsController groups] setRulesNeedAllForIndex: [[fRulesAllAnyButton selectedItem] tag] == RULES_ALL_TAG forIndex: index];
    313324    [[GroupsController groups] setUsesAutoAssignRules: YES forIndex: index];
    314325   
Note: See TracChangeset for help on using the changeset viewer.