1
0
mirror of https://github.com/arsenetar/dupeguru.git synced 2024-11-05 07:49:02 +00:00
dupeguru/cocoalib/controllers/HSProgressWindow.m
Virgil Dupras e5ce6680ca Modernized progress window GUI
Following the refactoring that has been initiated in pdfmasher's
"vala" branch, I pushed more progress window logic into the
core.

The UI code is now a bit dumber than it used to be, and the core
now directly decides when the progress window is shown and
hidden. The "job finished" notification is also directly sent by the
core. Job description update logic is handled by a core gui
textfield.

Job description contsants also moved to the core, triggering
a localisation migration from "ui" to "core".
2013-08-03 16:27:36 -04:00

80 lines
1.9 KiB
Objective-C

/*
Copyright 2013 Hardcoded Software (http://www.hardcoded.net)
This software is licensed under the "BSD" License as described in the "LICENSE" file,
which should be included with this package. The terms are also available at
http://www.hardcoded.net/licenses/bsd_license
*/
#import "HSProgressWindow.h"
#import "ProgressController.h"
#import "Utils.h"
@implementation HSProgressWindow
- (id)initWithPyRef:(PyObject *)aPyRef view:(NSView *)aView
{
self = [self initWithPyRef:aPyRef wrapperClass:[PyProgressWindow class] callbackClassName:@"ProgressWindowView" view:aView];
[[ProgressController mainProgressController] setWorker:self];
jobdescTextField = [[HSTextField alloc] initWithPyRef:[[self model] jobdescTextField] view:[[ProgressController mainProgressController] descText]];
progressdescTextField = [[HSTextField alloc] initWithPyRef:[[self model] progressdescTextField] view:[[ProgressController mainProgressController] statusText]];
parentWindow = nil;
return self;
}
- (PyProgressWindow *)model
{
return (PyProgressWindow *)model;
}
/* Public */
- (void)setParentWindow:(NSWindow *)aParentWindow
{
parentWindow = aParentWindow;
}
- (void)setProgress:(NSInteger)aProgress
{
progress = aProgress;
}
- (void)showWindow
{
if (parentWindow != nil) {
[[ProgressController mainProgressController] showSheetForParent:parentWindow];
}
else {
[[ProgressController mainProgressController] show];
}
}
- (void)closeWindow
{
[[ProgressController mainProgressController] hide];
}
/* Worker */
- (NSNumber *)getJobProgress
{
[[self model] pulse];
return [NSNumber numberWithInt:progress];
}
- (NSString *)getJobDesc
{
// Our desc label is updated independently.
return nil;
}
- (void)cancelJob
{
[[self model] cancel];
}
- (void)jobCompleted:(NSString *)jobid
{
// With the new hscommon.gui.progress_window, this call is done from within the core. Do nothing.
}
@end