Compare commits

...

7 Commits

Author SHA1 Message Date
Andrew Senetar d40e32a143
Update transifex config & pull latest updates
- Update transifex configuration to new format
- Pull translation updates
2022-03-19 20:21:14 -05:00
Andrew Senetar 1bc206e62d
Bump version to 4.2.1 2022-03-19 19:02:41 -05:00
Andrew Senetar 106a0feaba
Add sponsor information 2022-03-19 17:46:12 -05:00
Andrew Senetar 984e0c4094
Fix help path for local files and some help doc updates 2022-03-19 17:43:11 -05:00
Andrew Senetar 9321e811d7
Enforce minimum Windows version ref #983 2022-03-19 17:01:54 -05:00
Andrew Senetar a64fcbfb5c
Fix deprecation warning from sqlite 2022-03-19 17:01:53 -05:00
Andrew Senetar cff07a12d6
Black formatter changes 2022-03-19 17:01:53 -05:00
12 changed files with 118 additions and 75 deletions

13
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,13 @@
# These are supported funding model platforms
github: arsenetar
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

View File

@ -1,26 +1,27 @@
[main]
host = https://www.transifex.com
[dupeguru-1.core]
file_filter = locale/<lang>/LC_MESSAGES/core.po
source_file = locale/core.pot
source_lang = en
type = PO
[dupeguru-1.columns]
[o:voltaicideas:p:dupeguru-1:r:columns]
file_filter = locale/<lang>/LC_MESSAGES/columns.po
source_file = locale/columns.pot
source_lang = en
type = PO
type = PO
[dupeguru-1.ui]
file_filter = locale/<lang>/LC_MESSAGES/ui.po
source_file = locale/ui.pot
[o:voltaicideas:p:dupeguru-1:r:core]
file_filter = locale/<lang>/LC_MESSAGES/core.po
source_file = locale/core.pot
source_lang = en
type = PO
type = PO
[dupeguru-1.qtlib]
[o:voltaicideas:p:dupeguru-1:r:qtlib]
file_filter = qtlib/locale/<lang>/LC_MESSAGES/qtlib.po
source_file = qtlib/locale/qtlib.pot
source_lang = en
type = PO
type = PO
[o:voltaicideas:p:dupeguru-1:r:ui]
file_filter = locale/<lang>/LC_MESSAGES/ui.po
source_file = locale/ui.pot
source_lang = en
type = PO

View File

@ -1,2 +1,2 @@
__version__ = "4.2.0"
__version__ = "4.2.1"
__appname__ = "dupeGuru"

View File

@ -12,7 +12,7 @@ a community around this project.
So, whatever your skills, if you're interested in contributing to dupeGuru, please do so. Normally,
this documentation should be enough to get you started, but if it isn't, then **please**,
`let me know`_ because it's a problem that I'm committed to fix. If there's any situation where you'd
open a discussion at https://github.com/arsenetar/dupeguru/discussions. If there's any situation where you'd
wish to contribute but some doubt you're having prevent you from going forward, please contact me.
I'd much prefer to spend the time figuring out with you whether (and how) you can contribute than
taking the chance of missing that opportunity.
@ -82,10 +82,9 @@ agree on what should be added to the documentation.
dupeGuru. For more information about how to do that, you can refer to the `translator guide`_.
.. _been open source: https://www.hardcoded.net/articles/free-as-in-speech-fair-as-in-trade
.. _let me know: mailto:hsoft@hardcoded.net
.. _Source code repository: https://github.com/arsenetar/dupeguru
.. _Issue Tracker: https://github.com/hsoft/arsenetar/issues
.. _Issue labels meaning: https://github.com/hsoft/arsenetar/wiki/issue-labels
.. _Issue Tracker: https://github.com/arsenetar/issues
.. _Issue labels meaning: https://github.com/arsenetar/wiki/issue-labels
.. _Sphinx: http://sphinx-doc.org/
.. _reST: http://en.wikipedia.org/wiki/ReStructuredText
.. _translator guide: https://github.com/hsoft/arsenetar/wiki/Translator-Guide
.. _translator guide: https://github.com/arsenetar/wiki/Translator-Guide

View File

@ -45,7 +45,7 @@ class _ActualThread(threading.Thread):
self._lock = threading.Lock()
self._run = True
self.lastrowid = -1
self.setDaemon(True)
self.daemon = True
self.start()
def _query(self, query):

View File

@ -1,9 +1,9 @@
# Translators:
# Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat Yasuyoshi (MNH48) <admin@mnh48.moe>, 2021
# Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat Yasuyoshi (MNH48) <admin@mnh48.moe>, 2022
#
msgid ""
msgstr ""
"Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat Yasuyoshi (MNH48) <admin@mnh48.moe>, 2021\n"
"Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat Yasuyoshi (MNH48) <admin@mnh48.moe>, 2022\n"
"Language-Team: Malay (https://www.transifex.com/voltaicideas/teams/116153/ms/)\n"
"Language: ms\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -987,4 +987,4 @@ msgstr "Cache dikosongkan."
#: qt\preferences_dialog.py:173
msgid "Use dark style"
msgstr ""
msgstr "Guna gaya gelap"

