Commit graph

235 commits

Author SHA1 Message Date
Igor Kushnir 9aa3c44d4e Add QMediaPlayer internal player back end (Qt5 only)
* add config and GUI support for internal player back end switching;
* make FFmpeg player disabling option consistent with other similar
  qmake options by using CONFIG;
* add a new qmake option that disables Qt Multimedia player. This is
  useful for GNU/Linux distributions where Qt WebKit and Qt Multimedia
  packages depend on different GStreamer versions and don't work
  correctly when combined in one application.

The existing FFmpeg+libao internal player back end has a relatively
low-level implementation, which is difficult to understand and improve.
There are at least 3 open internal player issues:
  1) many GNU/Linux users have to edit their libao configuration file to
     make Goldendict's internal player work (issue #412);
  2) libao's pulseaudio plugin does not support 32-bit audio, which
     means that many MediaWiki pronunciations don't work with the most
     popular GNU/Linux audio driver (issue #949);
  3) Ffmpeg::DecoderContext uses deprecated FFmpeg APIs, which causes
     compiler warnings and means that this internal player back end
     may not compile with a future FFmpeg library version (issue #978).

The Qt Multimedia back end implementation uses the highest-level
Qt audio API and is very simple.
This new back end works flawlessly on my GNU/Linux machine.
I'm not making it the default back end because I don't know how well
it will work on other platforms with different configurations.
2018-03-30 17:10:33 +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
Abs62 c204f75e52 Qt5: Use QRegularExpression instead of QRegExp in many cases 2018-02-22 16:55:56 +03:00
Abs62 46a4509101 Mac-specific: Update hunspell library to version 1.6.1 2017-07-05 18:19:40 +03:00
Abs62 bef2bf86c6 Update code for libhunspell 1.5+ 2017-07-05 17:58:43 +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 1e34de2dbc Add "Favorites" feature 2017-05-12 17:41:08 +03:00
Abs62 eb78238f25 Add support for split zip files 2017-04-24 17:42:01 +03:00
Abs62 eba7f5578f Add support for GLS (Babylon source) format 2017-03-07 16:45:09 +03:00
Abs62 6386d1d70e Merge branch 'locale-fi' of https://github.com/sikmir/goldendict into Temp
# Conflicts:
#	goldendict.pro
#	goldendict.vcxproj
#	goldendict.vcxproj.filters
2016-11-24 07:52:42 +03:00
Nikolay Korotkiy bbcf5a16d2 Register Esperanto translation 2016-11-24 04:46:50 +03:00
Nikolay Korotkiy 340548544a Register Finnish translation 2016-11-24 04:39:46 +03:00
Abs62 526d9d1bf8 Mac-specific: Copy 64-bit OpenCC data into GoldenDict bundle by default (issue #694) 2016-05-02 14:11:56 +03:00
Abs62 b6622271b6 1. Bump version to 1.5.0-RC2
2. No more separate branch "qt4x5", all changes merged into "master" branch. Code may be compiled with both Qt 4.x and Qt 5.x versions.
2016-04-26 19:32:50 +03:00
Abs62 6f04427e8b Merge branch 'Original' into Qt4x5 2016-04-22 23:49:50 +03:00
Abs62 eb8428057f Mac-specific: Update project to copy OpenCC data files into GoldenDict bundle 2016-04-22 23:45:56 +03:00
Abs62 436edad84d Merge branch 'Original' into Qt4x5 2016-04-22 17:59:01 +03:00
Abs62 9a2855f39d Mac-specific: Add OpenCC library 2016-04-21 17:50:56 +03:00
Abs62 281d3b7e80 Win-specific: Fix build with Qt 5.6.0 and VS 2013 2016-04-14 19:09:21 +03:00
Abs62 5731349f06 Merge branch 'Original' into Qt4x5 2016-04-09 11:09:55 +03:00
Abs62 032f5c8337 Win-specific: Tune code for compilation with MS Visual Studio 2016-04-09 00:21:55 +03:00
Abs62 fcc2758eb3 Merge branch 'Original' into Qt4x5
Conflicts:
	goldendict.pro
2015-10-27 18:08:57 +03:00
Abs62 a67ed65a90 Add "chinese_conversion_support" key to project for Windows by default 2015-10-26 21:21:14 +03:00
Zhe Wang a1986254d2 ChineseConversion: conditional compilation and OpenCC exception handling 2015-10-26 09:38:22 +08:00
Zhe Wang 12f67a79a4 Support conversion between simplified and traditional Chinese characters 2015-10-20 00:00:35 +08:00
Abs62 e24de4d881 Merge branch 'Original' into Qt4x5
Conflicts:
	xdxf2html.cc
2015-10-14 18:23:46 +03:00
Zhe Wang a04917833c Remove dependency on libavutil 2015-10-11 23:01:24 +08:00
Abs62 1df1b3d5d5 Linux-specific: Fix compilation with Qt5 (issue #595) 2015-06-24 17:56:29 +03:00
Abs62 40de8fcdd1 Merge branch 'Original' into Qt4x5 2015-02-09 18:57:32 +03:00
Abs62 0912df7cb5 Add SLOB dictionaries support 2015-01-22 18:17:05 +03:00
Abs62 407bc7e4b0 Merge branch 'Original' into Qt4x5 2014-07-21 17:38:05 +04:00
Abs62 8e56dae5cd Mac-specific: Fix help installing for any build directory 2014-07-21 17:36:32 +04:00
Abs62 d4adf591a9 Adjust code for Qt5 2014-07-11 18:18:37 +04:00
Abs62 8cabcacf55 Merge branch 'Original' into Qt4x5
Conflicts:
	btreeidx.cc
	fulltextsearch.cc
	goldendict.pro
	main.cc
2014-07-11 18:17:43 +04:00
Abs62 d4c68d3c49 Add help system 2014-06-23 20:03:14 +04:00
Abs62 35433d9ea6 Merge branch 'Original' into Qt4x5 2014-05-27 17:59:50 +04:00
Abs62 08dd0423d9 Add Macedonian Translation by Vladimir Gerovski 2014-05-26 19:48:18 +04:00
Abs62 8b3a7a4f43 Epwing: Fix monochrome images, use unicode symbols instead of some extra symbol images 2014-05-22 22:16:10 +04:00
Abs62 d9169bd45b Add support for Epwing dictionaries 2014-05-20 17:59:56 +04:00
Abs62 273b1b5757 Merge branch 'Original' into Qt4x5
Conflicts:
	articleview.cc
	btreeidx.cc
2014-05-05 21:31:16 +04:00
Abs62 ceb04dbd6a DICT protocol support 2014-05-02 17:36: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 9623cbdd7a Add proxy authentication dialog 2014-04-03 18:21:02 +04:00
Abs62 59ebab589c Add Persian translation by Noori 2014-03-18 22:54:53 +04:00
Abs62 4bbe1aaee5 Merge branch 'Original' into Qt4x5
Conflicts:
	scanpopup.cc
2014-03-14 17:34:33 +04:00
Abs62 4a4bfade1d Show all headwords for selected dictionary 2014-02-28 16:36: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 0c2b182647 Handle 1-bit black/white TIFF images without photometric interpretation tag
(QImage don't handle such images)
2014-02-11 18:02:00 +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 2b15f925e6 Win-specific: Adjust project file for 64-bit MinGW build 2013-09-30 16:06:30 +04:00
Abs62 c4baa470b5 Win-specific: Adjust project file for 64-bit MinGW build 2013-09-30 16:03:25 +04:00
Abs62 750cccbe15 Qt5-Win-specific: Repair animation of dictionaries initializing indicator on Vista and higher with classic appearance 2013-09-27 17:04:57 +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
Julian Depetris Chauvin 7f112ea2e9 Merge branch '1.5-dev' 2013-09-23 15:09:09 -03:00
Julian Depetris Chauvin b78a817ae1 Add Turkmen translation by Berdy 2013-09-23 07:30:57 -03:00
Abs62 5ba083e74f Merge branch 'zim-support' 2013-09-19 18:28:08 +04:00
Abs62 7916cc5a87 Some tuning for MinGW 4.8 build 2013-09-17 18:11:27 +04:00
Abs62 a56329ce24 Zim: Add liblzma.a and it headers for MacOS, turn on Zim support under MacOS by default. 2013-09-16 18:13:52 +04:00
Julian Depetris Chauvin b567dd4d37 Add Swedish translation by Lakrits 2013-09-16 10:07:20 -03:00
Abs62 68665167d5 Add ZIM format support (issue #267). Now turned on by default for Windows only. Under Linux/MacOS use "qmake "CONFIG+=zim_support"" (liblzma-dev package required. Or take xz 5.0.5 sources from http://tukaani.org/xz/ and compile it). 2013-09-14 20:17:32 +04:00
Julian Depetris Chauvin 2ebda7879a Customize info.plist to add key to use font auto-scaling in OS X. This should at least fix the blurry texts in Macs with retina display support (issue #264) 2013-08-25 21:56:32 -03:00
Tvangeste 8d29a10d7c Serbian translation by ozzii (issue #388) 2013-08-24 19:24:05 +02:00
Timon Wong e09ca5402d Merge branch 'master' into qt4x5
Conflicts:
	goldendict.pro
2013-08-19 10:54:38 +08:00
Tvangeste b254127b3a Handle MSVC++ x64 2013-08-11 18:05:10 +02:00
Tvangeste b81f008a18 Tweaked compilation flags for MSVC++ 2013-08-10 21:44:33 +02:00
Tvangeste ea24b9e858 Disable stupid MS-specific compiler CRT-related warnings 2013-08-10 20:43:37 +02:00
Tvangeste d878802948 Fixed a compilation problem on windows 2013-08-09 12:24:33 +02:00
Tvangeste dd695f93dc Re-enable the internal ffmpeg based media player for Visual C++ 2012 2013-08-08 23:07:27 +02:00
Tvangeste f03cd6f41d Adjust the goldendict.pro file to handle MSVC++ 2013-08-07 20:32:26 +02:00
Timon Wong ee0fc80001 Merge branch 'master' into qt4x5
Conflicts:
	articleview.cc
	btreeidx.cc
	goldendict.pro
	mediawiki.cc
2013-08-02 17:00:16 +08:00
Tvangeste 2a12036438 Linux: Better detection of installation prefix
1. qmake PREFIX=/usr

or

2. PREFIX=/usr qmake

or

3. export PREFIX=/usr; qmake

All should work.

Previously, the most typical #1 was not working.
2013-07-21 12:29:28 +02:00
Tvangeste 7820ef8b5a Use $PREFIX/share/goldendict for locale files per Linux conventions
There is no need to use $PREFIX/share/*apps*/goldendict.
2013-07-21 11:55:20 +02:00
Tvangeste bbce340353 Fix localization files' installation on Linux/MacOS 2013-07-21 10:46:22 +02:00
Tvangeste e4512948fc Do not install anything in $PREFIX/share/app-install (patch by Dmitry E. Oboukhov)
This is a private area of app-install application (Software Center),
and it is impolite to install files into places we don't own.

Not to mention it causes installation conflicts in Debian/Ubuntu.

See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=689205
2013-07-18 20:24:36 +02:00
Abs62 89755f8c09 Refactor work with RTL languages in word search list and history list 2013-07-06 19:31:31 +04:00
Timon Wong 91f994950d Qt 5.1 support (Windows MinGW 4.8) 2013-07-05 18:10:11 +08:00
Timon Wong f5a43e22d4 Merge branch 'master' into qt4x5
Conflicts:
	goldendict.pro
2013-06-18 11:22:07 +08:00
Timon Wong cf71499242 Add "DISABLE_INTERNAL_PLAYER" to .pro as an option to disable internal audio player (issue #356) 2013-06-18 09:12:31 +08:00
Timon Wong 6f2ab430ec Merge branch 'master' into qt4x5
Conflicts:
	article_maker.cc
	dsl.cc
	mainwindow.cc
2013-06-08 12:27:18 +08:00
Tvangeste 3c72be49a2 Switching to 1.5.0 version 2013-06-06 15:39:06 +02:00
Timon Wong 0e8fcd7c12 Win-Specific: Embed appropriate manifest.
* Fix native look & feel for print dialog, as a side effect.
2013-06-05 00:33:44 +08:00
Timon Wong 170ceb9a46 Add static libhunspell built with mingw32-dwarf 2013-05-31 18:40:27 +08:00
Timon Wong 8015841a1a Replace Q_WS_X11 -> HAVE_X11 2013-05-31 13:28:36 +08:00
Timon Wong f30c41dbf6 Remove Url::Class, add Qt4x5::Url::ensureLeadingSlash() and fix all related 2013-05-31 12:20:25 +08:00
Timon Wong ad4394d02b #212: Workaround for Qt5 changed behavior in QUrl::setPath() 2013-05-30 23:05:41 +08:00
Timon Wong 1d85f1b359 #212: Scratch, currently works under windows, for both Qt4 and Qt5 2013-05-30 21:24:21 +08:00
Timon Wong 329aa02f93 Add "Inspect" action to context menu
* The "Inspect" action will bring up web inspector from WebKit.
* Restorable inspector window geometry.
2013-05-30 10:18:28 +08:00
Abs62 7669d4f788 Dsl: Handle SVG images 2013-05-25 16:07:49 +04:00
Timon Wong 61f24d7cd6 Win-specific: Remove unused `winmm' from import libraries 2013-05-10 00:08:54 +08:00
Tvangeste a5e71de63a Mac-specific: Fix the shadow build 2013-05-07 01:22:43 +02:00
Julian Depetris Chauvin 5d0e2d7550 Mac-specific: update project file to use GD custom ffmpeg/libao libraries. Set script to executable mode. 2013-05-08 07:47:28 -03:00
Abs62 882dd57781 Mac-specific: Implement text-to-speech feature under Mac OS X 2013-05-07 17:39:35 +04:00
Tvangeste 3785663f9f Mac OS: adjust the pro file to be able to build with brew
But we still need the proper universal libraries.
2013-05-05 14:04:24 +02:00
Timon Wong c4752eb14c Add internal audio player(ffmpeg/libav + libao).
* phonon, bass, playsound are removed.
2013-05-05 18:22:12 +08:00
Abs62 0fb8eed553 Win-specific: Add volume and rate tuning for TTS, fix some errors 2013-04-26 17:41:39 +04:00