diff options
author | Andy Nichols <andy.nichols@qt.io> | 2018-05-02 14:53:46 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2018-05-02 13:00:14 +0000 |
commit | 3b894ecbf961dac43fd358475b9e2ea101f40f3b (patch) | |
tree | 7b5f69f008303c4f257d162f329e8d67cae44df2 /tools | |
parent | 769de8fa128549ed4f52c68d97fa136b36b29f4a (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.cpp | 7 | ||||
-rw-r--r-- | tools/q3dsviewer/q3dsremotedeploymentmanager.cpp | 30 | ||||
-rw-r--r-- | tools/q3dsviewer/q3dsremotedeploymentmanager.h | 2 |
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; }; |