feat: url scheme event added

This commit is contained in:
Sale Djenic 2022-03-17 17:30:36 +01:00 committed by Michał
parent fd4971b91d
commit 3487862d27
5 changed files with 49 additions and 1 deletions

View File

@ -994,6 +994,7 @@ DOS_API void DOS_CALL dos_singleinstance_delete(DosSingleInstance *vptr);
DOS_API DosEvent* dos_event_create_showAppEvent(DosQQmlApplicationEngine* vptr);
DOS_API DosEvent* dos_event_create_osThemeEvent(DosQQmlApplicationEngine* vptr);
DOS_API DosEvent* dos_event_create_urlSchemeEvent();
DOS_API void dos_event_delete(DosEvent* vptr);
#pragma endregion

View File

@ -102,7 +102,7 @@ typedef void DosPixmap;
typedef void DosSingleInstance;
/// A pointer to a event object which is actualy a QObject
typedef void DosEvent;
typedef DosQObject DosEvent;
/// A pointer to a os notification object which is actualy a QObject
typedef DosQObject DosOSNotification;

View File

@ -0,0 +1,20 @@
#ifndef STATUS_URL_SCHEME_EVENT_H
#define STATUS_URL_SCHEME_EVENT_H
#include <QObject>
namespace Status
{
class UrlSchemeEvent : public QObject
{
Q_OBJECT
protected:
bool eventFilter(QObject* obj, QEvent* event) override;
signals:
void urlActivated(const QString& url);
};
}
#endif

View File

@ -67,6 +67,7 @@
#include "DOtherSide/Status/DockShowAppEvent.h"
#include "DOtherSide/Status/OSThemeEvent.h"
#include "DOtherSide/Status/UrlSchemeEvent.h"
#include "DOtherSide/Status/OSNotification.h"
#include "DOtherSide/Status/KeychainManager.h"
#include "DOtherSide/Status/SoundManager.h"
@ -1407,6 +1408,11 @@ bool dos_singleinstance_isfirst(DosSingleInstance *vptr)
return new Status::OSThemeEvent(engine);
}
::DosEvent* dos_event_create_urlSchemeEvent()
{
return new Status::UrlSchemeEvent();
}
void dos_event_delete(DosEvent* vptr)
{
auto qobject = static_cast<QObject*>(vptr);

View File

@ -0,0 +1,21 @@
#include "DOtherSide/Status/UrlSchemeEvent.h"
using namespace Status;
#include <QFileOpenEvent>
bool UrlSchemeEvent::eventFilter(QObject* obj, QEvent* event)
{
#ifdef Q_OS_MACOS
if (event->type() == QEvent::FileOpen)
{
QFileOpenEvent* fileEvent = static_cast<QFileOpenEvent*>(event);
if(fileEvent)
{
emit urlActivated(fileEvent->url().toString());
}
}
#endif
return QObject::eventFilter(obj, event);
}