aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/texteditor/generichighlighter/managedefinitionsdialog.cpp
diff options
context:
space:
mode:
authorLeandro Melo <leandro.melo@nokia.com>2010-08-20 10:34:08 +0200
committerLeandro Melo <leandro.melo@nokia.com>2010-08-20 11:10:42 +0200
commitd73cb681d475f82492312d5e35f013b8d3cfecac (patch)
tree080996fe557b330729490c4c253c76b9a4ff6188 /src/plugins/texteditor/generichighlighter/managedefinitionsdialog.cpp
parent6e90b519373c55bafd5796e6fea10228eadfbac7 (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.cpp32
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)