@@ -233,10 +233,39 @@ namespace swift::gui::components
233233 {
234234 const CSimulatorInfo simulator (ui->comp_SimulatorSelector ->getValue ());
235235 this ->displaySettings (simulator);
236- if (simulator == 64 )
236+
237+ // special handling for MSFS 2024 only visual changes
238+ if (simulator == CSimulatorInfo::msfs2024 ())
239+ {
237240 ui->gb_ModelSet ->setVisible (true );
241+ ui->lbl_ExcludeDirectories ->setText (QStringLiteral (" modelstring exclude patterns:" ));
242+ ui->lbl_ModelDirectory ->setText (QStringLiteral (" modelstring filter patterns:" ));
243+ ui->lbl_ModelDirectory ->setToolTip (
244+ QStringLiteral (" If the field is not empty, these patterns are used as a filter for the model string." ));
245+ ui->pb_AdjustModelDirectory ->setVisible (false );
246+ ui->pb_ExcludeFileDialog ->setVisible (false );
247+ ui->pb_ModelFileDialog ->setVisible (false );
248+ const QString html =
249+ " <html><head/><body><p><img src=':/diagona/icons/diagona/icons/exclamation--frame.png'/>"These "
250+ " filter settings are applied to the model string passed from the flight simulator to swift. If the "
251+ " effect is unclear, start with the default settings!".</p></body></html>" ;
252+ ui->lbl_ModelDirsInfo ->setText (html);
253+ }
238254 else
255+ {
239256 ui->gb_ModelSet ->setVisible (false );
257+ ui->lbl_ExcludeDirectories ->setText (QStringLiteral (" Exclude directory patterns:" ));
258+ ui->lbl_ModelDirectory ->setText (QStringLiteral (" Model directories:" ));
259+ ui->lbl_ModelDirectory ->setToolTip (QStringLiteral (" remove redundant directories, fix file paths .." ));
260+ ui->pb_AdjustModelDirectory ->setVisible (true );
261+ ui->pb_ExcludeFileDialog ->setVisible (true );
262+ ui->pb_ModelFileDialog ->setVisible (true );
263+ const QString html =
264+ " <html><head/><body><p><img "
265+ " src=':/diagona/icons/diagona/icons/exclamation--frame.png'/>"If you change the model "
266+ " directories, you must update your model set. See documentation. ".</p></body></html>" ;
267+ ui->lbl_ModelDirsInfo ->setText (html);
268+ }
240269
241270 this ->displayDefaultValuesAsPlaceholder (simulator);
242271 }
@@ -337,8 +366,27 @@ namespace swift::gui::components
337366
338367 void CSettingsSimulatorBasicsComponent::displaySettings (const CSimulatorInfo &simulator)
339368 {
340- this ->displayExcludeDirectoryPatterns (m_settings.getModelExcludeDirectoryPatternsIfNotDefault (simulator));
341- this ->displayModelDirectories (m_settings.getModelDirectoriesIfNotDefault (simulator));
369+ // if (simulator.isMSFS2024())
370+ // {
371+
372+ // //CSpecializedSimulatorSettings settings = this->getSimulatorSettings(simulator.isMSFS2024());
373+ // //CSimulatorSettings m_generic = settings.getGenericSettings();
374+ // //QStringList excludePatterns = m_generic.getModelExcludeDirectoryPatterns();
375+ // //QStringList filterPatterns = m_generic.getModelDirectories();
376+
377+ // //const CSimulatorSettings s = m_settings.getSettings(simulator);
378+ // //const QString es = s.getSimulatorDirectory();
379+ // ui->pte_ModelDirectories->clear();
380+ // ui->pte_ExcludeDirectories->clear();
381+
382+ // //this->displayModelDirectories(excludePatterns);
383+ // //this->displayExcludeDirectoryPatterns(filterPatterns);
384+ // }
385+ // else
386+ // {
387+ // this->displayModelDirectories(m_settings.getModelDirectoriesIfNotDefault(simulator));
388+ // this->displayExcludeDirectoryPatterns(m_settings.getModelExcludeDirectoryPatternsIfNotDefault(simulator));
389+ // }
342390
343391 // ui->le_SimulatorDirectory->setText(m_settings.getSimulatorDirectoryIfNotDefault(simulator));
344392 // based on discussion here, always display:
@@ -350,32 +398,59 @@ namespace swift::gui::components
350398 void CSettingsSimulatorBasicsComponent::displayDefaultValuesAsPlaceholder (const CSimulatorInfo &simulator)
351399 {
352400 const QString simDir = this ->getFileBrowserSimulatorDirectory ();
353- ui->le_SimulatorDirectory ->setPlaceholderText (simDir.isEmpty () ? " Simulator directory" : simDir);
401+
402+ // only real placeholder shut set as placeholder
403+ simDir.isEmpty () ? (ui->le_SimulatorDirectory ->setPlaceholderText (" Simulator directory" )) :
404+ (ui->le_SimulatorDirectory ->setText (simDir));
354405
355406 // we take the settings and update to latest sim.directory
356407 CSpecializedSimulatorSettings settings = m_settings.getSpecializedSettings (simulator);
357408 settings.setSimulatorDirectory (simDir);
358409
359410 CSimulatorSettings m_generic = settings.getGenericSettings ();
360411
412+ // this setting is only visable for msfs2024 but we set it always to keep code simple. the checkbox is hidden in
413+ // other simulators this settings are used to load/not load the modelset when starting swiftgui
361414 ui->cb_WithDbEntry ->setChecked (m_generic.getPropertyWithDbEntry ());
362415 ui->cb_DistributorFiltered ->setChecked (m_generic.getPropertyDistributorFiltered ());
363416 ui->cb_LoadNewModelset ->setChecked (m_generic.getPropertyModelSet ());
364417
365- const QStringList m = settings.getModelDirectoriesFromSimulatorDirectoryOrDefault ();
366- if (m.isEmpty ()) { ui->pte_ModelDirectories ->setPlaceholderText (" Model directories" ); }
367- else
418+ // Storeable content should be displayed as planetext so that it is actually saved.
419+ if (simulator.isMSFS2024 ())
368420 {
369- const QString ms = m.join (" \n " );
370- ui->pte_ModelDirectories ->setPlaceholderText (ms);
421+ QStringList m = m_generic.getModelDirectories ();
422+ if (m.isEmpty ()) { ui->pte_ModelDirectories ->setPlainText (" *" ); }
423+ else
424+ {
425+ const QString ms = m.join (" \n " );
426+ ui->pte_ModelDirectories ->setPlainText (ms);
427+ }
428+
429+ QStringList e = m_generic.getModelExcludeDirectoryPatterns ();
430+ if (e.isEmpty ()) { ui->pte_ExcludeDirectories ->setPlainText (" PassiveAircraft" ); }
431+ else
432+ {
433+ const QString es = e.join (" \n " );
434+ ui->pte_ExcludeDirectories ->setPlainText (es);
435+ }
371436 }
372-
373- const QStringList e = settings.getDefaultModelExcludeDirectoryPatterns ();
374- if (e.isEmpty ()) { ui->pte_ExcludeDirectories ->setPlaceholderText (" Exclude directories" ); }
375437 else
376438 {
377- const QString es = e.join (" \n " );
378- ui->pte_ExcludeDirectories ->setPlaceholderText (es);
439+ const QStringList m = settings.getModelDirectoriesFromSimulatorDirectoryOrDefault ();
440+ if (m.isEmpty ()) { ui->pte_ModelDirectories ->setPlaceholderText (" Model directories" ); }
441+ else
442+ {
443+ const QString ms = m.join (" \n " );
444+ ui->pte_ModelDirectories ->setPlainText (ms);
445+ }
446+
447+ const QStringList e = settings.getDefaultModelExcludePatterns ();
448+ if (e.isEmpty ()) { ui->pte_ExcludeDirectories ->setPlaceholderText (" Exclude directories" ); }
449+ else
450+ {
451+ const QString es = e.join (" \n " );
452+ ui->pte_ExcludeDirectories ->setPlainText (es);
453+ }
379454 }
380455 }
381456
0 commit comments