swift
settingssimulatorbasicscomponent.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2016 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_GUI_COMPONENTS_SETTINGSSIMULATORBASICSCOMPONENT_H
7 #define SWIFT_GUI_COMPONENTS_SETTINGSSIMULATORBASICSCOMPONENT_H
8 
9 #include <QFileDialog>
10 #include <QFrame>
11 
13 #include "misc/logcategories.h"
16 
17 namespace Ui
18 {
19  class CSettingsSimulatorBasicsComponent;
20 }
21 namespace swift::gui::components
22 {
28  {
29  Q_OBJECT
30 
31  public:
33  static const QStringList &getLogCategories();
34 
36  explicit CSettingsSimulatorBasicsComponent(QWidget *parent = nullptr);
37 
39  virtual ~CSettingsSimulatorBasicsComponent() override;
40 
42  void hideSelector(bool show);
43 
45  bool hasAnyValues() const;
46 
49 
51  void save();
52 
54  bool hasUnsavedChanges() const { return m_unsavedChanges; }
55 
57  void resetUnsavedChanges() { m_unsavedChanges = false; }
58 
62  {
63  return m_settings.getSpecializedSettings(simulator);
64  }
65 
66  private:
67  bool m_unsavedChanges = false;
68  QScopedPointer<Ui::CSettingsSimulatorBasicsComponent> ui;
70  Qt::CaseSensitivity m_fileCaseSensitivity = swift::misc::CFileUtils::osFileNameCaseSensitivity();
71 
73  void modelFileDialog();
74 
76  void excludeFileDialog();
77 
79  void simulatorFileDialog();
80 
82  void simulatorDirectoryEntered();
83 
85  void copyDefaults();
86 
88  void adjustModelDirectory();
89 
91  void reset();
92 
94  void onSimulatorChanged();
95 
97  void onSimulatorSettingsChanged(const swift::misc::simulation::CSimulatorInfo &simulator);
98 
100  void setSmallLayout(bool small);
101 
103  QStringList parseModelDirectories() const;
104 
106  QStringList parseExcludeDirectories() const;
107 
109  QStringList parseDirectories(const QString &rawString) const;
110 
112  QStringList addDirectory(const QString &directory, const QStringList &existingDirs);
113 
115  QStringList removeDirectory(const QString &directory, const QStringList &existingDirs);
116 
118  QStringList removeDirectories(const QStringList &directories, const QStringList &existingDirs);
119 
121  void displayExcludeDirectoryPatterns(const QStringList &dirs);
122 
124  void displayModelDirectories(const QStringList &dirs);
125 
128  getSettings(const swift::misc::simulation::CSimulatorInfo &simulator) const;
129 
131  void displaySettings(const swift::misc::simulation::CSimulatorInfo &simulator);
132 
134  void displayDefaultValuesAsPlaceholder(const swift::misc::simulation::CSimulatorInfo &simulator);
135 
137  QString getFileBrowserModelDirectory() const;
138 
140  QString getFileBrowserSimulatorDirectory() const;
141  };
142 } // namespace swift::gui::components
143 
144 #endif // SWIFT_GUI_COMPONENTS_SETTINGSSIMULATORBASICSCOMPONENT_H
Using this class provides a QFrame with the overlay functionality already integrated.
Driver independent parts of simulator settings, ie those one are also used independent of the driver.
swift::misc::simulation::settings::CSpecializedSimulatorSettings getSimulatorSettings(const swift::misc::simulation::CSimulatorInfo &simulator) const
Settings for given simulator.
void setSimulator(const swift::misc::simulation::CSimulatorInfo &simulator)
Simulator.
static Qt::CaseSensitivity osFileNameCaseSensitivity()
Case sensitivity for current OS.
Definition: fileutils.cpp:227
Simple hardcoded info about the corresponding simulator.
Definition: simulatorinfo.h:41
CSpecializedSimulatorSettings getSpecializedSettings(const CSimulatorInfo &simulator) const
Specialized simulator settings.
Allows to have specific utility functions for each simulator.
High level reusable GUI components.
Definition: aboutdialog.cpp:13