From 5e57f9cbd66dbd93697904e4a768bead58e8c0e5 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sat, 6 Feb 2010 15:31:35 +0100 Subject: [PATCH] Removed logic duplication across toolkit code in "Reveal Selected" action. --- core/app.py | 8 ++++++++ core/app_cocoa.py | 10 ++++------ core/app_cocoa_inter.py | 2 +- qt/base/app.py | 10 ++++------ 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/core/app.py b/core/app.py index eb8fb211..6d07d63d 100644 --- a/core/app.py +++ b/core/app.py @@ -111,6 +111,10 @@ class DupeGuru(RegistrableApplication, Broadcaster): def _recycle_dupe(dupe): raise NotImplementedError() + @staticmethod + def _reveal_path(path): + raise NotImplementedError() + def _select_dupes(self, dupes): if dupes == self.selected_dupes: return @@ -238,6 +242,10 @@ class DupeGuru(RegistrableApplication, Broadcaster): def remove_selected(self): self.remove_duplicates(self.selected_dupes) + def reveal_selected(self): + if self.selected_dupes: + self._reveal_path(self.selected_dupes[0].path) + def save(self): if not op.exists(self.appdata): os.makedirs(self.appdata) diff --git a/core/app_cocoa.py b/core/app_cocoa.py index 7c94f5a9..e4cffa20 100644 --- a/core/app_cocoa.py +++ b/core/app_cocoa.py @@ -61,6 +61,10 @@ class DupeGuru(app.DupeGuru): result, tag = NSWorkspace.sharedWorkspace().performFileOperation_source_destination_files_tag_( NSWorkspaceRecycleOperation, directory, '', [filename], None) + @staticmethod + def _reveal_path(path): + NSWorkspace.sharedWorkspace().selectFile_inFileViewerRootedAtPath_(unicode(path), '') + def _start_job(self, jobid, func): try: j = self.progress.create_job() @@ -115,12 +119,6 @@ class DupeGuru(app.DupeGuru): logging.warning("dupeGuru Warning: %s" % unicode(e)) return False - def RevealSelected(self): - # local import because first appkit import takes a lot of memory. we want to avoid it. - if self.selected_dupes: - path = unicode(self.selected_dupes[0].path) - NSWorkspace.sharedWorkspace().selectFile_inFileViewerRootedAtPath_(path,'') - def start_scanning(self): self._select_dupes([]) try: diff --git a/core/app_cocoa_inter.py b/core/app_cocoa_inter.py index 3cebb984..7c02aa4b 100644 --- a/core/app_cocoa_inter.py +++ b/core/app_cocoa_inter.py @@ -112,7 +112,7 @@ class PyDupeGuruBase(PyApp): return self.app.RenameSelected(newname) def revealSelected(self): - self.app.RevealSelected() + self.app.reveal_selected() #---Misc def sortDupesBy_ascending_(self, key, asc): diff --git a/qt/base/app.py b/qt/base/app.py index cbba7cb9..f9ce44d9 100644 --- a/qt/base/app.py +++ b/qt/base/app.py @@ -126,6 +126,10 @@ class DupeGuru(DupeGuruBase, QObject): def _recycle_dupe(dupe): platform.recycle_file(dupe.path) + @staticmethod + def _reveal_path(path): + self._open_path(path[:-1]) + def _start_job(self, jobid, func): title = JOBID2TITLE[jobid] try: @@ -210,12 +214,6 @@ class DupeGuru(DupeGuruBase, QObject): logging.warning("dupeGuru Warning: %s" % unicode(e)) return False - def reveal_selected(self): - if not self.selected_dupes: - return - url = QUrl.fromLocalFile(unicode(self.selected_dupe[0].path[:-1])) - QDesktopServices.openUrl(url) - def select_dupes(self, dupes): self._select_dupes(dupes)