summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorAndy Nichols <andy.nichols@qt.io>2018-05-02 14:53:46 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2018-05-02 13:00:14 +0000
commit3b894ecbf961dac43fd358475b9e2ea101f40f3b (patch)
tree7b5f69f008303c4f257d162f329e8d67cae44df2 /tools
parent769de8fa128549ed4f52c68d97fa136b36b29f4a (diff)
Add error and update messages to the connection info screen
Change-Id: Icfba0571d7e903425f2bc930383288fd849c1133 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'tools')
-rw-r--r--tools/q3dsviewer/q3dsmainwindow.cpp7
-rw-r--r--tools/q3dsviewer/q3dsremotedeploymentmanager.cpp30
-rw-r--r--tools/q3dsviewer/q3dsremotedeploymentmanager.h2
3 files changed, 33 insertions, 6 deletions
diff --git a/tools/q3dsviewer/q3dsmainwindow.cpp b/tools/q3dsviewer/q3dsmainwindow.cpp
index dd61b06..d458508 100644
--- a/tools/q3dsviewer/q3dsmainwindow.cpp
+++ b/tools/q3dsviewer/q3dsmainwindow.cpp
@@ -62,6 +62,8 @@ Q3DStudioMainWindow::Q3DStudioMainWindow(Q3DSWindow *view, Q3DSRemoteDeploymentM
QString fn = QFileDialog::getOpenFileName(this, tr("Open"), dir, fileFilter());
if (!fn.isEmpty())
view->engine()->setSource(fn);
+ if (remote)
+ remote->setState(Q3DSRemoteDeploymentManager::LocalProject);
};
fileMenu->addAction(tr("&Open..."), this, [=] {
view->engine()->setFlag(Q3DSEngine::EnableProfiling, true);
@@ -76,6 +78,11 @@ Q3DStudioMainWindow::Q3DStudioMainWindow(Q3DSWindow *view, Q3DSRemoteDeploymentM
remote->showConnectionSetup();
});
fileMenu->addAction(tr("&Reload"), this, [=] {
+ // Don't reload if on the ConnectionInfo screen
+ if (remote &&
+ remote->state() != Q3DSRemoteDeploymentManager::LocalProject &&
+ remote->state() != Q3DSRemoteDeploymentManager::RemoteProject)
+ return;
view->engine()->setSource(view->engine()->source());
}, QKeySequence::Refresh);
fileMenu->addAction(tr("E&xit"), this, &QWidget::close);
diff --git a/tools/q3dsviewer/q3dsremotedeploymentmanager.cpp b/tools/q3dsviewer/q3dsremotedeploymentmanager.cpp
index ddc2f38..5b47a38 100644
--- a/tools/q3dsviewer/q3dsremotedeploymentmanager.cpp
+++ b/tools/q3dsviewer/q3dsremotedeploymentmanager.cpp
@@ -73,7 +73,7 @@ void Q3DSRemoteDeploymentManager::setConnectionPort(int port)
if (m_server && m_server->isConnected()) {
m_server->disconnectRemote();
m_server->setServerPort(m_port);
- m_server->startServer();
+ m_errorMessage = m_server->startServer();
} else {
m_server->setServerPort(m_port);
}
@@ -82,7 +82,7 @@ void Q3DSRemoteDeploymentManager::setConnectionPort(int port)
void Q3DSRemoteDeploymentManager::startServer()
{
if (!m_server->isConnected())
- m_server->startServer();
+ m_errorMessage = m_server->startServer();
}
void Q3DSRemoteDeploymentManager::stopServer()
@@ -113,16 +113,25 @@ Q3DSRemoteDeploymentManager::State Q3DSRemoteDeploymentManager::state() const
void Q3DSRemoteDeploymentManager::remoteConnected()
{
setState(RemoteConnected);
+ setErrorMessage(tr("Connected!"));
}
void Q3DSRemoteDeploymentManager::remoteDisconnected()
{
setState(ConnectionInfo);
+ setErrorMessage(tr("Disconnected from Qt 3D Studio..."));
}
void Q3DSRemoteDeploymentManager::remoteProjectChanging()
{
+ // Only set this state the first time (until text bug is fixed)
+ // it would be possible to impliment a progress bar but right
+ // now we can't change text every frame in Qt3D.
+ if (m_state == RemoteLoading)
+ return;
+
setState(RemoteLoading);
+ setErrorMessage(tr("Loading Remote Project..."));
}
void Q3DSRemoteDeploymentManager::loadRemoteProject()
@@ -149,7 +158,7 @@ void Q3DSRemoteDeploymentManager::loadFile(const QString &filename)
QFileInfo fileInfo(targetFilename);
if (!fileInfo.exists()) {
setupConnectionScene();
- m_engine->setDataInputValue(c_connectionErrorDataInput(), QString(tr("Tried to load nonexistent file %1").arg(targetFilename)));
+ setErrorMessage(QString(tr("Tried to load nonexistent file %1").arg(targetFilename)));
return;
}
@@ -161,8 +170,11 @@ void Q3DSRemoteDeploymentManager::setupConnectionScene()
// start the connection information scene
m_engine->setSource(c_introPresentation());
m_engine->setDataInputValue(c_connectionTextDataInput(), generateConnectionInfo());
- m_engine->setDataInputValue(c_connectionErrorDataInput(), QStringLiteral(""));
- setState(ConnectionInfo);
+ m_engine->setDataInputValue(c_connectionErrorDataInput(), m_errorMessage);
+ if (!m_server->isConnected())
+ setState(ConnectionInfo);
+ else
+ remoteConnected();
}
QString Q3DSRemoteDeploymentManager::generateConnectionInfo()
@@ -171,7 +183,13 @@ QString Q3DSRemoteDeploymentManager::generateConnectionInfo()
"in Qt 3D Studio Editor to connect to this viewer.\n\n"
"Use File/Open... to open a local presentation.")
.arg(m_server->hostAddress().toString())
- .arg(QString::number(m_port));
+ .arg(QString::number(m_port));
+}
+
+void Q3DSRemoteDeploymentManager::setErrorMessage(const QString &errorString)
+{
+ m_errorMessage = errorString;
+ m_engine->setDataInputValue(c_connectionErrorDataInput(), errorString);
}
QT_END_NAMESPACE
diff --git a/tools/q3dsviewer/q3dsremotedeploymentmanager.h b/tools/q3dsviewer/q3dsremotedeploymentmanager.h
index d8cab65..cb89f21 100644
--- a/tools/q3dsviewer/q3dsremotedeploymentmanager.h
+++ b/tools/q3dsviewer/q3dsremotedeploymentmanager.h
@@ -75,10 +75,12 @@ Q_SIGNALS:
private:
void setupConnectionScene();
QString generateConnectionInfo();
+ void setErrorMessage(const QString &errorString);
Q3DSEngine *m_engine = nullptr;
Q3DSRemoteDeploymentServer *m_server = nullptr;
int m_port;
+ QString m_errorMessage;
State m_state = LocalProject;
};