Commit graph

93 commits

Author SHA1 Message Date
shenleban tongying 20230542d6
refactor: move none c++ source files into src/ 2023-04-17 13:40:05 -04:00
shenleban tongying 3ff6b6a8ee feat(help): replace QtHelp with website
* Nobody wants to update .qch files
2023-04-17 14:40:29 +08:00
Xiao YiFang 2a7892836e feat: session collapsable feature support
when enabled , user's manual collapsed dictionary will remain collapsed in the successive search until user expand the dictionary again.
2023-04-16 00:23:51 +08:00
Xiao YiFang e2e0b4e362 fix: remove the webplugin option
this plugin is used mainly for flash plugins, which has been disabled in modern browser.
There is no need to configure this option.
2023-04-15 13:13:47 +08:00
shenleban tongying ddb9655938 refactor: move MRU ctrl handling code from mainwindow.cc to mruqmenu.cc 2023-04-12 20:16:29 +08:00
Ren Tatsumoto fb6d4f9ccd
Let the user disable main window stealing focus when searching. (#387)
* add a checkbox that allows the user to disable main window being raised when search is triggered

* run clang-format on the edited lines

* partially revert clang-format
2023-03-17 09:54:45 +08:00
Ren Tatsumoto 1a0af48a7a
Improve Anki support (#384)
* allow the user to configure word,text,sentence Anki fields

* if sentence field is not set, don't add it

* mark the target word bold, if possible

* Update how to connect with anki.md

* rename default field names
2023-03-16 19:55:47 +08:00
Xiao YiFang 794d4b934f fix: replace hhotkeyedit with qkeysequenceedit
related to #291
2022-12-30 01:11:22 +08:00
shenleban tongying 9828ef9dc8 perfect_dark: add toggle option to enable Dark Reader mode 2022-12-26 12:29:30 -05:00
shenleban tongying 870e18aa29 mac: ensure tabbar always show full name 2022-12-22 02:24:07 -05:00
Xiao YiFang c53cd32fe7 ui:rearrange controls in preference dialog 2022-12-18 12:34:51 +08:00
Xiao YiFang 41d05cb27a feature: enhance clipboard data processing
when copied text from some applications such as Kindle PC, the copied text will have extra informations added by
the application . This option used to strip the added text away
2022-12-13 21:42:53 +08:00
Xiao YiFang d969b63c1e add experimental darkmode
relate #188
2022-12-11 09:29:33 +08:00
xiaoyifang def764e5ac replace by-sa-2.0 icons 2022-12-05 10:21:50 +08:00
shenleban tongying 664a1e87e4 Remove ScanPopup Alt mode ("Keys may also be pressed afterwards").
The functionality of "select then press a key to get popup " has equivalent of using Ctrl+C+C on Hotkeys.
2022-11-20 04:12:58 -05:00
shenleban tongying e6b9810cc7 Group Selection related Settings together 2022-11-19 12:28:11 -05:00
shenleban tongying 20b435053f X11: Add two Preferences to optional tracking clipboard or selection tracking 2022-11-19 11:35:25 -05:00
shenleban tongying aa3778bb64 Remove enableScanPopup: Complete. Remove from config file and ui file
At here, all code working exactly same as before
The only change is that ScanPopup always enabled for all users
2022-11-19 09:50:20 -05:00
xiaoyifang ea21eba386 fix revert c5035d87fc conflict
related to the issue #203
2022-11-17 16:43:42 +08:00
Xiao YiFang 11b29d30a7 clean code:remove x11 scanpopup flag setting 2022-09-25 12:49:22 +08:00
Xiao YiFang c5035d87fc opt:remove scan popup options 2022-09-17 23:03:17 +08:00
Xiao YiFang 8e4c326341 Revert "opt: rewrite ctrl+C+C logic ,use clipboard not global hot key (#139)"
This reverts commit a66bdf2962.
2022-09-11 09:36:52 +08:00
xiaoyifang a66bdf2962
opt: rewrite ctrl+C+C logic ,use clipboard not global hot key (#139)
* opt: rewrite ctrl+C+C logic ,use clipboard not global hot key
2022-09-08 19:58:52 +08:00
Xiao YiFang 0a2661f986 add 'send to anki' function
users can configure the ankiconnect to use together with anki
2022-05-21 17:34:22 +08:00
Xiao YiFang fbfc2d7f43 feature: add anki connect configuration 2022-05-21 10:30:32 +08:00
Xiao YiFang 41f2ca9864 clean code: remove outdated code
xorg xrecord detection logic
2022-05-20 08:24:23 +08:00
Xiao YiFang 9c402d986e opt: add dictionary fallback font family settings 2022-05-08 16:44:09 +08:00
YiFang Xiao f6cf152804 Merge branch 'feature/add-ignore-punctuation' into staged 2022-04-23 22:34:05 +08:00
YiFang Xiao d3ef9498c5 fix: scanpop dialog flag ui 2022-04-23 17:59:48 +08:00
xiaoyifang 5a0a6c6491 feature:add ignore punctuaion option 2022-04-23 16:15:23 +08:00
xiaoyifang 948f67f4c1 ui: top margin reset to default. 2022-03-27 14:29:06 +08:00
xiaoyifang bcab27c281 format:ui preferences.ui align top 2022-02-19 19:53:33 +08:00
yifang 3abe4ca062 ui:preference dialog,the top margin removed 2022-02-12 13:04:33 +08:00
yifang 71cd723985 ui:set interface(first tab) as default tab 2022-02-12 13:03:17 +08:00
Igor Kushnir d7ec541383 Add "Automatically scroll to target article" option
When a user clicks on a link in a dictionary or requests translation of
a word by double-clicking or translates selection via the context menu,
at first the article from the highest-priority dictionary is at the top.
Then, after approximately one second, the article from the dictionary,
out of which the translation was requested, becomes current and the view
scrolls down to this article placing it on top, hiding articles from the
dictionaries above it.

Such application behavior is inconvenient in some workflows so that the
user manually navigates to the top dictionary translation when this
automatic scrolling happens.

For example: a user has English->Russian dictionaries and
English->English dictionaries. The English->Russian dictionaries are
higher up in the dictionary order because they provide easier/faster to
understand translations. Some rare words and phrases are missing from
the English->Russian dictionaries however. Thus the user occasionally
reads the English explanation of a word/phrase. When the user
double-clicks on a word or follows a link in the English->English
dictionary article, she would rather see translations from the
preferable English->Russian dictionaries.

The new option allows to disable automatic scrolling and ensure that
articles from higher-priority dictionaries are visible. The option
doesn't affect backward/forward navigation via arrow buttons or
Alt+Arrow shortcuts: these still scroll to the stored vertical position
among articles. This remaining automatic scrolling happens much faster,
is not a problem for the described use case and hopefully for other use
cases.
2022-02-12 12:48:48 +08:00
xiaoyifang 12fca6e38c imp. remove mouseover32 preferences.ui configuration . 2022-02-03 16:55:11 +08:00
xiaoyifang c96a83f5d2 imp. remove mouseover32 2022-02-03 16:55:10 +08:00
xiaoyifang 089b08bc06
Update preferences.ui
high dpi:change preference Audio tab icon
2022-01-26 09:30:41 +08:00
xiaoyifang 9c5d7acc5a high dpi:change icon 2022-01-25 22:54:17 +08:00
xiaoyifang 9cf5ee8443 high dpi:change icon reference in code from png to svg. 2022-01-24 22:23:38 +08:00
Igor Kushnir b7da546dd5 Fix string case in all files: Goldendict => GoldenDict
Run the following string-replacement command in my GNU/Linux system:
    git grep -l Goldendict | xargs sed -i 's/Goldendict/GoldenDict/g'
2020-11-19 18:36:35 +02:00
Igor Kushnir aba8997438 Increase inputPhraseLengthLimit option's maximum
Those who use GoldenDict to translate long text with Google Translate
or pronounce it with a text-to-speech engine (see a discussion in
comments under #1313) may still want to limit the input phrase length.
But they might prefer a limit greater than the current maximum - ten
thousand symbols. Ten million minus one symbols should be generous
enough. I don't want to increase the maximum further to avoid excessive
widening of spinboxes in the Preferences UI. Besides, a ten megabyte
input phrase freezes GoldenDict's UI with high CPU usage for a minute on
my system.
2020-11-19 17:58:35 +02:00
Igor Kushnir dea11ca080 inputPhraseLengthLimit option's single step: 5 => 10
This speeds up decreasing the default value that is probably too large
for most users. I think that very few users would want to tune this
option's value finer than 10. Those who need such precision can enter
the desired number manually.
2020-11-19 12:56:29 +02:00
Igor Kushnir 193aa4e31d Set up network disk cache for articleNetMgr
When a Wikipedia article is already cached, this change reduces the
amount of sent and received network data almost tenfold.

Setting up a network disk cache in the same way for dictNetMgr does not
noticeably impact the amount of network traffic. Either this network
access manager sends and receives very little data or the data is never
the same. So dictNetMgr does not need a disk cache.

Use QNetworkDiskCache's default maximum size of 50 MiB as the default
network cache size. This size is large enough to accommodate tens of
huge MediaWiki articles. It is also small enough that the user is
unlikely to run out of disk space because of the cache.

Clear network cache on exit by default because most users probably
don't load the same online articles after restarting GoldenDict. Plus
storing the network cache on disk indefinitely by default would be a new
and unexpected to the users privacy risk.

Nikita Moor came up with the idea and wrote an initial network disk
cache implementation in #1310.
2020-11-18 19:04:28 +02:00
Abs62 c02915d5e5 1. Set limit input phrase length option turned off by default
2. Set input phrase length limit to 1000 by default
2020-11-16 18:12:17 +03:00
Igor Kushnir 61eb4e08fe Add options to limit input phrase length
When a long text is accidentally selected or copied while the scan popup
is on, Goldendict spends a lot of CPU time to gradually create a
"No translation..." article. When translation of huge (e.g. 15 MB) text
from the clipboard is (accidentally) requested, Goldendict freezes for a
while. Turning the added input phrase limit option on eliminates this
waste of the CPU time.

I have implemented these options primarily for selection and clipboard,
but they also affect mouse-over translation on Windows and command line
translation requests. This is mostly because I did not bother to limit
the options' scope. I guess hovering over an extremely long text without
spaces (e.g. Base64-encoded) could cause the same performance issue on
Windows. The command-line translation could be requested from a script
that integrates Goldendict with some other application, from which long
text could be sent for translation by accident.

I hope that the default value of 200 characters will be sufficient for
just about any real-world user input in any language. The option is on
by default, because the default length limit is generous and any longer
text is unlikely to be sent for translation intentionally. My personal
preference for the input phrase length limit is 100 symbols.

ArticleView::pasteTriggered() didn't call QString::simplified() on the
text retrieved from the clipboard. I assumed this was an oversight, so
now it *is* called - indirectly, via Preferences::sanitizeInputPhrase().
2020-11-13 17:44:38 +02:00
Abs62 48e850c7ec Fix typo 2018-06-13 22:01:13 +03:00
Abs62 d7bc012411 Add option to ignore diacritics while articles search 2018-06-13 19:00:42 +03:00
Abs62 b7dbb6cd96
Merge pull request #999 from vedgy/move-send-to-main-window-option-in-ui
Move scanToMainWindow checkbox out of enableScanPopup group box
2018-04-17 20:31:33 +03:00
Igor Kushnir 5c74494935 Linux-specific: Add an option to disable scan popup inside Goldendict
When scan popup is configured to appear without any key modifiers
pressed and is active on X11, it interferes with selecting text inside
the scan popup window (or inside the main window if "Send translated
word to main window" option is enabled). It also makes searching text
inside article definition impossible - in the main window and
even more so in the scan popup window.

However, when scan popup is configured to appear only when some keys are
pressed, or when the scan flag feature is enabled, it may work fine
inside Goldendict windows.

It is possible to automatically decide whether to show scan popup when
selection or clipboard inside Goldendict changes. But such logic might
be unsuitable for some use cases. For example, invoking scan popup by
selecting article definition text in the main window works fine.
Therefore this commit makes ignoring selection and clipboard changes
inside Goldendict itself optional. This commit implements one of two
feature requests in issue #606.

This new option could have effect on non-X11 platforms if the hidden
trackClipboardChanges option is enabled. But it is much less useful on
these platforms because scan popup without key modifiers is unusable
there (at least under Windows). Let us show and use the option only on
X11 to avoid cluttering Preferences UI on other platforms.
2018-04-17 20:13:25 +03:00