summaryrefslogtreecommitdiffstats
path: root/macosx/HBSubtitlesDefaultsController.m
diff options
context:
space:
mode:
Diffstat (limited to 'macosx/HBSubtitlesDefaultsController.m')
-rw-r--r--macosx/HBSubtitlesDefaultsController.m68
1 files changed, 68 insertions, 0 deletions
diff --git a/macosx/HBSubtitlesDefaultsController.m b/macosx/HBSubtitlesDefaultsController.m
new file mode 100644
index 000000000..f529798d4
--- /dev/null
+++ b/macosx/HBSubtitlesDefaultsController.m
@@ -0,0 +1,68 @@
+/* HBSubtitlesDefaultsController.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 "HBSubtitlesDefaultsController.h"
+#import "HBSubtitlesSettings.h"
+#import "HBLanguagesSelection.h"
+
+@interface HBSubtitlesDefaultsController ()
+
+@property (nonatomic, readonly) HBSubtitlesSettings *settings;
+
+@property (nonatomic, readonly) HBLanguagesSelection *languagesList;
+@property (assign) IBOutlet HBLanguageArrayController *tableController;
+@property (assign) IBOutlet NSButton *showAllButton;
+
+@end
+
+@implementation HBSubtitlesDefaultsController
+
+- (instancetype)initWithSettings:(HBSubtitlesSettings *)settings
+{
+ self = [super initWithWindowNibName:@"SubtitlesDefaults"];
+ if (self)
+ {
+ _settings = [settings retain];
+ _languagesList = [[HBLanguagesSelection alloc] initWithLanguages:_settings.trackSelectionLanguages];
+ }
+ return self;
+}
+
+- (void)windowDidLoad
+{
+ if (self.settings.trackSelectionLanguages.count)
+ {
+ self.tableController.showSelectedOnly = YES;
+ [self.showAllButton setState:NSOffState];
+ }
+}
+
+- (IBAction)edit:(id)sender
+{
+ self.tableController.showSelectedOnly = !self.tableController.showSelectedOnly;
+}
+
+- (IBAction)done:(id)sender
+{
+ [[self window] orderOut:nil];
+ [NSApp endSheet:[self window]];
+
+ [self.settings.trackSelectionLanguages removeAllObjects];
+ [self.settings.trackSelectionLanguages addObjectsFromArray:self.languagesList.selectedLanguages];
+
+ if ([self.delegate respondsToSelector:@selector(sheetDidEnd)])
+ {
+ [self.delegate performSelector:@selector(sheetDidEnd)];
+ }
+}
+
+- (void)dealloc
+{
+ [super dealloc];
+ [_settings release];
+}
+
+@end