mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-08-03 20:56:49 -04:00
Introduce KiwixWebChannelObject.{h, cpp}
Pass TOC title translation. More to come later
This commit is contained in:
parent
9d42ddfdc3
commit
4e933f1f03
@ -5,7 +5,7 @@
|
|||||||
#-------------------------------------------------
|
#-------------------------------------------------
|
||||||
|
|
||||||
QT += core gui network
|
QT += core gui network
|
||||||
QT += webenginewidgets
|
QT += webenginewidgets webchannel
|
||||||
QT += printsupport
|
QT += printsupport
|
||||||
|
|
||||||
# Avoid stripping incompatible files, due to false identification as executables, on WSL
|
# Avoid stripping incompatible files, due to false identification as executables, on WSL
|
||||||
@ -85,6 +85,7 @@ SOURCES += \
|
|||||||
src/fullscreenwindow.cpp \
|
src/fullscreenwindow.cpp \
|
||||||
src/fullscreennotification.cpp \
|
src/fullscreennotification.cpp \
|
||||||
src/zimview.cpp \
|
src/zimview.cpp \
|
||||||
|
src/kiwixwebchannelobject.cpp \
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
src/choiceitem.h \
|
src/choiceitem.h \
|
||||||
@ -134,6 +135,7 @@ HEADERS += \
|
|||||||
src/menuproxystyle.h \
|
src/menuproxystyle.h \
|
||||||
src/zimview.h \
|
src/zimview.h \
|
||||||
src/portutils.h \
|
src/portutils.h \
|
||||||
|
src/kiwixwebchannelobject.h \
|
||||||
|
|
||||||
FORMS += \
|
FORMS += \
|
||||||
src/choiceitem.ui \
|
src/choiceitem.ui \
|
||||||
|
@ -63,7 +63,6 @@ function setupTOC()
|
|||||||
|
|
||||||
var tocTitle = document.createElement('p');
|
var tocTitle = document.createElement('p');
|
||||||
tocTitle.id = "kiwix-toc-title";
|
tocTitle.id = "kiwix-toc-title";
|
||||||
tocTitle.textContent = "Table of content";
|
|
||||||
|
|
||||||
var tocSideDiv = document.createElement('div');
|
var tocSideDiv = document.createElement('div');
|
||||||
tocSideDiv.id = "kiwix-toc-side";
|
tocSideDiv.id = "kiwix-toc-side";
|
||||||
@ -73,6 +72,13 @@ function setupTOC()
|
|||||||
document.body.prepend(tocSideDiv);
|
document.body.prepend(tocSideDiv);
|
||||||
}
|
}
|
||||||
|
|
||||||
document.body.style.marginLeft = "310px";
|
new QWebChannel(qt.webChannelTransport, function(channel) {
|
||||||
document.body.style.maxWidth = "calc(100vw - 310px)";
|
|
||||||
setupTOC();
|
var kiwixObj = channel.objects.kiwixChannelObj
|
||||||
|
document.body.style.marginLeft = "310px";
|
||||||
|
document.body.style.maxWidth = "calc(100vw - 310px)";
|
||||||
|
setupTOC();
|
||||||
|
|
||||||
|
document.getElementById("kiwix-toc-title").textContent = kiwixObj.tocTitle;
|
||||||
|
});
|
||||||
|
|
||||||
|
7
src/kiwixwebchannelobject.cpp
Normal file
7
src/kiwixwebchannelobject.cpp
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#include "kiwixwebchannelobject.h"
|
||||||
|
#include "kiwixapp.h"
|
||||||
|
|
||||||
|
QString KiwixWebChannelObject::getTocTitle() const
|
||||||
|
{
|
||||||
|
return gt("table-of-content");
|
||||||
|
}
|
16
src/kiwixwebchannelobject.h
Normal file
16
src/kiwixwebchannelobject.h
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#ifndef KIWIXWEBCHANNELOBJECT_H
|
||||||
|
#define KIWIXWEBCHANNELOBJECT_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
|
||||||
|
class KiwixWebChannelObject : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit KiwixWebChannelObject(QObject *parent = nullptr) : QObject(parent) {};
|
||||||
|
|
||||||
|
Q_INVOKABLE QString getTocTitle() const;
|
||||||
|
Q_PROPERTY(QString tocTitle READ getTocTitle CONSTANT);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // KIWIXWEBCHANNELOBJECT_H
|
@ -31,6 +31,8 @@ KProfile::KProfile(QObject *parent) :
|
|||||||
|
|
||||||
scripts()->insert(getScript("qrc:/js/toc.js"));
|
scripts()->insert(getScript("qrc:/js/toc.js"));
|
||||||
scripts()->insert(getScript("qrc:/js/tocCSS.js"));
|
scripts()->insert(getScript("qrc:/js/tocCSS.js"));
|
||||||
|
scripts()->insert(getScript("qrc:/qtwebchannel/qwebchannel.js",
|
||||||
|
QWebEngineScript::DocumentCreation));
|
||||||
}
|
}
|
||||||
|
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||||
|
@ -5,6 +5,10 @@
|
|||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include "kiwixapp.h"
|
#include "kiwixapp.h"
|
||||||
#include <QWebEngineProfile>
|
#include <QWebEngineProfile>
|
||||||
|
#include <QWebChannel>
|
||||||
|
#include <QWebEngineScript>
|
||||||
|
|
||||||
|
#include "kiwixwebchannelobject.h"
|
||||||
|
|
||||||
WebPage::WebPage(QObject *parent) :
|
WebPage::WebPage(QObject *parent) :
|
||||||
QWebEnginePage(KiwixApp::instance()->getProfile(), parent)
|
QWebEnginePage(KiwixApp::instance()->getProfile(), parent)
|
||||||
@ -12,6 +16,11 @@ WebPage::WebPage(QObject *parent) :
|
|||||||
action(QWebEnginePage::SavePage)->setVisible(false);
|
action(QWebEnginePage::SavePage)->setVisible(false);
|
||||||
action(QWebEnginePage::ViewSource)->setVisible(false);
|
action(QWebEnginePage::ViewSource)->setVisible(false);
|
||||||
action(QWebEnginePage::Reload)->setVisible(false);
|
action(QWebEnginePage::Reload)->setVisible(false);
|
||||||
|
|
||||||
|
QWebChannel *channel = new QWebChannel(this);
|
||||||
|
KiwixWebChannelObject *kiwixChannelObj = new KiwixWebChannelObject(this);
|
||||||
|
setWebChannel(channel, QWebEngineScript::UserWorld);
|
||||||
|
channel->registerObject("kiwixChannelObj", kiwixChannelObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WebPage::acceptNavigationRequest(const QUrl &url, QWebEnginePage::NavigationType /*type*/, bool /*isMainFrame*/)
|
bool WebPage::acceptNavigationRequest(const QUrl &url, QWebEnginePage::NavigationType /*type*/, bool /*isMainFrame*/)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user