MacGui: add a next and previous button to the summary panel preview.
This commit is contained in:
parent
b16949a1c1
commit
dd89c106cf
77
macosx/English.lproj/HBPreviewViewController.xib
Normal file
77
macosx/English.lproj/HBPreviewViewController.xib
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="13771" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
|
<dependencies>
|
||||||
|
<deployment identifier="macosx"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="13771"/>
|
||||||
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<customObject id="-2" userLabel="File's Owner" customClass="HBPreviewViewController">
|
||||||
|
<connections>
|
||||||
|
<outlet property="hud" destination="Fn2-om-hEi" id="Fck-vd-r8e"/>
|
||||||
|
<outlet property="previewView" destination="wh8-oO-lCN" id="dCK-4h-Ho2"/>
|
||||||
|
<outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
|
||||||
|
</connections>
|
||||||
|
</customObject>
|
||||||
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
|
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||||
|
<customView id="Hz6-mo-xeY">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="640" height="480"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<customView wantsLayer="YES" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="wh8-oO-lCN" customClass="HBPreviewView" propertyAccessControl="all">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="640" height="480"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
</customView>
|
||||||
|
<customView translatesAutoresizingMaskIntoConstraints="NO" id="Fn2-om-hEi" customClass="HBHUDView">
|
||||||
|
<rect key="frame" x="280" y="40" width="80" height="26"/>
|
||||||
|
<subviews>
|
||||||
|
<button toolTip="Toggle Play/Pause" translatesAutoresizingMaskIntoConstraints="NO" id="5po-M6-Hqa">
|
||||||
|
<rect key="frame" x="44" y="5" width="24" height="18"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="24" id="8M6-qp-Hbs"/>
|
||||||
|
<constraint firstAttribute="height" constant="18" id="pHH-yR-lLG"/>
|
||||||
|
</constraints>
|
||||||
|
<buttonCell key="cell" type="square" title="›" bezelStyle="shadowlessSquare" imagePosition="overlaps" alignment="center" imageScaling="proportionallyDown" id="Izx-9B-XA3">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="system" size="18"/>
|
||||||
|
</buttonCell>
|
||||||
|
<accessibility description="Play/Pause"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="next:" target="-2" id="IlJ-w9-A9q"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button toolTip="Toggle Play/Pause" translatesAutoresizingMaskIntoConstraints="NO" id="1o6-MG-Jbu">
|
||||||
|
<rect key="frame" x="12" y="6" width="24" height="16"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="height" constant="16" id="efr-28-vaL"/>
|
||||||
|
<constraint firstAttribute="width" constant="24" id="tBw-VV-Jdp"/>
|
||||||
|
</constraints>
|
||||||
|
<buttonCell key="cell" type="square" title="‹" bezelStyle="shadowlessSquare" imagePosition="overlaps" alignment="center" imageScaling="proportionallyDown" id="EWx-of-C7c">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="system" size="18"/>
|
||||||
|
</buttonCell>
|
||||||
|
<accessibility description="Play/Pause"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="previous:" target="-2" id="UxL-j8-GeJ"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="1o6-MG-Jbu" firstAttribute="centerY" secondItem="5po-M6-Hqa" secondAttribute="centerY" id="aSW-vr-iFV"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="5po-M6-Hqa" secondAttribute="trailing" constant="12" id="esD-wC-uht"/>
|
||||||
|
<constraint firstItem="5po-M6-Hqa" firstAttribute="leading" secondItem="1o6-MG-Jbu" secondAttribute="trailing" constant="8" id="gSU-gO-hbY"/>
|
||||||
|
<constraint firstAttribute="height" constant="26" id="sJO-EZ-FmV"/>
|
||||||
|
<constraint firstItem="1o6-MG-Jbu" firstAttribute="leading" secondItem="Fn2-om-hEi" secondAttribute="leading" constant="12" id="tO0-TJ-Bm0"/>
|
||||||
|
<constraint firstItem="1o6-MG-Jbu" firstAttribute="top" secondItem="Fn2-om-hEi" secondAttribute="top" constant="4" id="ysh-ll-QCP"/>
|
||||||
|
</constraints>
|
||||||
|
</customView>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="Fn2-om-hEi" firstAttribute="centerX" secondItem="Hz6-mo-xeY" secondAttribute="centerX" id="1DU-Zn-HTj"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="Fn2-om-hEi" secondAttribute="bottom" constant="40" id="M3h-dq-YzY"/>
|
||||||
|
</constraints>
|
||||||
|
<point key="canvasLocation" x="-376" y="-8"/>
|
||||||
|
</customView>
|
||||||
|
</objects>
|
||||||
|
</document>
|
@ -1,9 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="13529" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="13771" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="macosx"/>
|
<deployment identifier="macosx"/>
|
||||||
<development version="8000" identifier="xcode"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="13771"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="13529"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<objects>
|
<objects>
|
||||||
@ -95,7 +94,7 @@
|
|||||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<customView wantsLayer="YES" translatesAutoresizingMaskIntoConstraints="NO" id="m5a-0z-QQ4" customClass="HBPreviewView">
|
<customView wantsLayer="YES" translatesAutoresizingMaskIntoConstraints="NO" id="m5a-0z-QQ4">
|
||||||
<rect key="frame" x="295" y="16" width="556" height="334"/>
|
<rect key="frame" x="295" y="16" width="556" height="334"/>
|
||||||
</customView>
|
</customView>
|
||||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" preferredMaxLayoutWidth="100" translatesAutoresizingMaskIntoConstraints="NO" id="Jgq-K8-z3W">
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" preferredMaxLayoutWidth="100" translatesAutoresizingMaskIntoConstraints="NO" id="Jgq-K8-z3W">
|
||||||
|
19
macosx/HBPreviewViewController.h
Normal file
19
macosx/HBPreviewViewController.h
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
//
|
||||||
|
// HBPreviewViewController.h
|
||||||
|
// HandBrake
|
||||||
|
//
|
||||||
|
// Created by Damiano Galassi on 14/12/2017.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
@class HBPreviewGenerator;
|
||||||
|
@class HBPreviewController;
|
||||||
|
|
||||||
|
@interface HBPreviewViewController : NSViewController
|
||||||
|
|
||||||
|
@property (nonatomic, readwrite, weak, nullable) HBPreviewGenerator *generator;
|
||||||
|
|
||||||
|
- (void)update;
|
||||||
|
|
||||||
|
@end
|
209
macosx/HBPreviewViewController.m
Normal file
209
macosx/HBPreviewViewController.m
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
//
|
||||||
|
// HBPreviewViewController.m
|
||||||
|
// HandBrake
|
||||||
|
//
|
||||||
|
// Created by Damiano Galassi on 14/12/2017.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <QuartzCore/QuartzCore.h>
|
||||||
|
#import "HBPreviewViewController.h"
|
||||||
|
|
||||||
|
#import "HBPreviewView.h"
|
||||||
|
#import "HBPreviewGenerator.h"
|
||||||
|
#import "HBPreviewController.h"
|
||||||
|
|
||||||
|
@interface HBPreviewViewController ()
|
||||||
|
|
||||||
|
@property (nonatomic, strong) IBOutlet HBPreviewView *previewView;
|
||||||
|
|
||||||
|
@property (nonatomic, strong) IBOutlet NSView *hud;
|
||||||
|
|
||||||
|
@property (nonatomic) NSInteger selectedIndex;
|
||||||
|
@property (nonatomic) BOOL visible;
|
||||||
|
|
||||||
|
@property (nonatomic) NSTimer *hudTimer;
|
||||||
|
@property (nonatomic) BOOL mouseInView;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation HBPreviewViewController
|
||||||
|
|
||||||
|
- (instancetype)init
|
||||||
|
{
|
||||||
|
self = [super initWithNibName:@"HBPreviewViewController" bundle:nil];
|
||||||
|
if (self)
|
||||||
|
{
|
||||||
|
_selectedIndex = 1;
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)loadView
|
||||||
|
{
|
||||||
|
[super loadView];
|
||||||
|
self.visible = YES;
|
||||||
|
self.previewView.showShadow = NO;
|
||||||
|
|
||||||
|
NSTrackingArea *trackingArea = [[NSTrackingArea alloc] initWithRect:self.view.frame
|
||||||
|
options:NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved | NSTrackingInVisibleRect | NSTrackingActiveAlways
|
||||||
|
owner:self
|
||||||
|
userInfo:nil];
|
||||||
|
[self.view addTrackingArea:trackingArea];
|
||||||
|
self.hud.hidden = YES;
|
||||||
|
self.hud.layer.opacity = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)viewWillAppear
|
||||||
|
{
|
||||||
|
self.visible = YES;
|
||||||
|
[self updatePicture];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)viewDidDisappear
|
||||||
|
{
|
||||||
|
self.visible = NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setGenerator:(HBPreviewGenerator *)generator
|
||||||
|
{
|
||||||
|
_generator = generator;
|
||||||
|
if (generator)
|
||||||
|
{
|
||||||
|
self.selectedIndex = self.selectedIndex;
|
||||||
|
[self updatePicture];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self.previewView.image = nil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)update
|
||||||
|
{
|
||||||
|
[self updatePicture];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma MARK: - HUD
|
||||||
|
|
||||||
|
- (void)mouseEntered:(NSEvent *)theEvent
|
||||||
|
{
|
||||||
|
if (self.generator)
|
||||||
|
{
|
||||||
|
[self showHudWithAnimation:self.hud];
|
||||||
|
}
|
||||||
|
self.mouseInView = YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)mouseMoved:(NSEvent *)theEvent
|
||||||
|
{
|
||||||
|
[super mouseMoved:theEvent];
|
||||||
|
|
||||||
|
// Test for mouse location to show/hide hud controls
|
||||||
|
if (self.generator && self.mouseInView)
|
||||||
|
{
|
||||||
|
[self showHudWithAnimation:self.hud];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)mouseExited:(NSEvent *)theEvent
|
||||||
|
{
|
||||||
|
[self hideHudWithAnimation:self.hud];
|
||||||
|
self.mouseInView = NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define ANIMATION_DUR 0.15
|
||||||
|
|
||||||
|
- (void)showHudWithAnimation:(NSView *)hud
|
||||||
|
{
|
||||||
|
// The standard view animator doesn't play
|
||||||
|
// nicely with the Yosemite visual effects yet.
|
||||||
|
// So let's do the fade ourself.
|
||||||
|
if (hud.layer.opacity == 0 || hud.isHidden)
|
||||||
|
{
|
||||||
|
hud.hidden = NO;
|
||||||
|
|
||||||
|
[CATransaction begin];
|
||||||
|
CABasicAnimation *fadeInAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
|
||||||
|
fadeInAnimation.fromValue = @(hud.layer.presentationLayer.opacity);
|
||||||
|
fadeInAnimation.toValue = @(1.0);
|
||||||
|
fadeInAnimation.beginTime = 0.0;
|
||||||
|
fadeInAnimation.duration = ANIMATION_DUR;
|
||||||
|
|
||||||
|
[hud.layer addAnimation:fadeInAnimation forKey:nil];
|
||||||
|
[hud.layer setOpacity:1];
|
||||||
|
|
||||||
|
[CATransaction commit];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)hideHudWithAnimation:(NSView *)hud
|
||||||
|
{
|
||||||
|
if (hud.layer.opacity != 0)
|
||||||
|
{
|
||||||
|
[CATransaction begin];
|
||||||
|
CABasicAnimation *fadeOutAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
|
||||||
|
fadeOutAnimation.fromValue = @(hud.layer.presentationLayer.opacity);
|
||||||
|
fadeOutAnimation.toValue = @(0.0);
|
||||||
|
fadeOutAnimation.beginTime = 0.0;
|
||||||
|
fadeOutAnimation.duration = ANIMATION_DUR;
|
||||||
|
|
||||||
|
[hud.layer addAnimation:fadeOutAnimation forKey:nil];
|
||||||
|
[hud.layer setOpacity:0];
|
||||||
|
|
||||||
|
[CATransaction commit];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma MARK: - Preview index
|
||||||
|
|
||||||
|
- (void)setSelectedIndex:(NSInteger)selectedIndex
|
||||||
|
{
|
||||||
|
NSInteger count = self.generator.imagesCount;
|
||||||
|
if (selectedIndex >= count)
|
||||||
|
{
|
||||||
|
selectedIndex = count -1;
|
||||||
|
}
|
||||||
|
else if (selectedIndex < 0)
|
||||||
|
{
|
||||||
|
selectedIndex = 0;
|
||||||
|
}
|
||||||
|
_selectedIndex = selectedIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction)next:(id)sender
|
||||||
|
{
|
||||||
|
self.selectedIndex += 1;
|
||||||
|
[self updatePicture];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction)previous:(id)sender
|
||||||
|
{
|
||||||
|
self.selectedIndex -= 1;
|
||||||
|
[self updatePicture];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)updatePicture
|
||||||
|
{
|
||||||
|
if (self.generator && self.visible)
|
||||||
|
{
|
||||||
|
CGImageRef fPreviewImage = [self.generator copyImageAtIndex:self.selectedIndex shouldCache:YES];
|
||||||
|
self.previewView.image = fPreviewImage;
|
||||||
|
CFRelease(fPreviewImage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)scrollWheel:(NSEvent *)theEvent
|
||||||
|
{
|
||||||
|
if (theEvent.deltaY < 0)
|
||||||
|
{
|
||||||
|
self.selectedIndex += 1;
|
||||||
|
[self updatePicture];
|
||||||
|
}
|
||||||
|
else if (theEvent.deltaY > 0)
|
||||||
|
{
|
||||||
|
self.selectedIndex -= 1;
|
||||||
|
[self updatePicture];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
@ -5,7 +5,8 @@
|
|||||||
It may be used under the terms of the GNU General Public License. */
|
It may be used under the terms of the GNU General Public License. */
|
||||||
|
|
||||||
#import "HBSummaryViewController.h"
|
#import "HBSummaryViewController.h"
|
||||||
#import "HBPreviewView.h"
|
|
||||||
|
#import "HBPreviewViewController.h"
|
||||||
#import "HBPreviewGenerator.h"
|
#import "HBPreviewGenerator.h"
|
||||||
|
|
||||||
@import HandBrakeKit;
|
@import HandBrakeKit;
|
||||||
@ -25,14 +26,14 @@ static void *HBSummaryViewControllerSubsContext = &HBSummaryViewControllerSubsCo
|
|||||||
@property (nonatomic, strong) IBOutlet NSTextField *filtersLabel;
|
@property (nonatomic, strong) IBOutlet NSTextField *filtersLabel;
|
||||||
@property (nonatomic, strong) IBOutlet NSTextField *dimensionLabel;
|
@property (nonatomic, strong) IBOutlet NSTextField *dimensionLabel;
|
||||||
|
|
||||||
@property (nonatomic, strong) IBOutlet HBPreviewView *previewView;
|
@property (nonatomic, strong) IBOutlet NSView *previewView;
|
||||||
|
|
||||||
|
@property (nonatomic, strong) HBPreviewViewController *previewViewController;
|
||||||
|
|
||||||
@property (nonatomic) BOOL tracksReloadInQueue;
|
@property (nonatomic) BOOL tracksReloadInQueue;
|
||||||
@property (nonatomic) BOOL filtersReloadInQueue;
|
@property (nonatomic) BOOL filtersReloadInQueue;
|
||||||
@property (nonatomic) BOOL pictureReloadInQueue;
|
@property (nonatomic) BOOL pictureReloadInQueue;
|
||||||
|
|
||||||
@property (nonatomic) BOOL visible;
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation HBSummaryViewController
|
@implementation HBSummaryViewController
|
||||||
@ -40,43 +41,25 @@ static void *HBSummaryViewControllerSubsContext = &HBSummaryViewControllerSubsCo
|
|||||||
- (instancetype)init
|
- (instancetype)init
|
||||||
{
|
{
|
||||||
self = [super initWithNibName:@"HBSummaryViewController" bundle:nil];
|
self = [super initWithNibName:@"HBSummaryViewController" bundle:nil];
|
||||||
|
if (self)
|
||||||
|
{
|
||||||
|
_previewViewController = [[HBPreviewViewController alloc] init];
|
||||||
|
}
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)loadView
|
- (void)loadView
|
||||||
{
|
{
|
||||||
[super loadView];
|
[super loadView];
|
||||||
self.previewView.showShadow = NO;
|
self.previewViewController.view.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
|
||||||
self.visible = YES;
|
self.previewViewController.view.frame = NSMakeRect(0, 0, self.previewView.frame.size.width, self.previewView.frame.size.height);
|
||||||
|
[self.previewView addSubview:self.previewViewController.view];
|
||||||
[self resetLabels];
|
[self resetLabels];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)viewWillAppear
|
|
||||||
{
|
|
||||||
self.visible = YES;
|
|
||||||
if (self.pictureReloadInQueue || self.previewView.image == NULL)
|
|
||||||
{
|
|
||||||
[self updatePicture];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidDisappear
|
|
||||||
{
|
|
||||||
self.visible = NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)setGenerator:(HBPreviewGenerator *)generator
|
- (void)setGenerator:(HBPreviewGenerator *)generator
|
||||||
{
|
{
|
||||||
_generator = generator;
|
self.previewViewController.generator = generator;
|
||||||
|
|
||||||
if (generator)
|
|
||||||
{
|
|
||||||
[self updatePicture];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
self.previewView.image = nil;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setJob:(HBJob *)job
|
- (void)setJob:(HBJob *)job
|
||||||
@ -258,7 +241,7 @@ static void *HBSummaryViewControllerSubsContext = &HBSummaryViewControllerSubsCo
|
|||||||
// to avoid reloading the same image multiple times.
|
// to avoid reloading the same image multiple times.
|
||||||
if (self.pictureReloadInQueue == NO)
|
if (self.pictureReloadInQueue == NO)
|
||||||
{
|
{
|
||||||
[[NSRunLoop mainRunLoop] performSelector:@selector(updatePicture) target:self argument:nil order:0 modes:@[NSDefaultRunLoopMode]];
|
[[NSRunLoop mainRunLoop] performSelector:@selector(updatePictureLabel) target:self argument:nil order:0 modes:@[NSDefaultRunLoopMode]];
|
||||||
self.pictureReloadInQueue = YES;
|
self.pictureReloadInQueue = YES;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -285,18 +268,11 @@ static void *HBSummaryViewControllerSubsContext = &HBSummaryViewControllerSubsCo
|
|||||||
self.filtersReloadInQueue = NO;
|
self.filtersReloadInQueue = NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)updatePicture
|
- (void)updatePictureLabel
|
||||||
{
|
{
|
||||||
if (self.visible && self.generator)
|
self.pictureReloadInQueue = NO;
|
||||||
{
|
self.dimensionLabel.stringValue = self.job.picture.shortInfo;
|
||||||
NSUInteger index = self.generator.imagesCount > 1 ? 1 : 0;
|
[self.previewViewController update];
|
||||||
CGImageRef fPreviewImage = [self.generator copyImageAtIndex:index shouldCache:NO];
|
|
||||||
self.previewView.image = fPreviewImage;
|
|
||||||
CFRelease(fPreviewImage);
|
|
||||||
self.pictureReloadInQueue = NO;
|
|
||||||
|
|
||||||
self.dimensionLabel.stringValue = self.job.picture.shortInfo;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user