use qtwebchannel to communicate with userscript

This commit is contained in:
Malte Jürgens
2023-02-12 17:20:33 +01:00
parent 0b12487dfd
commit 1477a9d4c0
8 changed files with 469 additions and 400 deletions

View File

@@ -1,15 +1,7 @@
#pragma once
#include "streamdialog.h"
#include "virtmic.h"
#include "userscript.h"
#ifdef KXMLGUI
#include <KActionCollection>
#include <KHelpMenu>
#include <KShortcutsDialog>
#endif
#include <QProcess>
#include <QWebEngineFullScreenRequest>
#include <QWebEnginePage>
@@ -20,15 +12,7 @@ public:
explicit DiscordPage(QWidget *parent = nullptr);
private:
StreamDialog m_streamDialog;
QProcess m_virtmicProcess;
#ifdef KXMLGUI
KHelpMenu *m_helpMenu;
#ifdef KGLOBALACCEL
KActionCollection *m_actionCollection;
KShortcutsDialog *m_shortcutsDialog;
#endif
#endif
UserScript m_userScript;
bool acceptNavigationRequest(const QUrl &url,
QWebEnginePage::NavigationType type,
bool isMainFrame) override;
@@ -39,16 +23,10 @@ private:
const QString &sourceID) override;
void injectScriptText(QString name, QString content);
void injectScriptFile(QString name, QString source);
void stopVirtmic();
void startVirtmic(QString target);
void toggleMute();
void toggleDeafen();
private Q_SLOTS:
void featurePermissionRequested(const QUrl &securityOrigin,
QWebEnginePage::Feature feature);
void startStream(bool video, bool audio, uint width, uint height,
uint frameRate, QString target);
};
// Will immediately get destroyed again but is needed for navigation to