MCPcopy Create free account
hub / github.com/KDAB/GammaRay / readIconData

Function readIconData

core/util.cpp:135–177  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

133typedef QHash<QLatin1String, IconCacheEntry> IconDatabase;
134
135static IconDatabase readIconData()
136{
137 auto classesIconsRepository = ObjectBroker::object<ClassesIconsRepository *>();
138 IconDatabase data;
139 int id = 0;
140
141 for (auto it = classesIconsRepository->constBegin(), end = classesIconsRepository->constEnd();
142 it != end; ++id, ++it) {
143 const QFileInfo fileInfo((*it));
144 const QDir dir(fileInfo.path());
145 const QString className = dir.dirName();
146 const QString iconName = fileInfo.fileName();
147
148 const QByteArray classNameAsByteArray = className.toLatin1();
149 const QLatin1String classNameKey(classNameAsByteArray.data(), classNameAsByteArray.size());
150
151 auto dataIt = data.find(classNameKey);
152 if (dataIt == data.end()) {
153 dataIt = data.insert(classNameKey, IconCacheEntry(classNameAsByteArray));
154 }
155
156 IconCacheEntry &perClassData = *dataIt;
157 if (iconName == QLatin1String("default.png")) {
158 perClassData.defaultIcon = id;
159 } else {
160 // special property-specific icons with file name format prop1=val;prop2=val.png
161 QString propString(iconName);
162 propString.chop(4);
163 const QStringList props = propString.split(';');
164 IconCacheEntry::PropertyMap propertyMap;
165 for (const QString &prop : std::as_const(props)) {
166 const QStringList keyValue = prop.split(QLatin1Char('='));
167 if (keyValue.size() != 2)
168 continue;
169 propertyMap << qMakePair(keyValue.at(0), keyValue.at(1));
170 }
171 Q_ASSERT(!propertyMap.isEmpty());
172 perClassData.propertyIcons << qMakePair(id, propertyMap);
173 }
174 }
175
176 return data;
177}
178
179static int iconIdForObject(const QMetaObject *mo, const QObject *obj)
180{

Callers 1

iconIdForObjectFunction · 0.85

Calls 10

IconCacheEntryClass · 0.85
pathMethod · 0.80
fileNameMethod · 0.80
endMethod · 0.80
constBeginMethod · 0.45
constEndMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45
insertMethod · 0.45
isEmptyMethod · 0.45

Tested by

no test coverage detected