mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-30 20:15:35 +08:00
Ref T229, do not display a directory if same as default
* component: made overlay compliant * sim.dir can be empty on a machine where no simulator is installed * formatting * utility functions
This commit is contained in:
@@ -25,8 +25,14 @@ namespace BlackGui
|
||||
{
|
||||
namespace Components
|
||||
{
|
||||
const CLogCategoryList &CSettingsSimulatorBasicsComponent::getLogCategories()
|
||||
{
|
||||
static const CLogCategoryList cats({ CLogCategory::guiComponent(), CLogCategory::wizard() });
|
||||
return cats;
|
||||
}
|
||||
|
||||
CSettingsSimulatorBasicsComponent::CSettingsSimulatorBasicsComponent(QWidget *parent) :
|
||||
QFrame(parent),
|
||||
COverlayMessagesFrame(parent),
|
||||
ui(new Ui::CSettingsSimulatorBasicsComponent)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
@@ -112,6 +118,13 @@ namespace BlackGui
|
||||
const QString simulatorDir(ui->le_SimulatorDirectory->text().trimmed());
|
||||
const QStringList modelDirs(this->parseDirectories(ui->pte_ModelDirectories->toPlainText()));
|
||||
const QStringList excludeDirs(this->parseDirectories(ui->pte_ExcludeDirectories->toPlainText()));
|
||||
|
||||
if (simulatorDir.trimmed().isEmpty())
|
||||
{
|
||||
this->showOverlayMessage(CStatusMessage(this).validationError("Empty simulator directory"));
|
||||
return;
|
||||
}
|
||||
|
||||
const QStringList relativeDirs = CFileUtils::makeDirectoriesRelative(excludeDirs, this->getFileBrowserModelDirectory(), m_fileCaseSensitivity);
|
||||
s.setSimulatorDirectory(simulatorDir);
|
||||
s.setModelDirectories(modelDirs);
|
||||
@@ -187,7 +200,8 @@ namespace BlackGui
|
||||
const QString raw = rawString.trimmed();
|
||||
if (raw.isEmpty()) { return QStringList(); }
|
||||
QStringList dirs;
|
||||
const QStringList rawLines = raw.split(QRegularExpression("\n|\r\n|\r"));
|
||||
static thread_local QRegularExpression regExp("\n|\r\n|\r");
|
||||
const QStringList rawLines = raw.split(regExp);
|
||||
for (const QString &l : rawLines)
|
||||
{
|
||||
const QString normalized = CFileUtils::normalizeFilePathToQtStandard(l);
|
||||
@@ -238,10 +252,9 @@ namespace BlackGui
|
||||
|
||||
void CSettingsSimulatorBasicsComponent::displaySettings(const CSimulatorInfo &simulator)
|
||||
{
|
||||
const CSimulatorSettings s = this->getSettings(simulator);
|
||||
this->displayExcludeDirectoryPatterns(s.getModelExcludeDirectoryPatterns());
|
||||
this->displayModelDirectories(s.getModelDirectories());
|
||||
ui->le_SimulatorDirectory->setText(s.getSimulatorDirectory());
|
||||
this->displayExcludeDirectoryPatterns(m_settings.getModelExcludeDirectoryPatternsIfNotDefault(simulator));
|
||||
this->displayModelDirectories(m_settings.getModelDirectoriesIfNotDefault(simulator));
|
||||
ui->le_SimulatorDirectory->setText(m_settings.getSimulatorDirectoryIfNotDefault(simulator));
|
||||
}
|
||||
|
||||
void CSettingsSimulatorBasicsComponent::displayDefaultValuesAsPlaceholder(const CSimulatorInfo &simulator)
|
||||
|
||||
@@ -12,8 +12,11 @@
|
||||
#ifndef BLACKGUI_COMPONENTS_SETTINGSSIMULATORBASICSCOMPONENT_H
|
||||
#define BLACKGUI_COMPONENTS_SETTINGSSIMULATORBASICSCOMPONENT_H
|
||||
|
||||
#include "blackgui/overlaymessagesframe.h"
|
||||
#include "blackmisc/simulation/settings/simulatorsettings.h"
|
||||
#include "blackmisc/simulation/fscommon/fscommonutil.h"
|
||||
#include "blackmisc/logcategorylist.h"
|
||||
|
||||
#include <QFrame>
|
||||
#include <QFileDialog>
|
||||
|
||||
@@ -26,11 +29,14 @@ namespace BlackGui
|
||||
* Driver independent parts of simulator settings, ie those one are also used independent of the driver.
|
||||
* Example: model paths used in loaders
|
||||
*/
|
||||
class CSettingsSimulatorBasicsComponent : public QFrame
|
||||
class CSettingsSimulatorBasicsComponent : public COverlayMessagesFrame
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
//! Log categories
|
||||
static const BlackMisc::CLogCategoryList &getLogCategories();
|
||||
|
||||
//! Constructor
|
||||
explicit CSettingsSimulatorBasicsComponent(QWidget *parent = nullptr);
|
||||
|
||||
@@ -51,13 +57,28 @@ namespace BlackGui
|
||||
BlackMisc::Simulation::Settings::CMultiSimulatorSettings m_settings { this };
|
||||
Qt::CaseSensitivity m_fileCaseSensitivity = BlackMisc::CFileUtils::osFileNameCaseSensitivity();
|
||||
|
||||
//! Model file dialog
|
||||
void modelFileDialog();
|
||||
|
||||
//! Exclude file dialog
|
||||
void excludeFileDialog();
|
||||
|
||||
//! Simulator file dialog
|
||||
void simulatorFileDialog();
|
||||
|
||||
//! Simulator directory entered
|
||||
void simulatorDirectoryEntered();
|
||||
|
||||
//! Copy the default values
|
||||
void copyDefaults();
|
||||
|
||||
//! Adjust model directory
|
||||
void adjustModelDirectory();
|
||||
|
||||
//! Reset values
|
||||
void reset();
|
||||
|
||||
//! Simulator has been changed
|
||||
void simulatorChanged();
|
||||
|
||||
//! Optimize for small layout
|
||||
|
||||
Reference in New Issue
Block a user