From b16b6ecf4d5ca156682a74dfac32e2ace415f4e2 Mon Sep 17 00:00:00 2001 From: glubsy Date: Tue, 27 Oct 2020 18:15:15 +0100 Subject: [PATCH 1/9] Fix error after merging branches --- qt/preferences_dialog.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qt/preferences_dialog.py b/qt/preferences_dialog.py index 70eeae36..c041b7d0 100644 --- a/qt/preferences_dialog.py +++ b/qt/preferences_dialog.py @@ -176,7 +176,7 @@ On MacOS, the tab bar will fill up the window's width instead.")) formlayout.addRow(tr("Reference foreground color:"), self.result_table_ref_foreground_color) self.result_table_ref_background_color = ColorPickerButton(self) - gridlayout.addRow(tr("Reference background color:"), + formlayout.addRow(tr("Reference background color:"), self.result_table_ref_background_color) self.result_table_delta_foreground_color = ColorPickerButton(self) formlayout.addRow(tr("Delta foreground color:"), From 735ba2fd0ea9d2bd8ca35dcf3e886a280d7ca7e1 Mon Sep 17 00:00:00 2001 From: glubsy Date: Tue, 27 Oct 2020 18:23:14 +0100 Subject: [PATCH 2/9] Update error dialog traceback message for users * Incite users to look for already existing issues * Also invite them to test the very latest version available first --- qtlib/error_report_dialog.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/qtlib/error_report_dialog.py b/qtlib/error_report_dialog.py index 2674d32c..adf2226e 100644 --- a/qtlib/error_report_dialog.py +++ b/qtlib/error_report_dialog.py @@ -58,9 +58,10 @@ class ErrorReportDialog(QDialog): self.verticalLayout.addWidget(self.errorTextEdit) msg = tr( "Error reports should be reported as Github issues. You can copy the error traceback " - "above and paste it in a new issue (bonus point if you run a search to make sure the " - "issue doesn't already exist). What usually really helps is if you add a description " - "of how you got the error. Thanks!" + "above and paste it in a new issue.\n\nPlease make sure to run a search for any already " + "existing issues beforehand. Also make sure to test the very latest version available from the repository, " + "since the bug you are experiencing might have already been patched.\n\n" + "What usually really helps is if you add a description of how you got the error. Thanks!" "\n\n" "Although the application should continue to run after this error, it may be in an " "unstable state, so it is recommended that you restart the application." From 32d66cd19b839316d75c1f2f3b5cf5b61e81be1b Mon Sep 17 00:00:00 2001 From: glubsy Date: Tue, 27 Oct 2020 19:37:26 +0100 Subject: [PATCH 3/9] Move up to 4.0.5 * Initial push to 4.0.5 milestone * Update changelog --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- README.md | 9 +++++---- core/__init__.py | 2 +- help/changelog | 18 ++++++++++++++++++ 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 52fbb54f..9280aaef 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -25,7 +25,7 @@ If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - OS: [e.g. Windows 10 / OSX 10.15 / Ubuntu 20.04] - - Version [e.g. 4.0.4] + - Version [e.g. 4.0.5] **Additional context** Add any other context about the problem here. You may include the debug log although it is normally best to attach it as a file. diff --git a/README.md b/README.md index 44ec895e..112de51c 100644 --- a/README.md +++ b/README.md @@ -9,11 +9,13 @@ The Cocoa UI of dupeGuru is hosted in a separate repo: https://github.com/hsoft/ ## Current status -Development has been slow this past year, however very close to getting all the different 4.0.4 releases posted. Most of the work this past year (2019) has been towards packaging the application and issues related to that. +* 2020: various bug fixes and small UI improvements have been added. Packaging for MacOS is still a problem. + +* 2019: Development has been slow this past year, however very close to getting all the different 4.0.4 releases posted. Most of the work this past year (2019) has been towards packaging the application and issues related to that. Still looking for additional help especially with regards to: - OSX maintenance (reproducing bugs & cocoa version) -- Linux maintenance (reproducing bugs) +- Linux maintenance (reproducing bugs, building package with Cocoa UI) ## Contents of this folder @@ -43,8 +45,7 @@ For windows instructions see the [Windows Instructions](Windows.md). dupeGuru is built with "make": - $ make - $ make run + $ make && make run ### Generate Debian/Ubuntu package diff --git a/core/__init__.py b/core/__init__.py index 27b87220..95b06944 100644 --- a/core/__init__.py +++ b/core/__init__.py @@ -1,2 +1,2 @@ -__version__ = "4.0.4" +__version__ = "4.0.5" __appname__ = "dupeGuru" diff --git a/help/changelog b/help/changelog index 131b2bd2..af0ebaa1 100644 --- a/help/changelog +++ b/help/changelog @@ -1,3 +1,21 @@ +=== 4.0.5 (2020-10-27) + +* Use tabs instead of floating windows (#688) +* Add image comparison features to details dialog (#683) +* Add exclusion filters for file names (#705) +* Change reference row background color (#701) +* Save/Load directories in Directories (#706) +* Workaround for EXIF IFD type mismatch in parsing function (#630, #698) +* Progress dialog stuck at "Verified X/X matches" (#693, #694) +* Fix word wrap in ignore list dialog (#687) +* Fix updating result window action upon creation (#685) +* Colorize details table differences, allow rows to be moved around (#682) +* Fix loading Result of 'Scan Type: Folders' shows only '---' in every table cell (#676, #677) +* Add shortcut description to mark selected action (#656) +* Fix row trimming being too aggressive. (#655, #654) +* Add a preference option to disable bold font on reference row (#646) +* Various building and packaging issues + === 4.0.4 (2019-05-13) * Update qt/platform.py to support other Unix style OSes (#444) From 6bc619055e30e62c24468511256983c24c4e267c Mon Sep 17 00:00:00 2001 From: glubsy Date: Sun, 6 Dec 2020 20:13:03 +0100 Subject: [PATCH 4/9] Change version to 4.1.0 --- .github/ISSUE_TEMPLATE/bug_report.md | 4 ++-- core/__init__.py | 2 +- help/changelog | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 9280aaef..f2d9d446 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -24,8 +24,8 @@ A clear and concise description of what you expected to happen. If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - - OS: [e.g. Windows 10 / OSX 10.15 / Ubuntu 20.04] - - Version [e.g. 4.0.5] + - OS: [e.g. Windows 10 / OSX 10.15 / Ubuntu 20.04 / Arch Linux] + - Version [e.g. 4.1.0] **Additional context** Add any other context about the problem here. You may include the debug log although it is normally best to attach it as a file. diff --git a/core/__init__.py b/core/__init__.py index 95b06944..32f5a465 100644 --- a/core/__init__.py +++ b/core/__init__.py @@ -1,2 +1,2 @@ -__version__ = "4.0.5" +__version__ = "4.1.0" __appname__ = "dupeGuru" diff --git a/help/changelog b/help/changelog index af0ebaa1..614d28ca 100644 --- a/help/changelog +++ b/help/changelog @@ -1,4 +1,4 @@ -=== 4.0.5 (2020-10-27) +=== 4.1.0 (2020-12-06) * Use tabs instead of floating windows (#688) * Add image comparison features to details dialog (#683) @@ -14,7 +14,8 @@ * Add shortcut description to mark selected action (#656) * Fix row trimming being too aggressive. (#655, #654) * Add a preference option to disable bold font on reference row (#646) -* Various building and packaging issues +* Use relative icon path for themes to override more easily (#746) +* Fix various building and packaging issues === 4.0.4 (2019-05-13) From 7740dfca0e66ae3e2b9de5615d3a8b7fcef2aa53 Mon Sep 17 00:00:00 2001 From: glubsy Date: Tue, 29 Dec 2020 21:31:36 +0100 Subject: [PATCH 5/9] Update Readme --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 112de51c..4234f077 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,21 @@ # dupeGuru [dupeGuru][dupeguru] is a cross-platform (Linux, OS X, Windows) GUI tool to find duplicate files in -a system. It's written mostly in Python 3 and has the peculiarity of using +a system. It is written mostly in Python 3 and has the peculiarity of using [multiple GUI toolkits][cross-toolkit], all using the same core Python code. On OS X, the UI layer -is written in Objective-C and uses Cocoa. On Linux, it's written in Python and uses Qt5. +is written in Objective-C and uses Cocoa. On Linux, it is written in Python and uses Qt5. The Cocoa UI of dupeGuru is hosted in a separate repo: https://github.com/hsoft/dupeguru-cocoa ## Current status -* 2020: various bug fixes and small UI improvements have been added. Packaging for MacOS is still a problem. - -* 2019: Development has been slow this past year, however very close to getting all the different 4.0.4 releases posted. Most of the work this past year (2019) has been towards packaging the application and issues related to that. +2020: various bug fixes and small UI improvements have been added. Packaging for MacOS is still a problem. Still looking for additional help especially with regards to: -- OSX maintenance (reproducing bugs & cocoa version) -- Linux maintenance (reproducing bugs, building package with Cocoa UI) +* OSX maintenance: reproducing bugs & cocoa version, building package with Cocoa UI. +* Linux maintenance: reproducing bugs, maintaining PPA repository, Debian package. +* Translations: updating missing strings. +* Documentation: keeping it up-to-date. ## Contents of this folder From 288023d03e96f93787113ffe20fa64c7d79a383b Mon Sep 17 00:00:00 2001 From: glubsy Date: Tue, 29 Dec 2020 21:51:16 +0100 Subject: [PATCH 6/9] Update changelog --- help/changelog | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/help/changelog b/help/changelog index 614d28ca..77d291fd 100644 --- a/help/changelog +++ b/help/changelog @@ -1,21 +1,28 @@ -=== 4.1.0 (2020-12-06) +=== 4.1.0 (2020-12-29) -* Use tabs instead of floating windows (#688) +* Use tabs instead of separate windows (#688) +* Show the shortcut for "mark selected" in results dialog (#656, #641) * Add image comparison features to details dialog (#683) -* Add exclusion filters for file names (#705) -* Change reference row background color (#701) -* Save/Load directories in Directories (#706) +* Add the ability to use regex based exclusion filters (#705) +* Change reference row background color, and allow user to adjust the color (#701) +* Save / Load directories as XML (#706) * Workaround for EXIF IFD type mismatch in parsing function (#630, #698) * Progress dialog stuck at "Verified X/X matches" (#693, #694) * Fix word wrap in ignore list dialog (#687) -* Fix updating result window action upon creation (#685) -* Colorize details table differences, allow rows to be moved around (#682) -* Fix loading Result of 'Scan Type: Folders' shows only '---' in every table cell (#676, #677) -* Add shortcut description to mark selected action (#656) -* Fix row trimming being too aggressive. (#655, #654) -* Add a preference option to disable bold font on reference row (#646) +* Fix issue with result window action on creation (#685) +* Colorize details table differences, allow moving rows (#682) +* Fix loading Result of 'Scan Type: Folders' shows only '---' in every table cell (#677, #676) +* Fix issue with details and results dialog row trimming (#655, #654) +* Add option to enable/disable bold font (#646, #314) * Use relative icon path for themes to override more easily (#746) -* Fix various building and packaging issues +* Fix issues with Python 3.8 compatibility (#665) +* Fix flake8 issues (#672) +* Update to use newer pytest and expand flake8 checking, cleanup various Deprecation Warnings +* Add warnings to packaging script when files are not built (#691) +* Use relative icon path for themes to override more easily (#746) +* Update Packaging for Ubuntu (#593) +* Minor Build Updates (#627, #575, #628, #614) +* Update CI builds and add windows CI (#572, #669) === 4.0.4 (2019-05-13) From 348ce95f83fd1ec89153ea67cd5aa6f5c1d8afa4 Mon Sep 17 00:00:00 2001 From: glubsy Date: Wed, 30 Dec 2020 18:44:38 +0100 Subject: [PATCH 7/9] Remove comment * There is a bug with pyqt5<=5.14 where the table does not update after a call to update() and needs to receive a mouse click event in order to repaint as expected. * This does not affect Windows only as this is a Qt5 bug. * This seems to be fixed with pyqt5>=5.15.1. --- qt/exclude_list_dialog.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/qt/exclude_list_dialog.py b/qt/exclude_list_dialog.py index 425d4eba..b28be1e5 100644 --- a/qt/exclude_list_dialog.py +++ b/qt/exclude_list_dialog.py @@ -118,8 +118,6 @@ class ExcludeListDialog(QDialog): return # if at least one row matched, we know whether table is highlighted or not self._row_matched = self.model.test_string(input_text) - # FIXME There is a bug on Windows (7) where the table rows don't get - # repainted until the table receives a mouse click event. self.tableView.update() input_regex = self.inputLine.text() From b138dfad33d0382818262f11dfc3bea94ce4211f Mon Sep 17 00:00:00 2001 From: glubsy Date: Wed, 30 Dec 2020 22:50:42 +0100 Subject: [PATCH 8/9] Fix exception when testing invalid regex * If a regex in the table is invalid and failed to compile, its "compiled" property is None. * Only test against the regex if its compilation worked. --- core/gui/exclude_list_dialog.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/gui/exclude_list_dialog.py b/core/gui/exclude_list_dialog.py index c6409ef7..b56ea7d2 100644 --- a/core/gui/exclude_list_dialog.py +++ b/core/gui/exclude_list_dialog.py @@ -55,7 +55,8 @@ class ExcludeListDialogCore: """Sets property on row to highlight if its regex matches test_string supplied.""" matched = False for row in self.exclude_list_table.rows: - if self.exclude_list.get_compiled(row.regex).match(test_string): + compiled_regex = self.exclude_list.get_compiled(row.regex) + if compiled_regex and compiled_regex.match(test_string): matched = True row.highlight = True else: From 5553414205964e133fb79674acf009c5df2f8f4b Mon Sep 17 00:00:00 2001 From: glubsy Date: Wed, 30 Dec 2020 23:18:42 +0100 Subject: [PATCH 9/9] Fix updating QTableView on input * When clicking on the test regex button or editing the test input field, the tableView doesn't update its data properly. * Somehow QTableView.update() doesn't request the data from the model. * The workaround is to call refresh on the model directly, which will in turn update its view. --- qt/exclude_list_dialog.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qt/exclude_list_dialog.py b/qt/exclude_list_dialog.py index b28be1e5..557dd6b2 100644 --- a/qt/exclude_list_dialog.py +++ b/qt/exclude_list_dialog.py @@ -118,7 +118,7 @@ class ExcludeListDialog(QDialog): return # if at least one row matched, we know whether table is highlighted or not self._row_matched = self.model.test_string(input_text) - self.tableView.update() + self.table.refresh() input_regex = self.inputLine.text() if not input_regex: @@ -146,7 +146,7 @@ class ExcludeListDialog(QDialog): if self._row_matched: self._row_matched = False self.model.reset_rows_highlight() - self.tableView.update() + self.table.refresh() def display_help_message(self): self.app.show_message(tr("""\