Commit graph

353 commits

Author SHA1 Message Date
yifang ae8c2df4a8 optimize: F12 improve
when close inspected windows,the inspect is still working .
2022-03-04 23:27:34 +08:00
yifang 269a7bcf48 fix:middle mouse click open in new tab 2022-03-04 00:17:21 +08:00
xiaoyifang d607079ffb fix: double click to translation should stop audio first.
there are cases when the audio is too long (in wiki).
when double click occured .the audio is still playing.
2022-02-25 23:33:34 +08:00
xiaoyifang 70e7a49db8 fix: scroll to current article 2022-02-25 22:48:43 +08:00
xiaoyifang d341a64569 fix:scrollIntoView,set the html active style. 2022-02-25 07:47:20 +08:00
xiaoyifang f146177232 fix:Alt+Down,Alt+Up when foundDicts panel is hidden on startup. 2022-02-23 00:27:30 +08:00
xiaoyifang 650b650a66 fix:jump to current article 2022-02-23 00:04:11 +08:00
xiaoyifang 49fa66c29d format: format one line 2022-02-19 19:05:01 +08:00
xiaoyifang 3e88a5615d optimize:F12 inspect element 2022-02-19 18:59:19 +08:00
yifang 56000cf3b1 optimize: F12 inspect element
optimize:inspect element dialog
2022-02-18 20:14:10 +08:00
yifang f81ac16fa6 fix: mouse scroll zoom in out 2022-02-18 00:40:03 +08:00
xiaoyifang 6fbadad807 clean:open dictionary folder in windows
make windows's logic same as linux
2022-02-16 23:00:20 +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
yifang f6f0e25674 fix:double click translation ,right context menu invalid 2022-02-10 20:07:05 +08:00
yifang ccf3bea934 Merge branch 'fix/mix-sound' into staged 2022-02-04 21:20:05 +08:00
yifang 35f844a9a8 fix:when auto pronounce enabled. the sentence audio can not be played. 2022-02-04 21:19:32 +08:00
xiaoyifang 0c94406e2a fix merge conflict with feature/deprecated 2022-02-03 17:50:47 +08:00
yifang 8048830246 clean code: remove comment 2022-01-31 08:42:36 +08:00
yifang 096f21f61a imp. revert the playsound in the toolbar to use the builtin goldendict engine . 2022-01-30 19:28:49 +08:00
yifang 1d32ec4609 Merge branch 'feature/highdpi-icon' into dev 2022-01-27 08:24:16 +08:00
yifang d38daedc99
high dpi:remove coresponding png files with same name with svg
close https://github.com/goldendict/goldendict/issues/1441
2022-01-27 08:23:57 +08:00
xiaoyifang eb6aa7fba0 Merge branch 'branch-qt-5.15' into dev 2022-01-26 00:31:14 +08:00
xiaoyifang de0815f45d fix: print preview does not work 2022-01-26 00:29:58 +08:00
xiaoyifang 9cf5ee8443 high dpi:change icon reference in code from png to svg. 2022-01-24 22:23:38 +08:00
xiaoyifang 5af49e49eb fix: crash when edit dictionary through menu. when goldendict starts. 2022-01-23 11:22:40 +08:00
yifang 9700969a04
imp. : "select current article" ,if not in the view.scroll into view. 2022-01-20 21:59:47 +08:00
yifang 12a1ee77df
imp. : zoom factor ,set zoom also in loading process 2022-01-20 20:34:14 +08:00
yifang c7926daac7
fix:add debug log,hitted dictionaries changes. 2022-01-20 20:15:34 +08:00
yifang 8ac2f8dfe1 imp. : wrap articleview in webchannel for security reason 2022-01-20 07:38:01 +08:00
xiaoyifang f047c5fc9c Revert "imp. : wrap articleview in webchannel for security reason"
This reverts commit cf10810fe2.
2022-01-19 22:39:04 +08:00
yifang cf10810fe2 imp. : wrap articleview in webchannel for security reason 2022-01-19 20:50:17 +08:00
yifang 5c76bc746c fix:right context menu ,select current article 2022-01-19 20:16:45 +08:00
xiaoyifang a562975661 fix:right context menu , "select current article". 2022-01-18 23:06:17 +08:00
xiaoyifang 4e7fe7dd6d improvement: make tab title does not show url . 2022-01-18 22:26:52 +08:00
yifang 0ba2cacc29
improvement:remove gdCurrentArticle js variable 2022-01-17 21:50:54 +08:00
yifang ca9917c972 Merge branch 'temp/singleclick-event' into branch-qt-5.15 2022-01-15 11:21:18 +08:00
yifang 850c7d66e8 fix:single click on link,the emulated db click will still work on new page 2022-01-15 11:18:54 +08:00
yifang 63626bde13 improvement: refactor code,move ignoreKeyEvent method to utils. 2022-01-14 22:58:19 +08:00
yifang 713339d66b improve: handle invalid resource url such as bres://upload.wikimedia.... 2022-01-11 22:20:38 +08:00
xiaoyifang fb41852554 fix: mouse scroll by page (win specific) 2022-01-10 21:40:21 +08:00
xiaoyifang 84923e5c4d fix:save image (right context menu on image action) 2022-01-09 22:18:53 +08:00
xiaoyifang 13fdf08450 improve:foundDictsPane refresh logic 2022-01-09 12:54:50 +08:00
xiaoyifang 3f11826918 fix: invalid bres url may cause webengine to crash. such as bres://upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif 2022-01-09 11:36:48 +08:00
yifang 46b4151cc4 improve: replace all the deprecated method before 5.15 2022-01-08 22:08:23 +08:00
yifang f16107e072 fix:right context menu not display correctly when select wikiweb dictionary 2022-01-08 21:45:10 +08:00
yifang e8f0202a49 clean code:remove useless code 2022-01-08 18:40:17 +08:00
yifang 0f1c0d4204 improve:right context menu active dictionaries 2022-01-08 14:51:24 +08:00
xiaoyifang 4de296b5a6 fix:single click to select work (inside html iframe) 2022-01-04 21:01:16 +08:00
xiaoyifang c17a4d9b74 right menu context 2022-01-02 16:30:16 +08:00
yifang aaea8d8e04 code clean: format 2022-01-01 18:19:11 +08:00
yifang 3ebe5c9b23 fix: translateLine text disappeared after main windows hide and show up again. 2021-12-30 21:19:50 +08:00
yifang 81c2e8d3b5 fix:zoom in does not take affect. 2021-12-30 20:41:38 +08:00
yifang a1c0cfa042 single click to open external link in external browser 2021-12-29 23:28:26 +08:00
yifang 09063ecc5a clean code:
QString::SkipEmptyParts=>Qt::SkipEmptyParts
2021-12-29 22:29:06 +08:00
yifang 77ed32dca6 cors support 2021-12-29 20:09:29 +08:00
yifang 0f08026d3f right context menu link . 2021-12-28 21:59:49 +08:00
yifang d90c528819 onJsActiveArticleChanged was remove unintentionaly 2021-12-19 18:58:48 +08:00
yifang f292e0c251 add javascript qt object to html(used to communicate between html and c++)
add jquery framework .
2021-12-19 18:37:27 +08:00
yifang de3d7b8b19 clean code:remove QT_VERSION check 2021-12-16 19:59:00 +08:00
xiaoyifang e04aa50a99 fix issue mentioned in https://github.com/goldendict/goldendict/issues/1393#issuecomment-993716654 2021-12-15 23:43:03 +08:00
yifang 8e2eac0836 remove useless comment line 2021-12-13 22:46:02 +08:00
yifang a2baf836e4 refactor code.F12 optimize 2021-12-13 22:46:02 +08:00
xiaoyifang cb5ac438fe bword link in Hunspell dictionary. 2021-12-13 22:46:02 +08:00
yifang.xiao 608f39244e single click distinguish with double click 2021-12-13 22:46:01 +08:00
yifang 98ca729446 remove qt_version_check macro 2021-12-13 22:45:57 +08:00
yifang.xiao b148c557c9 convert async to sync invoke 2021-12-13 22:45:55 +08:00
xiaoyifang 9b179dac3c runjavascript async->sync 2021-12-13 22:45:53 +08:00
yifang.xiao 5f86c33f8d F12 inspect element 2021-12-13 22:45:49 +08:00
yifang.xiao c56407863c use Eventloop to convert async function to sync function.based on current situation ,I think it would be better to keep the sync mode. webengine use aysnc callback,while webkit use sync function 2021-12-13 22:45:39 +08:00
xiaoyifang 303179b410 clean code:
remove qt version check
save geometry
2021-12-13 22:45:35 +08:00
xiaoyifang 5eac08c97a rename qt4x5.hh to utils.hh
the filename qt4x5 is not proper now,for the qt4 version can never meet.and the qt5 is actually mean qt>5 .
2021-12-13 22:45:35 +08:00
yifang.xiao 0365015ac6 clean code:
remove "#if QT_VERSION >= QT_VERSION_CHECK( 5, 0, 0 )" check ,the check should always be true based on current situation.
2021-12-13 22:45:33 +08:00
yifang.xiao 69db1d4c71 fix conflict 2021-12-13 22:45:20 +08:00
xiaoyifang e7779e5302 fix todo 2021-12-13 22:43:46 +08:00
xiaoyifang 174ba53be2 found dictionaries panel update 2021-12-13 22:43:46 +08:00
xiaoyifang 402add183e clean qt_version < 5 code. 2021-12-13 22:43:46 +08:00
yifang.xiao ab358fb3a5 remove old qt(<5) code. 2021-12-13 22:43:43 +08:00
yifang.xiao 20d51afb8d remove old qt(<5) code. 2021-12-13 22:43:28 +08:00
xiaoyifang 66ed1c0507 optimize javascript scrollIntoView 2021-10-20 23:44:24 +08:00
yifang c1eef3a228 remove inspector -- useless code 2021-10-05 09:51:51 +08:00
yifang f13c713265 right panel founded dictionaries 2021-10-05 09:23:30 +08:00
xiaoyifang 09441a8b72 found in dictionaries list widgets 2021-10-04 15:27:49 +08:00
xiaoyifang bdb9561ec9 rename scheme handler 2021-10-02 20:48:49 +08:00
xiaoyifang 20c3a7241d fix: js unexpected error. 2021-09-25 10:17:05 +08:00
xiaoyifang d2257ce061 Merge remote-tracking branch 'remotes/origin/master' into branch-qt-5.15
# Conflicts:
#	articleview.cc
2021-09-24 14:08:26 +08:00
yifang 3b120ee765 1 remove useless code
2 define js variable to avoid js error
2021-09-24 21:42:55 +08:00
yifang bf2640bb25 play sound in the dictionary html 2021-09-23 13:05:05 +08:00
xiaoyifang bec982c51e remove dead code 2021-09-22 12:01:17 +08:00
xiaoyifang 17afc21478 1.js undefined error
2,disable chrome auto play feature
2021-09-22 11:20:42 +08:00
yifang 4a5af10277 add local scheme ,such as qrcx,gadu,etc. 2021-09-21 18:22:08 +08:00
yifang e5c72f8ecc change to setcontent 2021-08-21 09:41:40 +08:00
yifang b1c4159a3d change function declarition 2021-08-15 11:05:38 +08:00
xiaoyifang eddfa075bd connect reply content to article view 2021-08-14 15:25:10 +08:00
xiaoyifang 3aadf52344 webkit to webengine 2021-07-15 22:58:32 +08:00
Igor Kushnir f919685797 Extract duplicated "gdfrom-" string manipulation into functions
Such helper functions facilitate understanding of the code and simplify
implementing new features.
2021-06-29 13:31:09 +03:00
Abs62 e1c9a0d6de Fix compilation without C++11 support 2021-06-18 21:33:24 +03:00
Igor Kushnir 60bc05218f Add input phrase's punctuation suffix to alts
Preferences::sanitizeInputPhrase() transforms an input phrase by
removing its whitespace/punctuation prefix and suffix. Translating a
phrase from X11 primary selection or from clipboard, via mouse-over or
from the command line results in such sanitization. This is useful when
a punctuation mark or a space is selected accidentally alongside a word.
This sanitization can be undesirable, however, when an abbreviated word
is selected. For example: "etc.", "e.g.", "i.e.".

