Conversation
Lot's of useless and unrelated changes like that in this PR. Please review the diff yourself. |
this means the files has unchanged. "empty file" is a github bug. |
You have changed file permissions from 100644 to 100755 (that is, you have made these files executable). Use |
e60d25f to
e94e98a
Compare
handled. |
vedgy
left a comment
There was a problem hiding this comment.
winlibs/lib/libzstd.a added - unrelated/unneeded I suppose.
I have briefly looked through the changes. Better than before. Still, reviewing would be much easier if Qt4-support code was removed in a separate pull request.
e94e98a to
14fc06c
Compare
Now this file shows up as deleted. Must have been modified before. Please get rid of this change completely. |
14fc06c to
2c57f70
Compare
|
I am personally still daunted by the size of this pull request. In the interest of moving forward, I suggest creating a separate small pull request with your Windows iconv fix. As I understand, that fix is independent from the porting. In the commit message describe the motivating issue, what is changed and why. If that small pull request still isn't reviewed by GoldenDict maintainers, a confirmation that the fix works by another Windows user might help. A tip: refer to goldendict/goldendict issues as e.g. |
|
Ideally, you should review your own code and make sure that the proposed changes are all useful and relevant to the pull request - before asking others to review the diff. The thing is, you are in a much better position to judge the purpose of your own code changes. So this would definitely improve the review process. |
|
Is it possible to add FFMPEG-5.0 support ? |
|
@perfect7gentleman, I suggest creating a new issue. This PR is no place for even more changes. |
+100 |
90d1dff to
e7aea03
Compare
|
Finally, I would like to emphasize that pulls driven by commercial fraudsters are a shame to this project. |
I did not get your point. |
👍 You are a light of GoldenDict project. Please keep going on for the hope! |
the great difference between webkit and webengine is that ,webkit use sync javscript while webengine use async.
I also remove some useless code (which actually not about webengine ) by the way. |
|
by the way ,remove msbuild folder account for about 6000 lines removed. |
I have no opinion on the usefulness of this directory but GoldenDict maintainers may prefer to keep it. Would be a pity if this unimportant directory prevented merging this PR. Nothing prevents you from creating a simple pull request that removes it right now. |
iconv works well on Windows. Please first make sure where is the issue from? |
without iconv changes goldendict can not work with dsl and mdx,though great possibility I have used the mismatched iconv . |
|
|
great |
e7aea03 to
b4d581e
Compare
9d3a9dd to
8e6b582
Compare
QWebEnginePage::acceptNavigationRequest has been implemented in commit,it did offer an elegant way to solve this maybe after more tests, can be merge into this PR. |
|
I have started my own porting to Qt WebEngine. High-level differences compared to this PR are:
This pull request is very useful as a prototype and a rich source of ideas. I don't care much about external site support as I don't use any. I would rather not sacrifice security to support external sites. If security sacrifices are to be made for that, they should be optional. |
| url.clear(); | ||
| url.setFragment(hash); | ||
| ui.definition->page()->runJavaScript( | ||
| QString("window.location.hash = \"%1\"").arg(QString::fromUtf8(url.toEncoded()))); |
There was a problem hiding this comment.
I am not using MDict dictionaries myself. So hopefully MDict users can clarify this code and change to me:
- Doesn't this simplification break some MDict anchor jumps?
- The current code in GoldenDict master looks like a risky workaround that could break non-MDict anchor jumps if they happen to have an underscore at the index 33:
int n = anchor.indexOf( '_' );
if( n == 33 )
// MDict pattern: ("g" + dictionary ID (33 chars total))_(articleID(quint64, hex))_(original anchor)
n = anchor.indexOf( '_', n + 1 );
else
n = 0;Any idea how to make this workaround more robust and maybe simplify the code to falicitate clean porting to Qt WebEngine?
Remove `#if QT_VERSION >= 0x040600` along the way as GoldenDict does not support Qt versions older than 4.6 for several years now. The Qt WebEngine version requires Qt 5.15.2 or later. Qt 5.15.2 was released almost two years ago and is available in latest versions of most major GNU/Linux distributions. The Qt WebEngine version requires C++14 support from the compiler. This is a rather conservative requirement for the standard version released more than 7 years ago. Major compilers support C++14 for many years now. Note that Qt 5.7 requires C++11 and Qt 6.0 requires C++17. QWebEngineHistoryItem has no equivalent of QWebHistoryItem::userData() API. I have tried to store the current article and the coordinates in a container data member of ArticleView. The container had a designated position and mirrored web history. This implementation was shared with the Qt WebKit version. But it turned out that the mirroring of web history is not an easy task. The stored entries and position quickly got out of sync with QWebEngineHistory when the user requested several translations in quick succession, because not every URL, that started to load and appeared in ArticleView::handleUrlChanged(), ended up in web history. So the JavaScript History API is used in the Qt WebEngine version. Unfortunately this API does not work correctly in the Qt WebKit version, not even in the latest Qt 5.15.5 with KDE patches and QtWebKit 5.212.0 Alpha 4. Thus the two versions use different web history APIs. This commit borrows some ideas from @xiaoyifang's unmerged porting pull request goldendict#1447.
Remove `#if QT_VERSION >= 0x040600` along the way as GoldenDict does not support Qt versions older than 4.6 for several years now. The Qt WebEngine version requires Qt 5.15.2 or later. Qt 5.15.2 was released almost two years ago and is available in latest versions of most major GNU/Linux distributions. The Qt WebEngine version requires C++14 support from the compiler. This is a rather conservative requirement for the standard version released more than 7 years ago. Major compilers support C++14 for many years now. Note that Qt 5.7 requires C++11 and Qt 6.0 requires C++17. QWebEngineHistoryItem has no equivalent of QWebHistoryItem::userData() API. I have tried to store the current article and the coordinates in a container data member of ArticleView. The container had a designated position and mirrored web history. This implementation was shared with the Qt WebKit version. But it turned out that the mirroring of web history is not an easy task. The stored entries and position quickly got out of sync with QWebEngineHistory when the user requested several translations in quick succession, because not every URL, that started to load and appeared in ArticleView::handleUrlChanged(), ended up in web history. So the JavaScript History API is used in the Qt WebEngine version. Unfortunately this API does not work correctly in the Qt WebKit version, not even in the latest Qt 5.15.5 with KDE patches and QtWebKit 5.212.0 Alpha 4. Thus the two versions use different web history APIs. This commit borrows some ideas from @xiaoyifang's unmerged porting pull request goldendict#1447.
Remove `#if QT_VERSION >= 0x040600` along the way as GoldenDict does not support Qt versions older than 4.6 for several years now. The Qt WebEngine version requires Qt 5.15.2 or later. Qt 5.15.2 was released almost two years ago and is available in latest versions of most major GNU/Linux distributions. The Qt WebEngine version requires C++14 support from the compiler. This is a rather conservative requirement for the standard version released more than 7 years ago. Major compilers support C++14 for many years now. Note that Qt 5.7 requires C++11 and Qt 6.0 requires C++17. QWebEngineHistoryItem has no equivalent of QWebHistoryItem::userData() API. I have tried to store the current article and the coordinates in a container data member of ArticleView. The container had a designated position and mirrored web history. This implementation was shared with the Qt WebKit version. But it turned out that the mirroring of web history is not an easy task. The stored entries and position quickly got out of sync with QWebEngineHistory when the user requested several translations in quick succession, because not every URL, that started to load and appeared in ArticleView::handleUrlChanged(), ended up in web history. So the JavaScript History API is used in the Qt WebEngine version. Unfortunately this API does not work correctly in the Qt WebKit version, not even in the latest Qt 5.15.5 with KDE patches and QtWebKit 5.212.0 Alpha 4. Thus the two versions use different web history APIs. This commit borrows some ideas from @xiaoyifang's unmerged porting pull request goldendict#1447.
Remove `#if QT_VERSION >= 0x040600` along the way as GoldenDict does not support Qt versions older than 4.6 for several years now. The Qt WebEngine version requires Qt 5.15.2 or later. Qt 5.15.2 was released almost two years ago and is available in latest versions of most major GNU/Linux distributions. The Qt WebEngine version requires C++14 support from the compiler. This is a rather conservative requirement for the standard version released more than 7 years ago. Major compilers support C++14 for many years now. Note that Qt 5.7 requires C++11 and Qt 6.0 requires C++17. QWebEngineHistoryItem has no equivalent of QWebHistoryItem::userData() API. I have tried to store the current article and the coordinates in a container data member of ArticleView. The container had a designated position and mirrored web history. This implementation was shared with the Qt WebKit version. But it turned out that the mirroring of web history is not an easy task. The stored entries and position quickly got out of sync with QWebEngineHistory when the user requested several translations in quick succession, because not every URL, that started to load and appeared in ArticleView::handleUrlChanged(), ended up in web history. So the JavaScript History API is used in the Qt WebEngine version. Unfortunately this API does not work correctly in the Qt WebKit version, not even in the latest Qt 5.15.5 with KDE patches and QtWebKit 5.212.0 Alpha 4. Thus the two versions use different web history APIs. This commit borrows some ideas from @xiaoyifang's unmerged porting pull request goldendict#1447.
Remove `#if QT_VERSION >= 0x040600` along the way as GoldenDict does not support Qt versions older than 4.6 for several years now. The Qt WebEngine version requires Qt 5.15.2 or later. Qt 5.15.2 was released almost two years ago and is available in latest versions of most major GNU/Linux distributions. The Qt WebEngine version requires C++14 support from the compiler. This is a rather conservative requirement for the standard version released more than 7 years ago. Major compilers support C++14 for many years now. Note that Qt 5.7 requires C++11 and Qt 6.0 requires C++17. QWebEngineHistoryItem has no equivalent of QWebHistoryItem::userData() API. I have tried to store the current article and the coordinates in a container data member of ArticleView. The container had a designated position and mirrored web history. This implementation was shared with the Qt WebKit version. But it turned out that the mirroring of web history is not an easy task. The stored entries and position quickly got out of sync with QWebEngineHistory when the user requested several translations in quick succession, because not every URL, that started to load and appeared in ArticleView::handleUrlChanged(), ended up in web history. So the JavaScript History API is used in the Qt WebEngine version. Unfortunately this API does not work correctly in the Qt WebKit version, not even in the latest Qt 5.15.5 with KDE patches and QtWebKit 5.212.0 Alpha 4. Thus the two versions use different web history APIs. This commit borrows some ideas from @xiaoyifang's unmerged porting pull request goldendict#1447.
Remove `#if QT_VERSION >= 0x040600` along the way as GoldenDict does not support Qt versions older than 4.6 for several years now. The Qt WebEngine version requires Qt 5.15.2 or later. Qt 5.15.2 was released almost two years ago and is available in latest versions of most major GNU/Linux distributions. The Qt WebEngine version requires C++14 support from the compiler. This is a rather conservative requirement for the standard version released more than 7 years ago. Major compilers support C++14 for many years now. Note that Qt 5.7 requires C++11 and Qt 6.0 requires C++17. QWebEngineHistoryItem has no equivalent of QWebHistoryItem::userData() API. I have tried to store the current article and the coordinates in a container data member of ArticleView. The container had a designated position and mirrored web history. This implementation was shared with the Qt WebKit version. But it turned out that the mirroring of web history is not an easy task. The stored entries and position quickly got out of sync with QWebEngineHistory when the user requested several translations in quick succession, because not every URL, that started to load and appeared in ArticleView::handleUrlChanged(), ended up in web history. So the JavaScript History API is used in the Qt WebEngine version. Unfortunately this API does not work correctly in the Qt WebKit version, not even in the latest Qt 5.15.5 with KDE patches and QtWebKit 5.212.0 Alpha 4. Thus the two versions use different web history APIs. This commit borrows some ideas from @xiaoyifang's unmerged porting pull request goldendict#1447.
Remove `#if QT_VERSION >= 0x040600` along the way as GoldenDict does not support Qt versions older than 4.6 for several years now. The Qt WebEngine version requires Qt 5.15.2 or later. Qt 5.15.2 was released almost two years ago and is available in latest versions of most major GNU/Linux distributions. The Qt WebEngine version requires C++14 support from the compiler. This is a rather conservative requirement for the standard version released more than 7 years ago. Major compilers support C++14 for many years now. Note that Qt 5.7 requires C++11 and Qt 6.0 requires C++17. QWebEngineHistoryItem has no equivalent of QWebHistoryItem::userData() API. I have tried to store the current article and the coordinates in a container data member of ArticleView. The container had a designated position and mirrored web history. This implementation was shared with the Qt WebKit version. But it turned out that the mirroring of web history is not an easy task. The stored entries and position quickly got out of sync with QWebEngineHistory when the user requested several translations in quick succession, because not every URL, that started to load and appeared in ArticleView::handleUrlChanged(), ended up in web history. So the JavaScript History API is used in the Qt WebEngine version. Unfortunately this API does not work correctly in the Qt WebKit version, not even in the latest Qt 5.15.5 with KDE patches and QtWebKit 5.212.0 Alpha 4. Thus the two versions use different web history APIs. This commit borrows some ideas from @xiaoyifang's unmerged porting pull request goldendict#1447.
Remove `#if QT_VERSION >= 0x040600` along the way as GoldenDict does not support Qt versions older than 4.6 for several years now. The Qt WebEngine version requires Qt 5.15.2 or later. Qt 5.15.2 was released almost two years ago and is available in latest versions of most major GNU/Linux distributions. The Qt WebEngine version requires C++14 support from the compiler. This is a rather conservative requirement for the standard version released more than 7 years ago. Major compilers support C++14 for many years now. Note that Qt 5.7 requires C++11 and Qt 6.0 requires C++17. QWebEngineHistoryItem has no equivalent of QWebHistoryItem::userData() API. I have tried to store the current article and the coordinates in a container data member of ArticleView. The container had a designated position and mirrored web history. This implementation was shared with the Qt WebKit version. But it turned out that the mirroring of web history is not an easy task. The stored entries and position quickly got out of sync with QWebEngineHistory when the user requested several translations in quick succession, because not every URL, that started to load and appeared in ArticleView::handleUrlChanged(), ended up in web history. So the JavaScript History API is used in the Qt WebEngine version. Unfortunately this API does not work correctly in the Qt WebKit version, not even in the latest Qt 5.15.5 with KDE patches and QtWebKit 5.212.0 Alpha 4. Thus the two versions use different web history APIs. This commit borrows some ideas from @xiaoyifang's unmerged porting pull request goldendict#1447.
Remove `#if QT_VERSION >= 0x040600` along the way as GoldenDict does not support Qt versions older than 4.6 for several years now. The Qt WebEngine version requires Qt 5.15.2 or later. Qt 5.15.2 was released almost two years ago and is available in latest versions of most major GNU/Linux distributions. The Qt WebEngine version requires C++14 support from the compiler. This is a rather conservative requirement for the standard version released more than 7 years ago. Major compilers support C++14 for many years now. Note that Qt 5.7 requires C++11 and Qt 6.0 requires C++17. QWebEngineHistoryItem has no equivalent of QWebHistoryItem::userData() API. I have tried to store the current article and the coordinates in a container data member of ArticleView. The container had a designated position and mirrored web history. This implementation was shared with the Qt WebKit version. But it turned out that the mirroring of web history is not an easy task. The stored entries and position quickly got out of sync with QWebEngineHistory when the user requested several translations in quick succession, because not every URL, that started to load and appeared in ArticleView::handleUrlChanged(), ended up in web history. So the JavaScript History API is used in the Qt WebEngine version. Unfortunately this API does not work correctly in the Qt WebKit version, not even in the latest Qt 5.15.5 with KDE patches and QtWebKit 5.212.0 Alpha 4. Thus the two versions use different web history APIs. This commit borrows some ideas from @xiaoyifang's unmerged porting pull request goldendict#1447.
Remove `#if QT_VERSION >= 0x040600` along the way as GoldenDict does not support Qt versions older than 4.6 for several years now. The Qt WebEngine version requires Qt 5.15.2 or later. Qt 5.15.2 was released almost two years ago and is available in latest versions of most major GNU/Linux distributions. The Qt WebEngine version requires C++14 support from the compiler. This is a rather conservative requirement for the standard version released more than 7 years ago. Major compilers support C++14 for many years now. Note that Qt 5.7 requires C++11 and Qt 6.0 requires C++17. QWebEngineHistoryItem has no equivalent of QWebHistoryItem::userData() API. I have tried to store the current article and the coordinates in a container data member of ArticleView. The container had a designated position and mirrored web history. This implementation was shared with the Qt WebKit version. But it turned out that the mirroring of web history is not an easy task. The stored entries and position quickly got out of sync with QWebEngineHistory when the user requested several translations in quick succession, because not every URL, that started to load and appeared in ArticleView::handleUrlChanged(), ended up in web history. So the JavaScript History API is used in the Qt WebEngine version. Unfortunately this API does not work correctly in the Qt WebKit version, not even in the latest Qt 5.15.5 with KDE patches and QtWebKit 5.212.0 Alpha 4. Thus the two versions use different web history APIs. This commit borrows some ideas from @xiaoyifang's unmerged porting pull request goldendict#1447.
Remove `#if QT_VERSION >= 0x040600` along the way as GoldenDict does not support Qt versions older than 4.6 for several years now. The Qt WebEngine version requires Qt 5.15.2 or later. Qt 5.15.2 was released almost two years ago and is available in latest versions of most major GNU/Linux distributions. The Qt WebEngine version requires C++14 support from the compiler. This is a rather conservative requirement for the standard version released more than 7 years ago. Major compilers support C++14 for many years now. Note that Qt 5.7 requires C++11 and Qt 6.0 requires C++17. QWebEngineHistoryItem has no equivalent of QWebHistoryItem::userData() API. I have tried to store the current article and the coordinates in a container data member of ArticleView. The container had a designated position and mirrored web history. This implementation was shared with the Qt WebKit version. But it turned out that the mirroring of web history is not an easy task. The stored entries and position quickly got out of sync with QWebEngineHistory when the user requested several translations in quick succession, because not every URL, that started to load and appeared in ArticleView::handleUrlChanged(), ended up in web history. So the JavaScript History API is used in the Qt WebEngine version. Unfortunately this API does not work correctly in the Qt WebKit version, not even in the latest Qt 5.15.5 with KDE patches and QtWebKit 5.212.0 Alpha 4. Thus the two versions use different web history APIs. This commit borrows some ideas from @xiaoyifang's unmerged porting pull request goldendict#1447.
Remove `#if QT_VERSION >= 0x040600` along the way as GoldenDict does not support Qt versions older than 4.6 for several years now. The Qt WebEngine version requires Qt 5.15.2 or later. Qt 5.15.2 was released almost two years ago and is available in latest versions of most major GNU/Linux distributions. The Qt WebEngine version requires C++14 support from the compiler. This is a rather conservative requirement for the standard version released more than 7 years ago. Major compilers support C++14 for many years now. Note that Qt 5.7 requires C++11 and Qt 6.0 requires C++17. QWebEngineHistoryItem has no equivalent of QWebHistoryItem::userData() API. I have tried to store the current article and the coordinates in a container data member of ArticleView. The container had a designated position and mirrored web history. This implementation was shared with the Qt WebKit version. But it turned out that the mirroring of web history is not an easy task. The stored entries and position quickly got out of sync with QWebEngineHistory when the user requested several translations in quick succession, because not every URL, that started to load and appeared in ArticleView::handleUrlChanged(), ended up in web history. So the JavaScript History API is used in the Qt WebEngine version. Unfortunately this API does not work correctly in the Qt WebKit version, not even in the latest Qt 5.15.5 with KDE patches and QtWebKit 5.212.0 Alpha 4. Thus the two versions use different web history APIs. This commit borrows some ideas from @xiaoyifang's unmerged porting pull request goldendict#1447.
Remove `#if QT_VERSION >= 0x040600` along the way as GoldenDict does not support Qt versions older than 4.6 for several years now. The Qt WebEngine version requires Qt 5.15.2 or later. Qt 5.15.2 was released almost two years ago and is available in latest versions of most major GNU/Linux distributions. The Qt WebEngine version requires C++14 support from the compiler. This is a rather conservative requirement for the standard version released more than 7 years ago. Major compilers support C++14 for many years now. Note that Qt 5.7 requires C++11 and Qt 6.0 requires C++17. QWebEngineHistoryItem has no equivalent of QWebHistoryItem::userData() API. I have tried to store the current article and the coordinates in a container data member of ArticleView. The container had a designated position and mirrored web history. This implementation was shared with the Qt WebKit version. But it turned out that the mirroring of web history is not an easy task. The stored entries and position quickly got out of sync with QWebEngineHistory when the user requested several translations in quick succession, because not every URL, that started to load and appeared in ArticleView::handleUrlChanged(), ended up in web history. So the JavaScript History API is used in the Qt WebEngine version. Unfortunately this API does not work correctly in the Qt WebKit version, not even in the latest Qt 5.15.5 with KDE patches and QtWebKit 5.212.0 Alpha 4. Thus the two versions use different web history APIs. This commit borrows some ideas from @xiaoyifang's unmerged porting pull request goldendict#1447.
original #1400 PR ,
Drawbacks of this PR:
The result is: some online dictionaries which works in official version ,can not work in the webengine version.
I think this can be seperated into another PR to handle when a solution come up.