diff --git a/vendor/DOtherSide/lib/include/DOtherSide/DOtherSide.h b/vendor/DOtherSide/lib/include/DOtherSide/DOtherSide.h index f9ad636b14..174e3e3f25 100644 --- a/vendor/DOtherSide/lib/include/DOtherSide/DOtherSide.h +++ b/vendor/DOtherSide/lib/include/DOtherSide/DOtherSide.h @@ -1021,6 +1021,20 @@ DOS_API void dos_qsettings_delete(DosQSettings* vptr); #pragma endregion +#pragma region QTimer + +DOS_API DosQTimer *dos_qtimer_create(); +DOS_API void dos_qtimer_delete(DosQTimer *vptr); +DOS_API void dos_qtimer_set_interval(DosQTimer *vptr, int interval); +DOS_API int dos_qtimer_interval(DosQTimer *vptr); +DOS_API void dos_qtimer_start(DosQTimer *vptr); +DOS_API void dos_qtimer_stop(DosQTimer *vptr); +DOS_API void dos_qtimer_set_single_shot(DosQTimer *vptr, bool singleShot); +DOS_API bool dos_qtimer_is_single_shot(DosQTimer *vptr); +DOS_API bool dos_qtimer_is_active(DosQTimer *vptr); + +#pragma endregion + #pragma region KeychainManager exposed methods DOS_API DosKeychainManager* dos_keychainmanager_create(const char* service, diff --git a/vendor/DOtherSide/lib/include/DOtherSide/DOtherSideTypes.h b/vendor/DOtherSide/lib/include/DOtherSide/DOtherSideTypes.h index 01ffdb2ae6..9a8665cc6f 100644 --- a/vendor/DOtherSide/lib/include/DOtherSide/DOtherSideTypes.h +++ b/vendor/DOtherSide/lib/include/DOtherSide/DOtherSideTypes.h @@ -92,6 +92,9 @@ typedef void DosQObject; /// A pointer to a QSettings typedef void DosQSettings; +/// A pointer to a QTimer +typedef void DosQTimer; + /// A pointer to a QQuickImageProvider typedef void DosQQuickImageProvider; diff --git a/vendor/DOtherSide/lib/src/DOtherSide.cpp b/vendor/DOtherSide/lib/src/DOtherSide.cpp index 2d81074fec..39d42068a0 100644 --- a/vendor/DOtherSide/lib/src/DOtherSide.cpp +++ b/vendor/DOtherSide/lib/src/DOtherSide.cpp @@ -51,6 +51,7 @@ #include #include #include +#include #ifdef QT_QUICKCONTROLS2_LIB #include #endif @@ -1582,6 +1583,72 @@ void dos_qsettings_delete(DosQSettings* vptr) } #pragma endregion +#pragma region QTimer + +DosQTimer *dos_qtimer_create() +{ + return new QTimer(); +} + +void dos_qtimer_delete(DosQTimer *vptr) +{ + auto qobject = static_cast(vptr); + if(qobject) + qobject->deleteLater(); +} + +void dos_qtimer_set_interval(DosQTimer *vptr, int interval) +{ + auto timer = static_cast(vptr); + if (timer) { + timer->setInterval(interval); + } +} + +int dos_qtimer_interval(DosQTimer *vptr) +{ + auto timer = static_cast(vptr); + return timer ? timer->interval() : -1; +} + +void dos_qtimer_start(DosQTimer *vptr) +{ + auto timer = static_cast(vptr); + if (timer) { + timer->start(); + } +} + +void dos_qtimer_stop(DosQTimer *vptr) +{ + auto timer = static_cast(vptr); + if (timer) { + timer->stop(); + } +} + +void dos_qtimer_set_single_shot(DosQTimer *vptr, bool singleShot) +{ + auto timer = static_cast(vptr); + if (timer) { + timer->setSingleShot(singleShot); + } +} + +bool dos_qtimer_is_single_shot(DosQTimer *vptr) +{ + auto timer = static_cast(vptr); + return timer ? timer->isSingleShot() : false; +} + +bool dos_qtimer_is_active(DosQTimer *vptr) +{ + auto timer = static_cast(vptr); + return timer ? timer->isActive() : false; +} + +#pragma endregion + #pragma region KeychainManager DosKeychainManager* dos_keychainmanager_create(const char* service, const char* authenticationReason)