This commit implements searching for the input word with the punctuation
suffix preserved as an alternative form of the sanitized word to show
articles for both. For example, when the word "etc." is translated from
the clipboard, both "ETC" and "etc." articles are displayed.

The punctuation suffix is preserved when the word is passed from the
scan popup to the main window and when the translate line text is
refreshed (e.g. when the current group is changed). The suffix is not
stored in history and favorites (doing so would require file format
changes and possibly substantial code changes, this can be implemented
later if need be).

Trim the input phrase once in ArticleNetworkAccessManager::getResource()
instead of verbose trimming in multiple places in
ArticleMaker::makeDefinitionFor().

Closes #1350.
2021-06-17 12:06:36 +03:00
Igor Kushnir 57c4c33780 Add support for *.oga audio files
For example, the first audio link in "The United States" English
Wikipedia article - "The Star-Spangled Banner" - ends with ".oga".
Without this commit the audio link is not recognized by GoldenDict:
* it is not pronounced when a Preferences=>Audio=>"Auto-pronounce..."
  option is enabled;
* clicking on the link opens it in the default browser instead of
  playing inside GoldenDict.
2021-06-12 07:53:19 +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 58b6c60374 DSL: Fix sound saving from preferred dictionary 2019-06-27 18:09:00 +03:00
Abs62 76127eb04f
Merge pull request #955 from vedgy/fix-mediawiki-tooltips
Show #link as a tooltip instead of empty "Definition: "
2019-02-07 18:48:11 +03:00
Abs62 2bd422ad73 Full-text search: QRegularExpression instead of QRegExp to highlight found words in Qt5-based builds 2018-09-25 17:58:51 +03:00
Boyuan Yang 5d5432dbad
Fix typos found by codespell 2018-07-07 17:33:15 +08:00
Abs62 d7bc012411 Add option to ignore diacritics while articles search 2018-06-13 19:00:42 +03:00
Abs62 5fa5cc123f Full-text search: Allow ignore diacritics while search 2018-04-10 17:49:52 +03:00
Igor Kushnir 278e05cbf3 Run a single external audio player process at a time
External and internal audio players work similarly now. Fixes #950.

