discord-awesomeaudio/src/userscript.h

89 lines
2.1 KiB
C
Raw Normal View History

#pragma once
#include "streamdialog.h"
#include <QObject>
#include <QProcess>
#ifdef KXMLGUI
#include <KAboutData>
#include <KHelpMenu>
#include <KShortcutsDialog>
#include <KXmlGuiWindow>
#include <QAction>
#ifdef KGLOBALACCEL
#include <KGlobalAccel>
#endif
#endif
2023-02-17 15:47:36 +01:00
#ifdef KNOTIFICATIONS
#include <KNotification>
#endif
#include <KJob>
class UserScript : public QObject {
Q_OBJECT
public:
UserScript();
bool isVirtmicRunning();
2023-02-15 00:33:52 +01:00
Q_PROPERTY(QString version READ version CONSTANT);
Q_PROPERTY(bool kxmlgui MEMBER m_kxmlgui CONSTANT);
Q_PROPERTY(bool kglobalaccel MEMBER m_kglobalaccel CONSTANT);
2023-02-17 15:47:36 +01:00
Q_PROPERTY(QString userstyles MEMBER m_userstyles NOTIFY userstylesChanged);
Q_PROPERTY(QString loadingMessage MEMBER m_loadingMessage NOTIFY
loadingMessageChanged);
private:
QProcess m_virtmicProcess;
2023-02-15 02:21:41 +01:00
StreamDialog *m_streamDialog;
bool m_kxmlgui = false;
bool m_kglobalaccel = false;
2023-02-17 15:47:36 +01:00
QString m_userstyles;
QString m_loadingMessage;
#ifdef KXMLGUI
KHelpMenu *m_helpMenu;
#ifdef KGLOBALACCEL
KActionCollection *m_actionCollection;
KShortcutsDialog *m_shortcutsDialog;
#endif
2023-02-17 15:47:36 +01:00
#endif
#ifdef KNOTIFICATIONS
KJob *m_loadingJob = nullptr;
#endif
void setupHelpMenu();
void setupShortcutsDialog();
void setupStreamDialog();
void setupVirtmic();
Q_SIGNALS:
void muteToggled();
void deafenToggled();
void streamStarted(bool video, int width, int height, int frameRate);
2023-02-17 15:47:36 +01:00
void userstylesChanged();
void loadingMessageChanged(QString message);
2023-02-18 15:23:14 +01:00
void shouldInstallUserStyles(QString url);
public Q_SLOTS:
void log(QString message);
QString version();
QVariant getPref(QString name, QVariant fallback);
bool getBoolPref(QString name, bool fallback);
void setPref(QString name, QVariant value);
void setTrayIcon(bool value);
void showShortcutsDialog();
void showHelpMenu();
void showStreamDialog();
void stopVirtmic();
void startVirtmic(QString target);
2023-02-18 15:23:14 +01:00
void showThemeDialog();
void installUserStyles(QString url);
private Q_SLOTS:
void startStream(bool video, bool audio, int width, int height, int frameRate,
QString target);
};