Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qqmltoolingsettings_p.h
Go to the documentation of this file.
1
// Copyright (C) 2021 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
// Qt-Security score:significant
4
5
#
ifndef
QQMLTOOLINGSETTINGS_P_H
6
#
define
QQMLTOOLINGSETTINGS_P_H
7
8
//
9
// W A R N I N G
10
// -------------
11
//
12
// This file is not part of the Qt API. It exists purely as an
13
// implementation detail. This header file may change from version to
14
// version without notice, or even be removed.
15
//
16
// We mean it.
17
//
18
19
#
include
<
QtCore
/
qstring
.
h
>
20
#
include
<
QtCore
/
qhash
.
h
>
21
#
include
<
QtCore
/
qvariant
.
h
>
22
#
include
<
QtCore
/
qmutex
.
h
>
23
#
include
<
QtCore
/
qset
.
h
>
24
#
include
<
QtCore
/
qdir
.
h
>
25
26
QT_BEGIN_NAMESPACE
27
28
class
QQmlToolingSettings
29
{
30
public
:
31
QQmlToolingSettings(
const
QString &toolName,
32
const
QStringList &recognizedIniSections = { QStringLiteral(
"General"
) },
33
const
QString &localSettingsFile = { },
34
const
QString &globalSettingsFile = { });
35
struct
SearchOptions
36
{
37
SearchOptions();
38
SearchOptions(
const
QString &settingFileName,
bool
reportFoundSettingsFiles =
false
,
39
bool
isQmllintSilent =
false
);
40
QString settingsFileName;
41
bool
reportFoundSettingsFiles =
false
;
42
bool
isQmllintSilent =
false
;
43
};
44
struct
SearchResult
45
{
46
enum
class
ResultType { Found, NotFound };
47
ResultType type = ResultType::NotFound;
48
QString iniFilePath;
49
bool
isValid()
const
{
return
type == ResultType::Found && !iniFilePath.isEmpty(); }
50
};
51
52
class
Searcher
53
{
54
public
:
55
Searcher(
const
QString &localSettingsFile,
const
QString &globalSettingsFile)
56
: m_localSettingsFile(localSettingsFile), m_globalSettingsFile(globalSettingsFile)
57
{
58
}
59
SearchResult search(
const
QString &path);
60
61
QString localSettingsFile()
const
{
return
m_localSettingsFile; }
62
63
private
:
64
SearchResult searchDefaultLocation(
const
QSet<QString> *visitedDirs);
65
SearchResult searchCurrentDirInCache(
const
QString &dirPath);
66
SearchResult searchDirectoryHierarchy(QSet<QString> *visitedDir,
const
QString &path);
67
68
const
QString m_localSettingsFile;
69
const
QString m_globalSettingsFile;
70
QHash<QString, QString> m_seenDirectories;
71
};
72
73
void
addOption(
const
QString &name,
const
QVariant &defaultValue = QVariant());
74
SearchResult search(
const
QString &path,
const
SearchOptions &options = {});
75
bool
writeDefaults()
const
;
76
77
void
setValue(
const
QString &name, QVariant value);
78
QVariant value(
const
QString &name)
const
;
79
QStringList valueAsStringList(
const
QString &name)
const
;
80
81
static
void
resolveRelativeImportPaths(
const
QString &filePath, QStringList *paths);
82
QStringList valueAsAbsolutePathList(
const
QString &name,
83
const
QString &baseForRelativePaths)
const
;
84
bool
isSet(
const
QString &name)
const
;
85
86
bool
reportConfigForFiles(
const
QStringList &files);
87
auto
asKeyValueRange()
const
{
return
m_values.asKeyValueRange(); };
88
89
QString currentSettingsPath()
const
{
return
m_currentSettingsPath; }
90
91
protected
:
92
QString m_currentSettingsPath;
93
QVariantHash m_values;
94
Searcher m_searcher;
95
QStringList m_recognizedIniSections;
// can be empty to skip ini section name check
96
97
SearchResult read(
const
QString &settingsFilePath, SearchOptions options);
98
};
99
100
class
QQmlToolingSharedSettings
:
private
QQmlToolingSettings
101
{
102
public
:
103
QQmlToolingSharedSettings
(
const
QString &toolName) : QQmlToolingSettings(toolName) { }
104
105
void
addOption
(
const
QString &name,
const
QVariant &defaultValue = QVariant())
106
{
107
QMutexLocker lock(&m_mutex);
108
QQmlToolingSettings::addOption(name, defaultValue);
109
}
110
111
bool
writeDefaults
()
const
112
{
113
QMutexLocker lock(&m_mutex);
114
return
QQmlToolingSettings::writeDefaults();
115
}
116
117
SearchResult
search
(
const
QString &path,
const
SearchOptions &options = {})
118
{
119
QMutexLocker lock(&m_mutex);
120
return
QQmlToolingSettings::search(path, options);
121
}
122
123
QVariant
value
(
const
QString &name)
const
124
{
125
QMutexLocker lock(&m_mutex);
126
return
QQmlToolingSettings::value(name);
127
}
128
129
QStringList
valueAsStringList
(
const
QString &name)
const
130
{
131
QMutexLocker lock(&m_mutex);
132
return
QQmlToolingSettings::valueAsStringList(name);
133
}
134
135
QStringList
valueAsAbsolutePathList
(
const
QString &name,
136
const
QString &baseForRelativePaths)
const
137
{
138
QMutexLocker lock(&m_mutex);
139
return
QQmlToolingSettings::valueAsAbsolutePathList(name, baseForRelativePaths);
140
}
141
142
bool
isSet
(
const
QString &name)
const
143
{
144
QMutexLocker lock(&m_mutex);
145
return
QQmlToolingSettings::isSet(name);
146
}
147
148
private
:
149
mutable
QMutex m_mutex;
150
};
151
152
QT_END_NAMESPACE
153
154
#
endif
// QQMLTOOLINGSETTINGS_P_H
QQmlToolingSharedSettings
Definition
qqmltoolingsettings_p.h:101
QQmlToolingSharedSettings::writeDefaults
bool writeDefaults() const
Definition
qqmltoolingsettings_p.h:111
QQmlToolingSharedSettings::QQmlToolingSharedSettings
QQmlToolingSharedSettings(const QString &toolName)
Definition
qqmltoolingsettings_p.h:103
QQmlToolingSharedSettings::value
QVariant value(const QString &name) const
Definition
qqmltoolingsettings_p.h:123
QQmlToolingSharedSettings::search
SearchResult search(const QString &path, const SearchOptions &options={})
Definition
qqmltoolingsettings_p.h:117
QQmlToolingSharedSettings::addOption
void addOption(const QString &name, const QVariant &defaultValue=QVariant())
Definition
qqmltoolingsettings_p.h:105
QQmlToolingSharedSettings::valueAsAbsolutePathList
QStringList valueAsAbsolutePathList(const QString &name, const QString &baseForRelativePaths) const
Definition
qqmltoolingsettings_p.h:135
QQmlToolingSharedSettings::isSet
bool isSet(const QString &name) const
Definition
qqmltoolingsettings_p.h:142
QQmlToolingSharedSettings::valueAsStringList
QStringList valueAsStringList(const QString &name) const
Definition
qqmltoolingsettings_p.h:129
findIniFile
static QString findIniFile(const QString &local, const QString &global)
Definition
qqmltoolingsettings.cpp:113
qtdeclarative
src
qmltoolingsettings
qqmltoolingsettings_p.h
Generated on
for Qt by
1.18.0