summaryrefslogtreecommitdiffstats
path: root/macosx/HBRenamePresetController.m
diff options
context:
space:
mode:
Diffstat (limited to 'macosx/HBRenamePresetController.m')
-rw-r--r--macosx/HBRenamePresetController.m85
1 files changed, 85 insertions, 0 deletions
diff --git a/macosx/HBRenamePresetController.m b/macosx/HBRenamePresetController.m
new file mode 100644
index 000000000..be87fe002
--- /dev/null
+++ b/macosx/HBRenamePresetController.m
@@ -0,0 +1,85 @@
+/* HBRenamePresetController.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 "HBRenamePresetController.h"
+
+#import "HBPresetsManager.h"
+#import "HBPreset.h"
+
+@import HandBrakeKit;
+
+@interface HBRenamePresetController () <NSTextFieldDelegate>
+
+@property (nonatomic, strong) IBOutlet NSTextField *name;
+@property (nonatomic, strong) IBOutlet NSButton *renameButton;
+
+@property (nonatomic, strong) HBPreset *preset;
+
+@property (nonatomic, strong) HBPresetsManager *manager;
+
+@end
+
+@implementation HBRenamePresetController
+
+- (instancetype)initWithPreset:(HBPreset *)preset presetManager:(HBPresetsManager *)manager
+{
+ self = [super initWithWindowNibName:@"HBRenamePresetController"];
+ if (self)
+ {
+ NSParameterAssert(preset);
+ NSParameterAssert(manager);
+ _preset = preset;
+ _manager = manager;
+ }
+ return self;
+}
+
+- (void)windowDidLoad
+{
+ [super windowDidLoad];
+
+ self.name.stringValue = self.name.placeholderString = self.preset.name;
+
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(controlTextDidChange:)
+ name:NSControlTextDidChangeNotification object:nil];
+}
+
+- (void)dealloc
+{
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:NSControlTextDidChangeNotification object:nil];
+}
+
+- (void)controlTextDidChange:(NSNotification *)obj {
+ self.renameButton.enabled = self.name.stringValue.length > 0 ? YES : NO;
+}
+
+- (IBAction)dismiss:(id)sender
+{
+ [self.window orderOut:nil];
+ [NSApp endSheet:self.window returnCode:NSModalResponseCancel];
+}
+
+- (IBAction)rename:(id)sender
+{
+ if (self.name.stringValue.length == 0)
+ {
+ NSAlert *alert = [[NSAlert alloc] init];
+ [alert setMessageText:NSLocalizedString(@"The preset name cannot be empty.", @"")];
+ [alert setInformativeText:NSLocalizedString(@"Please enter a name.", @"")];
+ [alert runModal];
+ }
+ else
+ {
+ [self.preset setName:self.name.stringValue];
+
+ [self.window orderOut:nil];
+ [NSApp endSheet:self.window returnCode:NSModalResponseContinue];
+ }
+}
+
+
+@end