* inherit a new ExternalAudioPlayer class from AudioPlayerInterface;
* use an existing ExternalViewer class to implement ExternalAudioPlayer;
* take (const char *, int) instead of std::vector<char> in
  ExternalViewer constructor to fit into AudioPlayerInterface;
* extend ExternalViewer API to let ExternalAudioPlayer stop superseded
  audio player processes;
* make AudioPlayerInterface::play() return an error message string to
  allow reporting immediate failures from derived classes;
* Document AudioPlayerInterface API;
* Document AudioPlayerFactory::player();
* use the common audio interface exclusively in ArticleView.
2018-03-24 21:34:06 +02:00
Igor Kushnir e5045860ef Make adding new audio player implementations easy
* add a new interface class AudioPlayerInterface;
* inherit a new proxy class Ffmpeg::AudioPlayer from it;
* partially switch ArlticleView to using the interface;
* expose MainWindow's AudioPlayerInterface instance to all ArticleView
  instances;
* add a new AudioPlayerFactory class responsible for creating instances
  of concrete classes derived from AudioPlayerInterface depending on
  relevant Config::Preferences values;
* increase minimum supported Qt version from 4.5 to 4.6 in README
  in order to use QScopedPointer introduced in Qt 4.6.
2018-03-24 21:31:48 +02:00
Igor Kushnir 50fe9be623 Show #link as a tooltip instead of empty "Definition: "
Internal links in MediaWiki articles don't lead to word definitions,
so the "Definition: " prefix is not correct for them. It also does not
provide any information and is largely useless.

