mirror of
https://github.com/arsenetar/dupeguru.git
synced 2026-01-22 06:37:17 +00:00
feat: Add additional scan time options
- Add option to include file existence check at end of scan, speeds up end of scan operation time considerably, however if user has removed or moved files since starting a scan there could be later errors when interacting with results. Defaults to existing behavior of including the check, until it can be verified later dialogs and actions handle non-existent items better. - Add option to ignore differences in mtime when checking hash cache. Option is present in advanced tab of preferences. Closes #1022. - Regenerate pot files for translations
This commit is contained in:
@@ -193,6 +193,8 @@ class DupeGuru(QObject):
|
||||
self.model.options["scanned_tags"] = scanned_tags
|
||||
self.model.options["match_scaled"] = self.prefs.match_scaled
|
||||
self.model.options["picture_cache_type"] = self.prefs.picture_cache_type
|
||||
self.model.options["include_exists_check"] = self.prefs.include_exists_check
|
||||
self.model.options["rehash_ignore_mtime"] = self.prefs.rehash_ignore_mtime
|
||||
|
||||
if self.details_dialog:
|
||||
self.details_dialog.update_options()
|
||||
|
||||
@@ -161,6 +161,8 @@ class Preferences(PreferencesBase):
|
||||
self.ignore_hardlink_matches = get("IgnoreHardlinkMatches", self.ignore_hardlink_matches)
|
||||
self.use_regexp = get("UseRegexp", self.use_regexp)
|
||||
self.remove_empty_folders = get("RemoveEmptyFolders", self.remove_empty_folders)
|
||||
self.rehash_ignore_mtime = get("RehashIgnoreMTime", self.rehash_ignore_mtime)
|
||||
self.include_exists_check = get("IncludeExistsCheck", self.include_exists_check)
|
||||
self.debug_mode = get("DebugMode", self.debug_mode)
|
||||
self.profile_scan = get("ProfileScan", self.profile_scan)
|
||||
self.destination_type = get("DestinationType", self.destination_type)
|
||||
@@ -231,6 +233,8 @@ class Preferences(PreferencesBase):
|
||||
self.use_regexp = False
|
||||
self.ignore_hardlink_matches = False
|
||||
self.remove_empty_folders = False
|
||||
self.rehash_ignore_mtime = False
|
||||
self.include_exists_check = True
|
||||
self.debug_mode = False
|
||||
self.profile_scan = False
|
||||
self.destination_type = 1
|
||||
@@ -283,6 +287,8 @@ class Preferences(PreferencesBase):
|
||||
set_("IgnoreHardlinkMatches", self.ignore_hardlink_matches)
|
||||
set_("UseRegexp", self.use_regexp)
|
||||
set_("RemoveEmptyFolders", self.remove_empty_folders)
|
||||
set_("RehashIgnoreMTime", self.rehash_ignore_mtime)
|
||||
set_("IncludeExistsCheck", self.include_exists_check)
|
||||
set_("DebugMode", self.debug_mode)
|
||||
set_("ProfileScan", self.profile_scan)
|
||||
set_("DestinationType", self.destination_type)
|
||||
|
||||
@@ -47,8 +47,9 @@ class Sections(Flag):
|
||||
|
||||
GENERAL = auto()
|
||||
DISPLAY = auto()
|
||||
ADVANCED = auto()
|
||||
DEBUG = auto()
|
||||
ALL = GENERAL | DISPLAY | DEBUG
|
||||
ALL = GENERAL | DISPLAY | ADVANCED | DEBUG
|
||||
|
||||
|
||||
class PreferencesDialogBase(QDialog):
|
||||
@@ -213,6 +214,19 @@ use the modifier key to drag the floating window around"
|
||||
details_groupbox.setLayout(self.details_groupbox_layout)
|
||||
self.displayVLayout.addWidget(details_groupbox)
|
||||
|
||||
def _setup_advanced_page(self):
|
||||
tab_label = QLabel(
|
||||
tr(
|
||||
"These options are for advanced users or for very specific situations, most users should not have to modify these."
|
||||
),
|
||||
wordWrap=True,
|
||||
)
|
||||
self.advanced_vlayout.addWidget(tab_label)
|
||||
self._setupAddCheckbox("include_exists_check_box", tr("Include existence check after scan completion"))
|
||||
self.advanced_vlayout.addWidget(self.include_exists_check_box)
|
||||
self._setupAddCheckbox("rehash_ignore_mtime_box", tr("Ignore difference in mtime when loading cached digests"))
|
||||
self.advanced_vlayout.addWidget(self.rehash_ignore_mtime_box)
|
||||
|
||||
def _setupDebugPage(self):
|
||||
self._setupAddCheckbox("debugModeBox", tr("Debug mode (restart required)"))
|
||||
self._setupAddCheckbox("profile_scan_box", tr("Profile scan operation"))
|
||||
@@ -244,16 +258,20 @@ use the modifier key to drag the floating window around"
|
||||
self.tabwidget = QTabWidget()
|
||||
self.page_general = QWidget()
|
||||
self.page_display = QWidget()
|
||||
self.page_advanced = QWidget()
|
||||
self.page_debug = QWidget()
|
||||
self.widgetsVLayout = QVBoxLayout()
|
||||
self.page_general.setLayout(self.widgetsVLayout)
|
||||
self.displayVLayout = QVBoxLayout()
|
||||
self.displayVLayout.setSpacing(5) # arbitrary value, might conflict with style
|
||||
self.page_display.setLayout(self.displayVLayout)
|
||||
self.advanced_vlayout = QVBoxLayout()
|
||||
self.page_advanced.setLayout(self.advanced_vlayout)
|
||||
self.debugVLayout = QVBoxLayout()
|
||||
self.page_debug.setLayout(self.debugVLayout)
|
||||
self._setupPreferenceWidgets()
|
||||
self._setupDisplayPage()
|
||||
self._setup_advanced_page()
|
||||
self._setupDebugPage()
|
||||
# self.mainVLayout.addLayout(self.widgetsVLayout)
|
||||
self.buttonBox = QDialogButtonBox(self)
|
||||
@@ -265,9 +283,11 @@ use the modifier key to drag the floating window around"
|
||||
self.layout().setSizeConstraint(QLayout.SetFixedSize)
|
||||
self.tabwidget.addTab(self.page_general, tr("General"))
|
||||
self.tabwidget.addTab(self.page_display, tr("Display"))
|
||||
self.tabwidget.addTab(self.page_advanced, tr("Advanced"))
|
||||
self.tabwidget.addTab(self.page_debug, tr("Debug"))
|
||||
self.displayVLayout.addStretch(0)
|
||||
self.widgetsVLayout.addStretch(0)
|
||||
self.advanced_vlayout.addStretch(0)
|
||||
self.debugVLayout.addStretch(0)
|
||||
|
||||
def _load(self, prefs, setchecked, section):
|
||||
@@ -318,6 +338,9 @@ use the modifier key to drag the floating window around"
|
||||
except KeyError:
|
||||
selected_lang = self.supportedLanguages["en"]
|
||||
self.languageComboBox.setCurrentText(selected_lang)
|
||||
if section & Sections.ADVANCED:
|
||||
setchecked(self.rehash_ignore_mtime_box, prefs.rehash_ignore_mtime)
|
||||
setchecked(self.include_exists_check_box, prefs.include_exists_check)
|
||||
if section & Sections.DEBUG:
|
||||
setchecked(self.debugModeBox, prefs.debug_mode)
|
||||
setchecked(self.profile_scan_box, prefs.profile_scan)
|
||||
@@ -334,6 +357,8 @@ use the modifier key to drag the floating window around"
|
||||
prefs.use_regexp = ischecked(self.useRegexpBox)
|
||||
prefs.remove_empty_folders = ischecked(self.removeEmptyFoldersBox)
|
||||
prefs.ignore_hardlink_matches = ischecked(self.ignoreHardlinkMatches)
|
||||
prefs.rehash_ignore_mtime = ischecked(self.rehash_ignore_mtime_box)
|
||||
prefs.include_exists_check = ischecked(self.include_exists_check_box)
|
||||
prefs.debug_mode = ischecked(self.debugModeBox)
|
||||
prefs.profile_scan = ischecked(self.profile_scan_box)
|
||||
prefs.reference_bold_font = ischecked(self.reference_bold_font)
|
||||
|
||||
Reference in New Issue
Block a user