forked from qt-creator/qt-creator
Generic highlighter: Improving user interface.
- Manage definitions button is enabled only when path is valid. - Definitions displayed in the dialog are the ones from the path being managed, not the ones currently registered. - Mime types are registered whenever a download was attempted or one of the locations changed.
This commit is contained in:
@@ -66,6 +66,12 @@ void HighlightDefinitionMetaData::setVersion(const QString &version)
|
|||||||
const QString &HighlightDefinitionMetaData::version() const
|
const QString &HighlightDefinitionMetaData::version() const
|
||||||
{ return m_version; }
|
{ return m_version; }
|
||||||
|
|
||||||
|
void HighlightDefinitionMetaData::setFileName(const QString &fileName)
|
||||||
|
{ m_fileName = fileName; }
|
||||||
|
|
||||||
|
const QString &HighlightDefinitionMetaData::fileName() const
|
||||||
|
{ return m_fileName; }
|
||||||
|
|
||||||
void HighlightDefinitionMetaData::setPatterns(const QStringList &patterns)
|
void HighlightDefinitionMetaData::setPatterns(const QStringList &patterns)
|
||||||
{ m_patterns = patterns; }
|
{ m_patterns = patterns; }
|
||||||
|
|
||||||
|
@@ -55,6 +55,9 @@ public:
|
|||||||
void setVersion(const QString &version);
|
void setVersion(const QString &version);
|
||||||
const QString &version() const;
|
const QString &version() const;
|
||||||
|
|
||||||
|
void setFileName(const QString &fileName);
|
||||||
|
const QString &fileName() const;
|
||||||
|
|
||||||
void setPatterns(const QStringList &patterns);
|
void setPatterns(const QStringList &patterns);
|
||||||
const QStringList &patterns() const;
|
const QStringList &patterns() const;
|
||||||
|
|
||||||
@@ -76,6 +79,7 @@ private:
|
|||||||
QString m_id;
|
QString m_id;
|
||||||
QString m_name;
|
QString m_name;
|
||||||
QString m_version;
|
QString m_version;
|
||||||
|
QString m_fileName;
|
||||||
QStringList m_patterns;
|
QStringList m_patterns;
|
||||||
QStringList m_mimeTypes;
|
QStringList m_mimeTypes;
|
||||||
QUrl m_url;
|
QUrl m_url;
|
||||||
|
@@ -65,13 +65,11 @@ HighlighterSettingsPagePrivate(const QString &id) :
|
|||||||
|
|
||||||
HighlighterSettingsPage::HighlighterSettingsPage(const QString &id, QObject *parent) :
|
HighlighterSettingsPage::HighlighterSettingsPage(const QString &id, QObject *parent) :
|
||||||
TextEditorOptionsPage(parent),
|
TextEditorOptionsPage(parent),
|
||||||
|
m_requestMimeTypeRegistration(false),
|
||||||
m_d(new HighlighterSettingsPagePrivate(id))
|
m_d(new HighlighterSettingsPagePrivate(id))
|
||||||
{
|
{
|
||||||
if (QSettings *s = Core::ICore::instance()->settings())
|
if (QSettings *s = Core::ICore::instance()->settings())
|
||||||
m_d->m_settings.fromSettings(m_d->m_settingsPrefix, s);
|
m_d->m_settings.fromSettings(m_d->m_settingsPrefix, s);
|
||||||
|
|
||||||
connect(this, SIGNAL(definitionsLocationChanged()),
|
|
||||||
Manager::instance(), SLOT(registerMimeTypes()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HighlighterSettingsPage::~HighlighterSettingsPage()
|
HighlighterSettingsPage::~HighlighterSettingsPage()
|
||||||
@@ -111,7 +109,9 @@ QWidget *HighlighterSettingsPage::createPage(QWidget *parent)
|
|||||||
}
|
}
|
||||||
|
|
||||||
connect(m_d->m_page.useFallbackLocation, SIGNAL(clicked(bool)),
|
connect(m_d->m_page.useFallbackLocation, SIGNAL(clicked(bool)),
|
||||||
this, SLOT(useFallbackLocation(bool)));
|
this, SLOT(setFallbackLocationState(bool)));
|
||||||
|
connect(m_d->m_page.definitionFilesPath, SIGNAL(validChanged(bool)),
|
||||||
|
this, SLOT(setManageDefinitionsState(bool)));
|
||||||
connect(w, SIGNAL(destroyed()), this, SLOT(ignoreDownloadReply()));
|
connect(w, SIGNAL(destroyed()), this, SLOT(ignoreDownloadReply()));
|
||||||
|
|
||||||
return w;
|
return w;
|
||||||
@@ -121,6 +121,11 @@ void HighlighterSettingsPage::apply()
|
|||||||
{
|
{
|
||||||
if (settingsChanged())
|
if (settingsChanged())
|
||||||
settingsFromUI();
|
settingsFromUI();
|
||||||
|
|
||||||
|
if (m_requestMimeTypeRegistration) {
|
||||||
|
Manager::instance()->registerMimeTypes();
|
||||||
|
m_requestMimeTypeRegistration = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool HighlighterSettingsPage::matches(const QString &s) const
|
bool HighlighterSettingsPage::matches(const QString &s) const
|
||||||
@@ -135,12 +140,12 @@ const HighlighterSettings &HighlighterSettingsPage::highlighterSettings() const
|
|||||||
|
|
||||||
void HighlighterSettingsPage::settingsFromUI()
|
void HighlighterSettingsPage::settingsFromUI()
|
||||||
{
|
{
|
||||||
bool locationChanged = false;
|
if (!m_requestMimeTypeRegistration && (
|
||||||
if (m_d->m_settings.definitionFilesPath() != m_d->m_page.definitionFilesPath->path() ||
|
m_d->m_settings.definitionFilesPath() != m_d->m_page.definitionFilesPath->path() ||
|
||||||
m_d->m_settings.fallbackDefinitionFilesPath() !=
|
m_d->m_settings.fallbackDefinitionFilesPath() !=
|
||||||
m_d->m_page.fallbackDefinitionFilesPath->path() ||
|
m_d->m_page.fallbackDefinitionFilesPath->path() ||
|
||||||
m_d->m_settings.useFallbackLocation() != m_d->m_page.useFallbackLocation->isChecked()) {
|
m_d->m_settings.useFallbackLocation() != m_d->m_page.useFallbackLocation->isChecked())) {
|
||||||
locationChanged = true;
|
m_requestMimeTypeRegistration = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_d->m_settings.setDefinitionFilesPath(m_d->m_page.definitionFilesPath->path());
|
m_d->m_settings.setDefinitionFilesPath(m_d->m_page.definitionFilesPath->path());
|
||||||
@@ -150,9 +155,6 @@ void HighlighterSettingsPage::settingsFromUI()
|
|||||||
m_d->m_settings.setIgnoredFilesPatterns(m_d->m_page.ignoreEdit->text());
|
m_d->m_settings.setIgnoredFilesPatterns(m_d->m_page.ignoreEdit->text());
|
||||||
if (QSettings *s = Core::ICore::instance()->settings())
|
if (QSettings *s = Core::ICore::instance()->settings())
|
||||||
m_d->m_settings.toSettings(m_d->m_settingsPrefix, s);
|
m_d->m_settings.toSettings(m_d->m_settingsPrefix, s);
|
||||||
|
|
||||||
if (locationChanged)
|
|
||||||
emit definitionsLocationChanged();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HighlighterSettingsPage::settingsToUI()
|
void HighlighterSettingsPage::settingsToUI()
|
||||||
@@ -163,7 +165,8 @@ void HighlighterSettingsPage::settingsToUI()
|
|||||||
m_d->m_page.useFallbackLocation->setChecked(m_d->m_settings.useFallbackLocation());
|
m_d->m_page.useFallbackLocation->setChecked(m_d->m_settings.useFallbackLocation());
|
||||||
m_d->m_page.ignoreEdit->setText(m_d->m_settings.ignoredFilesPatterns());
|
m_d->m_page.ignoreEdit->setText(m_d->m_settings.ignoredFilesPatterns());
|
||||||
|
|
||||||
useFallbackLocation(m_d->m_settings.useFallbackLocation());
|
setFallbackLocationState(m_d->m_page.useFallbackLocation->isChecked());
|
||||||
|
setManageDefinitionsState(m_d->m_page.definitionFilesPath->isValid());
|
||||||
}
|
}
|
||||||
|
|
||||||
void HighlighterSettingsPage::resetDefinitionsLocation()
|
void HighlighterSettingsPage::resetDefinitionsLocation()
|
||||||
@@ -178,9 +181,8 @@ void HighlighterSettingsPage::resetDefinitionsLocation()
|
|||||||
|
|
||||||
void HighlighterSettingsPage::requestAvailableDefinitionsMetaData()
|
void HighlighterSettingsPage::requestAvailableDefinitionsMetaData()
|
||||||
{
|
{
|
||||||
m_d->m_page.definitionFilesPath->buttonAtIndex(1)->setEnabled(false);
|
setManageDefinitionsState(false);
|
||||||
|
|
||||||
Manager::instance()->downloadAvailableDefinitionsMetaData();
|
|
||||||
connect(Manager::instance(),
|
connect(Manager::instance(),
|
||||||
SIGNAL(definitionsMetaDataReady(QList<Internal::HighlightDefinitionMetaData>)),
|
SIGNAL(definitionsMetaDataReady(QList<Internal::HighlightDefinitionMetaData>)),
|
||||||
this,
|
this,
|
||||||
@@ -188,6 +190,7 @@ void HighlighterSettingsPage::requestAvailableDefinitionsMetaData()
|
|||||||
Qt::UniqueConnection);
|
Qt::UniqueConnection);
|
||||||
connect(Manager::instance(), SIGNAL(errorDownloadingDefinitionsMetaData()),
|
connect(Manager::instance(), SIGNAL(errorDownloadingDefinitionsMetaData()),
|
||||||
this, SLOT(showError()), Qt::UniqueConnection);
|
this, SLOT(showError()), Qt::UniqueConnection);
|
||||||
|
Manager::instance()->downloadAvailableDefinitionsMetaData();
|
||||||
}
|
}
|
||||||
|
|
||||||
void HighlighterSettingsPage::ignoreDownloadReply()
|
void HighlighterSettingsPage::ignoreDownloadReply()
|
||||||
@@ -203,9 +206,11 @@ void HighlighterSettingsPage::ignoreDownloadReply()
|
|||||||
void HighlighterSettingsPage::manageDefinitions(const QList<HighlightDefinitionMetaData> &metaData)
|
void HighlighterSettingsPage::manageDefinitions(const QList<HighlightDefinitionMetaData> &metaData)
|
||||||
{
|
{
|
||||||
ManageDefinitionsDialog dialog(metaData,
|
ManageDefinitionsDialog dialog(metaData,
|
||||||
|
m_d->m_page.definitionFilesPath->path() + QLatin1Char('/'),
|
||||||
m_d->m_page.definitionFilesPath->buttonAtIndex(1)->window());
|
m_d->m_page.definitionFilesPath->buttonAtIndex(1)->window());
|
||||||
dialog.exec();
|
if (dialog.exec() && !m_requestMimeTypeRegistration)
|
||||||
m_d->m_page.definitionFilesPath->buttonAtIndex(1)->setEnabled(true);
|
m_requestMimeTypeRegistration = true;
|
||||||
|
setManageDefinitionsState(m_d->m_page.definitionFilesPath->isValid());
|
||||||
}
|
}
|
||||||
|
|
||||||
void HighlighterSettingsPage::showError()
|
void HighlighterSettingsPage::showError()
|
||||||
@@ -213,14 +218,19 @@ void HighlighterSettingsPage::showError()
|
|||||||
QMessageBox::critical(m_d->m_page.definitionFilesPath->buttonAtIndex(1)->window(),
|
QMessageBox::critical(m_d->m_page.definitionFilesPath->buttonAtIndex(1)->window(),
|
||||||
tr("Error connecting to server."),
|
tr("Error connecting to server."),
|
||||||
tr("Not possible to retrieve data."));
|
tr("Not possible to retrieve data."));
|
||||||
m_d->m_page.definitionFilesPath->buttonAtIndex(1)->setEnabled(true);
|
setManageDefinitionsState(m_d->m_page.definitionFilesPath->isValid());
|
||||||
}
|
}
|
||||||
|
|
||||||
void HighlighterSettingsPage::useFallbackLocation(bool checked)
|
void HighlighterSettingsPage::setFallbackLocationState(bool checked)
|
||||||
{
|
{
|
||||||
m_d->m_page.fallbackDefinitionFilesPath->setEnabled(checked);
|
m_d->m_page.fallbackDefinitionFilesPath->setEnabled(checked);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HighlighterSettingsPage::setManageDefinitionsState(bool valid)
|
||||||
|
{
|
||||||
|
m_d->m_page.definitionFilesPath->buttonAtIndex(1)->setEnabled(valid);
|
||||||
|
}
|
||||||
|
|
||||||
bool HighlighterSettingsPage::settingsChanged() const
|
bool HighlighterSettingsPage::settingsChanged() const
|
||||||
{
|
{
|
||||||
if (m_d->m_settings.definitionFilesPath() != m_d->m_page.definitionFilesPath->path())
|
if (m_d->m_settings.definitionFilesPath() != m_d->m_page.definitionFilesPath->path())
|
||||||
|
@@ -61,16 +61,14 @@ public:
|
|||||||
|
|
||||||
const HighlighterSettings &highlighterSettings() const;
|
const HighlighterSettings &highlighterSettings() const;
|
||||||
|
|
||||||
signals:
|
|
||||||
void definitionsLocationChanged();
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void resetDefinitionsLocation();
|
void resetDefinitionsLocation();
|
||||||
void requestAvailableDefinitionsMetaData();
|
void requestAvailableDefinitionsMetaData();
|
||||||
void manageDefinitions(const QList<Internal::HighlightDefinitionMetaData> &metaData);
|
void manageDefinitions(const QList<Internal::HighlightDefinitionMetaData> &metaData);
|
||||||
void showError();
|
void showError();
|
||||||
void ignoreDownloadReply();
|
void ignoreDownloadReply();
|
||||||
void useFallbackLocation(bool checked);
|
void setFallbackLocationState(bool checked);
|
||||||
|
void setManageDefinitionsState(bool valid);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void settingsFromUI();
|
void settingsFromUI();
|
||||||
@@ -78,6 +76,8 @@ private:
|
|||||||
|
|
||||||
bool settingsChanged() const;
|
bool settingsChanged() const;
|
||||||
|
|
||||||
|
bool m_requestMimeTypeRegistration;
|
||||||
|
|
||||||
struct HighlighterSettingsPagePrivate;
|
struct HighlighterSettingsPagePrivate;
|
||||||
HighlighterSettingsPagePrivate *m_d;
|
HighlighterSettingsPagePrivate *m_d;
|
||||||
};
|
};
|
||||||
|
@@ -38,6 +38,8 @@
|
|||||||
#include <QtCore/QFuture>
|
#include <QtCore/QFuture>
|
||||||
#include <QtCore/QFutureWatcher>
|
#include <QtCore/QFutureWatcher>
|
||||||
#include <QtCore/QtConcurrentMap>
|
#include <QtCore/QtConcurrentMap>
|
||||||
|
#include <QtCore/QFile>
|
||||||
|
#include <QtCore/QFileInfo>
|
||||||
#include <QtGui/QMessageBox>
|
#include <QtGui/QMessageBox>
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
@@ -46,8 +48,12 @@ using namespace TextEditor;
|
|||||||
using namespace Internal;
|
using namespace Internal;
|
||||||
|
|
||||||
ManageDefinitionsDialog::ManageDefinitionsDialog(
|
ManageDefinitionsDialog::ManageDefinitionsDialog(
|
||||||
const QList<HighlightDefinitionMetaData> &metaDataList, QWidget *parent) :
|
const QList<HighlightDefinitionMetaData> &metaDataList,
|
||||||
QDialog(parent), m_definitionsMetaData(metaDataList)
|
const QString &path,
|
||||||
|
QWidget *parent) :
|
||||||
|
QDialog(parent),
|
||||||
|
m_definitionsMetaData(metaDataList),
|
||||||
|
m_path(path)
|
||||||
{
|
{
|
||||||
ui.setupUi(this);
|
ui.setupUi(this);
|
||||||
ui.definitionsTable->setHorizontalHeaderLabels(
|
ui.definitionsTable->setHorizontalHeaderLabels(
|
||||||
@@ -68,19 +74,23 @@ void ManageDefinitionsDialog::populateDefinitionsWidget()
|
|||||||
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);
|
||||||
|
|
||||||
QString installedVersion;
|
// Look for this definition in the current path specified by the user, not the one
|
||||||
const QString &id = Manager::instance()->definitionIdByName(downloadData.name());
|
// stored in the settings. So the manager should not be queried for this information.
|
||||||
const QSharedPointer<HighlightDefinitionMetaData> &metaData =
|
QString dirVersion;
|
||||||
Manager::instance()->definitionMetaData(id);
|
QFileInfo fi(m_path + downloadData.fileName());
|
||||||
if (!metaData.isNull())
|
QFile definitionFile(fi.absoluteFilePath());
|
||||||
installedVersion = metaData->version();
|
if (definitionFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||||
|
const QSharedPointer<HighlightDefinitionMetaData> &data = Manager::parseMetadata(fi);
|
||||||
|
if (!data.isNull())
|
||||||
|
dirVersion = data->version();
|
||||||
|
}
|
||||||
|
|
||||||
for (int j = 0; j < 3; ++j) {
|
for (int j = 0; j < 3; ++j) {
|
||||||
QTableWidgetItem *item = new QTableWidgetItem;
|
QTableWidgetItem *item = new QTableWidgetItem;
|
||||||
if (j == 0)
|
if (j == 0)
|
||||||
item->setText(downloadData.name());
|
item->setText(downloadData.name());
|
||||||
else if (j == 1) {
|
else if (j == 1) {
|
||||||
item->setText(installedVersion);
|
item->setText(dirVersion);
|
||||||
item->setTextAlignment(Qt::AlignCenter);
|
item->setTextAlignment(Qt::AlignCenter);
|
||||||
} else if (j == 2) {
|
} else if (j == 2) {
|
||||||
item->setText(downloadData.version());
|
item->setText(downloadData.version());
|
||||||
@@ -104,8 +114,8 @@ 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);
|
Manager::instance()->downloadDefinitions(urls, m_path);
|
||||||
close();
|
accept();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ManageDefinitionsDialog::changeEvent(QEvent *e)
|
void ManageDefinitionsDialog::changeEvent(QEvent *e)
|
||||||
|
@@ -43,6 +43,7 @@ class ManageDefinitionsDialog : public QDialog
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit ManageDefinitionsDialog(const QList<HighlightDefinitionMetaData> &metaDataList,
|
explicit ManageDefinitionsDialog(const QList<HighlightDefinitionMetaData> &metaDataList,
|
||||||
|
const QString &path,
|
||||||
QWidget *parent = 0);
|
QWidget *parent = 0);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@@ -55,6 +56,7 @@ private:
|
|||||||
void populateDefinitionsWidget();
|
void populateDefinitionsWidget();
|
||||||
|
|
||||||
QList<HighlightDefinitionMetaData> m_definitionsMetaData;
|
QList<HighlightDefinitionMetaData> m_definitionsMetaData;
|
||||||
|
QString m_path;
|
||||||
Ui::ManageDefinitionsDialog ui;
|
Ui::ManageDefinitionsDialog ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -259,6 +259,7 @@ QSharedPointer<HighlightDefinitionMetaData> Manager::parseMetadata(const QFileIn
|
|||||||
if (reader.readNext() == QXmlStreamReader::StartElement && reader.name() == kLanguage) {
|
if (reader.readNext() == QXmlStreamReader::StartElement && reader.name() == kLanguage) {
|
||||||
const QXmlStreamAttributes &atts = reader.attributes();
|
const QXmlStreamAttributes &atts = reader.attributes();
|
||||||
|
|
||||||
|
metaData->setFileName(fileInfo.fileName());
|
||||||
metaData->setId(fileInfo.absoluteFilePath());
|
metaData->setId(fileInfo.absoluteFilePath());
|
||||||
metaData->setName(atts.value(HighlightDefinitionMetaData::kName).toString());
|
metaData->setName(atts.value(HighlightDefinitionMetaData::kName).toString());
|
||||||
metaData->setVersion(atts.value(HighlightDefinitionMetaData::kVersion).toString());
|
metaData->setVersion(atts.value(HighlightDefinitionMetaData::kVersion).toString());
|
||||||
@@ -289,6 +290,7 @@ QSharedPointer<HighlightDefinitionMetaData> Manager::parseMetadata(const QFileIn
|
|||||||
|
|
||||||
QList<HighlightDefinitionMetaData> Manager::parseAvailableDefinitionsList(QIODevice *device) const
|
QList<HighlightDefinitionMetaData> Manager::parseAvailableDefinitionsList(QIODevice *device) const
|
||||||
{
|
{
|
||||||
|
static const QLatin1Char kSlash('/');
|
||||||
static const QLatin1String kDefinition("Definition");
|
static const QLatin1String kDefinition("Definition");
|
||||||
|
|
||||||
QList<HighlightDefinitionMetaData> metaDataList;
|
QList<HighlightDefinitionMetaData> metaDataList;
|
||||||
@@ -300,8 +302,12 @@ QList<HighlightDefinitionMetaData> Manager::parseAvailableDefinitionsList(QIODev
|
|||||||
|
|
||||||
HighlightDefinitionMetaData metaData;
|
HighlightDefinitionMetaData metaData;
|
||||||
metaData.setName(atts.value(HighlightDefinitionMetaData::kName).toString());
|
metaData.setName(atts.value(HighlightDefinitionMetaData::kName).toString());
|
||||||
metaData.setUrl(QUrl(atts.value(HighlightDefinitionMetaData::kUrl).toString()));
|
|
||||||
metaData.setVersion(atts.value(HighlightDefinitionMetaData::kVersion).toString());
|
metaData.setVersion(atts.value(HighlightDefinitionMetaData::kVersion).toString());
|
||||||
|
QString url(atts.value(HighlightDefinitionMetaData::kUrl).toString());
|
||||||
|
metaData.setUrl(QUrl(url));
|
||||||
|
const int slash = url.lastIndexOf(kSlash);
|
||||||
|
if (slash != -1)
|
||||||
|
metaData.setFileName(url.right(url.length() - slash - 1));
|
||||||
|
|
||||||
metaDataList.append(metaData);
|
metaDataList.append(metaData);
|
||||||
}
|
}
|
||||||
@@ -331,22 +337,8 @@ void Manager::downloadAvailableDefinitionsListFinished()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Manager::downloadDefinitions(const QList<QUrl> &urls)
|
void Manager::downloadDefinitions(const QList<QUrl> &urls, const QString &savePath)
|
||||||
{
|
{
|
||||||
QString savePath = TextEditorSettings::instance()->highlighterSettings().definitionFilesPath();
|
|
||||||
if (savePath.isEmpty()) {
|
|
||||||
QMessageBox::critical(0, tr("Error"), tr("Please configure the destination directory."));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
savePath.append(QLatin1Char('/'));
|
|
||||||
QDir saveDir(savePath);
|
|
||||||
if (!saveDir.exists()) {
|
|
||||||
QMessageBox::critical(0, tr("Error"),
|
|
||||||
tr("Please make sure the destination directory exists."));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_downloaders.clear();
|
m_downloaders.clear();
|
||||||
foreach (const QUrl &url, urls)
|
foreach (const QUrl &url, urls)
|
||||||
m_downloaders.append(new DefinitionDownloader(url, savePath));
|
m_downloaders.append(new DefinitionDownloader(url, savePath));
|
||||||
@@ -384,7 +376,6 @@ void Manager::downloadDefinitionsFinished()
|
|||||||
QMessageBox::critical(0, tr("Download Error"), text);
|
QMessageBox::critical(0, tr("Download Error"), text);
|
||||||
}
|
}
|
||||||
|
|
||||||
registerMimeTypes();
|
|
||||||
m_downloadingDefinitions = false;
|
m_downloadingDefinitions = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -75,9 +75,11 @@ public:
|
|||||||
QSharedPointer<HighlightDefinitionMetaData> definitionMetaData(const QString &id) const;
|
QSharedPointer<HighlightDefinitionMetaData> definitionMetaData(const QString &id) const;
|
||||||
|
|
||||||
void downloadAvailableDefinitionsMetaData();
|
void downloadAvailableDefinitionsMetaData();
|
||||||
void downloadDefinitions(const QList<QUrl> &urls);
|
void downloadDefinitions(const QList<QUrl> &urls, const QString &savePath);
|
||||||
bool isDownloadingDefinitions() const;
|
bool isDownloadingDefinitions() const;
|
||||||
|
|
||||||
|
static QSharedPointer<HighlightDefinitionMetaData> parseMetadata(const QFileInfo &fileInfo);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void registerMimeTypes();
|
void registerMimeTypes();
|
||||||
void showGenericHighlighterOptions() const;
|
void showGenericHighlighterOptions() const;
|
||||||
@@ -96,7 +98,6 @@ private:
|
|||||||
Q_DISABLE_COPY(Manager)
|
Q_DISABLE_COPY(Manager)
|
||||||
|
|
||||||
void gatherDefinitionsMimeTypes(QFutureInterface<Core::MimeType> &future);
|
void gatherDefinitionsMimeTypes(QFutureInterface<Core::MimeType> &future);
|
||||||
QSharedPointer<HighlightDefinitionMetaData> parseMetadata(const QFileInfo &fileInfo);
|
|
||||||
QList<HighlightDefinitionMetaData> parseAvailableDefinitionsList(QIODevice *device) const;
|
QList<HighlightDefinitionMetaData> parseAvailableDefinitionsList(QIODevice *device) const;
|
||||||
void clear();
|
void clear();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user