View File

@ -1,10 +1,10 @@
# Translators:
# Ahmet Haydar Işık <itsahmthydr@gmail.com>, 2021
# Emin Tufan Çetin <etcetin@gmail.com>, 2021
# Emin Tufan Çetin <etcetin@gmail.com>, 2022
#
msgid ""
msgstr ""
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>, 2021\n"
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>, 2022\n"
"Language-Team: Turkish (https://www.transifex.com/voltaicideas/teams/116153/tr/)\n"
"Language: tr\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -983,4 +983,4 @@ msgstr "Önbellek temizlendi."
#: qt\preferences_dialog.py:173
msgid "Use dark style"
msgstr ""
msgstr "Karanlık biçem kullan"

View File

@ -1,6 +1,9 @@
# Translators:
# 太子 VC <taiziccf@gmail.com>, 2021
#
msgid ""
msgstr ""
"Last-Translator: 太子 VC <taiziccf@gmail.com>, 2021\n"
"Language-Team: Chinese (Taiwan) (https://www.transifex.com/voltaicideas/teams/116153/zh_TW/)\n"
"Language: zh_TW\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -9,53 +12,53 @@ msgstr ""
#: qt/app.py:81
msgid "Quit"
msgstr ""
msgstr "退出"
#: qt/app.py:82 qt/preferences_dialog.py:116
#: cocoa/en.lproj/Localizable.strings:0
msgid "Options"
msgstr ""
msgstr "选项"
#: qt/app.py:83 qt/ignore_list_dialog.py:32
#: cocoa/en.lproj/Localizable.strings:0
msgid "Ignore List"
msgstr ""
msgstr "忽略列表"
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
msgid "Clear Picture Cache"
msgstr ""
msgstr "清空图片缓存"
#: qt/app.py:85 cocoa/en.lproj/Localizable.strings:0
msgid "dupeGuru Help"
msgstr ""
msgstr "dupeGuru 帮助"
#: qt/app.py:86 cocoa/en.lproj/Localizable.strings:0
msgid "About dupeGuru"
msgstr ""
msgstr "关于 dupeGuru"
#: qt/app.py:87
msgid "Open Debug Log"
msgstr ""
msgstr "打开调试记录"
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
msgid "Do you really want to remove all your cached picture analysis?"
msgstr ""
msgstr "确定要移除所有缓存分析图片?"
#: qt/app.py:184
msgid "Picture cache cleared."
msgstr ""
msgstr "图片缓存已清空。"
#: qt/app.py:251
msgid "{} file (*.{})"
msgstr ""
msgstr "{} 文件 (*.{})"
#: qt/deletion_options.py:30 cocoa/en.lproj/Localizable.strings:0
msgid "Deletion Options"
msgstr ""
msgstr "删除选项"
#: qt/deletion_options.py:35 cocoa/en.lproj/Localizable.strings:0
msgid "Link deleted files"
msgstr ""
msgstr "链接已删除的文件"
#: qt/deletion_options.py:37 cocoa/en.lproj/Localizable.strings:0
msgid ""
@ -91,20 +94,20 @@ msgstr ""
#: qt/deletion_options.py:60 cocoa/en.lproj/Localizable.strings:0
msgid "Cancel"
msgstr ""
msgstr "取消"
#: qt/details_table.py:16 cocoa/en.lproj/Localizable.strings:0
msgid "Attribute"
msgstr ""
msgstr "属性"
#: qt/details_table.py:16 cocoa/en.lproj/Localizable.strings:0
msgid "Selected"
msgstr ""
msgstr "已选择"
#: qt/details_table.py:16 qt/directories_model.py:24
#: cocoa/en.lproj/Localizable.strings:0
msgid "Reference"
msgstr ""
msgstr "源文件"
#: qt/directories_dialog.py:64 cocoa/en.lproj/Localizable.strings:0
msgid "Load Results..."
@ -908,3 +911,43 @@ msgstr ""
#: qt\preferences_dialog.py:286
msgid "Display"
msgstr ""
#: qt\se\preferences_dialog.py:70
msgid "Partially hash files bigger than"
msgstr ""
#: qt\se\preferences_dialog.py:80
msgid "MB"
msgstr ""
#: qt\preferences_dialog.py:163
msgid "Use native OS dialogs"
msgstr ""
#: qt\preferences_dialog.py:166
msgid ""
"For actions such as file/folder selection use the OS native dialogs.\n"
"Some native dialogs have limited functionality."
msgstr ""
#: qt\se\preferences_dialog.py:68
msgid "Ignore files larger than"
msgstr ""
#: qt\app.py:135 qt\app.py:293
msgid "Clear Cache"
msgstr ""
#: qt\app.py:294
msgid ""
"Do you really want to clear the cache? This will remove all cached file "
"hashes and picture analysis."
msgstr ""
#: qt\app.py:299
msgid "Cache cleared."
msgstr ""
#: qt\preferences_dialog.py:173
msgid "Use dark style"
msgstr ""

