Commit graph

134 commits

Author SHA1 Message Date
Igor Kushnir a9fc823c46 Avoid duplicate currentGroupChanged() connection
Before this change ScanPopup::applyWordsZoomLevel() was called before
the primary connection to ScanPopup::currentGroupChanged() in
ScanPopup's constructor. This meant that disconnect() had no effect and
connect() established the first connection during the first call to
ScanPopup::applyWordsZoomLevel(). This caused 2 issues:
  1. Since the connection happened before the filling of ui.groupList
in ScanPopup's constructor, the current group in scan popup was always
"All" on Goldendict start.
  2. Since the connection was not unique, the slot was connected twice
to the same signal, and it was actually called twice.

The bug was introduced in 92e8c85eec.
2019-01-28 14:54:32 +02:00
Abs62 92e8c85eec Fix behavior while words list font resizing (issue #1109) 2019-01-26 22:11:27 +03:00
Igor Kushnir 3bf7aad1f7 Add a shortcut to focus scan popup's article view
The article view focus is necessary to navigate a word definition via
keyboard rather than mouse. The shortcut - Ctrl+N - is the same as
the one in the main window for the corresponding action.
2018-05-16 14:54:20 +03:00
Abs62 0a8599d9b1 Fix warning in scanpopup.cc while compilation under Windows/MacOS 2018-04-17 20:52:39 +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
Igor Kushnir 15dfdee49f Allow customizing unpinned scan popup window flags on X11 with Qt5
My tests in many desktop environments and window managers indicate that
no single configuration works perfectly in all environments. There are
also behavior differences between Qt::Popup and Qt::Tool flags, which
are not exactly bugs, so I suppose users might subjectively prefer
different options.

Customizing the flags allows the user to prevent unpinned scan popup
window flickering with Qt5 on Linux. In a way adding these options fixes
issue #645, which is: the scan popup window blinks rapidly, barely
noticeably in some applications, such as Calibre ebook-viewer
and Chromium. In this case the scan popup window usually ends up hidden
when selection ends, unless it was finished with a jerk.

I have tested the new options in 9 desktop environments and window
managers: at least one configuration for each eliminates #645 and makes
the scan popup window work the same as with Qt4 in this regard:
the popup window remains visible, text in the popup's translation line
keeps up with the text selection in the external application,
and the selected text is being translated on the fly.

Moreover, for each tested DE/WM, at least one configuration makes
the scan popup window work perfectly as far as I am concerned.

This issue was partially worked around with a 200ms scan popup delay
timer in the recent commit 58e41fe3ce
for the duplicate issue #854. However the timer solution is incomplete
because it requires the user to select text quickly and without delays.
If global mouse selection does not change for 200ms while the left mouse
button is held down, the user will likely not see the scan popup when
(s)he finishes selection, and will have to try selecting again -
hopefully faster this time.

The 200ms delay is no longer critically important after this commit,
but it is still beneficial: the lookup query changes less often,
which in turn reduces article definition update frequency.
So the delay improves the UI (perhaps subjectively) and performance.
2018-04-15 19:46:35 +03:00
Igor Kushnir d530af7781 Qt5: disable an obsolete Qt4 X11 window focus workaround
I have verified in numerous desktop environments and window managers
that the workaround does not work with Qt5.
Let us disable it in Qt5 builds to prevent potential issues
and eliminate the small performance overhead.
2018-04-15 19:46:35 +03:00
Abs62 d65a1f7869 Save popup window configuration without it destroying 2018-03-27 21:23:48 +03: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
Abs62 77c9a4c3e2 Fix "Add to Favorites" icon changing 2017-11-07 17:46:59 +03:00
Abs62 1824d9ab02 Change "Add to Favorites" icon if headword is already presented in Favorites 2017-10-23 17:21:43 +03:00
Abs62 ecddc321b2 ScanPopup: Change font size for translate line and word list synchronously with main window 2017-07-14 16:02:21 +03:00
Abs62 a75dcfb7c5 ScanPopup: Add button to stay over all other windows (issue #659) 2017-07-13 18:00:19 +03:00
Abs62 58e41fe3ce Linux-specific: Small delay for show of popup window when selection changed (by Sun Wang) (issue #854) 2017-06-13 18:00:16 +03:00
Abs62 0999c86038 Linux-specific: Hide scan flag window when popup window is shown (by Ctrl+C+C) 2017-06-06 18:00:48 +03:00
sunwxg ad8008c37b Add scan popup flag
After select a word, show a flag window, click the flag to show
popup window.
2017-06-05 21:15:38 +08:00
Abs62 a6e51afa64 Add "Add to Favorites" button to scan popup window 2017-05-15 18:08:06 +03:00
Abs62 e982b69216 Add command line parameters "--group-name" and "--popup-group-name" 2017-03-10 17:15:10 +03:00
Abs62 c42be480f5 MacOS: Fix popup window in Qt 5.3 2014-10-03 15:30:49 +04: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
Abs62 4120213ee8 Rename "DPRINTF" and "FDPRINTF" debug macro 2014-05-11 01:02:31 +04:00
Abs62 9c319da834 Merge branch 'Original' into Qt4x5
Conflicts:
	dictserver.cc
2014-05-10 00:05:07 +04:00
Abs62 c8f0354227 Scan popup: Fix filling of suggestion list when muted dictionaries are presented 2014-05-09 23:27:50 +04:00
Abs62 10532279b1 Merge branch 'Original' into Qt4x5
Conflicts:
	article_netmgr.cc
	mainwindow.cc
2014-04-23 18:16:06 +04:00
Abs62 9ad0d5f985 Implement full-text search 2014-04-16 20:18:28 +04:00
Abs62 4cf35cc7e3 Merge branch 'Original' into Qt4x5
Conflicts:
	hotkeywrapper.hh
	mainwindow.cc
	mainwindow.hh
2014-04-11 19:29:56 +04:00
Abs62 b6a5beb2c2 Adjust back/forward buttons icon for right-to-left window layout 2014-03-20 17:44:46 +04:00
Abs62 4bbe1aaee5 Merge branch 'Original' into Qt4x5
Conflicts:
	scanpopup.cc
2014-03-14 17:34:33 +04:00
Abs62 04524ba4e4 Mac-specific: Change window flags for scan popup window (issue #434) 2014-02-17 17:49:18 +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 3495ba1816 Handle some touch screen gestures in scan popup window 2014-02-05 17:41:49 +04:00
Abs62 dbedf431fa Merge branch 'Original' into Qt4x5 2014-01-22 00:03:39 +04:00
Abs62 32a2cf55b9 Add config file option for track clipboard changes 2014-01-09 18:17: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
Timon Wong 6ed3f5bec5 Merge branch 'master' into qt4x5 2013-06-16 15:54:05 +08:00
Tvangeste de2bf73e66 New interface preference: Context menu dictionaries limit
Controls both context menus, in the dictionary bar and in the article view.
Can be adjusted in Preferences -> Interface -> Context menu dictionaries limit.
By default, it is set to 20.
2013-06-11 20:31:01 +02:00
Timon Wong f0885d4c78 Merge branch 'master' into qt4x5
Conflicts:
	hotkeywrapper.cc
	xdxf2html.cc
2013-06-10 23:49:09 +08:00
Abs62 3bd82ef752 "Open dictionary folder" action in context menu (issue #344) 2013-06-09 17:31:57 +04:00
Timon Wong 8015841a1a Replace Q_WS_X11 -> HAVE_X11 2013-05-31 13:28:36 +08:00
Timon Wong d057752c74 Change Q_WS_MAC to Q_OS_MAC, Change Q_WS_WIN* to Q_OS_WIN* 2013-05-31 12:28:29 +08:00
Timon Wong ad4394d02b #212: Workaround for Qt5 changed behavior in QUrl::setPath() 2013-05-30 23:05:41 +08:00
Abs62 68df177056 Mac-specific: Implement scanning under Mac OS X (issue #129) 2013-04-10 17:31:44 +04:00
Abs62 db4bb635d1 Disable clipboard change tracking for Windows and MacOS 2013-04-05 16:21:01 +04:00
Abs62 13eb3fa503 Synchronize dicionary icons size in popup and main windows (issue #168) 2013-02-27 17:12:46 +04:00
Abs62 940de07908 Don't translate program name 2013-02-01 16:36:01 +04:00
Abs62 4e06a3612d Call tr() function for some strings (issue #195 again) 2013-02-01 00:18:40 +04:00
Tvangeste 2fa90cb55c Fixed #197: Sometimes the Scan Popup shows previous translation (Linux). 2013-01-29 23:04:18 +01:00
Tvangeste 3b7326e3be Fixed #194: Scan Popup window doesn't get the keyboard focus on Linux.
Tested and verified on recent Unity, Gnome, KDE, LXDE systems.
2013-01-29 22:30:24 +01:00
Tvangeste a89299c2e3 Revert "Use the same window flags for the scan window, on Win and Linux."
Unfortunately, the change didn't work properly on KDE systems.

This reverts commit 8a8c7cc7d7.
2013-01-28 13:19:11 +01:00
Tvangeste 8a8c7cc7d7 Use the same window flags for the scan window, on Win and Linux.
Previously, the scan popup used Qt::Popup flag on Linux, but this
flag is incompatible with the new translate box UI, esp. the
floating suggestion list, since in the Qt::Popup-styled windows
all the events go to the popup, hence the creation of additional
windows is problematic, and those new windows don't work properly
since they don't receive events.

Without this change, the scrolling of the suggestion list in the
Scan Popup's translate box is impossible.
2013-01-27 23:24:06 +01:00
Tvangeste ffa9f5778b Fixed #192: Dynamically adjust the suggestion list in the new UI. 2013-01-27 23:12:00 +01:00
Abs62 15f6f10f97 ScanPopup window header 2013-01-26 19:55:17 +04:00
Tvangeste 3258ad89f5 Fixed #191: New UI in the scan popup, replace 3 separate widgets with the translate box. 2013-01-25 16:42:44 +01:00
Abs62 4c8b12b9af "Back" and "Forward" buttons in scan popup window 2012-12-24 16:59:46 +04:00
Abs62 e6457a1e27 Call external editor for dictionaries 2012-11-28 23:32:37 +04:00
Abs62 259efae81c Update history when clicking links on page (issue #120) 2012-11-12 17:52:54 +04:00
Abs62 8e4b38400a Remove redundant spaces while translating clipboard 2012-10-01 16:43:32 +04:00
Abs62 ad8ddc8daf Add option for word selection by single mouse click 2012-09-26 17:59:48 +04:00
Abs62 3c2990bf23 Own muted dictionaries list for each group 2012-09-26 17:13:47 +04:00
Abs62 4c5e79c2b2 Add "Dictionary info" item to dictionary bar context menu 2012-09-25 17:13:35 +04:00
Abs62 09b9e9aa46 Win-specific: Show translation in popup window istead of sending word to GD main window while scanning GD main window 2012-09-24 17:20:58 +04:00
Abs62 44247c04c9 Add word to history via context menu from ScapPopup window 2012-09-16 14:30:14 +04:00
Abs62 305c9ed1b8 Show/hide optional parts of articles (DSL dictionaries only) 2012-09-16 14:19:47 +04:00
Abs62 e00415e4d2 Close popup menus when ScanPopup window closes 2012-09-12 18:18:16 +04:00
Abs62 535fe0d3e0 Update year in copyright notices. 2012-02-21 01:47:14 +04:00
Abs62 11561ac4af Large search history 2012-02-16 18:56:25 +04:00
Abs62 bd90b5368b Add translation of the word from command line 2011-11-16 17:02:56 +04:00
Abs62 9a1ceff5d8 1. Add button to scan popup window to send translated word into main window
2. Add option to use main window instead of scan popup window
2011-11-16 16:52:25 +04:00
Konstantin Isakov f65c98c8e1 Merge pull request #26 from Abs62/master
Improvements in scan popup functionality. Now it can work with Internet Explorer 9.
2011-07-29 19:47:54 -07:00
Abs62 a11774483d Move some checks from ScanPopup into MouseOver 2011-07-28 17:04:06 +04:00
Abs62 68c80f48b2 Some simplification and cleanup 2011-07-27 16:47:29 +04:00
Tvangeste 4163bce8a2 Various status bar related fixes:
* Status Bar now available for Scan Popup window as well.
* Fixed #13: Eliminated modal box when sound is not available:
  Instead of modal dialog box we now show the status bar message,
  with error icon, thus making it visible but not disruptive.
* Proper handling of status bar images.
* Styling of the status bar in both modes
  (in Mani Window and in Popup Window).
2011-07-14 22:11:57 +02:00
Tvangeste 39d8772153 added statusbar to the scan popup window 2011-07-14 10:17:59 +02:00
Abs62 a8589b39bf Improvements in scan popup functionality.
1. Add search word under cursor through IAccessibleEx interface and UI Automation technology.
2. Reorganize GoldenDict main program and scan libraries interaction to reduce influence to other programs.
3. Fix crash in scan libraries in IE9 protected mode.
2011-07-09 23:26:30 +04:00
Abs62 36e509a2ab Replace printf in code by a macro DPRINTF 2011-06-19 22:50:11 +04:00
Abs62 97a6d49221 Check scan popup modifiers in window message handler to avoid unneeded string handling 2011-06-17 16:15:41 +04:00
Julian Depetris Chauvin 84400e766a pin in popup setting is now remembered on restart. 2011-05-01 20:52:11 -03:00
Konstantin Isakov 92eceb8cad Change email from @users.berlios.de to @goldendict.org. 2010-12-09 15:31:50 +03:00
Konstantin Isakov 414e0336e6 Don't attempt to translate the same word in scanpopup that is shown there already.
This fixes repeated scanpopup triggerings under Windows.
2010-12-03 23:10:18 +03:00
Konstantin Isakov 953d9237a3 Update copyright to span to 2011.
Better early than late, this year is ending anyway.
2010-11-14 18:47:03 +03:00
Konstantin Isakov 621d842394 Use polling instead of mouse grab for scan popup. This should fix problems with Windows 7 and such. 2010-07-03 20:24:30 +04:00
Konstantin Isakov ab88fa4867 Drop the src/ directory. It's superfluous. 2010-05-15 16:42:18 +04:00
Renamed from src/scanpopup.cc (Browse further)