summaryrefslogtreecommitdiffstats
path: root/tools/q3dsviewer/q3dsmainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/q3dsviewer/q3dsmainwindow.cpp')
-rw-r--r--tools/q3dsviewer/q3dsmainwindow.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/tools/q3dsviewer/q3dsmainwindow.cpp b/tools/q3dsviewer/q3dsmainwindow.cpp
index 837c63c..1182d8e 100644
--- a/tools/q3dsviewer/q3dsmainwindow.cpp
+++ b/tools/q3dsviewer/q3dsmainwindow.cpp
@@ -58,6 +58,13 @@ Q3DStudioMainWindow::Q3DStudioMainWindow(Q3DSWindow *view, Q3DSRemoteDeploymentM
styleFile.open(QFile::ReadOnly);
qApp->setStyleSheet(styleFile.readAll());
+ // This timer makes sure that reloads are not called more often than once per second
+ m_refreshTimer.setInterval(1000);
+ m_refreshTimer.setSingleShot(true);
+ connect(&m_refreshTimer, &QTimer::timeout, [this] {
+ m_okToReload = true;
+ });
+
static const bool enableDebugMenu = qEnvironmentVariableIntValue("Q3DS_DEBUG") >= 1;
QWidget *wrapper = QWidget::createWindowContainer(view);
@@ -98,7 +105,11 @@ Q3DStudioMainWindow::Q3DStudioMainWindow(Q3DSWindow *view, Q3DSRemoteDeploymentM
remote->state() != Q3DSRemoteDeploymentManager::LocalProject &&
remote->state() != Q3DSRemoteDeploymentManager::RemoteProject)
return;
- view->engine()->setSource(view->engine()->source());
+ if (m_okToReload) {
+ view->engine()->setSource(view->engine()->source());
+ m_refreshTimer.start();
+ m_okToReload = false;
+ }
});
fileMenu->addAction(reloadAction);
addAction(reloadAction);