14 using namespace swift::misc::simulation;
18 namespace swift::misc::simulation::fscommon
26 if (title.isEmpty()) {
return false; }
28 return title.compare(entries.
getTitle(), caseSensitivity) == 0;
34 QStringList titles = this->
getTitles(
true);
35 QStringList ambiguousTitles;
37 for (
const QString &title : titles)
39 if (title.isEmpty()) {
continue; }
40 if (title.compare(last, Qt::CaseInsensitive) == 0)
42 if (!ambiguousTitles.contains(title, Qt::CaseInsensitive)) { ambiguousTitles.append(title); }
46 return ambiguousTitles;
52 if (sorted) { titles.sort(Qt::CaseInsensitive); }
65 return this->
getTitles(sorted).join(separator);
70 if (title.isEmpty()) {
return false; }
73 if (
stringCompare(entries.getTitle(), title, Qt::CaseInsensitive)) {
return true; }
85 if (ignoreDuplicatesAndEmptyModelStrings)
87 const QString key = entries.getTitle().toUpper();
88 if (key.isEmpty()) {
continue; }
89 if (keys.contains(key))
92 msg.
warning(u
"Duplicate model string %1 in %2 %3")
93 << entries.getTitle() << entries.getFileDirectory() << entries.getFileName();
105 bool ignoreDuplicatesAndEmptyModelStrings,
114 Qt::CaseSensitivity caseSensitivity)
const
117 return title.compare(entries.
getTitle(), caseSensitivity) == 0;
Derived & warning(const char16_t(&format)[N])
Set the severity to warning, providing a format string.
bool containsBy(Predicate p) const
Return true if there is an element for which a given predicate returns true.
auto transform(F function) const
Return a new container generated by applying some transformation function to all elements of this one...
CSequence findBy(Predicate p) const
Return a copy containing only those elements for which a given predicate returns true.
void push_back(const T &value)
Appends an element at the end of the sequence.
Build a QSet more efficiently when calling insert() in a for loop.
void insert(const T &value)
Add an element to the set. Runs in amortized constant time.
Streamable status message, e.g.
Status messages, e.g. from Core -> GUI.
Value object encapsulating a list of aircraft models.
int setSimulatorInfo(const CSimulatorInfo &info)
Set simulator for all elements.
Simple hardcoded info about the corresponding simulator.
Set of aircraft.cfg entries representing an aircraft (FSX)
const QString & getTitle() const
Title.
Utility, providing FS aircraft.cfg entries.
bool containsModelWithTitle(const QString &title, Qt::CaseSensitivity caseSensitivity=Qt::CaseInsensitive)
Contains model with title?
QString getTitlesAsString(bool sorted, const QString &separator=", ") const
All titles as string.
QStringList getTitles(bool sorted=false) const
All titles (aka model names)
CAircraftCfgEntriesList findByTitle(const QString &title, Qt::CaseSensitivity caseSensitivity=Qt::CaseInsensitive) const
Find by title.
CAircraftCfgEntriesList()
Default constructor.
QStringList detectAmbiguousTitles() const
Ambiguous titles.
swift::misc::simulation::CAircraftModelList toAircraftModelList(bool ignoreDuplicatesAndEmptyModelStrings, CStatusMessageList &msgs) const
As aircraft models.
bool containsTitle(const QString &title) const
Can check if a title (model string) is known.
QSet< QString > getTitleSetUpperCase() const
Titles as set in upper case.
auto MemberTransform(T memberFunc)
Returns a function object that returns the value returned by one of it's argument member functions.
Free functions in swift::misc.
SWIFT_MISC_EXPORT bool stringCompare(const QString &c1, const QString &c2, Qt::CaseSensitivity cs)
String compare.
#define SWIFT_DEFINE_SEQUENCE_MIXINS(Namespace, T, List)
Explicit template definition of mixins for a CSequence subclass.