mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-01-06 11:39:49 -06:00
Add commandline argument to OpenSpaceEngine to override scene file
Make scene file selectable in Launcher, using the configurationfile value as default
This commit is contained in:
@@ -115,11 +115,16 @@ MainWindow::MainWindow()
|
||||
layout->addWidget(shortcutButton, 0, 1);
|
||||
|
||||
layout->setRowStretch(1, 10);
|
||||
|
||||
QLabel* configurationSelectionLabel = new QLabel("Configuration:");
|
||||
layout->addWidget(configurationSelectionLabel, 2, 0);
|
||||
_configurations = new QComboBox;
|
||||
layout->addWidget(_configurations, 2, 1);
|
||||
|
||||
QLabel* sceneSelectionLabel = new QLabel("Scenes:");
|
||||
layout->addWidget(sceneSelectionLabel, 2, 0);
|
||||
layout->addWidget(sceneSelectionLabel, 3, 0);
|
||||
_scenes = new QComboBox;
|
||||
layout->addWidget(_scenes, 2, 1);
|
||||
layout->addWidget(_scenes, 3, 1);
|
||||
|
||||
container->setLayout(layout);
|
||||
}
|
||||
@@ -192,27 +197,40 @@ void MainWindow::initialize() {
|
||||
std::string configurationFile = _configurationFile;
|
||||
bool found = openspace::OpenSpaceEngine::findConfiguration(configurationFile);
|
||||
if (!found) {
|
||||
LERRORC("MainWindow", "Could not find configuration file");
|
||||
}
|
||||
|
||||
_configuration = new openspace::ConfigurationManager;
|
||||
_configuration->loadFromFile(configurationFile);
|
||||
|
||||
|
||||
QString modulesDirectory = QString::fromStdString(
|
||||
absPath("${SCENE}")
|
||||
);
|
||||
// Load all available scenes
|
||||
QString modulesDirectory = QString::fromStdString(absPath("${SCENE}"));
|
||||
QDir d(modulesDirectory);
|
||||
d.setFilter(QDir::Files);
|
||||
|
||||
QFileInfoList list = d.entryInfoList();
|
||||
_scenes->addItem("Use Default");
|
||||
for (const QFileInfo& i : list) {
|
||||
_sceneFiles.insert(i.fileName(), i.absoluteFilePath());
|
||||
_scenes->addItem(i.fileName());
|
||||
QString file = i.fileName();
|
||||
file = file.replace(".scene", "");
|
||||
_sceneFiles.insert(file, i.absoluteFilePath());
|
||||
_scenes->addItem(file);
|
||||
}
|
||||
|
||||
_scenes->setCurrentText("default.scene");
|
||||
|
||||
_scenes->setCurrentText("Use Default");
|
||||
_syncWidget->setSceneFiles(_sceneFiles);
|
||||
|
||||
// Load all available configuration files
|
||||
QString configurationDirectory = QString::fromStdString(absPath("${SGCT}"));
|
||||
d = QDir(configurationDirectory);
|
||||
d.setFilter(QDir::Files);
|
||||
list = d.entryInfoList();
|
||||
_configurations->addItem("Use Default");
|
||||
for (const QFileInfo& i : list) {
|
||||
QString file = i.fileName();
|
||||
file = file.replace(".xml", "");
|
||||
_configurationFiles.insert(file, i.absoluteFilePath());
|
||||
_configurations->addItem(file);
|
||||
}
|
||||
_configurations->setCurrentText("Use Default");
|
||||
}
|
||||
|
||||
void MainWindow::shortcutButtonPressed() {
|
||||
@@ -224,7 +242,15 @@ void MainWindow::syncButtonPressed() {
|
||||
}
|
||||
|
||||
void MainWindow::startButtonPressed() {
|
||||
QProcess::startDetached(OpenSpaceExecutable);
|
||||
QString exec = OpenSpaceExecutable;
|
||||
if (_sceneFiles.contains(_scenes->currentText()))
|
||||
exec += " -scene \"" + _sceneFiles[_scenes->currentText()] + "\"";
|
||||
|
||||
if (_configurationFiles.contains(_configurations->currentText()))
|
||||
exec += " -sgct \"" + _configurationFiles[_configurations->currentText()] + "\"";
|
||||
|
||||
LINFOC("MainWindow", "Executing: " << exec.toStdString());
|
||||
QProcess::startDetached(exec);
|
||||
}
|
||||
|
||||
void MainWindow::newsNetworkError() {
|
||||
|
||||
@@ -63,9 +63,12 @@ private:
|
||||
|
||||
QTextEdit* _informationWidget;
|
||||
|
||||
QComboBox* _configurations;
|
||||
QMap<QString, QString> _configurationFiles;
|
||||
|
||||
QComboBox* _scenes;
|
||||
QMap<QString, QString> _sceneFiles;
|
||||
|
||||
|
||||
ShortcutWidget* _shortcutWidget;
|
||||
SyncWidget* _syncWidget;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user