forked from qt-creator/qt-creator
GenericHighlighter: Add a typedef for definition meta data shared pointer
Change-Id: I56acf760db9581ce96cfec72bd699b26569254cc Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
@@ -30,6 +30,7 @@
|
|||||||
#ifndef HIGHLIGHTDEFINITIONMETADATA_H
|
#ifndef HIGHLIGHTDEFINITIONMETADATA_H
|
||||||
#define HIGHLIGHTDEFINITIONMETADATA_H
|
#define HIGHLIGHTDEFINITIONMETADATA_H
|
||||||
|
|
||||||
|
#include <QSharedPointer>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
|
|
||||||
@@ -52,6 +53,8 @@ public:
|
|||||||
QUrl url;
|
QUrl url;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef QSharedPointer<HighlightDefinitionMetaData> DefinitionMetaDataPtr;
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
} // namespace TextEditor
|
} // namespace TextEditor
|
||||||
|
|
||||||
|
@@ -77,7 +77,7 @@ void ManageDefinitionsDialog::populateDefinitionsWidget()
|
|||||||
QFileInfo fi(m_path + downloadData.fileName);
|
QFileInfo fi(m_path + downloadData.fileName);
|
||||||
QFile definitionFile(fi.absoluteFilePath());
|
QFile definitionFile(fi.absoluteFilePath());
|
||||||
if (definitionFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
if (definitionFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||||
const QSharedPointer<HighlightDefinitionMetaData> &data = Manager::parseMetadata(fi);
|
const DefinitionMetaDataPtr data = Manager::parseMetadata(fi);
|
||||||
if (!data.isNull())
|
if (!data.isNull())
|
||||||
dirVersion = data->version;
|
dirVersion = data->version;
|
||||||
}
|
}
|
||||||
|
@@ -149,7 +149,7 @@ QSharedPointer<HighlightDefinition> Manager::definition(const QString &id)
|
|||||||
return m_definitions.value(id);
|
return m_definitions.value(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
QSharedPointer<HighlightDefinitionMetaData> Manager::definitionMetaData(const QString &id) const
|
DefinitionMetaDataPtr Manager::definitionMetaData(const QString &id) const
|
||||||
{
|
{
|
||||||
return m_register.m_definitionsMetaData.value(id);
|
return m_register.m_definitionsMetaData.value(id);
|
||||||
}
|
}
|
||||||
@@ -216,21 +216,21 @@ void ManagerProcessor::process(QFutureInterface<QPair<Manager::RegisterData,
|
|||||||
QDir definitionsDir(path);
|
QDir definitionsDir(path);
|
||||||
QStringList filter(QLatin1String("*.xml"));
|
QStringList filter(QLatin1String("*.xml"));
|
||||||
definitionsDir.setNameFilters(filter);
|
definitionsDir.setNameFilters(filter);
|
||||||
QList<QSharedPointer<HighlightDefinitionMetaData> > allMetaData;
|
QList<DefinitionMetaDataPtr> allMetaData;
|
||||||
foreach (const QFileInfo &fileInfo, definitionsDir.entryInfoList()) {
|
foreach (const QFileInfo &fileInfo, definitionsDir.entryInfoList()) {
|
||||||
const QSharedPointer<HighlightDefinitionMetaData> &metaData =
|
const DefinitionMetaDataPtr &metaData =
|
||||||
Manager::parseMetadata(fileInfo);
|
Manager::parseMetadata(fileInfo);
|
||||||
if (!metaData.isNull())
|
if (!metaData.isNull())
|
||||||
allMetaData.append(metaData);
|
allMetaData.append(metaData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Consider definitions with higher priority first.
|
// Consider definitions with higher priority first.
|
||||||
Utils::sort(allMetaData, [](const QSharedPointer<HighlightDefinitionMetaData> &l,
|
Utils::sort(allMetaData, [](const DefinitionMetaDataPtr &l,
|
||||||
const QSharedPointer<HighlightDefinitionMetaData> &r) {
|
const DefinitionMetaDataPtr &r) {
|
||||||
return l->priority > r->priority;
|
return l->priority > r->priority;
|
||||||
});
|
});
|
||||||
|
|
||||||
foreach (const QSharedPointer<HighlightDefinitionMetaData> &metaData, allMetaData) {
|
foreach (const DefinitionMetaDataPtr &metaData, allMetaData) {
|
||||||
if (future.isCanceled())
|
if (future.isCanceled())
|
||||||
return;
|
return;
|
||||||
if (future.progressValue() < kMaxProgress - 1)
|
if (future.progressValue() < kMaxProgress - 1)
|
||||||
@@ -333,7 +333,7 @@ void Manager::registerMimeTypesFinished()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QSharedPointer<HighlightDefinitionMetaData> Manager::parseMetadata(const QFileInfo &fileInfo)
|
DefinitionMetaDataPtr Manager::parseMetadata(const QFileInfo &fileInfo)
|
||||||
{
|
{
|
||||||
static const QLatin1Char kSemiColon(';');
|
static const QLatin1Char kSemiColon(';');
|
||||||
static const QLatin1Char kSpace(' ');
|
static const QLatin1Char kSpace(' ');
|
||||||
@@ -343,9 +343,9 @@ QSharedPointer<HighlightDefinitionMetaData> Manager::parseMetadata(const QFileIn
|
|||||||
|
|
||||||
QFile definitionFile(fileInfo.absoluteFilePath());
|
QFile definitionFile(fileInfo.absoluteFilePath());
|
||||||
if (!definitionFile.open(QIODevice::ReadOnly | QIODevice::Text))
|
if (!definitionFile.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||||
return QSharedPointer<HighlightDefinitionMetaData>();
|
return DefinitionMetaDataPtr();
|
||||||
|
|
||||||
QSharedPointer<HighlightDefinitionMetaData> metaData(new HighlightDefinitionMetaData);
|
DefinitionMetaDataPtr metaData(new HighlightDefinitionMetaData);
|
||||||
|
|
||||||
QXmlStreamReader reader(&definitionFile);
|
QXmlStreamReader reader(&definitionFile);
|
||||||
while (!reader.atEnd() && !reader.hasError()) {
|
while (!reader.atEnd() && !reader.hasError()) {
|
||||||
|
@@ -72,13 +72,13 @@ public:
|
|||||||
|
|
||||||
bool isBuildingDefinition(const QString &id) const;
|
bool isBuildingDefinition(const QString &id) const;
|
||||||
QSharedPointer<HighlightDefinition> definition(const QString &id);
|
QSharedPointer<HighlightDefinition> definition(const QString &id);
|
||||||
QSharedPointer<HighlightDefinitionMetaData> definitionMetaData(const QString &id) const;
|
DefinitionMetaDataPtr definitionMetaData(const QString &id) const;
|
||||||
|
|
||||||
void downloadAvailableDefinitionsMetaData();
|
void downloadAvailableDefinitionsMetaData();
|
||||||
void downloadDefinitions(const QList<QUrl> &urls, const QString &savePath);
|
void downloadDefinitions(const QList<QUrl> &urls, const QString &savePath);
|
||||||
bool isDownloadingDefinitions() const;
|
bool isDownloadingDefinitions() const;
|
||||||
|
|
||||||
static QSharedPointer<HighlightDefinitionMetaData> parseMetadata(const QFileInfo &fileInfo);
|
static DefinitionMetaDataPtr parseMetadata(const QFileInfo &fileInfo);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void registerMimeTypes();
|
void registerMimeTypes();
|
||||||
@@ -108,7 +108,7 @@ private:
|
|||||||
{
|
{
|
||||||
QHash<QString, QString> m_idByName;
|
QHash<QString, QString> m_idByName;
|
||||||
QHash<QString, QString> m_idByMimeType;
|
QHash<QString, QString> m_idByMimeType;
|
||||||
QHash<QString, QSharedPointer<HighlightDefinitionMetaData> > m_definitionsMetaData;
|
QHash<QString, DefinitionMetaDataPtr> m_definitionsMetaData;
|
||||||
};
|
};
|
||||||
RegisterData m_register;
|
RegisterData m_register;
|
||||||
bool m_hasQueuedRegistration;
|
bool m_hasQueuedRegistration;
|
||||||
|
Reference in New Issue
Block a user