diff options
author | Leandro Melo <leandro.melo@nokia.com> | 2010-08-20 10:34:08 +0200 |
---|---|---|
committer | Leandro Melo <leandro.melo@nokia.com> | 2010-08-20 11:10:42 +0200 |
commit | d73cb681d475f82492312d5e35f013b8d3cfecac (patch) | |
tree | 080996fe557b330729490c4c253c76b9a4ff6188 /src/plugins/texteditor/generichighlighter/managedefinitionsdialog.cpp | |
parent | 6e90b519373c55bafd5796e6fea10228eadfbac7 (diff) |
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.
Diffstat (limited to 'src/plugins/texteditor/generichighlighter/managedefinitionsdialog.cpp')
-rw-r--r-- | src/plugins/texteditor/generichighlighter/managedefinitionsdialog.cpp | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/plugins/texteditor/generichighlighter/managedefinitionsdialog.cpp b/src/plugins/texteditor/generichighlighter/managedefinitionsdialog.cpp index 86d88d617e..246eee8240 100644 --- a/src/plugins/texteditor/generichighlighter/managedefinitionsdialog.cpp +++ b/src/plugins/texteditor/generichighlighter/managedefinitionsdialog.cpp @@ -38,6 +38,8 @@ #include <QtCore/QFuture> #include <QtCore/QFutureWatcher> #include <QtCore/QtConcurrentMap> +#include <QtCore/QFile> +#include <QtCore/QFileInfo> #include <QtGui/QMessageBox> #include <QDebug> @@ -46,8 +48,12 @@ using namespace TextEditor; using namespace Internal; ManageDefinitionsDialog::ManageDefinitionsDialog( - const QList<HighlightDefinitionMetaData> &metaDataList, QWidget *parent) : - QDialog(parent), m_definitionsMetaData(metaDataList) + const QList<HighlightDefinitionMetaData> &metaDataList, + const QString &path, + QWidget *parent) : + QDialog(parent), + m_definitionsMetaData(metaDataList), + m_path(path) { ui.setupUi(this); ui.definitionsTable->setHorizontalHeaderLabels( @@ -68,19 +74,23 @@ void ManageDefinitionsDialog::populateDefinitionsWidget() for (int i = 0; i < size; ++i) { const HighlightDefinitionMetaData &downloadData = m_definitionsMetaData.at(i); - QString installedVersion; - const QString &id = Manager::instance()->definitionIdByName(downloadData.name()); - const QSharedPointer<HighlightDefinitionMetaData> &metaData = - Manager::instance()->definitionMetaData(id); - if (!metaData.isNull()) - installedVersion = metaData->version(); + // 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. + QString dirVersion; + QFileInfo fi(m_path + downloadData.fileName()); + QFile definitionFile(fi.absoluteFilePath()); + 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) { QTableWidgetItem *item = new QTableWidgetItem; if (j == 0) item->setText(downloadData.name()); else if (j == 1) { - item->setText(installedVersion); + item->setText(dirVersion); item->setTextAlignment(Qt::AlignCenter); } else if (j == 2) { item->setText(downloadData.version()); @@ -104,8 +114,8 @@ void ManageDefinitionsDialog::downloadDefinitions() QList<QUrl> urls; foreach (const QModelIndex &index, ui.definitionsTable->selectionModel()->selectedRows()) urls.append(m_definitionsMetaData.at(index.row()).url()); - Manager::instance()->downloadDefinitions(urls); - close(); + Manager::instance()->downloadDefinitions(urls, m_path); + accept(); } void ManageDefinitionsDialog::changeEvent(QEvent *e) |