mirror of
https://github.com/arsenetar/dupeguru.git
synced 2026-01-25 08:01:39 +00:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a6deb04049 | ||
|
|
806d6be36c | ||
|
|
152a8772da | ||
|
|
5885ead5ab | ||
|
|
6fc5ce4bad | ||
|
|
a4ae503bd4 | ||
|
|
020746be10 | ||
|
|
436a8e686d | ||
|
|
b6d66f6d0b | ||
|
|
5284decd67 | ||
|
|
73d22de752 | ||
|
|
26e496a051 | ||
|
|
75f0ed14aa |
4
.hgtags
4
.hgtags
@@ -55,3 +55,7 @@ e62183e907d6177cf0bac354e31afa9546c199e6 se3.1.2
|
|||||||
28ba95706dc54ba32b1c0cf4e1e6350515d19ba3 me6.0.2
|
28ba95706dc54ba32b1c0cf4e1e6350515d19ba3 me6.0.2
|
||||||
925847384dcef62a5c3518fc9e5ce42feab2b093 pe2.2.2
|
925847384dcef62a5c3518fc9e5ce42feab2b093 pe2.2.2
|
||||||
383b14d6e8555ed2c8d5552259bc7ce600dfb1d0 before-leopard-drop
|
383b14d6e8555ed2c8d5552259bc7ce600dfb1d0 before-leopard-drop
|
||||||
|
a2f7b7302e178f08725a6404ddc28464409510b1 se3.2.0
|
||||||
|
5a5134a4fa9bb7ca80ae3e32010030f5bd7ba434 me6.1.0
|
||||||
|
0fd77be57ff716d5c93232e829dc02acec036d7c se3.2.1
|
||||||
|
3dd08060135b0b9cef70b6f5a81f191ea339c8d5 me6.1.1
|
||||||
|
|||||||
20
build.py
20
build.py
@@ -17,7 +17,7 @@ from distutils.extension import Extension
|
|||||||
|
|
||||||
from hscommon import sphinxgen
|
from hscommon import sphinxgen
|
||||||
from hscommon.build import (add_to_pythonpath, print_and_do, copy_packages, filereplace,
|
from hscommon.build import (add_to_pythonpath, print_and_do, copy_packages, filereplace,
|
||||||
get_module_version, build_all_cocoa_locs, build_all_qt_locs)
|
get_module_version, build_all_cocoa_locs, build_all_qt_locs, move_all)
|
||||||
|
|
||||||
def parse_args():
|
def parse_args():
|
||||||
usage = "usage: %prog [options]"
|
usage = "usage: %prog [options]"
|
||||||
@@ -114,14 +114,6 @@ def build_localizations(ui, edition):
|
|||||||
build_all_qt_locs(op.join('qt', 'lang'), extradirs=[op.join('qtlib', 'lang')])
|
build_all_qt_locs(op.join('qt', 'lang'), extradirs=[op.join('qtlib', 'lang')])
|
||||||
|
|
||||||
def build_pe_modules(ui):
|
def build_pe_modules(ui):
|
||||||
def move(src, dst):
|
|
||||||
if not op.exists(src):
|
|
||||||
return
|
|
||||||
if op.exists(dst):
|
|
||||||
os.remove(dst)
|
|
||||||
print('Moving %s --> %s' % (src, dst))
|
|
||||||
os.rename(src, dst)
|
|
||||||
|
|
||||||
print("Building PE Modules")
|
print("Building PE Modules")
|
||||||
exts = [
|
exts = [
|
||||||
Extension("_block", [op.join('core_pe', 'modules', 'block.c'), op.join('core_pe', 'modules', 'common.c')]),
|
Extension("_block", [op.join('core_pe', 'modules', 'block.c'), op.join('core_pe', 'modules', 'common.c')]),
|
||||||
@@ -141,13 +133,9 @@ def build_pe_modules(ui):
|
|||||||
script_args = ['build_ext', '--inplace'],
|
script_args = ['build_ext', '--inplace'],
|
||||||
ext_modules = exts,
|
ext_modules = exts,
|
||||||
)
|
)
|
||||||
move('_block.so', op.join('core_pe', '_block.so'))
|
move_all('_block_qt*', op.join('qt', 'pe'))
|
||||||
move('_block.pyd', op.join('core_pe', '_block.pyd'))
|
move_all('_block*', 'core_pe')
|
||||||
move('_block_osx.so', op.join('core_pe', '_block_osx.so'))
|
move_all('_cache*', 'core_pe')
|
||||||
move('_cache.so', op.join('core_pe', '_cache.so'))
|
|
||||||
move('_cache.pyd', op.join('core_pe', '_cache.pyd'))
|
|
||||||
move('_block_qt.so', op.join('qt', 'pe', '_block_qt.so'))
|
|
||||||
move('_block_qt.pyd', op.join('qt', 'pe', '_block_qt.pyd'))
|
|
||||||
|
|
||||||
def build_normal(edition, ui, dev):
|
def build_normal(edition, ui, dev):
|
||||||
print("Building dupeGuru {0} with UI {1}".format(edition.upper(), ui))
|
print("Building dupeGuru {0} with UI {1}".format(edition.upper(), ui))
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Created By: Virgil Dupras
|
# Created By: Virgil Dupras
|
||||||
# Created On: 2010-04-12
|
# Created On: 2010-04-12
|
||||||
# Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
# Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
||||||
@@ -19,7 +18,7 @@ class ProblemDialog(GUIObject, Broadcaster):
|
|||||||
|
|
||||||
def reveal_selected_dupe(self):
|
def reveal_selected_dupe(self):
|
||||||
if self._selected_dupe is not None:
|
if self._selected_dupe is not None:
|
||||||
self.app._reveal_path(self._selected_dupe.path)
|
self.app.view.reveal_path(self._selected_dupe.path)
|
||||||
|
|
||||||
def select_dupe(self, dupe):
|
def select_dupe(self, dupe):
|
||||||
self._selected_dupe = dupe
|
self._selected_dupe = dupe
|
||||||
|
|||||||
@@ -316,7 +316,9 @@ class Results(Markable):
|
|||||||
try:
|
try:
|
||||||
do_write(outfile)
|
do_write(outfile)
|
||||||
except IOError as e:
|
except IOError as e:
|
||||||
if e.errno == 21: # outfile is a directory
|
# If our IOError is because dest is already a directory, we want to handle that. 21 is
|
||||||
|
# the code we get on OS X and Linux, 13 is what we get on Windows.
|
||||||
|
if e.errno in {21, 13}:
|
||||||
p = str(outfile)
|
p = str(outfile)
|
||||||
dirname, basename = op.split(p)
|
dirname, basename = op.split(p)
|
||||||
otherfiles = os.listdir(dirname)
|
otherfiles = os.listdir(dirname)
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
# which should be included with this package. The terms are also available at
|
# which should be included with this package. The terms are also available at
|
||||||
# http://www.hardcoded.net/licenses/bsd_license
|
# http://www.hardcoded.net/licenses/bsd_license
|
||||||
|
|
||||||
|
import os.path as op
|
||||||
from itertools import combinations
|
from itertools import combinations
|
||||||
|
|
||||||
from .base import TestApp, NamedObject, with_app, eq_
|
from .base import TestApp, NamedObject, with_app, eq_
|
||||||
@@ -156,7 +157,7 @@ def app_with_subfolders():
|
|||||||
def test_folder_crit_is_sorted(app):
|
def test_folder_crit_is_sorted(app):
|
||||||
# Folder subcriteria are sorted.
|
# Folder subcriteria are sorted.
|
||||||
app.select_pri_criterion("Folder")
|
app.select_pri_criterion("Folder")
|
||||||
eq_(app.pdialog.criteria_list[:], ['baz', 'foo', 'foo/bar'])
|
eq_(app.pdialog.criteria_list[:], ['baz', 'foo', op.join('foo', 'bar')])
|
||||||
|
|
||||||
@with_app(app_with_subfolders)
|
@with_app(app_with_subfolders)
|
||||||
def test_folder_crit_includes_subfolders(app):
|
def test_folder_crit_includes_subfolders(app):
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
__version__ = '6.0.2'
|
__version__ = '6.1.1'
|
||||||
__appname__ = 'dupeGuru Music Edition'
|
__appname__ = 'dupeGuru Music Edition'
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
__version__ = '2.2.2'
|
__version__ = '2.3.0'
|
||||||
__appname__ = 'dupeGuru Picture Edition'
|
__appname__ = 'dupeGuru Picture Edition'
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
__version__ = '3.2.0'
|
__version__ = '3.2.1'
|
||||||
__appname__ = 'dupeGuru'
|
__appname__ = 'dupeGuru'
|
||||||
|
|||||||
@@ -1,3 +1,19 @@
|
|||||||
|
=== 6.1.1 (2011-10-03)
|
||||||
|
|
||||||
|
* Fixed a couple of broken action bindings from v6.1.0.
|
||||||
|
|
||||||
|
=== 6.1.0 (2011-09-29)
|
||||||
|
|
||||||
|
* Added duplicate re-prioritization dialog. (#138)
|
||||||
|
* Added font size preference for duplicate table. (#82)
|
||||||
|
* Added Quicklook support. [Mac OS X] (#21)
|
||||||
|
* Improved behavior of Mark Selected. (#139)
|
||||||
|
* Improved filename sorting. (#169)
|
||||||
|
* Fixed bug preventing some OGG metadata from being read. (#176)
|
||||||
|
* Added Chinese (Simplified) localization by Eric Dee.
|
||||||
|
* Tweaked the fairware system.
|
||||||
|
* Upgraded minimum requirements to OS X 10.6 and Ubuntu 11.04.
|
||||||
|
|
||||||
=== 6.0.2 (2011-08-26)
|
=== 6.0.2 (2011-08-26)
|
||||||
|
|
||||||
* Added German localization by Gregor Tätzner.
|
* Added German localization by Gregor Tätzner.
|
||||||
|
|||||||
@@ -1,3 +1,14 @@
|
|||||||
|
=== 2.3.0 (2011-10-04)
|
||||||
|
|
||||||
|
* Added duplicate re-prioritization dialog. (#138)
|
||||||
|
* Added font size preference for duplicate table. (#82)
|
||||||
|
* Added Quicklook support. [Mac OS X] (#21)
|
||||||
|
* Improved behavior of Mark Selected. (#139)
|
||||||
|
* Improved filename sorting. (#169)
|
||||||
|
* Added Chinese (Simplified) localization by Eric Dee.
|
||||||
|
* Tweaked the fairware system.
|
||||||
|
* Upgraded minimum requirements to OS X 10.6 and Ubuntu 11.04.
|
||||||
|
|
||||||
=== 2.2.2 (2011-08-27)
|
=== 2.2.2 (2011-08-27)
|
||||||
|
|
||||||
* Added German localization by Gregor Tätzner.
|
* Added German localization by Gregor Tätzner.
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
=== 3.2.1 (2011-10-02)
|
||||||
|
|
||||||
|
* Fixed a couple of broken action bindings from v3.2.0.
|
||||||
|
|
||||||
=== 3.2.0 (2011-09-27)
|
=== 3.2.0 (2011-09-27)
|
||||||
|
|
||||||
* Added duplicate re-prioritization dialog. (#138)
|
* Added duplicate re-prioritization dialog. (#138)
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ class DupeGuru(QObject):
|
|||||||
if not destination:
|
if not destination:
|
||||||
return
|
return
|
||||||
recreate_path = self.prefs.destination_type
|
recreate_path = self.prefs.destination_type
|
||||||
self.model.copy_or_move_marked(self, copy, destination, recreate_path)
|
self.model.copy_or_move_marked(copy, destination, recreate_path)
|
||||||
|
|
||||||
def remove_selected(self):
|
def remove_selected(self):
|
||||||
dupes = self.model.without_ref(self.model.selected_dupes)
|
dupes = self.model.without_ref(self.model.selected_dupes)
|
||||||
@@ -293,5 +293,6 @@ class DupeGuru(QObject):
|
|||||||
QMessageBox.information(window, '', msg)
|
QMessageBox.information(window, '', msg)
|
||||||
|
|
||||||
def open_url(self, url):
|
def open_url(self, url):
|
||||||
self.open_path(url)
|
url = QUrl(url)
|
||||||
|
QDesktopServices.openUrl(url)
|
||||||
|
|
||||||
|
|||||||
@@ -250,7 +250,7 @@ class ResultWindow(QMainWindow):
|
|||||||
QMessageBox.information(self, title, trmsg("IgnoreListClearedMsg"))
|
QMessageBox.information(self, title, trmsg("IgnoreListClearedMsg"))
|
||||||
|
|
||||||
def copyTriggered(self):
|
def copyTriggered(self):
|
||||||
self.app.model.copy_or_move_marked(True)
|
self.app.copy_or_move_marked(True)
|
||||||
|
|
||||||
def deleteTriggered(self):
|
def deleteTriggered(self):
|
||||||
count = self.app.model.results.mark_count
|
count = self.app.model.results.mark_count
|
||||||
@@ -302,7 +302,7 @@ class ResultWindow(QMainWindow):
|
|||||||
self.app.model.toggle_selected_mark_state()
|
self.app.model.toggle_selected_mark_state()
|
||||||
|
|
||||||
def moveTriggered(self):
|
def moveTriggered(self):
|
||||||
self.app.model.copy_or_move_marked(False)
|
self.app.copy_or_move_marked(False)
|
||||||
|
|
||||||
def openTriggered(self):
|
def openTriggered(self):
|
||||||
self.app.model.open_selected()
|
self.app.model.open_selected()
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
jobprogress>=1.0.2
|
jobprogress>=1.0.2
|
||||||
Send2Trash3k>=1.2.0
|
Send2Trash3k>=1.2.0
|
||||||
hsaudiotag3k>=1.1.1
|
hsaudiotag3k>=1.1.2
|
||||||
pytest>=2.0.0
|
pytest>=2.0.0
|
||||||
pytest-monkeyplus>=1.0.0
|
pytest-monkeyplus>=1.0.0
|
||||||
|
|||||||
Reference in New Issue
Block a user