Added QTimer* script data type and some nullptr checks

This commit is contained in:
ksuprynowicz 2022-08-23 00:22:59 +02:00
parent 80e5f2430f
commit e9984c72f0
21 changed files with 43 additions and 11 deletions

View file

@ -7989,6 +7989,7 @@ void Application::addAssetToWorldFromURL(QString url) {
void Application::addAssetToWorldFromURLRequestFinished() {
auto request = qobject_cast<ResourceRequest*>(sender());
Q_ASSERT(request != nullptr);
auto url = request->getUrl().toString();
auto result = request->getResult();
@ -9357,6 +9358,7 @@ void Application::setActiveDisplayPlugin(const QString& pluginName) {
void Application::handleLocalServerConnection() const {
auto server = qobject_cast<QLocalServer*>(sender());
Q_ASSERT(server != nullptr);
qCDebug(interfaceapp) << "Got connection on local server from additional instance - waiting for parameters";
@ -9370,6 +9372,7 @@ void Application::handleLocalServerConnection() const {
void Application::readArgumentsFromLocalSocket() const {
auto socket = qobject_cast<QLocalSocket*>(sender());
Q_ASSERT(socket != nullptr);
auto message = socket->readAll();
socket->deleteLater();

View file

@ -73,6 +73,7 @@ QString LocationBookmarks::getAddress(const QString& bookmarkName) {
void LocationBookmarks::teleportToBookmark() {
QAction* action = qobject_cast<QAction*>(sender());
Q_ASSERT(action != nullptr);
QString address = action->data().toString();
DependencyManager::get<AddressManager>()->handleLookupString(address);
}

View file

@ -74,6 +74,7 @@ void CloseEventSender::handleQuitEventFinished() {
_hasFinishedQuitEvent = true;
auto reply = qobject_cast<QNetworkReply*>(sender());
Q_ASSERT(reply != nullptr);
if (reply->error() == QNetworkReply::NoError) {
qCDebug(networking) << "Quit event sent successfully";
} else {

View file

@ -604,6 +604,7 @@ void WindowScriptingInterface::closeMessageBox(int id) {
void WindowScriptingInterface::onMessageBoxSelected(int button) {
auto messageBox = qobject_cast<QQuickItem*>(sender());
Q_ASSERT(messageBox != nullptr);
auto keys = _messageBoxes.keys(messageBox);
if (keys.length() > 0) {
auto id = keys[0]; // Should be just one message box.

View file

@ -34,8 +34,7 @@ ScriptValue injectorToScriptValue(ScriptEngine* engine, ScriptAudioInjector* con
}
bool injectorFromScriptValue(const ScriptValue& object, ScriptAudioInjector*& out) {
out = qobject_cast<ScriptAudioInjector*>(object.toQObject());
return true;
return (out = qobject_cast<ScriptAudioInjector*>(object.toQObject())) != nullptr;
}
ScriptAudioInjector::ScriptAudioInjector(const AudioInjectorPointer& injector) :

View file

@ -58,6 +58,7 @@ void AutoUpdater::getLatestVersionData() {
void AutoUpdater::parseLatestVersionData() {
QNetworkReply* sender = qobject_cast<QNetworkReply*>(QObject::sender());
Q_ASSERT(sender != nullptr);
QXmlStreamReader xml(sender);

View file

@ -77,6 +77,7 @@ void JSBaker::loadScript() {
void JSBaker::handleScriptNetworkReply() {
auto requestReply = qobject_cast<QNetworkReply*>(sender());
Q_ASSERT(requestReply != nullptr);
if (requestReply->error() == QNetworkReply::NoError) {
qCDebug(js_baking) << "Downloaded script" << _jsURL;

View file

@ -177,6 +177,7 @@ void ModelBaker::saveSourceModel() {
void ModelBaker::handleModelNetworkReply() {
auto requestReply = qobject_cast<QNetworkReply*>(sender());
Q_ASSERT(requestReply != nullptr);
if (requestReply->error() == QNetworkReply::NoError) {
qCDebug(model_baking) << "Downloaded" << _modelURL;

View file

@ -114,6 +114,7 @@ void TextureBaker::loadTexture() {
void TextureBaker::handleTextureNetworkReply() {
auto requestReply = qobject_cast<QNetworkReply*>(sender());
Q_ASSERT(requestReply != nullptr);
if (requestReply->error() == QNetworkReply::NoError) {
qCDebug(model_baking) << "Downloaded texture" << _textureURL;

View file

@ -37,8 +37,7 @@ ScriptValue inputControllerToScriptValue(ScriptEngine* engine, controller::Input
}
bool inputControllerFromScriptValue(const ScriptValue& object, controller::InputController*& out) {
out = qobject_cast<controller::InputController*>(object.toQObject());
return true;
return (out = qobject_cast<controller::InputController*>(object.toQObject())) != nullptr;
}
STATIC_SCRIPT_TYPES_INITIALIZER((+[](ScriptManager* manager) {

View file

@ -27,6 +27,7 @@ STATIC_SCRIPT_INITIALIZER(+[](ScriptManager* manager) {
ModelScriptingInterface::ModelScriptingInterface(QObject* parent) : QObject(parent) {
_modelScriptEngine = qobject_cast<ScriptManager*>(parent)->engine();
Q_ASSERT(_modelScriptEngine != nullptr);
scriptRegisterSequenceMetaType<QList<MeshProxy*>>(_modelScriptEngine.get());
scriptRegisterMetaType<MeshFace, meshFaceToScriptValue, meshFaceFromScriptValue>(_modelScriptEngine.get());

View file

@ -78,8 +78,10 @@ void AssetClient::initCaching() {
<< "(size:" << MAXIMUM_CACHE_SIZE / BYTES_PER_GIGABYTES << "GB)";
} else {
auto cache = qobject_cast<QNetworkDiskCache*>(networkAccessManager.cache());
qInfo() << "ResourceManager disk cache already setup at" << cache->cacheDirectory()
<< "(size:" << cache->maximumCacheSize() / BYTES_PER_GIGABYTES << "GB)";
if (cache) {
qInfo() << "ResourceManager disk cache already setup at" << cache->cacheDirectory()
<< "(size:" << cache->maximumCacheSize() / BYTES_PER_GIGABYTES << "GB)";
}
}
}
@ -294,7 +296,6 @@ void AssetClient::cacheInfoRequest(QObject* reciever, QString slot) {
return;
}
if (auto* cache = qobject_cast<QNetworkDiskCache*>(NetworkAccessManager::getInstance().cache())) {
QMetaObject::invokeMethod(reciever, slot.toStdString().data(), Qt::QueuedConnection,
Q_ARG(QString, cache->cacheDirectory()),

View file

@ -124,6 +124,7 @@ Font::Pointer Font::load(const QString& family) {
void Font::handleFontNetworkReply() {
auto requestReply = qobject_cast<QNetworkReply*>(sender());
Q_ASSERT(requestReply != nullptr);
if (requestReply->error() == QNetworkReply::NoError) {
setLoaded(true);

View file

@ -134,6 +134,7 @@ void ScriptCache::scriptContentAvailable(int maxRetries) {
qCDebug(scriptengine) << "ScriptCache::scriptContentAvailable() on thread [" << QThread::currentThread() << "] expected thread [" << thread() << "]";
#endif
ResourceRequest* req = qobject_cast<ResourceRequest*>(sender());
Q_ASSERT(req != nullptr);
QUrl url = req->getUrl();
QString scriptContent;

View file

@ -555,6 +555,7 @@ ScriptManagerPointer ScriptEngines::getScriptEngine(const QUrl& rawScriptURL) {
void ScriptEngines::onScriptEngineLoaded(const QString& rawScriptURL) {
UserActivityLogger::getInstance().loadedScript(rawScriptURL);
ScriptManagerPointer scriptEngine = qobject_cast<ScriptManager*>(sender())->shared_from_this();
Q_ASSERT(scriptEngine != nullptr);
launchScriptEngine(scriptEngine);

View file

@ -19,6 +19,7 @@
#include <QtCore/QRect>
#include <QtCore/QUrl>
#include <QtCore/QUuid>
#include <QtCore/QTimer>
#include <AACube.h>
#include <shared/MiniPromises.h>
@ -68,6 +69,7 @@ void registerMetaTypes(ScriptEngine* engine) {
scriptRegisterMetaType<QRect, qRectToScriptValue, qRectFromScriptValue>(engine);
scriptRegisterMetaType<QUrl, qURLToScriptValue, qURLFromScriptValue>(engine);
scriptRegisterMetaType<QColor, qColorToScriptValue, qColorFromScriptValue>(engine);
scriptRegisterMetaType<QTimer*, qTimerToScriptValue, qTimerFromScriptValue>(engine, "QTimer*");
scriptRegisterMetaType<PickRay, pickRayToScriptValue, pickRayFromScriptValue>(engine);
scriptRegisterMetaType<Collision, collisionToScriptValue, collisionFromScriptValue>(engine);
@ -665,6 +667,14 @@ bool aaCubeFromScriptValue(const ScriptValue& object, AACube& aaCube) {
return true;
}
ScriptValue qTimerToScriptValue(ScriptEngine* engine, QTimer* const &in) {
return engine->newQObject(in, ScriptEngine::QtOwnership);
}
bool qTimerFromScriptValue(const ScriptValue& object, QTimer* &out) {
return (out = qobject_cast<QTimer*>(object.toQObject())) != nullptr;
}
bool qColorFromScriptValue(const ScriptValue& object, QColor& color) {
if (object.isNumber()) {
color.setRgb(object.toUInt32());
@ -834,8 +844,7 @@ ScriptValue meshToScriptValue(ScriptEngine* engine, MeshProxy* const& in) {
}
bool meshFromScriptValue(const ScriptValue& value, MeshProxy*& out) {
out = qobject_cast<MeshProxy*>(value.toQObject());
return true;
return (out = qobject_cast<MeshProxy*>(value.toQObject())) != nullptr;
}
ScriptValue meshesToScriptValue(ScriptEngine* engine, const MeshProxyList& in) {

View file

@ -174,6 +174,11 @@ class QColor;
ScriptValue qColorToScriptValue(ScriptEngine* engine, const QColor& color);
bool qColorFromScriptValue(const ScriptValue& object, QColor& color);
//QTimer
class QTimer;
ScriptValue qTimerToScriptValue(ScriptEngine* engine, QTimer* const &in);
bool qTimerFromScriptValue(const ScriptValue& object, QTimer* &out);
class QUrl;
ScriptValue qURLToScriptValue(ScriptEngine* engine, const QUrl& url);
bool qURLFromScriptValue(const ScriptValue& object, QUrl& url);

View file

@ -218,8 +218,7 @@ ScriptValue webSocketToScriptValue(ScriptEngine* engine, WebSocketClass* const &
}
bool webSocketFromScriptValue(const ScriptValue &object, WebSocketClass* &out) {
out = qobject_cast<WebSocketClass*>(object.toQObject());
return true;
return (out = qobject_cast<WebSocketClass*>(object.toQObject())) != nullptr;
}
ScriptValue wscReadyStateToScriptValue(ScriptEngine* engine, const WebSocketClass::ReadyState& readyState) {

View file

@ -321,6 +321,7 @@ void TabletScriptingInterface::processTabletEvents(QObject* object, const QKeyEv
void TabletScriptingInterface::processEvent(const QKeyEvent* event) {
Q_ASSERT(QThread::currentThread() == qApp->thread());
TabletProxy* tablet = qobject_cast<TabletProxy*>(getTablet(SYSTEM_TABLET));
Q_ASSERT(tablet != nullptr);
QObject* qmlTablet = tablet->getQmlTablet();
QObject* qmlMenu = tablet->getQmlMenu();

View file

@ -35,6 +35,7 @@ ScriptValue toolbarToScriptValue(ScriptEngine* engine, ToolbarProxy* const &in)
void toolbarFromScriptValue(const ScriptValue& value, ToolbarProxy* &out) {
out = qobject_cast<ToolbarProxy*>(value.toQObject());
Q_ASSERT(out != nullptr);
}
ScriptValue toolbarButtonToScriptValue(ScriptEngine* engine, ToolbarButtonProxy* const &in) {
@ -46,6 +47,7 @@ ScriptValue toolbarButtonToScriptValue(ScriptEngine* engine, ToolbarButtonProxy*
void toolbarButtonFromScriptValue(const ScriptValue& value, ToolbarButtonProxy* &out) {
out = qobject_cast<ToolbarButtonProxy*>(value.toQObject());
Q_ASSERT(out != nullptr);
}

View file

@ -49,6 +49,7 @@ void ModesWidget::setupUI() {
void ModesWidget::showModelBakingWidget() {
auto stackedWidget = qobject_cast<QStackedWidget*>(parentWidget());
Q_ASSERT(stackedWidget != nullptr);
// add a new widget for model baking to the stack, and switch to it
stackedWidget->setCurrentIndex(stackedWidget->addWidget(new ModelBakeWidget));
@ -56,6 +57,7 @@ void ModesWidget::showModelBakingWidget() {
void ModesWidget::showDomainBakingWidget() {
auto stackedWidget = qobject_cast<QStackedWidget*>(parentWidget());
Q_ASSERT(stackedWidget != nullptr);
// add a new widget for domain baking to the stack, and switch to it
stackedWidget->setCurrentIndex(stackedWidget->addWidget(new DomainBakeWidget));
@ -63,6 +65,7 @@ void ModesWidget::showDomainBakingWidget() {
void ModesWidget::showSkyboxBakingWidget() {
auto stackedWidget = qobject_cast<QStackedWidget*>(parentWidget());
Q_ASSERT(stackedWidget != nullptr);
// add a new widget for skybox baking to the stack, and switch to it
stackedWidget->setCurrentIndex(stackedWidget->addWidget(new SkyboxBakeWidget));