diff options
author | Damiano Galassi <[email protected]> | 2015-12-05 10:26:01 +0100 |
---|---|---|
committer | Damiano Galassi <[email protected]> | 2015-12-05 10:26:01 +0100 |
commit | 19e3852ba50460472faab6493a46180b6adcadf2 (patch) | |
tree | 2f716d5026f0d838ea483cb36144b27b839526c1 | |
parent | 6c5bae474590041306d1b0883211c3e0f86f645f (diff) |
MacGui: default to custom picture size in the add preset sheet if the current job size is less than the maximum size.
-rw-r--r-- | macosx/English.lproj/AddPreset.xib | 6 | ||||
-rw-r--r-- | macosx/HBAddPresetController.h | 14 | ||||
-rw-r--r-- | macosx/HBAddPresetController.m | 71 | ||||
-rw-r--r-- | macosx/HBController.m | 9 |
4 files changed, 62 insertions, 38 deletions
diff --git a/macosx/English.lproj/AddPreset.xib b/macosx/English.lproj/AddPreset.xib index 07ffb9f62..b08b559f0 100644 --- a/macosx/English.lproj/AddPreset.xib +++ b/macosx/English.lproj/AddPreset.xib @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="8187.4" systemVersion="15A262e" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none"> +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9060" systemVersion="15C40a" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none"> <dependencies> <deployment identifier="macosx"/> <development version="6300" identifier="xcode"/> - <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="8187.4"/> + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9060"/> </dependencies> <objects> <customObject id="-2" userLabel="File's Owner" customClass="HBAddPresetController"> @@ -102,6 +102,7 @@ <string key="toolTip">Select the maximum width allowed by the preset (has no effect if the preset specifies Strict anamorphic). 0 means no limit is placed on the width.</string> <animations/> <textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="right" drawsBackground="YES" id="ExG-3m-WxY"> + <numberFormatter key="formatter" formatterBehavior="default10_4" localizesFormat="NO" usesGroupingSeparator="NO" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="42" id="Rn4-AK-xTD"/> <font key="font" metaFont="smallSystem"/> <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> @@ -124,6 +125,7 @@ <string key="toolTip">Select the maximum height allowed by the preset (has no effect if the preset specifies Strict anamorphic). 0 means no limit is placed on the height.</string> <animations/> <textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left" drawsBackground="YES" id="tBe-1m-0r9"> + <numberFormatter key="formatter" formatterBehavior="default10_4" localizesFormat="NO" usesGroupingSeparator="NO" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="42" id="Udu-cs-fdK"/> <font key="font" metaFont="smallSystem"/> <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> diff --git a/macosx/HBAddPresetController.h b/macosx/HBAddPresetController.h index 7162767fd..fe73e20fe 100644 --- a/macosx/HBAddPresetController.h +++ b/macosx/HBAddPresetController.h @@ -1,10 +1,8 @@ -// -// HBAddPresetController.h -// HandBrake -// -// Created by Damiano Galassi on 23/11/14. -// -// +/* HBAddPresetController.h + + This file is part of the HandBrake source code. + Homepage: <http://handbrake.fr/>. + It may be used under the terms of the GNU General Public License. */ #import <Cocoa/Cocoa.h> @@ -14,7 +12,7 @@ NS_ASSUME_NONNULL_BEGIN @interface HBAddPresetController : NSWindowController -- (instancetype)initWithPreset:(HBPreset *)preset videoSize:(NSSize)size; +- (instancetype)initWithPreset:(HBPreset *)preset customWidth:(int)customWidth customHeight:(int)customHeight defaultToCustom:(BOOL)defaultToCustom; @property (nonatomic, readonly) HBPreset *preset; diff --git a/macosx/HBAddPresetController.m b/macosx/HBAddPresetController.m index 10165ecb5..e086d55fc 100644 --- a/macosx/HBAddPresetController.m +++ b/macosx/HBAddPresetController.m @@ -1,15 +1,19 @@ -// -// HBAddPresetController.m -// HandBrake -// -// Created by Damiano Galassi on 23/11/14. -// -// +/* HBAddPresetController.m + + This file is part of the HandBrake source code. + Homepage: <http://handbrake.fr/>. + It may be used under the terms of the GNU General Public License. */ #import "HBAddPresetController.h" #import "HBPreset.h" #import "HBMutablePreset.h" +typedef NS_ENUM(NSUInteger, HBAddPresetControllerMode) { + HBAddPresetControllerModeNone, + HBAddPresetControllerModeCustom, + HBAddPresetControllerModeSourceMaximum, +}; + @interface HBAddPresetController () @property (unsafe_unretained) IBOutlet NSTextField *name; @@ -21,20 +25,26 @@ @property (unsafe_unretained) IBOutlet NSBox *picWidthHeightBox; @property (nonatomic, strong) HBPreset *preset; -@property NSSize size; +@property (nonatomic) int width; +@property (nonatomic) int height; + +@property (nonatomic) BOOL defaultToCustom; + @end @implementation HBAddPresetController -- (instancetype)initWithPreset:(HBPreset *)preset videoSize:(NSSize)size; +- (instancetype)initWithPreset:(HBPreset *)preset customWidth:(int)customWidth customHeight:(int)customHeight defaultToCustom:(BOOL)defaultToCustom { self = [super initWithWindowNibName:@"AddPreset"]; if (self) { NSParameterAssert(preset); _preset = preset; - _size = size; + _width = customWidth; + _height = customHeight; + _defaultToCustom = defaultToCustom; } return self; } @@ -49,30 +59,39 @@ * * Use [NSMenuItem tag] to store preset values for each option. */ - [self.picSettingsPopUp addItemWithTitle:NSLocalizedString(@"None", @"")]; - [[self.picSettingsPopUp lastItem] setTag: 0]; + + // Default to Source Maximum + HBAddPresetControllerMode mode = HBAddPresetControllerModeSourceMaximum; + + [self.picSettingsPopUp addItemWithTitle:NSLocalizedString(@"None", nil)]; + [[self.picSettingsPopUp lastItem] setTag:HBAddPresetControllerModeNone]; if (![self.preset[@"PicturePAR"] isEqualToString:@"strict"]) { // not Strict, Custom is applicable - [self.picSettingsPopUp addItemWithTitle:NSLocalizedString(@"Custom", @"")]; - [[self.picSettingsPopUp lastItem] setTag: 1]; + [self.picSettingsPopUp addItemWithTitle:NSLocalizedString(@"Custom", nil)]; + [[self.picSettingsPopUp lastItem] setTag:HBAddPresetControllerModeCustom]; + + if (self.defaultToCustom) + { + mode = HBAddPresetControllerModeCustom; + } } - [self.picSettingsPopUp addItemWithTitle:NSLocalizedString(@"Source Maximum (post source scan)", @"")]; - [[self.picSettingsPopUp lastItem] setTag: 2]; + [self.picSettingsPopUp addItemWithTitle:NSLocalizedString(@"Source Maximum (post source scan)", nil)]; + [[self.picSettingsPopUp lastItem] setTag:HBAddPresetControllerModeSourceMaximum]; + - //Default to Source Maximum - [self.picSettingsPopUp selectItemWithTag:2]; + [self.picSettingsPopUp selectItemWithTag:mode]; - /* Initialize custom height and width settings to current values */ - [self.picWidth setStringValue: [NSString stringWithFormat:@"%d", (int)self.size.width]]; - [self.picHeight setStringValue: [NSString stringWithFormat:@"%d",(int)self.size.height]]; + // Initialize custom height and width settings to current values + [self.picWidth setIntValue:self.width]; + [self.picHeight setIntValue:self.height]; [self addPresetPicDropdownChanged:nil]; } - (IBAction)addPresetPicDropdownChanged:(id)sender { - if (self.picSettingsPopUp.selectedItem.tag == 1) + if (self.picSettingsPopUp.selectedItem.tag == HBAddPresetControllerModeCustom) { self.picWidthHeightBox.hidden = NO; } @@ -112,15 +131,15 @@ self.preset = [newPreset copy]; - [[self window] orderOut:nil]; - [NSApp endSheet:[self window] returnCode:NSModalResponseContinue]; + [self.window orderOut:nil]; + [NSApp endSheet:self.window returnCode:NSModalResponseContinue]; } } - (IBAction)cancel:(id)sender { - [[self window] orderOut:nil]; - [NSApp endSheet:[self window] returnCode:NSModalResponseAbort]; + [self.window orderOut:nil]; + [NSApp endSheet:self.window returnCode:NSModalResponseAbort]; } @end diff --git a/macosx/HBController.m b/macosx/HBController.m index a0591bb67..9fcc8d20f 100644 --- a/macosx/HBController.m +++ b/macosx/HBController.m @@ -1371,9 +1371,14 @@ - (IBAction)showAddPresetPanel:(id)sender { - // Show the add panel + BOOL defaultToCustom = ((self.job.picture.width + self.job.picture.cropRight + self.job.picture.cropLeft) < self.job.picture.sourceWidth) || + ((self.job.picture.height + self.job.picture.cropTop + self.job.picture.cropBottom) < self.job.picture.sourceHeight); + + // Show the add panel HBAddPresetController *addPresetController = [[HBAddPresetController alloc] initWithPreset:[self createPresetFromCurrentSettings] - videoSize:NSMakeSize(self.job.picture.width, self.job.picture.height)]; + customWidth:self.job.picture.width + customHeight:self.job.picture.height + defaultToCustom:defaultToCustom]; [NSApp beginSheet:addPresetController.window modalForWindow:self.window modalDelegate:self didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:) contextInfo:(void *)CFBridgingRetain(addPresetController)]; } |