View File

@ -1041,44 +1041,26 @@ class ScrollAreaImageViewer(QScrollArea):
"""After scaling, no mouse position, default to center."""
# scrollBar.setMaximum(scrollBar.maximum() - scrollBar.minimum() + scrollBar.pageStep())
self._horizontalScrollBar.setValue(
int(
factor * self._horizontalScrollBar.value()
+ ((factor - 1) * self._horizontalScrollBar.pageStep() / 2)
)
int(factor * self._horizontalScrollBar.value() + ((factor - 1) * self._horizontalScrollBar.pageStep() / 2))
)
self._verticalScrollBar.setValue(
int(
factor * self._verticalScrollBar.value()
+ ((factor - 1) * self._verticalScrollBar.pageStep() / 2)
)
int(factor * self._verticalScrollBar.value() + ((factor - 1) * self._verticalScrollBar.pageStep() / 2))
)
def adjustScrollBarsScaled(self, delta):
"""After scaling with the mouse, update relative to mouse position."""
self._horizontalScrollBar.setValue(
int(self._horizontalScrollBar.value() + delta.x())
)
self._verticalScrollBar.setValue(
int(self._verticalScrollBar.value() + delta.y())
)
self._horizontalScrollBar.setValue(int(self._horizontalScrollBar.value() + delta.x()))
self._verticalScrollBar.setValue(int(self._verticalScrollBar.value() + delta.y()))
def adjustScrollBarsAuto(self):
"""After panning, update accordingly."""
self.horizontalScrollBar().setValue(
int(self.horizontalScrollBar().value() - self._mousePanningDelta.x())
)
self.verticalScrollBar().setValue(
int(self.verticalScrollBar().value() - self._mousePanningDelta.y())
)
self.horizontalScrollBar().setValue(int(self.horizontalScrollBar().value() - self._mousePanningDelta.x()))
self.verticalScrollBar().setValue(int(self.verticalScrollBar().value() - self._mousePanningDelta.y()))
def adjustScrollBarCentered(self):
"""Just center in the middle."""
self._horizontalScrollBar.setValue(
int(self._horizontalScrollBar.maximum() / 2)
)
self._verticalScrollBar.setValue(
int(self._verticalScrollBar.maximum() / 2)
)
self._horizontalScrollBar.setValue(int(self._horizontalScrollBar.maximum() / 2))
self._verticalScrollBar.setValue(int(self._verticalScrollBar.maximum() / 2))
def resetCenter(self):
"""Resets origin"""

View File

@ -14,11 +14,11 @@ if op.exists(__file__):
else:
# Should be a frozen environment
if ISOSX:
BASE_PATH = op.abspath(op.join(op.dirname(__file__), '..', '..', 'Resources'))
BASE_PATH = op.abspath(op.join(op.dirname(__file__), "..", "..", "Resources"))
else:
# For others our base path is ''.
BASE_PATH = ""
HELP_PATH = op.join(BASE_PATH, "help")
HELP_PATH = op.join(BASE_PATH, "help", "en")
if ISWINDOWS:
INITIAL_FOLDER_IN_DIALOGS = "C:\\"

View File

@ -1,11 +1,10 @@
# Translators:
# Ahmet Haydar Işık <itsahmthydr@gmail.com>, 2021
# Emin Tufan Çetin <etcetin@gmail.com>, 2021
# Andrew Senetar <arsenetar@gmail.com>, 2022
# Emin Tufan Çetin <etcetin@gmail.com>, 2022
#
msgid ""
msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2022\n"
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>, 2022\n"
"Language-Team: Turkish (https://www.transifex.com/voltaicideas/teams/116153/tr/)\n"
"Language: tr\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -100,7 +99,7 @@ msgstr "Korece"
#: qtlib\preferences.py:34
msgid "Malay"
msgstr "Malay dili"
msgstr "Malayca"
#: qtlib\preferences.py:35
msgid "Dutch"

View File

@ -12,6 +12,8 @@ Unicode true
SetCompressor /SOLID lzma
; General Headers
!include "FileFunc.nsh"
!include "WinVer.nsh"
!include "LogicLib.nsh"
;==============================================================================
; Configuration Defines
@ -279,6 +281,10 @@ SectionEnd
;==============================================================================
Function .onInit
${IfNot} ${AtLeastWin7}
MessageBox MB_OK "Windows 7 and above required"
Quit
${EndIf}
!if ${BITS} == "64"
SetRegView 64
!else