From 8233cd0924cc8beb153f22e4037e279cc0482bb9 Mon Sep 17 00:00:00 2001 From: Damiano Galassi Date: Thu, 7 Sep 2017 09:40:50 +0200 Subject: MacGui: move the filters to a separate tab. --- macosx/English.lproj/HBFiltersViewController.xib | 797 ++++++++++++++++++++ macosx/English.lproj/HBPictureViewController.xib | 911 ++--------------------- macosx/English.lproj/MainWindow.xib | 17 +- macosx/HBController.m | 11 +- macosx/HBFiltersViewController.h | 15 + macosx/HBFiltersViewController.m | 40 + macosx/HBPictureViewController.h | 2 - macosx/HBPictureViewController.m | 1 - macosx/HandBrake.xcodeproj/project.pbxproj | 18 + 9 files changed, 959 insertions(+), 853 deletions(-) create mode 100644 macosx/English.lproj/HBFiltersViewController.xib create mode 100644 macosx/HBFiltersViewController.h create mode 100644 macosx/HBFiltersViewController.m diff --git a/macosx/English.lproj/HBFiltersViewController.xib b/macosx/English.lproj/HBFiltersViewController.xib new file mode 100644 index 000000000..25cca024d --- /dev/null +++ b/macosx/English.lproj/HBFiltersViewController.xib @@ -0,0 +1,797 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + + + + + Detelecine removes comb artifacts that are the result of telecine, a process for converting film frame rates to television frame rates. + + + + + + + + + + NSIsNotNil + + + + + HBDetelecineTransformer + + + + + + + + + + Custom Detelecine parameters. + +Syntax: skip-left=s:skip-right=s:skip-top=s:skip-bottom=s:strict-breaks=s:plane=p:parity=p:disable=d + +Default: skip-left=1:skip-right=1:skip-top=4:skip-bottom=4:plane=0 + + + + + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Off + + + + + + + + + + + + + NSIsNotNil + + + + + + + + + + + + + + + + + + + + + Denoise reduces or removes the appearance of noise and grain. This can improve compression efficiency and create higher quality video at smaller file sizes. Overly strong Denoise settings may damage picture quality by discarding detail. + +NLMeans is a high quality denoise filter with a cost to speed. Use where quality is more important than speed. + +HQDN3D is an adaptive low-pass filter, faster than NLMeans but less effective at preserving fine detail. + + + + + + + + + + NSIsNotNil + + + + + HBDenoiseTransformer + + + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + HBDenoisePresetTransformer + + + + + + + + + + Denoise tune. Further adjusts the Denoise preset to optimize settings for specific scenarios. + +None uses the default preset settings. + +Film refines settings for use with most live action content. + +Grain only processes color channels. Useful for preserving the film-like look of luminance grain while reducing or removing color noise. + +High Motion reduces color smearing in high motion scenes by avoiding temporal processing for color channels. Useful for sports and action videos. + +Animation is useful for cel animation such as anime and cartoons. + +Tape is useful for low-detail analog tape sources such as VHS, where Film does not produce a desirable result. + +Sprite is useful for 1-/4-/8-/16-bit 2-dimensional games. Sprite is not designed for high definition video. + + + + + + + + + HBDenoiseTuneTransformer + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + + + + + Custom Denoise parameters. + +NLMeans syntax: y-strength=y:y-origin-tune=y:y-patch-size=y:y-range=y:y-frame-count=y:y-prefilter=y:cb-strength=c:cb-origin-tune=c:cb-patch-size=c:cb-range=c:cb-frame-count=c:cb-prefilter=c:cr-strength=c:cr-origin-tune=c:cr-patch-size=c:cr-range=c:cr-frame-count=c:cr-prefilter=c:threads=t + +NLMeans default: y-strength=6:y-origin-tune=1:y-patch-size=7:y-range=3:y-frame-count=2:y-prefilter=0:cb-strength=6:cb-origin-tune=1:cb-patch-size=7:cb-range=3:cb-frame-count=2:cb-prefilter=0 + +HQDN3D syntax: y-spatial=y:cb-spatial=c:cr-spatial=c:y-temporal=y:cb-temporal=c:cr-temporal=c + +HQDN3D default: y-spatial=3:cb-spatial=2:cr-spatial=2:y-temporal=2:cb-temporal=3:cr-temporal=3 + + + + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + + + + + Deinterlace removes comb artifacts from the picture. + +Yadif is a popular and fast deinterlacer. + +Decomb switches between multiple interpolation algorithms for speed and quality. + + + + + + + + + + NSIsNotNil + + + + + HBDeinterlaceTransformer + + + + + + + + + Custom Deinterlace parameters. + +Yadif syntax: mode=m:parity=p + +Yadif default: mode=3 + +Decomb syntax: mode=m:magnitude-thresh=m:variance-thresh=v:laplacian-thresh=l:dilation-thresh=d:erosion-thresh=e:noise-thresh=n:search-distance=s:postproc=p:parity=p + +Decomb default: mode=7 + + + + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + + + + + Deinterlace filter preset. + +Default is well balanced for speed and quality. + +Skip Spatial Check lets Yadif skip correcting certain avoidable artifacts for a slight speed boost. + +EEDI2 uses a slower, higher quality interpolation algorithm for Decomb. Useful for the most difficult sources. + +Bob attempts to better preserve motion for a slight penalty to perceived resolution. + + + + + + + + + + NSNegateBoolean + + + + + HBDeinterlacePresetTransformer + + + + + + + + + + + + + + + + + + + + + + + + + + NSIsNotNil + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + + + NSIsNotNil + + + + + HBCombDetectionTransformer + + + + + + + + + + Custom Interlace Detection parameters. + +Syntax: mode=m:spatial-metric=s:motion-thresh=m:spatial-thresh=s:filter-mode=f:block-thresh=b:block-width=b:block-height=b:disable=d + +Default: mode=3:spatial-metric=2:motion-thresh=1:spatial-thresh=1:filter-mode=2:block-thresh=40:block-width=16:block-height=16 + + + + + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + + + + + Sharpening enhances the appearance of detail, especially edges. Overly strong Sharpen settings may damage picture quality by creating ringing artifacts and enhancing noise, which can reduce compression efficiency. + +Unsharp is a general purpose unsharp masking filter. It sharpens by blurring, then calculating the difference between the blurred picture and the original. + +Lapsharp sharpens using convolution kernels approximating Laplacian edge filters, sometimes producing higher quality results than unsharp masking. + + + + + + + + + + NSIsNotNil + + + + + HBSharpenTransformer + + + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + HBSharpenPresetTransformer + + + + + + + + + + Sharpen tune. Further adjusts the Sharpen preset to optimize settings for specific scenarios. + +None uses the default preset settings. + +Unsharp can be tuned for Ultrafine, Fine, Medium, Coarse, or Very Coarse sharpening. Select one based on the output picture resolution and fineness of detail to enhance. + +Lapsharp's Film tune refines settings for use with most live action content. Film uses an isotropic Laplacian kernel to sharpen all edges similarly, and luminance (brightness) information is sharpened more than chrominance (color) information. + +Lapsharp's Grain tune is similar to Film, but uses an isotropic Laplacian of Gaussian kernel to reduce the effect on noise and grain. Useful for preserving grain and as a general alternative to the Film tune. + +Lapsharp's Animation tune is useful for cel animation such as anime and cartoons. Animation is identical to Film, but overall strength is reduced to avoid creating artifacts. + +Lapsharp's Sprite tune is useful for 1-/4-/8-/16-bit 2-dimensional games. Sprite uses a 4-neighbor Laplacian kernel that enhances vertical and horizontal edges more than diagonal edges. + + + + + + + + + HBSharpenTuneTransformer + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + + + + + Custom Sharpen parameters. + +Unsharp syntax: y-strength=y:y-size=y:cb-strength=c:cb-size=c:cr-strength=c:cr-size=c + +Unsharp default: y-strength=0.25:y-size=7:cb-strength=0.25:cb-size=7 + +Lapsharp syntax: y-strength=y:y-kernel=y:cb-strength=c:cb-kernel=c:cr-strength=c:cr-kernel=c + +Lapsharp default: y-strength=0.2:y-kernel=isolap:cb-strength=0.2:cb-kernel=isolap + + + + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macosx/English.lproj/HBPictureViewController.xib b/macosx/English.lproj/HBPictureViewController.xib index a833a08cc..13d6714b0 100644 --- a/macosx/English.lproj/HBPictureViewController.xib +++ b/macosx/English.lproj/HBPictureViewController.xib @@ -1,9 +1,9 @@ - + - + @@ -20,14 +20,13 @@ - - + + - @@ -43,10 +42,11 @@ + - - + + Cropping mode. @@ -86,8 +86,8 @@ Custom allows for manual settings. - - + + @@ -118,8 +118,8 @@ Custom allows for manual settings. - - + + @@ -150,14 +150,13 @@ Custom allows for manual settings. - - + + - @@ -173,10 +172,11 @@ Custom allows for manual settings. + - - + + @@ -207,14 +207,13 @@ Custom allows for manual settings. - - + + - @@ -230,10 +229,11 @@ Custom allows for manual settings. + - - + + @@ -244,8 +244,8 @@ Custom allows for manual settings. - - + + @@ -276,359 +276,8 @@ Custom allows for manual settings. - - - - - - - - - - - - - - - - - - - - - - - - - - - - NSNegateBoolean - - - - - - - - - Detelecine removes comb artifacts that are the result of telecine, a process for converting film frame rates to television frame rates. - - - - - - - - - - NSIsNotNil - - - - - HBDetelecineTransformer - - - - - - - - - - Custom Detelecine parameters. - -Syntax: skip-left=s:skip-right=s:skip-top=s:skip-bottom=s:strict-breaks=s:plane=p:parity=p:disable=d - -Default: skip-left=1:skip-right=1:skip-top=4:skip-bottom=4:plane=0 - - - - - - - - - - NSNegateBoolean - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Off - - - - - - - - - - - - - NSIsNotNil - - - - - - - - - - - - - - - - - - - - - Denoise reduces or removes the appearance of noise and grain. This can improve compression efficiency and create higher quality video at smaller file sizes. Overly strong Denoise settings may damage picture quality by discarding detail. - -NLMeans is a high quality denoise filter with a cost to speed. Use where quality is more important than speed. - -HQDN3D is an adaptive low-pass filter, faster than NLMeans but less effective at preserving fine detail. - - - - - - - - - - NSIsNotNil - - - - - HBDenoiseTransformer - - - - - - - - - - - - - - - - - - NSNegateBoolean - - - - - - - - - - - - - - - - - - NSNegateBoolean - - - - - HBDenoisePresetTransformer - - - - - - - - - - Denoise tune. Further adjusts the Denoise preset to optimize settings for specific scenarios. - -None uses the default preset settings. - -Film refines settings for use with most live action content. - -Grain only processes color channels. Useful for preserving the film-like look of luminance grain while reducing or removing color noise. - -High Motion reduces color smearing in high motion scenes by avoiding temporal processing for color channels. Useful for sports and action videos. - -Animation is useful for cel animation such as anime and cartoons. - -Tape is useful for low-detail analog tape sources such as VHS, where Film does not produce a desirable result. - -Sprite is useful for 1-/4-/8-/16-bit 2-dimensional games. Sprite is not designed for high definition video. - - - - - - - - - HBDenoiseTuneTransformer - - - - - - NSNegateBoolean - - - - - - - - - - - - - - - - NSNegateBoolean - - - - - - - - - Custom Denoise parameters. - -NLMeans syntax: y-strength=y:y-origin-tune=y:y-patch-size=y:y-range=y:y-frame-count=y:y-prefilter=y:cb-strength=c:cb-origin-tune=c:cb-patch-size=c:cb-range=c:cb-frame-count=c:cb-prefilter=c:cr-strength=c:cr-origin-tune=c:cr-patch-size=c:cr-range=c:cr-frame-count=c:cr-prefilter=c:threads=t - -NLMeans default: y-strength=6:y-origin-tune=1:y-patch-size=7:y-range=3:y-frame-count=2:y-prefilter=0:cb-strength=6:cb-origin-tune=1:cb-patch-size=7:cb-range=3:cb-frame-count=2:cb-prefilter=0 - -HQDN3D syntax: y-spatial=y:cb-spatial=c:cr-spatial=c:y-temporal=y:cb-temporal=c:cr-temporal=c - -HQDN3D default: y-spatial=3:cb-spatial=2:cr-spatial=2:y-temporal=2:cb-temporal=3:cr-temporal=3 - - - - - - - - - NSNegateBoolean - - - - - - - - - - - - - - - - - NSNegateBoolean - - - - - - - - - - - - - - - - - + + Display width. This is the number of pixels wide your video will appear to be at its native resolution, and is the result of scaling the storage dimensions by the pixel aspect. @@ -649,8 +298,8 @@ HQDN3D default: y-spatial=3:cb-spatial=2:cr-spatial=2:y-temporal=2:cb-temporal=3 - - + + Display height. This is the number of pixels tall your video will appear to be at its native resolution, and is the result of scaling the storage dimensions by the pixel aspect. @@ -670,8 +319,8 @@ HQDN3D default: y-spatial=3:cb-spatial=2:cr-spatial=2:y-temporal=2:cb-temporal=3 - - + + Pixel Aspect Ratio defines the shape of the storage pixels, or how to scale anamorphic video to create the correct display aspect and dimensions. Non-anamorphic video (1:1 PAR) is not scaled during playback. @@ -693,8 +342,8 @@ HQDN3D default: y-spatial=3:cb-spatial=2:cr-spatial=2:y-temporal=2:cb-temporal=3 - - + + @@ -705,10 +354,10 @@ HQDN3D default: y-spatial=3:cb-spatial=2:cr-spatial=2:y-temporal=2:cb-temporal=3 - - + + - + @@ -722,8 +371,8 @@ HQDN3D default: y-spatial=3:cb-spatial=2:cr-spatial=2:y-temporal=2:cb-temporal=3 - - + + Ensure storage dimensions are multiples of this value. Higher values are only necessary for compatibility with certain legacy devices. Set to 2 unless you have a specific compatibility concern. @@ -748,8 +397,8 @@ HQDN3D default: y-spatial=3:cb-spatial=2:cr-spatial=2:y-temporal=2:cb-temporal=3 - - + + Video storage width. This is the number of pixels wide to be encoded. Storage width may differ from display width depending on anamorphic settings. @@ -774,8 +423,8 @@ HQDN3D default: y-spatial=3:cb-spatial=2:cr-spatial=2:y-temporal=2:cb-temporal=3 - - + + @@ -786,8 +435,8 @@ HQDN3D default: y-spatial=3:cb-spatial=2:cr-spatial=2:y-temporal=2:cb-temporal=3 - - + + @@ -795,8 +444,8 @@ HQDN3D default: y-spatial=3:cb-spatial=2:cr-spatial=2:y-temporal=2:cb-temporal=3 - - + + @@ -804,8 +453,8 @@ HQDN3D default: y-spatial=3:cb-spatial=2:cr-spatial=2:y-temporal=2:cb-temporal=3 - - + + @@ -813,8 +462,8 @@ HQDN3D default: y-spatial=3:cb-spatial=2:cr-spatial=2:y-temporal=2:cb-temporal=3 - - + + Anamorphic allows arbitrary storage dimensions while preserving the original aspect during playback. @@ -847,8 +496,8 @@ Custom allows manually setting all parameters. Useful for correcting an incorrec - - + + @@ -859,8 +508,8 @@ Custom allows manually setting all parameters. Useful for correcting an incorrec - - + + @@ -871,8 +520,8 @@ Custom allows manually setting all parameters. Useful for correcting an incorrec - - + + @@ -895,8 +544,8 @@ Custom allows manually setting all parameters. Useful for correcting an incorrec - - + + Video storage height. This is the number of pixels tall to be encoded. Storage height may differ from display height depending on anamorphic settings. @@ -921,8 +570,8 @@ Custom allows manually setting all parameters. Useful for correcting an incorrec - - - + + Pixel Aspect Ratio defines the shape of the storage pixels, or how to scale anamorphic video to create the correct display aspect and dimensions. Non-anamorphic video (1:1 PAR) is not scaled during playback. @@ -976,10 +625,10 @@ Custom allows manually setting all parameters. Useful for correcting an incorrec - - + + - + @@ -992,14 +641,13 @@ Custom allows manually setting all parameters. Useful for correcting an incorrec - - + + - @@ -1015,436 +663,11 @@ Custom allows manually setting all parameters. Useful for correcting an incorrec + - - - - - - - - - - - - - - - - - - - - - - - - NSNegateBoolean - - - - - - - - - Deinterlace removes comb artifacts from the picture. - -Yadif is a popular and fast deinterlacer. - -Decomb switches between multiple interpolation algorithms for speed and quality. - - - - - - - - - - NSIsNotNil - - - - - HBDeinterlaceTransformer - - - - - - - - - Custom Deinterlace parameters. - -Yadif syntax: mode=m:parity=p - -Yadif default: mode=3 - -Decomb syntax: mode=m:magnitude-thresh=m:variance-thresh=v:laplacian-thresh=l:dilation-thresh=d:erosion-thresh=e:noise-thresh=n:search-distance=s:postproc=p:parity=p - -Decomb default: mode=7 - - - - - - - - - NSNegateBoolean - - - - - - - - - - - - - - - - - NSNegateBoolean - - - - - - - - - Deinterlace filter preset. - -Default is well balanced for speed and quality. - -Skip Spatial Check lets Yadif skip correcting certain avoidable artifacts for a slight speed boost. - -EEDI2 uses a slower, higher quality interpolation algorithm for Decomb. Useful for the most difficult sources. - -Bob attempts to better preserve motion for a slight penalty to perceived resolution. - - - - - - - - - - NSNegateBoolean - - - - - HBDeinterlacePresetTransformer - - - - - - - - - - - - - - - - - - - - - - - - - - NSIsNotNil - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NSNegateBoolean - - - - - - - - - - - - - - - - - - NSIsNotNil - - - - - HBCombDetectionTransformer - - - - - - - - - - Custom Interlace Detection parameters. - -Syntax: mode=m:spatial-metric=s:motion-thresh=m:spatial-thresh=s:filter-mode=f:block-thresh=b:block-width=b:block-height=b:disable=d - -Default: mode=3:spatial-metric=2:motion-thresh=1:spatial-thresh=1:filter-mode=2:block-thresh=40:block-width=16:block-height=16 - - - - - - - - - - NSNegateBoolean - - - - - - - - - - - - - - - - - - - - Sharpening enhances the appearance of detail, especially edges. Overly strong Sharpen settings may damage picture quality by creating ringing artifacts and enhancing noise, which can reduce compression efficiency. - -Unsharp is a general purpose unsharp masking filter. It sharpens by blurring, then calculating the difference between the blurred picture and the original. - -Lapsharp sharpens using convolution kernels approximating Laplacian edge filters, sometimes producing higher quality results than unsharp masking. - - - - - - - - - - NSIsNotNil - - - - - HBSharpenTransformer - - - - - - - - - - - - - - - - - - NSNegateBoolean - - - - - - - - - - - - - - - - - - NSNegateBoolean - - - - - HBSharpenPresetTransformer - - - - - - - - - - Sharpen tune. Further adjusts the Sharpen preset to optimize settings for specific scenarios. - -None uses the default preset settings. - -Unsharp can be tuned for Ultrafine, Fine, Medium, Coarse, or Very Coarse sharpening. Select one based on the output picture resolution and fineness of detail to enhance. - -Lapsharp's Film tune refines settings for use with most live action content. Film uses an isotropic Laplacian kernel to sharpen all edges similarly, and luminance (brightness) information is sharpened more than chrominance (color) information. - -Lapsharp's Grain tune is similar to Film, but uses an isotropic Laplacian of Gaussian kernel to reduce the effect on noise and grain. Useful for preserving grain and as a general alternative to the Film tune. - -Lapsharp's Animation tune is useful for cel animation such as anime and cartoons. Animation is identical to Film, but overall strength is reduced to avoid creating artifacts. - -Lapsharp's Sprite tune is useful for 1-/4-/8-/16-bit 2-dimensional games. Sprite uses a 4-neighbor Laplacian kernel that enhances vertical and horizontal edges more than diagonal edges. - - - - - - - - - HBSharpenTuneTransformer - - - - - - NSNegateBoolean - - - - - - - - - - - - - - - - NSNegateBoolean - - - - - - - - - Custom Sharpen parameters. - -Unsharp syntax: y-strength=y:y-size=y:cb-strength=c:cb-size=c:cr-strength=c:cr-size=c - -Unsharp default: y-strength=0.25:y-size=7:cb-strength=0.25:cb-size=7 - -Lapsharp syntax: y-strength=y:y-kernel=y:cb-strength=c:cb-kernel=c:cr-strength=c:cr-kernel=c - -Lapsharp default: y-strength=0.2:y-kernel=isolap:cb-strength=0.2:cb-kernel=isolap - - - - - - - - - NSNegateBoolean - - - - - - - - - - - - - - - - - NSNegateBoolean - - - - - - + diff --git a/macosx/English.lproj/MainWindow.xib b/macosx/English.lproj/MainWindow.xib index 05d5cacf9..3ebc46187 100644 --- a/macosx/English.lproj/MainWindow.xib +++ b/macosx/English.lproj/MainWindow.xib @@ -1,9 +1,9 @@ - + - + @@ -12,6 +12,7 @@ + @@ -67,16 +68,22 @@ - + - + + + + + + + @@ -675,7 +682,7 @@ Blu-ray and DVD sources often have multiple titles, the longest of which is typi - + diff --git a/macosx/HBController.m b/macosx/HBController.m index d29a10876..30fbc21d5 100644 --- a/macosx/HBController.m +++ b/macosx/HBController.m @@ -16,6 +16,7 @@ #import "HBMutablePreset.h" #import "HBPictureViewController.h" +#import "HBFiltersViewController.h" #import "HBVideoController.h" #import "HBAudioController.h" #import "HBSubtitlesController.h" @@ -38,6 +39,10 @@ HBPictureViewController * fPictureViewController; IBOutlet NSTabViewItem * fPictureTab; + // Filters controller + HBFiltersViewController * fFiltersViewController; + IBOutlet NSTabViewItem * fFiltersTab; + // Video view controller HBVideoController * fVideoController; IBOutlet NSTabViewItem * fVideoTab; @@ -261,6 +266,10 @@ fPictureViewController = [[HBPictureViewController alloc] init]; [fPictureTab setView:[fPictureViewController view]]; + // setup the filters view controller + fFiltersViewController = [[HBFiltersViewController alloc] init]; + [fFiltersTab setView:[fFiltersViewController view]]; + [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:@"values.HBShowAdvancedTab" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionInitial @@ -787,7 +796,7 @@ // Set the jobs info to the view controllers fPictureViewController.picture = job.picture; - fPictureViewController.filters = job.filters; + fFiltersViewController.filters = job.filters; fVideoController.video = job.video; fAudioController.audio = job.audio; fSubtitlesViewController.subtitles = job.subtitles; diff --git a/macosx/HBFiltersViewController.h b/macosx/HBFiltersViewController.h new file mode 100644 index 000000000..88beefe66 --- /dev/null +++ b/macosx/HBFiltersViewController.h @@ -0,0 +1,15 @@ +/* HBPictureViewController.h $ + + This file is part of the HandBrake source code. + Homepage: . + It may be used under the terms of the GNU General Public License. */ + +#import + +@class HBFilters; + +@interface HBFiltersViewController : NSViewController + +@property (nonatomic, readwrite, weak) HBFilters *filters; + +@end diff --git a/macosx/HBFiltersViewController.m b/macosx/HBFiltersViewController.m new file mode 100644 index 000000000..ac7d75bc1 --- /dev/null +++ b/macosx/HBFiltersViewController.m @@ -0,0 +1,40 @@ +/* HBPictureViewController.m $ + + This file is part of the HandBrake source code. + Homepage: . + It may be used under the terms of the GNU General Public License. */ + +#import "HBFiltersViewController.h" + +@import HandBrakeKit.HBFilters; + +@interface HBFiltersViewController () + +@property (nonatomic, readwrite) NSColor *labelColor; + +@end + +@implementation HBFiltersViewController + +- (instancetype)init +{ + self = [super initWithNibName:@"HBFiltersViewController" bundle:nil]; + return self; +} + +- (void)setFilters:(HBFilters *)filters +{ + _filters = filters; + + if (_filters) + { + self.labelColor = [NSColor controlTextColor]; + } + else + { + self.labelColor = [NSColor disabledControlTextColor]; + } + +} + +@end diff --git a/macosx/HBPictureViewController.h b/macosx/HBPictureViewController.h index 3b92615ca..13802e803 100644 --- a/macosx/HBPictureViewController.h +++ b/macosx/HBPictureViewController.h @@ -7,11 +7,9 @@ #import @class HBPicture; -@class HBFilters; @interface HBPictureViewController : NSViewController @property (nonatomic, readwrite, weak) HBPicture *picture; -@property (nonatomic, readwrite, weak) HBFilters *filters; @end diff --git a/macosx/HBPictureViewController.m b/macosx/HBPictureViewController.m index e462a06d7..d7a686a7b 100644 --- a/macosx/HBPictureViewController.m +++ b/macosx/HBPictureViewController.m @@ -6,7 +6,6 @@ #import "HBPictureViewController.h" -@import HandBrakeKit.HBFilters; @import HandBrakeKit.HBPicture; static void *HBPictureViewControllerContext = &HBPictureViewControllerContext; diff --git a/macosx/HandBrake.xcodeproj/project.pbxproj b/macosx/HandBrake.xcodeproj/project.pbxproj index 9f2d9ebfe..6afc04ba7 100644 --- a/macosx/HandBrake.xcodeproj/project.pbxproj +++ b/macosx/HandBrake.xcodeproj/project.pbxproj @@ -72,6 +72,8 @@ A91119A41C7DD614001C463C /* HBSubtitlesDefaults.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F4728B1976BAA70009EC65 /* HBSubtitlesDefaults.h */; settings = {ATTRIBUTES = (Public, ); }; }; A91119A51C7DD644001C463C /* HBDistributedArray.h in Headers */ = {isa = PBXBuildFile; fileRef = A9E66D6E1A67A2A8007B641D /* HBDistributedArray.h */; settings = {ATTRIBUTES = (Public, ); }; }; A91119A61C7DD64A001C463C /* HBDistributedArray.m in Sources */ = {isa = PBXBuildFile; fileRef = A9E66D6F1A67A2A8007B641D /* HBDistributedArray.m */; }; + A91485FE1F61296100374C12 /* HBFiltersViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A91485FD1F61296100374C12 /* HBFiltersViewController.m */; }; + A91485FF1F612A8A00374C12 /* HBFiltersViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A91485FA1F61291F00374C12 /* HBFiltersViewController.xib */; }; A914BCB31BC441C700157917 /* HBPreviewView.m in Sources */ = {isa = PBXBuildFile; fileRef = A914BCB21BC441C700157917 /* HBPreviewView.m */; }; A916180E1C845161000556C6 /* NSDictionary+HBAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A93B0DF71C804CF50051A3FA /* NSDictionary+HBAdditions.m */; }; A916C9921C84498F00C7B560 /* DockTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 46AB433415F98A2B009C0961 /* DockTextField.m */; }; @@ -403,6 +405,9 @@ A90A0CAE1988D57200DA65CE /* HBAudioTrackPreset.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBAudioTrackPreset.m; sourceTree = ""; }; A91017B21A64440A00039BFB /* HBSubtitles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBSubtitles.h; sourceTree = ""; }; A91017B31A64440A00039BFB /* HBSubtitles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBSubtitles.m; sourceTree = ""; }; + A91485FB1F61291F00374C12 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = HBFiltersViewController.xib; sourceTree = ""; }; + A91485FC1F61296100374C12 /* HBFiltersViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HBFiltersViewController.h; sourceTree = ""; }; + A91485FD1F61296100374C12 /* HBFiltersViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HBFiltersViewController.m; sourceTree = ""; }; A914BCB11BC441C700157917 /* HBPreviewView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBPreviewView.h; sourceTree = ""; }; A914BCB21BC441C700157917 /* HBPreviewView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBPreviewView.m; sourceTree = ""; }; A9160A331AE7A165009A7818 /* HBCodingUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBCodingUtilities.h; sourceTree = ""; }; @@ -864,6 +869,7 @@ A9CF25EF1990D62C0023F727 /* Presets.xib */, A9E2FD291A21BC6F000E8D3F /* AddPreset.xib */, A99F40D11B624EA500750170 /* HBPictureViewController.xib */, + A91485FA1F61291F00374C12 /* HBFiltersViewController.xib */, A93E0ED51972958C00FD67FB /* Video.xib */, A9F2EB6D196F12C800066546 /* Audio.xib */, A932E26A1988334B0047D13E /* AudioDefaults.xib */, @@ -1180,6 +1186,8 @@ A9CF25F61990D6820023F727 /* HBPresetsViewController.m */, A99F40CC1B624E7E00750170 /* HBPictureViewController.h */, A99F40CD1B624E7E00750170 /* HBPictureViewController.m */, + A91485FC1F61296100374C12 /* HBFiltersViewController.h */, + A91485FD1F61296100374C12 /* HBFiltersViewController.m */, A93E0ED01972957000FD67FB /* HBVideoController.h */, A93E0ED11972957000FD67FB /* HBVideoController.m */, A9AA447B1970724D00D7DEFC /* HBAdvancedController.h */, @@ -1470,6 +1478,7 @@ A96664BB1CCE493D00DA4A57 /* HBEncodingProgressHUDController.xib in Resources */, A9E1468316BC2AD800C307BC /* PrevTemplate.pdf in Resources */, A937EECB1C6C7C0300EEAE6D /* dsa_pub.pem in Resources */, + A91485FF1F612A8A00374C12 /* HBFiltersViewController.xib in Resources */, A95BC1E81CD2548A008D6A33 /* volLowTemplate.pdf in Resources */, A9C0DB85197E7B0000DF55B3 /* SubtitlesDefaults.xib in Resources */, A9DC6C56196F0517002AE6B4 /* Subtitles.xib in Resources */, @@ -1528,6 +1537,7 @@ 273F20B514ADBE670021BE6D /* HBPreferencesController.m in Sources */, 273F20AC14ADBE670021BE6D /* HBController.m in Sources */, A93E0ED31972957000FD67FB /* HBVideoController.m in Sources */, + A91485FE1F61296100374C12 /* HBFiltersViewController.m in Sources */, A96664B01CCE45BF00DA4A57 /* HBPlayerHUDController.m in Sources */, A99F40CF1B624E7E00750170 /* HBPictureViewController.m in Sources */, 273F20AF14ADBE670021BE6D /* HBAudioController.m in Sources */, @@ -1709,6 +1719,14 @@ name = Queue.xib; sourceTree = ""; }; + A91485FA1F61291F00374C12 /* HBFiltersViewController.xib */ = { + isa = PBXVariantGroup; + children = ( + A91485FB1F61291F00374C12 /* English */, + ); + name = HBFiltersViewController.xib; + sourceTree = ""; + }; A92268791A6E569B00A8D5C5 /* MainWindow.xib */ = { isa = PBXVariantGroup; children = ( -- cgit v1.2.3