forked from qt-creator/qt-creator
GenericHighlighter: Use pointers for available definitions list
Change-Id: I82e428019589674d1af234d1e47bebda3602e8f2 Reviewed-by: David Schulz <david.schulz@digia.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
d90eccd945
commit
d3c6e59ae9
@@ -187,9 +187,9 @@ void HighlighterSettingsPage::requestAvailableDefinitionsMetaData()
|
|||||||
setDownloadDefinitionsState(false);
|
setDownloadDefinitionsState(false);
|
||||||
|
|
||||||
connect(Manager::instance(),
|
connect(Manager::instance(),
|
||||||
SIGNAL(definitionsMetaDataReady(QList<Internal::HighlightDefinitionMetaData>)),
|
SIGNAL(definitionsMetaDataReady(QList<Internal::DefinitionMetaDataPtr>)),
|
||||||
this,
|
this,
|
||||||
SLOT(manageDefinitions(QList<Internal::HighlightDefinitionMetaData>)),
|
SLOT(manageDefinitions(QList<Internal::DefinitionMetaDataPtr>)),
|
||||||
Qt::UniqueConnection);
|
Qt::UniqueConnection);
|
||||||
connect(Manager::instance(), SIGNAL(errorDownloadingDefinitionsMetaData()),
|
connect(Manager::instance(), SIGNAL(errorDownloadingDefinitionsMetaData()),
|
||||||
this, SLOT(showError()), Qt::UniqueConnection);
|
this, SLOT(showError()), Qt::UniqueConnection);
|
||||||
@@ -199,14 +199,14 @@ void HighlighterSettingsPage::requestAvailableDefinitionsMetaData()
|
|||||||
void HighlighterSettingsPage::ignoreDownloadReply()
|
void HighlighterSettingsPage::ignoreDownloadReply()
|
||||||
{
|
{
|
||||||
disconnect(Manager::instance(),
|
disconnect(Manager::instance(),
|
||||||
SIGNAL(definitionsMetaDataReady(QList<Internal::HighlightDefinitionMetaData>)),
|
SIGNAL(definitionsMetaDataReady(QList<Internal::DefinitionMetaDataPtr>)),
|
||||||
this,
|
this,
|
||||||
SLOT(manageDefinitions(QList<Internal::HighlightDefinitionMetaData>)));
|
SLOT(manageDefinitions(QList<Internal::DefinitionMetaDataPtr>)));
|
||||||
disconnect(Manager::instance(), SIGNAL(errorDownloadingDefinitionsMetaData()),
|
disconnect(Manager::instance(), SIGNAL(errorDownloadingDefinitionsMetaData()),
|
||||||
this, SLOT(showError()));
|
this, SLOT(showError()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void HighlighterSettingsPage::manageDefinitions(const QList<HighlightDefinitionMetaData> &metaData)
|
void HighlighterSettingsPage::manageDefinitions(const QList<DefinitionMetaDataPtr> &metaData)
|
||||||
{
|
{
|
||||||
ManageDefinitionsDialog dialog(metaData,
|
ManageDefinitionsDialog dialog(metaData,
|
||||||
m_d->m_page->definitionFilesPath->path() + QLatin1Char('/'),
|
m_d->m_page->definitionFilesPath->path() + QLatin1Char('/'),
|
||||||
|
@@ -30,6 +30,7 @@
|
|||||||
#ifndef HIGHLIGHTERSETTINGSPAGE_H
|
#ifndef HIGHLIGHTERSETTINGSPAGE_H
|
||||||
#define HIGHLIGHTERSETTINGSPAGE_H
|
#define HIGHLIGHTERSETTINGSPAGE_H
|
||||||
|
|
||||||
|
#include "highlightdefinitionmetadata.h"
|
||||||
#include "../texteditoroptionspage.h"
|
#include "../texteditoroptionspage.h"
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
@@ -38,8 +39,6 @@ QT_END_NAMESPACE
|
|||||||
|
|
||||||
namespace TextEditor {
|
namespace TextEditor {
|
||||||
|
|
||||||
namespace Internal { class HighlightDefinitionMetaData; }
|
|
||||||
|
|
||||||
class HighlighterSettings;
|
class HighlighterSettings;
|
||||||
|
|
||||||
class HighlighterSettingsPage : public TextEditorOptionsPage
|
class HighlighterSettingsPage : public TextEditorOptionsPage
|
||||||
@@ -59,7 +58,7 @@ public:
|
|||||||
private slots:
|
private slots:
|
||||||
void resetDefinitionsLocation();
|
void resetDefinitionsLocation();
|
||||||
void requestAvailableDefinitionsMetaData();
|
void requestAvailableDefinitionsMetaData();
|
||||||
void manageDefinitions(const QList<Internal::HighlightDefinitionMetaData> &metaData);
|
void manageDefinitions(const QList<Internal::DefinitionMetaDataPtr> &metaData);
|
||||||
void showError();
|
void showError();
|
||||||
void ignoreDownloadReply();
|
void ignoreDownloadReply();
|
||||||
void setFallbackLocationState(bool checked);
|
void setFallbackLocationState(bool checked);
|
||||||
|
@@ -42,7 +42,7 @@ using namespace TextEditor;
|
|||||||
using namespace Internal;
|
using namespace Internal;
|
||||||
|
|
||||||
ManageDefinitionsDialog::ManageDefinitionsDialog(
|
ManageDefinitionsDialog::ManageDefinitionsDialog(
|
||||||
const QList<HighlightDefinitionMetaData> &metaDataList,
|
const QList<DefinitionMetaDataPtr> &metaDataList,
|
||||||
const QString &path,
|
const QString &path,
|
||||||
QWidget *parent) :
|
QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
@@ -69,7 +69,7 @@ void ManageDefinitionsDialog::populateDefinitionsWidget()
|
|||||||
const int size = m_definitionsMetaData.size();
|
const int size = m_definitionsMetaData.size();
|
||||||
ui.definitionsTable->setRowCount(size);
|
ui.definitionsTable->setRowCount(size);
|
||||||
for (int i = 0; i < size; ++i) {
|
for (int i = 0; i < size; ++i) {
|
||||||
const HighlightDefinitionMetaData &downloadData = m_definitionsMetaData.at(i);
|
const HighlightDefinitionMetaData &downloadData = *m_definitionsMetaData.at(i);
|
||||||
|
|
||||||
// Look for this definition in the current path specified by the user, not the one
|
// Look for this definition in the current path specified by the user, not the one
|
||||||
// stored in the settings. So the manager should not be queried for this information.
|
// stored in the settings. So the manager should not be queried for this information.
|
||||||
@@ -110,7 +110,7 @@ void ManageDefinitionsDialog::downloadDefinitions()
|
|||||||
|
|
||||||
QList<QUrl> urls;
|
QList<QUrl> urls;
|
||||||
foreach (const QModelIndex &index, ui.definitionsTable->selectionModel()->selectedRows())
|
foreach (const QModelIndex &index, ui.definitionsTable->selectionModel()->selectedRows())
|
||||||
urls.append(m_definitionsMetaData.at(index.row()).url);
|
urls.append(m_definitionsMetaData.at(index.row())->url);
|
||||||
Manager::instance()->downloadDefinitions(urls, m_path);
|
Manager::instance()->downloadDefinitions(urls, m_path);
|
||||||
accept();
|
accept();
|
||||||
}
|
}
|
||||||
|
@@ -43,7 +43,7 @@ class ManageDefinitionsDialog : public QDialog
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit ManageDefinitionsDialog(const QList<HighlightDefinitionMetaData> &metaDataList,
|
explicit ManageDefinitionsDialog(const QList<DefinitionMetaDataPtr> &metaDataList,
|
||||||
const QString &path,
|
const QString &path,
|
||||||
QWidget *parent = 0);
|
QWidget *parent = 0);
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ private slots:
|
|||||||
private:
|
private:
|
||||||
void populateDefinitionsWidget();
|
void populateDefinitionsWidget();
|
||||||
|
|
||||||
QList<HighlightDefinitionMetaData> m_definitionsMetaData;
|
QList<DefinitionMetaDataPtr> m_definitionsMetaData;
|
||||||
QString m_path;
|
QString m_path;
|
||||||
Ui::ManageDefinitionsDialog ui;
|
Ui::ManageDefinitionsDialog ui;
|
||||||
};
|
};
|
||||||
|
@@ -380,26 +380,26 @@ DefinitionMetaDataPtr Manager::parseMetadata(const QFileInfo &fileInfo)
|
|||||||
return metaData;
|
return metaData;
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<HighlightDefinitionMetaData> Manager::parseAvailableDefinitionsList(QIODevice *device) const
|
QList<DefinitionMetaDataPtr> Manager::parseAvailableDefinitionsList(QIODevice *device) const
|
||||||
{
|
{
|
||||||
static const QLatin1Char kSlash('/');
|
static const QLatin1Char kSlash('/');
|
||||||
static const QLatin1String kDefinition("Definition");
|
static const QLatin1String kDefinition("Definition");
|
||||||
|
|
||||||
QList<HighlightDefinitionMetaData> metaDataList;
|
QList<DefinitionMetaDataPtr> metaDataList;
|
||||||
QXmlStreamReader reader(device);
|
QXmlStreamReader reader(device);
|
||||||
while (!reader.atEnd() && !reader.hasError()) {
|
while (!reader.atEnd() && !reader.hasError()) {
|
||||||
if (reader.readNext() == QXmlStreamReader::StartElement &&
|
if (reader.readNext() == QXmlStreamReader::StartElement &&
|
||||||
reader.name() == kDefinition) {
|
reader.name() == kDefinition) {
|
||||||
const QXmlStreamAttributes &atts = reader.attributes();
|
const QXmlStreamAttributes &atts = reader.attributes();
|
||||||
|
|
||||||
HighlightDefinitionMetaData metaData;
|
DefinitionMetaDataPtr metaData(new HighlightDefinitionMetaData);
|
||||||
metaData.name = atts.value(QLatin1String(kName)).toString();
|
metaData->name = atts.value(QLatin1String(kName)).toString();
|
||||||
metaData.version = atts.value(QLatin1String(kVersion)).toString();
|
metaData->version = atts.value(QLatin1String(kVersion)).toString();
|
||||||
QString url = atts.value(QLatin1String(kUrl)).toString();
|
QString url = atts.value(QLatin1String(kUrl)).toString();
|
||||||
metaData.url = QUrl(url);
|
metaData->url = QUrl(url);
|
||||||
const int slash = url.lastIndexOf(kSlash);
|
const int slash = url.lastIndexOf(kSlash);
|
||||||
if (slash != -1)
|
if (slash != -1)
|
||||||
metaData.fileName = url.right(url.length() - slash - 1);
|
metaData->fileName = url.right(url.length() - slash - 1);
|
||||||
|
|
||||||
metaDataList.append(metaData);
|
metaDataList.append(metaData);
|
||||||
}
|
}
|
||||||
|
@@ -99,7 +99,7 @@ private:
|
|||||||
bool m_isDownloadingDefinitionsSpec;
|
bool m_isDownloadingDefinitionsSpec;
|
||||||
QList<DefinitionDownloader *> m_downloaders;
|
QList<DefinitionDownloader *> m_downloaders;
|
||||||
QFutureWatcher<void> m_downloadWatcher;
|
QFutureWatcher<void> m_downloadWatcher;
|
||||||
QList<HighlightDefinitionMetaData> parseAvailableDefinitionsList(QIODevice *device) const;
|
QList<DefinitionMetaDataPtr> parseAvailableDefinitionsList(QIODevice *device) const;
|
||||||
|
|
||||||
QSet<QString> m_isBuildingDefinition;
|
QSet<QString> m_isBuildingDefinition;
|
||||||
QHash<QString, QSharedPointer<HighlightDefinition> > m_definitions;
|
QHash<QString, QSharedPointer<HighlightDefinition> > m_definitions;
|
||||||
@@ -116,7 +116,7 @@ private:
|
|||||||
friend class ManagerProcessor;
|
friend class ManagerProcessor;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void definitionsMetaDataReady(const QList<Internal::HighlightDefinitionMetaData>&);
|
void definitionsMetaDataReady(const QList<Internal::DefinitionMetaDataPtr>&);
|
||||||
void errorDownloadingDefinitionsMetaData();
|
void errorDownloadingDefinitionsMetaData();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user