From baa21774395f320898c29380d5671977e0be04b0 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 15 Jan 2012 17:24:30 -0500 Subject: [PATCH] Fixed a bug where re-prioritization criteria list would initially be empty. That was because the dialog was created on launch time rather than on-the-fly. --HG-- branch : objp --- cocoa/base/PrioritizeDialog.h | 3 ++- cocoa/base/PrioritizeDialog.m | 4 ++-- cocoa/base/ResultWindow.m | 2 +- cocoa/inter/app.py | 3 --- cocoa/inter/prioritize_dialog.py | 5 +++++ core/app.py | 2 -- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/cocoa/base/PrioritizeDialog.h b/cocoa/base/PrioritizeDialog.h index e425ccd4..406755d7 100644 --- a/cocoa/base/PrioritizeDialog.h +++ b/cocoa/base/PrioritizeDialog.h @@ -11,6 +11,7 @@ http://www.hardcoded.net/licenses/bsd_license #import "HSPopUpList.h" #import "HSSelectableList.h" #import "PrioritizeList.h" +#import "PyDupeGuru.h" @interface PrioritizeDialog : NSWindowController { @@ -23,7 +24,7 @@ http://www.hardcoded.net/licenses/bsd_license HSSelectableList *criteriaList; PrioritizeList *prioritizationList; } -- (id)initWithPyRef:(PyObject *)aPyRef; +- (id)initWithApp:(PyDupeGuru *)aApp; - (PyPrioritizeDialog *)model; - (IBAction)addSelected:(id)sender; diff --git a/cocoa/base/PrioritizeDialog.m b/cocoa/base/PrioritizeDialog.m index 9ef6127b..4a90c1fb 100644 --- a/cocoa/base/PrioritizeDialog.m +++ b/cocoa/base/PrioritizeDialog.m @@ -10,11 +10,11 @@ http://www.hardcoded.net/licenses/bsd_license #import "Utils.h" @implementation PrioritizeDialog -- (id)initWithPyRef:(PyObject *)aPyRef +- (id)initWithApp:(PyDupeGuru *)aApp { self = [super initWithWindowNibName:@"PrioritizeDialog"]; [self window]; - model = [[PyPrioritizeDialog alloc] initWithModel:aPyRef]; + model = [[PyPrioritizeDialog alloc] initWithApp:[aApp pyRef]]; [model bindCallback:createCallback(@"PrioritizeDialogView", self)]; categoryPopUp = [[HSPopUpList alloc] initWithPyRef:[[self model] categoryList] popupView:categoryPopUpView]; criteriaList = [[HSSelectableList alloc] initWithPyRef:[[self model] criteriaList] tableView:criteriaTableView]; diff --git a/cocoa/base/ResultWindow.m b/cocoa/base/ResultWindow.m index 868a3d51..984b7da1 100644 --- a/cocoa/base/ResultWindow.m +++ b/cocoa/base/ResultWindow.m @@ -272,7 +272,7 @@ http://www.hardcoded.net/licenses/bsd_license - (IBAction)reprioritizeResults:(id)sender { - PrioritizeDialog *dlg = [[PrioritizeDialog alloc] initWithPyRef:[model prioritizeDialog]]; + PrioritizeDialog *dlg = [[PrioritizeDialog alloc] initWithApp:model]; NSInteger result = [NSApp runModalForWindow:[dlg window]]; if (result == NSRunStoppedResponse) { [[dlg model] performReprioritization]; diff --git a/cocoa/inter/app.py b/cocoa/inter/app.py index a82de240..9b9c0c31 100644 --- a/cocoa/inter/app.py +++ b/cocoa/inter/app.py @@ -43,9 +43,6 @@ class PyDupeGuruBase(PyFairware): def extraFairwareReminder(self) -> pyref: return self.model.extra_fairware_reminder - def prioritizeDialog(self) -> pyref: - return self.model.prioritize_dialog - def problemDialog(self) -> pyref: return self.model.problem_dialog diff --git a/cocoa/inter/prioritize_dialog.py b/cocoa/inter/prioritize_dialog.py index 8f9d43f8..95a5e086 100644 --- a/cocoa/inter/prioritize_dialog.py +++ b/cocoa/inter/prioritize_dialog.py @@ -1,10 +1,15 @@ from objp.util import pyref from cocoa.inter import PyGUIObject, GUIObjectView +from core.gui.prioritize_dialog import PrioritizeDialog class PrioritizeDialogView(GUIObjectView): pass class PyPrioritizeDialog(PyGUIObject): + def __init__(self, app: pyref): + model = PrioritizeDialog(app.model) + PyGUIObject.__init__(self, model) + def categoryList(self) -> pyref: return self.model.category_list diff --git a/core/app.py b/core/app.py index 36c0d950..29a5a805 100644 --- a/core/app.py +++ b/core/app.py @@ -27,7 +27,6 @@ from . import directories, results, scanner, export, fs from .gui.details_panel import DetailsPanel from .gui.directory_tree import DirectoryTree from .gui.extra_fairware_reminder import ExtraFairwareReminder -from .gui.prioritize_dialog import PrioritizeDialog from .gui.problem_dialog import ProblemDialog from .gui.stats_label import StatsLabel @@ -109,7 +108,6 @@ class DupeGuru(RegistrableApplication, Broadcaster): self.details_panel = DetailsPanel(self) self.directory_tree = DirectoryTree(self) self.extra_fairware_reminder = ExtraFairwareReminder(self) - self.prioritize_dialog = PrioritizeDialog(self) self.problem_dialog = ProblemDialog(self) self.stats_label = StatsLabel(self) self.result_table = self._create_result_table()