Mime type settings: Show magic matchers for mime types

Change-Id: I40f024b51e20717aa4bc74351bb5996b31f3a869
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
This commit is contained in:
Eike Ziller
2015-02-04 16:27:36 +01:00
parent 178b023f94
commit 3373390048
3 changed files with 38 additions and 45 deletions

View File

@@ -81,7 +81,8 @@ void MimeTypeMagicDialog::setMagicData(const MagicData &data)
MagicData MimeTypeMagicDialog::magicData() const MagicData MimeTypeMagicDialog::magicData() const
{ {
MagicData data; MagicData data(Utils::Internal::MimeMagicRule(Utils::Internal::MimeMagicRule::Byte,
QByteArray(), 0, 0), 0);
// data.m_value = ui.valueLineEdit->text(); // data.m_value = ui.valueLineEdit->text();
// if (ui.stringRadioButton->isChecked()) // if (ui.stringRadioButton->isChecked())
// data.m_type = MagicStringRule::kMatchType; // data.m_type = MagicStringRule::kMatchType;

View File

@@ -33,23 +33,20 @@
#include "ui_mimetypemagicdialog.h" #include "ui_mimetypemagicdialog.h"
#include <utils/mimetypes/mimemagicrule_p.h>
namespace Core { namespace Core {
namespace Internal { namespace Internal {
struct MagicData struct MagicData
{ {
MagicData() {} MagicData(Utils::Internal::MimeMagicRule rule, int priority)
MagicData(const QString &value, const QString &type, int start, int end, int p) : m_rule(rule)
: m_value(value) , m_priority(priority)
, m_type(type) {
, m_start(start) }
, m_end(end)
, m_priority(p) {}
QString m_value; Utils::Internal::MimeMagicRule m_rule;
QString m_type;
int m_start;
int m_end;
int m_priority; int m_priority;
}; };

View File

@@ -208,10 +208,11 @@ public:
void clearSyncData(); void clearSyncData();
void markAsModified(int index); void markAsModified(int index);
void addMagicHeaderRow(const MagicData &data);
void editMagicHeaderRowData(const int row, const MagicData &data);
// TODO // TODO
// void addMagicHeaderRow(const MagicData &data);
// MagicData getMagicHeaderRowData(const int row) const; // MagicData getMagicHeaderRowData(const int row) const;
// void editMagicHeaderRowData(const int row, const MagicData &data);
void updateMimeDatabase(); void updateMimeDatabase();
void resetState(); void resetState();
@@ -393,20 +394,14 @@ void MimeTypeSettingsPrivate::syncData(const QModelIndex &current,
m_ui.patternsLineEdit->setText(currentMimeType.globPatterns().join(kSemiColon)); m_ui.patternsLineEdit->setText(currentMimeType.globPatterns().join(kSemiColon));
// TODO QMap<int, QList<Utils::Internal::MimeMagicRule> > rules =
// // Consider only rule-based matchers. Utils::MimeDatabase::magicRulesForMimeType(currentMimeType);
// const QList<QSharedPointer<IMagicMatcher> > &matchers = currentMimeType.magicRuleMatchers(); for (auto it = rules.constBegin(); it != rules.constEnd(); ++it) {
// foreach (const QSharedPointer<IMagicMatcher> &matcher, matchers) { int priority = it.key();
// MagicRuleMatcher *ruleMatcher = static_cast<MagicRuleMatcher *>(matcher.data()); foreach (const Utils::Internal::MimeMagicRule &rule, it.value()) {
// const int priority = ruleMatcher->priority(); addMagicHeaderRow(MagicData(rule, priority));
// const MagicRuleMatcher::MagicRuleList &rules = ruleMatcher->magicRules(); }
// foreach (const MagicRuleMatcher::MagicRuleSharedPointer &rule, rules) }
// addMagicHeaderRow(MagicData(rule->matchValue(),
// rule->matchType(),
// rule->startPos(),
// rule->endPos(),
// priority));
// }
} }
} }
@@ -419,13 +414,13 @@ void MimeTypeSettingsPrivate::handlePatternEdited()
} }
} }
// TODO void MimeTypeSettingsPrivate::addMagicHeaderRow(const MagicData &data)
//void MimeTypeSettingsPrivate::addMagicHeaderRow(const MagicData &data) {
//{ const int row = m_ui.magicHeadersTreeWidget->topLevelItemCount();
// const int row = m_ui.magicHeadersTreeWidget->topLevelItemCount(); editMagicHeaderRowData(row, data);
// editMagicHeaderRowData(row, data); }
//}
// TODO
//MagicData MimeTypeSettingsPrivate::getMagicHeaderRowData(const int row) const //MagicData MimeTypeSettingsPrivate::getMagicHeaderRowData(const int row) const
//{ //{
// MagicData data; // MagicData data;
@@ -440,17 +435,17 @@ void MimeTypeSettingsPrivate::handlePatternEdited()
// return data; // return data;
//} //}
//void MimeTypeSettingsPrivate::editMagicHeaderRowData(const int row, const MagicData &data) void MimeTypeSettingsPrivate::editMagicHeaderRowData(const int row, const MagicData &data)
//{ {
// QTreeWidgetItem *item = new QTreeWidgetItem; QTreeWidgetItem *item = new QTreeWidgetItem;
// item->setText(0, data.m_value); item->setText(0, QString::fromUtf8(data.m_rule.value()));
// item->setText(1, data.m_type); item->setText(1, QString::fromLatin1(Utils::Internal::MimeMagicRule::typeName(data.m_rule.type())));
// item->setText(2, MagicRule::toOffset(qMakePair(data.m_start, data.m_end))); item->setText(2, QString::fromLatin1("%1:%2").arg(data.m_rule.startPos()).arg(data.m_rule.endPos()));
// item->setText(3, QString::number(data.m_priority)); item->setText(3, QString::number(data.m_priority));
// m_ui.magicHeadersTreeWidget->takeTopLevelItem(row); m_ui.magicHeadersTreeWidget->takeTopLevelItem(row);
// m_ui.magicHeadersTreeWidget->insertTopLevelItem(row, item); m_ui.magicHeadersTreeWidget->insertTopLevelItem(row, item);
// m_ui.magicHeadersTreeWidget->setCurrentItem(item); m_ui.magicHeadersTreeWidget->setCurrentItem(item);
//} }
//void MimeTypeSettingsPrivate::addMagicHeader() //void MimeTypeSettingsPrivate::addMagicHeader()
//{ //{