Change the user's default type from the Mac UI.
This commit is contained in:
		@@ -394,7 +394,52 @@
 | 
			
		||||
    }];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
- (IBAction)changeType:(id)sender {
 | 
			
		||||
- (IBAction)changeDefaultType:(id)sender {
 | 
			
		||||
 | 
			
		||||
    MPSiteModel *site = self.selectedSite;
 | 
			
		||||
    MPUserEntity *user = [MPMacAppDelegate get].activeUserForMainThread;
 | 
			
		||||
    NSArray *types = [user.algorithm allTypes];
 | 
			
		||||
    [self.passwordTypesMatrix renewRows:(NSInteger)[types count] columns:1];
 | 
			
		||||
    for (NSUInteger t = 0; t < [types count]; ++t) {
 | 
			
		||||
        MPResultType type = (MPResultType)[types[t] unsignedIntegerValue];
 | 
			
		||||
        NSString *title = [user.algorithm nameOfType:type];
 | 
			
		||||
        if (type & MPResultTypeClassTemplate)
 | 
			
		||||
            title = strf( @"%@ – %@", [user.algorithm mpwTemplateForSiteNamed:site.name?: @"masterpassword.app" ofType:type
 | 
			
		||||
                                                                  withCounter:site.counter?: MPCounterValueDefault
 | 
			
		||||
                                                                     usingKey:[MPMacAppDelegate get].key], title );
 | 
			
		||||
 | 
			
		||||
        NSButtonCell *cell = [self.passwordTypesMatrix cellAtRow:(NSInteger)t column:0];
 | 
			
		||||
        cell.tag = type;
 | 
			
		||||
        cell.state = type == site.type? NSOnState: NSOffState;
 | 
			
		||||
        cell.title = title;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    self.passwordTypesBox.title = strf( @"Choose a password type for new sites of %@:", user.name );
 | 
			
		||||
 | 
			
		||||
    NSAlert *alert = [NSAlert new];
 | 
			
		||||
    [alert addButtonWithTitle:@"Save"];
 | 
			
		||||
    [alert addButtonWithTitle:@"Cancel"];
 | 
			
		||||
    [alert setMessageText:@"Change Default Type"];
 | 
			
		||||
    [alert setAccessoryView:self.passwordTypesBox];
 | 
			
		||||
    [alert layout];
 | 
			
		||||
    [alert beginSheetModalForWindow:self.window completionHandler:^(NSModalResponse returnCode) {
 | 
			
		||||
        switch (returnCode) {
 | 
			
		||||
            case NSAlertFirstButtonReturn: {
 | 
			
		||||
                // "Save" button.
 | 
			
		||||
                MPResultType type = (MPResultType)[self.passwordTypesMatrix.selectedCell tag];
 | 
			
		||||
                [MPMacAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *context) {
 | 
			
		||||
                    [[MPMacAppDelegate get] activeUserInContext:context].defaultType = type;
 | 
			
		||||
                    [context saveToStore];
 | 
			
		||||
                }];
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
            default:
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
    }];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
- (IBAction)changeSiteType:(id)sender {
 | 
			
		||||
 | 
			
		||||
    MPSiteModel *site = self.selectedSite;
 | 
			
		||||
    NSArray *types = [site.algorithm allTypes];
 | 
			
		||||
 
 | 
			
		||||
@@ -114,7 +114,7 @@
 | 
			
		||||
                                    <color key="color" name="controlLightHighlightColor" catalog="System" colorSpace="catalog"/>
 | 
			
		||||
                                </shadow>
 | 
			
		||||
                                <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="center" title="Master Password generates passwords for your sites (and other things)." id="YyD-hd-wi3">
 | 
			
		||||
                                    <font key="font" metaFont="system" size="14"/>
 | 
			
		||||
                                    <font key="font" metaFont="menu" size="14"/>
 | 
			
		||||
                                    <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
 | 
			
		||||
                                    <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
 | 
			
		||||
                                </textFieldCell>
 | 
			
		||||
@@ -143,11 +143,11 @@
 | 
			
		||||
                                </shadow>
 | 
			
		||||
                                <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" id="9c4-NI-NM0">
 | 
			
		||||
                                    <font key="font" metaFont="message" size="11"/>
 | 
			
		||||
                                    <mutableString key="title">⑴ When you create an account on a site, open Master Password to create your account password.
 | 
			
		||||
                                    <string key="title">⑴ When you create an account on a site, open Master Password to create your account password.
 | 
			
		||||
⑵ Consider changing all your existing account passwords to the password Master Password creates for those sites.
 | 
			
		||||
⑶ To get the password for a site, just enter its domain name in the "site name" field (eg. "apple.com").
 | 
			
		||||
⑷ When chosing a master password, make it easy but long (eg. a short sentence).
 | 
			
		||||
⑸ Tell *nobody* your master password. It's OK to share your site passwords with people you trust: they can be changed if necessary.</mutableString>
 | 
			
		||||
⑸ Tell *nobody* your master password. It's OK to share your site passwords with people you trust: they can be changed if necessary.</string>
 | 
			
		||||
                                    <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
 | 
			
		||||
                                    <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
 | 
			
		||||
                                </textFieldCell>
 | 
			
		||||
@@ -310,7 +310,7 @@
 | 
			
		||||
                        </connections>
 | 
			
		||||
                    </scrollView>
 | 
			
		||||
                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="nM8-O3-spM" customClass="MPGradientView">
 | 
			
		||||
                        <rect key="frame" x="0.0" y="0.0" width="738" height="212"/>
 | 
			
		||||
                        <rect key="frame" x="0.0" y="0.0" width="738" height="238"/>
 | 
			
		||||
                        <userDefinedRuntimeAttributes>
 | 
			
		||||
                            <userDefinedRuntimeAttribute type="color" keyPath="startingColor">
 | 
			
		||||
                                <color key="value" red="0.11764705882352941" green="0.11764705882352941" blue="0.11764705882352941" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
 | 
			
		||||
@@ -568,7 +568,7 @@ Use the arrows ⇅ to navigate the list or esc ⎋ to exit.</string>
 | 
			
		||||
                        </connections>
 | 
			
		||||
                    </textField>
 | 
			
		||||
                    <stackView distribution="fill" orientation="horizontal" alignment="bottom" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="pHt-gg-ZNX">
 | 
			
		||||
                        <rect key="frame" x="122" y="20" width="495" height="152"/>
 | 
			
		||||
                        <rect key="frame" x="122" y="20" width="495" height="178"/>
 | 
			
		||||
                        <subviews>
 | 
			
		||||
                            <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1Qo-iG-CQt">
 | 
			
		||||
                                <rect key="frame" x="0.0" y="-1" width="85" height="19"/>
 | 
			
		||||
@@ -591,10 +591,10 @@ Use the arrows ⇅ to navigate the list or esc ⎋ to exit.</string>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </button>
 | 
			
		||||
                            <stackView distribution="fill" orientation="vertical" alignment="centerX" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="DT0-RU-3LT">
 | 
			
		||||
                                <rect key="frame" x="93" y="0.0" width="177" height="152"/>
 | 
			
		||||
                                <rect key="frame" x="93" y="0.0" width="177" height="178"/>
 | 
			
		||||
                                <subviews>
 | 
			
		||||
                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="uol-dE-I8H">
 | 
			
		||||
                                        <rect key="frame" x="77" y="138" width="22" height="14"/>
 | 
			
		||||
                                        <rect key="frame" x="77" y="164" width="22" height="14"/>
 | 
			
		||||
                                        <shadow key="shadow" blurRadius="0.5">
 | 
			
		||||
                                            <size key="offset" width="0.0" height="1"/>
 | 
			
		||||
                                            <color key="color" name="controlLightHighlightColor" catalog="System" colorSpace="catalog"/>
 | 
			
		||||
@@ -631,7 +631,7 @@ Use the arrows ⇅ to navigate the list or esc ⎋ to exit.</string>
 | 
			
		||||
                                        </connections>
 | 
			
		||||
                                    </textField>
 | 
			
		||||
                                    <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="brI-fg-Kav">
 | 
			
		||||
                                        <rect key="frame" x="40" y="111" width="96" height="19"/>
 | 
			
		||||
                                        <rect key="frame" x="40" y="137" width="96" height="19"/>
 | 
			
		||||
                                        <shadow key="shadow">
 | 
			
		||||
                                            <color key="color" name="controlLightHighlightColor" catalog="System" colorSpace="catalog"/>
 | 
			
		||||
                                        </shadow>
 | 
			
		||||
@@ -659,6 +659,35 @@ Use the arrows ⇅ to navigate the list or esc ⎋ to exit.</string>
 | 
			
		||||
                                            </binding>
 | 
			
		||||
                                        </connections>
 | 
			
		||||
                                    </button>
 | 
			
		||||
                                    <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="jl4-sS-xbm">
 | 
			
		||||
                                        <rect key="frame" x="12" y="111" width="153" height="19"/>
 | 
			
		||||
                                        <shadow key="shadow">
 | 
			
		||||
                                            <color key="color" name="controlLightHighlightColor" catalog="System" colorSpace="catalog"/>
 | 
			
		||||
                                        </shadow>
 | 
			
		||||
                                        <buttonCell key="cell" type="recessed" title="Default Password Type" bezelStyle="recessed" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Ah6-gK-Rm7" customClass="MPNoStateButtonCell">
 | 
			
		||||
                                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
 | 
			
		||||
                                            <font key="font" metaFont="systemBold" size="12"/>
 | 
			
		||||
                                            <string key="keyEquivalent">p</string>
 | 
			
		||||
                                            <modifierMask key="keyEquivalentModifierMask" command="YES"/>
 | 
			
		||||
                                        </buttonCell>
 | 
			
		||||
                                        <connections>
 | 
			
		||||
                                            <action selector="changeDefaultType:" target="-2" id="3Qg-xV-ewc"/>
 | 
			
		||||
                                            <binding destination="-2" name="hidden2" keyPath="alternatePressed" previousBinding="2Mv-lM-iXB" id="6QO-NJ-Uyo">
 | 
			
		||||
                                                <dictionary key="options">
 | 
			
		||||
                                                    <integer key="NSMultipleValuesPlaceholder" value="-1"/>
 | 
			
		||||
                                                    <integer key="NSNoSelectionPlaceholder" value="-1"/>
 | 
			
		||||
                                                    <integer key="NSNotApplicablePlaceholder" value="-1"/>
 | 
			
		||||
                                                    <integer key="NSNullPlaceholder" value="-1"/>
 | 
			
		||||
                                                    <string key="NSValueTransformerName">NSNegateBoolean</string>
 | 
			
		||||
                                                </dictionary>
 | 
			
		||||
                                            </binding>
 | 
			
		||||
                                            <binding destination="mcS-ik-b0n" name="hidden" keyPath="canRemove" id="2Mv-lM-iXB">
 | 
			
		||||
                                                <dictionary key="options">
 | 
			
		||||
                                                    <string key="NSValueTransformerName">NSNegateBoolean</string>
 | 
			
		||||
                                                </dictionary>
 | 
			
		||||
                                            </binding>
 | 
			
		||||
                                        </connections>
 | 
			
		||||
                                    </button>
 | 
			
		||||
                                    <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="R46-fx-n14">
 | 
			
		||||
                                        <rect key="frame" x="0.0" y="85" width="177" height="19"/>
 | 
			
		||||
                                        <shadow key="shadow">
 | 
			
		||||
@@ -805,7 +834,7 @@ Use the arrows ⇅ to navigate the list or esc ⎋ to exit.</string>
 | 
			
		||||
                                            <modifierMask key="keyEquivalentModifierMask" command="YES"/>
 | 
			
		||||
                                        </buttonCell>
 | 
			
		||||
                                        <connections>
 | 
			
		||||
                                            <action selector="changeType:" target="-2" id="6Jj-7p-da9"/>
 | 
			
		||||
                                            <action selector="changeSiteType:" target="-2" id="6Jj-7p-da9"/>
 | 
			
		||||
                                            <binding destination="mcS-ik-b0n" name="hidden" keyPath="canRemove" id="Hat-GU-hcQ">
 | 
			
		||||
                                                <dictionary key="options">
 | 
			
		||||
                                                    <string key="NSValueTransformerName">NSNegateBoolean</string>
 | 
			
		||||
@@ -821,6 +850,7 @@ Use the arrows ⇅ to navigate the list or esc ⎋ to exit.</string>
 | 
			
		||||
                                    <integer value="1000"/>
 | 
			
		||||
                                    <integer value="1000"/>
 | 
			
		||||
                                    <integer value="1000"/>
 | 
			
		||||
                                    <integer value="1000"/>
 | 
			
		||||
                                </visibilityPriorities>
 | 
			
		||||
                                <customSpacing>
 | 
			
		||||
                                    <real value="3.4028234663852886e+38"/>
 | 
			
		||||
@@ -829,6 +859,7 @@ Use the arrows ⇅ to navigate the list or esc ⎋ to exit.</string>
 | 
			
		||||
                                    <real value="3.4028234663852886e+38"/>
 | 
			
		||||
                                    <real value="3.4028234663852886e+38"/>
 | 
			
		||||
                                    <real value="3.4028234663852886e+38"/>
 | 
			
		||||
                                    <real value="3.4028234663852886e+38"/>
 | 
			
		||||
                                </customSpacing>
 | 
			
		||||
                            </stackView>
 | 
			
		||||
                            <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="whJ-Bw-pr4">
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user