Perhaps the actual footnote text should be displayed in the tooltip,
but this requires distinguishing them from citations/references and
backlinks.
2018-02-21 13:01:02 +02:00
Abs62 d763c6ec81 Dsl: Add support for "#SOUND_DICTIONARY" directive 2017-07-09 20:15:35 +03:00
Abs62 ab7df09bee A little optimization for resources search 2017-04-28 15:25:45 +03:00
Abs62 747dc0aaaf Refactor resource downloading 2017-04-28 00:13:25 +03:00
Abs62 67b6b6b91c Add "gdvideo://" scheme to saved resources 2017-04-27 18:05:28 +03:00
Abs62 2085314eb9 1. Don't show "failed to download" error message while saving resources like "gdau://search/..."
2. Stop search if resource is found
2017-04-27 18:04:26 +03:00
Abs62 d9e6c812fc For full-text search in article disable "Next" button if only one match found 2017-04-26 18:40:13 +03:00
Abs62 bef8e2f8ac Don't show some context menu items for selection with spaces only 2017-04-24 17:41:07 +03:00
Abs62 cc7d7e196a Qt 5: Partially workaround of same-origin policy 2017-03-21 17:35:34 +03:00
Abs62 9714ad54f0 Lock jump on links while Alt key is pressed 2017-03-14 17:47:38 +03:00
Abs62 9511494c2b Send image to external viewer by double click 2017-03-13 17:38:27 +03:00
Abs62 4290734589 MDict: Fix handling of anchors like "<a id="xxx"> 2016-05-11 17:41:13 +03:00
Abs62 eee04266db Merge branch 'Original' into Qt4x5 2016-04-02 01:51:38 +03:00
Abs62 1f97957621 Fix anchor handling in Qt 5 builds 2016-04-01 16:38:07 +03:00
Abs62 2ab4eeaf60 Merge branch 'Original' into Qt4x5 2015-10-30 22:24:44 +03:00
Abs62 d8eba31d2d Slob: Handle inter-article anchors 2015-10-30 21:01:38 +03:00
Abs62 af69639b9d Adjust code for Qt5 2015-10-30 16:35:00 +03:00
Abs62 b2b60fc2e1 Merge branch 'Original' into Qt4x5 2015-10-30 16:34:08 +03:00
Abs62 c2eb4a0ef2 MDict: Handle inter-article anchors 2015-10-28 23:24:10 +03:00
Abs62 e24de4d881 Merge branch 'Original' into Qt4x5
Conflicts:
	xdxf2html.cc
2015-10-14 18:23:46 +03:00
Abs62 8ac7eddf2f Limit headword length in article context menu 2015-10-14 18:18:11 +03:00
Abs62 b9666f7f9f Merge branch 'Original' into Qt4x5
Conflicts:
	bgl_babylon.cc
2014-05-12 18:10:26 +04:00
Abs62 e2b0a7f39c Mac-specific: Adjust code for Qt5 build 2014-05-12 17:53:13 +04:00
Igor Kushnir e79338b3a1 Fixed activating link with <Enter>; fixed FullTextSearchDialog tab order; fixed switching between UI elements via shortcuts. 2014-05-11 14:52:25 +03:00
Abs62 273b1b5757 Merge branch 'Original' into Qt4x5
Conflicts:
	articleview.cc
	btreeidx.cc
2014-05-05 21:31:16 +04:00
Abs62 f8dd01e0a2 Full-text search: Highlight words with accent mark added by DSL tag 2014-04-24 18:12:00 +04:00
Abs62 90130d0fff Adjust code for Qt5 2014-04-23 18:19:46 +04:00
Abs62 10532279b1 Merge branch 'Original' into Qt4x5
Conflicts:
	article_netmgr.cc
	mainwindow.cc
2014-04-23 18:16:06 +04:00
Abs62 88c40141d0 A little refactoring of keys handling (old solution don't work correctly in Qt5) 2014-04-23 17:46:48 +04:00
Abs62 503650d617 Full-text search: Set group for ArticleView::showDefinition() when view article 2014-04-23 00:08:21 +04:00
Abs62 c2cdf9b177 Full-text search: Highlight of the search results 2014-04-22 22:29:58 +04:00
Abs62 e7477cfd24 Full-text search: Fix handling of some DSL headwords 2014-04-21 20:20:24 +04:00
Abs62 9ad0d5f985 Implement full-text search 2014-04-16 20:18:28 +04:00
Abs62 0fa4087b38 Merge branch 'Original' into Qt4x5
Conflicts:
	goldendict.pro
	mainwindow.cc
	zim.cc
	zipsounds.cc
2014-02-11 23:39:31 +04:00
Abs62 dabceff223 Don't jump to dictionary when new page opens in background 2014-02-09 19:15:41 +04:00
Abs62 97c4697a80 Handle some touch screen gestures in article view window 2014-02-04 22:38:50 +04:00
Abs62 34271ecc1d Merge branch 'Temp' into Qt4x5
Conflicts:
	article_maker.cc
	article_netmgr.cc
	articleview.cc
	forvo.cc
	goldendict.pro
	hotkeywrapper.cc
	hunspell.cc
	mainwindow.cc
2013-12-18 19:09:48 +04:00
Abs62 444938a330 Fix logging to file UTF-8 encoded messages 2013-11-16 22:34:09 +04:00
Abs62 cc5cd4bc26 Fix exception handling at article save 2013-10-18 18:32:58 +04:00
Abs62 afaa0a70ab Fix unhandled exceptions at resources loading 2013-10-18 16:50:29 +04:00
Abs62 a1d539ff1f Qt5-specific: Fix pictures loading for Bgl and some Stardict dictionaries 2013-09-27 17:04:25 +04:00
Abs62 1f87d8a911 Merge branch 'master' into Qt4x5
Conflicts:
	btreeidx.cc
	goldendict.pro
	lsa.cc
	mouseover.cc
	sounddir.cc
	xdxf2html.cc
2013-09-27 17:03:27 +04:00
Tvangeste 8a10e997b4 Fixed #387: Paste word into new tab looks up ALL dics instead of currently selected group 2013-08-22 18:05:39 +02:00