forked from qt-creator/qt-creator
Core: Move some widget related things to MimeTypeSettingsWidget
From MimeTypeSettingsPrivate. Change-Id: I293ead85cfaf3950daed975c9301b4296eda7dbc Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -255,34 +255,19 @@ bool MimeFilterModel::filterAcceptsRow(int source_row, const QModelIndex &source
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MimeTypeSettingsPrivate
|
// MimeTypeSettingsPrivate
|
||||||
|
|
||||||
|
const QChar kSemiColon(QLatin1Char(';'));
|
||||||
|
|
||||||
class MimeTypeSettingsPrivate : public QObject
|
class MimeTypeSettingsPrivate : public QObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MimeTypeSettingsPrivate();
|
MimeTypeSettingsPrivate();
|
||||||
~MimeTypeSettingsPrivate() override;
|
~MimeTypeSettingsPrivate() override;
|
||||||
|
|
||||||
void configureUi(QWidget *w);
|
|
||||||
|
|
||||||
private:
|
|
||||||
void addMagicHeaderRow(const MagicData &data);
|
|
||||||
void editMagicHeaderRowData(const int row, const MagicData &data);
|
|
||||||
|
|
||||||
void setFilterPattern(const QString &pattern);
|
|
||||||
void syncData(const QModelIndex ¤t, const QModelIndex &previous);
|
|
||||||
void updatePatternEditAndMagicButtons();
|
|
||||||
void handlePatternEdited();
|
|
||||||
void addMagicHeader();
|
|
||||||
void removeMagicHeader();
|
|
||||||
void editMagicHeader();
|
|
||||||
void resetMimeTypes();
|
|
||||||
|
|
||||||
void ensurePendingMimeType(const Utils::MimeType &mimeType);
|
|
||||||
|
|
||||||
static void writeUserModifiedMimeTypes();
|
static void writeUserModifiedMimeTypes();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
using UserMimeTypeHash = QHash<QString, UserMimeType>; // name -> mime type
|
using UserMimeTypeHash = QHash<QString, UserMimeType>; // name -> mime type
|
||||||
static const QChar kSemiColon;
|
|
||||||
static UserMimeTypeHash readUserModifiedMimeTypes();
|
static UserMimeTypeHash readUserModifiedMimeTypes();
|
||||||
static void applyUserModifiedMimeTypes(const UserMimeTypeHash &mimeTypes);
|
static void applyUserModifiedMimeTypes(const UserMimeTypeHash &mimeTypes);
|
||||||
|
|
||||||
@@ -291,19 +276,8 @@ public:
|
|||||||
MimeFilterModel *m_filterModel;
|
MimeFilterModel *m_filterModel;
|
||||||
UserMimeTypeHash m_pendingModifiedMimeTypes; // currently edited in the options page
|
UserMimeTypeHash m_pendingModifiedMimeTypes; // currently edited in the options page
|
||||||
QString m_filterPattern;
|
QString m_filterPattern;
|
||||||
QPointer<QWidget> m_widget;
|
|
||||||
MimeEditorDelegate m_delegate;
|
|
||||||
|
|
||||||
QTreeView *m_mimeTypesTreeView;
|
|
||||||
QPushButton *m_resetHandlersButton;
|
|
||||||
QLineEdit *m_patternsLineEdit;
|
|
||||||
QTreeWidget *m_magicHeadersTreeWidget;
|
|
||||||
QPushButton *m_addMagicButton;
|
|
||||||
QPushButton *m_editMagicButton;
|
|
||||||
QPushButton *m_removeMagicButton;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const QChar MimeTypeSettingsPrivate::kSemiColon(QLatin1Char(';'));
|
|
||||||
MimeTypeSettingsPrivate::UserMimeTypeHash MimeTypeSettingsPrivate::m_userModifiedMimeTypes
|
MimeTypeSettingsPrivate::UserMimeTypeHash MimeTypeSettingsPrivate::m_userModifiedMimeTypes
|
||||||
= MimeTypeSettingsPrivate::UserMimeTypeHash();
|
= MimeTypeSettingsPrivate::UserMimeTypeHash();
|
||||||
|
|
||||||
@@ -323,11 +297,7 @@ MimeTypeSettingsPrivate::~MimeTypeSettingsPrivate() = default;
|
|||||||
class MimeTypeSettingsWidget : public IOptionsPageWidget
|
class MimeTypeSettingsWidget : public IOptionsPageWidget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MimeTypeSettingsWidget(MimeTypeSettingsPrivate *d)
|
MimeTypeSettingsWidget(MimeTypeSettingsPrivate *d);
|
||||||
: d(d)
|
|
||||||
{
|
|
||||||
d->configureUi(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void apply() final
|
void apply() final
|
||||||
{
|
{
|
||||||
@@ -342,15 +312,40 @@ public:
|
|||||||
d->m_pendingModifiedMimeTypes.clear();
|
d->m_pendingModifiedMimeTypes.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void addMagicHeaderRow(const MagicData &data);
|
||||||
|
void editMagicHeaderRowData(const int row, const MagicData &data);
|
||||||
|
|
||||||
|
void setFilterPattern(const QString &pattern);
|
||||||
|
void syncData(const QModelIndex ¤t, const QModelIndex &previous);
|
||||||
|
void updatePatternEditAndMagicButtons();
|
||||||
|
void handlePatternEdited();
|
||||||
|
void addMagicHeader();
|
||||||
|
void removeMagicHeader();
|
||||||
|
void editMagicHeader();
|
||||||
|
void resetMimeTypes();
|
||||||
|
|
||||||
|
void ensurePendingMimeType(const Utils::MimeType &mimeType);
|
||||||
|
|
||||||
MimeTypeSettingsPrivate *d;
|
MimeTypeSettingsPrivate *d;
|
||||||
|
QPointer<QWidget> m_widget;
|
||||||
|
MimeEditorDelegate m_delegate;
|
||||||
|
|
||||||
|
QTreeView *m_mimeTypesTreeView;
|
||||||
|
QPushButton *m_resetHandlersButton;
|
||||||
|
QLineEdit *m_patternsLineEdit;
|
||||||
|
QTreeWidget *m_magicHeadersTreeWidget;
|
||||||
|
QPushButton *m_addMagicButton;
|
||||||
|
QPushButton *m_editMagicButton;
|
||||||
|
QPushButton *m_removeMagicButton;
|
||||||
};
|
};
|
||||||
|
|
||||||
void MimeTypeSettingsPrivate::configureUi(QWidget *w)
|
MimeTypeSettingsWidget::MimeTypeSettingsWidget(MimeTypeSettingsPrivate *d)
|
||||||
|
: d(d)
|
||||||
{
|
{
|
||||||
auto filterLineEdit = new FancyLineEdit;
|
auto filterLineEdit = new FancyLineEdit;
|
||||||
filterLineEdit->setObjectName("filterLineEdit");
|
filterLineEdit->setObjectName("filterLineEdit");
|
||||||
filterLineEdit->setFiltering(true);
|
filterLineEdit->setFiltering(true);
|
||||||
m_filterModel->setFilterWildcard({});
|
d->m_filterModel->setFilterWildcard({});
|
||||||
|
|
||||||
m_mimeTypesTreeView = new QTreeView;
|
m_mimeTypesTreeView = new QTreeView;
|
||||||
m_mimeTypesTreeView->setObjectName("mimeTypesTreeView");
|
m_mimeTypesTreeView->setObjectName("mimeTypesTreeView");
|
||||||
@@ -400,7 +395,7 @@ void MimeTypeSettingsPrivate::configureUi(QWidget *w)
|
|||||||
auto detailsGroupBox = new QGroupBox;
|
auto detailsGroupBox = new QGroupBox;
|
||||||
detailsGroupBox->setTitle(Tr::tr("Details"));
|
detailsGroupBox->setTitle(Tr::tr("Details"));
|
||||||
|
|
||||||
auto splitter = new QSplitter(w);
|
auto splitter = new QSplitter(this);
|
||||||
splitter->setOrientation(Qt::Vertical);
|
splitter->setOrientation(Qt::Vertical);
|
||||||
splitter->setChildrenCollapsible(false);
|
splitter->setChildrenCollapsible(false);
|
||||||
splitter->addWidget(mimeTypesGroupBox);
|
splitter->addWidget(mimeTypesGroupBox);
|
||||||
@@ -429,40 +424,40 @@ void MimeTypeSettingsPrivate::configureUi(QWidget *w)
|
|||||||
|
|
||||||
Column {
|
Column {
|
||||||
splitter
|
splitter
|
||||||
}.attachTo(w);
|
}.attachTo(this);
|
||||||
|
|
||||||
m_model->load();
|
d->m_model->load();
|
||||||
connect(filterLineEdit, &FancyLineEdit::textChanged,
|
connect(filterLineEdit, &FancyLineEdit::textChanged,
|
||||||
this, &MimeTypeSettingsPrivate::setFilterPattern);
|
this, &MimeTypeSettingsWidget::setFilterPattern);
|
||||||
m_mimeTypesTreeView->setModel(m_filterModel);
|
m_mimeTypesTreeView->setModel(d->m_filterModel);
|
||||||
m_mimeTypesTreeView->setItemDelegate(&m_delegate);
|
m_mimeTypesTreeView->setItemDelegate(&m_delegate);
|
||||||
|
|
||||||
new Utils::HeaderViewStretcher(m_mimeTypesTreeView->header(), 1);
|
new Utils::HeaderViewStretcher(m_mimeTypesTreeView->header(), 1);
|
||||||
|
|
||||||
connect(m_mimeTypesTreeView->selectionModel(), &QItemSelectionModel::currentChanged,
|
connect(m_mimeTypesTreeView->selectionModel(), &QItemSelectionModel::currentChanged,
|
||||||
this, &MimeTypeSettingsPrivate::syncData);
|
this, &MimeTypeSettingsWidget::syncData);
|
||||||
connect(m_mimeTypesTreeView->selectionModel(), &QItemSelectionModel::currentChanged,
|
connect(m_mimeTypesTreeView->selectionModel(), &QItemSelectionModel::currentChanged,
|
||||||
this, &MimeTypeSettingsPrivate::updatePatternEditAndMagicButtons);
|
this, &MimeTypeSettingsWidget::updatePatternEditAndMagicButtons);
|
||||||
connect(m_patternsLineEdit, &QLineEdit::textEdited,
|
connect(m_patternsLineEdit, &QLineEdit::textEdited,
|
||||||
this, &MimeTypeSettingsPrivate::handlePatternEdited);
|
this, &MimeTypeSettingsWidget::handlePatternEdited);
|
||||||
connect(m_addMagicButton, &QPushButton::clicked,
|
connect(m_addMagicButton, &QPushButton::clicked,
|
||||||
this, &MimeTypeSettingsPrivate::addMagicHeader);
|
this, &MimeTypeSettingsWidget::addMagicHeader);
|
||||||
// TODO
|
// TODO
|
||||||
connect(m_removeMagicButton, &QPushButton::clicked,
|
connect(m_removeMagicButton, &QPushButton::clicked,
|
||||||
this, &MimeTypeSettingsPrivate::removeMagicHeader);
|
this, &MimeTypeSettingsWidget::removeMagicHeader);
|
||||||
connect(m_editMagicButton, &QPushButton::clicked,
|
connect(m_editMagicButton, &QPushButton::clicked,
|
||||||
this, &MimeTypeSettingsPrivate::editMagicHeader);
|
this, &MimeTypeSettingsWidget::editMagicHeader);
|
||||||
connect(resetButton, &QPushButton::clicked,
|
connect(resetButton, &QPushButton::clicked,
|
||||||
this, &MimeTypeSettingsPrivate::resetMimeTypes);
|
this, &MimeTypeSettingsWidget::resetMimeTypes);
|
||||||
connect(m_resetHandlersButton, &QPushButton::clicked,
|
connect(m_resetHandlersButton, &QPushButton::clicked,
|
||||||
m_model, &MimeTypeSettingsModel::resetUserDefaults);
|
d->m_model, &MimeTypeSettingsModel::resetUserDefaults);
|
||||||
connect(m_magicHeadersTreeWidget, &QTreeWidget::itemSelectionChanged,
|
connect(m_magicHeadersTreeWidget, &QTreeWidget::itemSelectionChanged,
|
||||||
this, &MimeTypeSettingsPrivate::updatePatternEditAndMagicButtons);
|
this, &MimeTypeSettingsWidget::updatePatternEditAndMagicButtons);
|
||||||
|
|
||||||
updatePatternEditAndMagicButtons();
|
updatePatternEditAndMagicButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MimeTypeSettingsPrivate::syncData(const QModelIndex ¤t,
|
void MimeTypeSettingsWidget::syncData(const QModelIndex ¤t,
|
||||||
const QModelIndex &previous)
|
const QModelIndex &previous)
|
||||||
{
|
{
|
||||||
Q_UNUSED(previous)
|
Q_UNUSED(previous)
|
||||||
@@ -471,8 +466,8 @@ void MimeTypeSettingsPrivate::syncData(const QModelIndex ¤t,
|
|||||||
|
|
||||||
if (current.isValid()) {
|
if (current.isValid()) {
|
||||||
const Utils::MimeType ¤tMimeType =
|
const Utils::MimeType ¤tMimeType =
|
||||||
m_model->m_mimeTypes.at(m_filterModel->mapToSource(current).row());
|
d->m_model->m_mimeTypes.at(d->m_filterModel->mapToSource(current).row());
|
||||||
UserMimeType modifiedType = m_pendingModifiedMimeTypes.value(currentMimeType.name());
|
UserMimeType modifiedType = d->m_pendingModifiedMimeTypes.value(currentMimeType.name());
|
||||||
m_patternsLineEdit->setText(
|
m_patternsLineEdit->setText(
|
||||||
modifiedType.isValid() ? modifiedType.globPatterns.join(kSemiColon)
|
modifiedType.isValid() ? modifiedType.globPatterns.join(kSemiColon)
|
||||||
: currentMimeType.globPatterns().join(kSemiColon));
|
: currentMimeType.globPatterns().join(kSemiColon));
|
||||||
@@ -489,7 +484,7 @@ void MimeTypeSettingsPrivate::syncData(const QModelIndex ¤t,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MimeTypeSettingsPrivate::updatePatternEditAndMagicButtons()
|
void MimeTypeSettingsWidget::updatePatternEditAndMagicButtons()
|
||||||
{
|
{
|
||||||
const QModelIndex &mimeTypeIndex = m_mimeTypesTreeView->currentIndex();
|
const QModelIndex &mimeTypeIndex = m_mimeTypesTreeView->currentIndex();
|
||||||
const bool mimeTypeValid = mimeTypeIndex.isValid();
|
const bool mimeTypeValid = mimeTypeIndex.isValid();
|
||||||
@@ -503,25 +498,25 @@ void MimeTypeSettingsPrivate::updatePatternEditAndMagicButtons()
|
|||||||
m_editMagicButton->setEnabled(magicValid);
|
m_editMagicButton->setEnabled(magicValid);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MimeTypeSettingsPrivate::handlePatternEdited()
|
void MimeTypeSettingsWidget::handlePatternEdited()
|
||||||
{
|
{
|
||||||
const QModelIndex &modelIndex = m_mimeTypesTreeView->currentIndex();
|
const QModelIndex &modelIndex = m_mimeTypesTreeView->currentIndex();
|
||||||
QTC_ASSERT(modelIndex.isValid(), return);
|
QTC_ASSERT(modelIndex.isValid(), return);
|
||||||
|
|
||||||
int index = m_filterModel->mapToSource(modelIndex).row();
|
int index = d->m_filterModel->mapToSource(modelIndex).row();
|
||||||
const Utils::MimeType mt = m_model->m_mimeTypes.at(index);
|
const Utils::MimeType mt = d->m_model->m_mimeTypes.at(index);
|
||||||
ensurePendingMimeType(mt);
|
ensurePendingMimeType(mt);
|
||||||
m_pendingModifiedMimeTypes[mt.name()].globPatterns
|
d->m_pendingModifiedMimeTypes[mt.name()].globPatterns
|
||||||
= m_patternsLineEdit->text().split(kSemiColon, Qt::SkipEmptyParts);
|
= m_patternsLineEdit->text().split(kSemiColon, Qt::SkipEmptyParts);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MimeTypeSettingsPrivate::addMagicHeaderRow(const MagicData &data)
|
void MimeTypeSettingsWidget::addMagicHeaderRow(const MagicData &data)
|
||||||
{
|
{
|
||||||
const int row = m_magicHeadersTreeWidget->topLevelItemCount();
|
const int row = m_magicHeadersTreeWidget->topLevelItemCount();
|
||||||
editMagicHeaderRowData(row, data);
|
editMagicHeaderRowData(row, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MimeTypeSettingsPrivate::editMagicHeaderRowData(const int row, const MagicData &data)
|
void MimeTypeSettingsWidget::editMagicHeaderRowData(const int row, const MagicData &data)
|
||||||
{
|
{
|
||||||
auto item = new QTreeWidgetItem;
|
auto item = new QTreeWidgetItem;
|
||||||
item->setText(0, QString::fromUtf8(data.m_rule.value()));
|
item->setText(0, QString::fromUtf8(data.m_rule.value()));
|
||||||
@@ -534,23 +529,23 @@ void MimeTypeSettingsPrivate::editMagicHeaderRowData(const int row, const MagicD
|
|||||||
m_magicHeadersTreeWidget->setCurrentItem(item);
|
m_magicHeadersTreeWidget->setCurrentItem(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MimeTypeSettingsPrivate::addMagicHeader()
|
void MimeTypeSettingsWidget::addMagicHeader()
|
||||||
{
|
{
|
||||||
const QModelIndex &mimeTypeIndex = m_mimeTypesTreeView->currentIndex();
|
const QModelIndex &mimeTypeIndex = m_mimeTypesTreeView->currentIndex();
|
||||||
QTC_ASSERT(mimeTypeIndex.isValid(), return);
|
QTC_ASSERT(mimeTypeIndex.isValid(), return);
|
||||||
|
|
||||||
int index = m_filterModel->mapToSource(mimeTypeIndex).row();
|
int index = d->m_filterModel->mapToSource(mimeTypeIndex).row();
|
||||||
const Utils::MimeType mt = m_model->m_mimeTypes.at(index);
|
const Utils::MimeType mt = d->m_model->m_mimeTypes.at(index);
|
||||||
MimeTypeMagicDialog dlg;
|
MimeTypeMagicDialog dlg;
|
||||||
if (dlg.exec()) {
|
if (dlg.exec()) {
|
||||||
const MagicData &data = dlg.magicData();
|
const MagicData &data = dlg.magicData();
|
||||||
ensurePendingMimeType(mt);
|
ensurePendingMimeType(mt);
|
||||||
m_pendingModifiedMimeTypes[mt.name()].rules[data.m_priority].append(data.m_rule);
|
d->m_pendingModifiedMimeTypes[mt.name()].rules[data.m_priority].append(data.m_rule);
|
||||||
addMagicHeaderRow(data);
|
addMagicHeaderRow(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MimeTypeSettingsPrivate::removeMagicHeader()
|
void MimeTypeSettingsWidget::removeMagicHeader()
|
||||||
{
|
{
|
||||||
const QModelIndex &mimeTypeIndex = m_mimeTypesTreeView->currentIndex();
|
const QModelIndex &mimeTypeIndex = m_mimeTypesTreeView->currentIndex();
|
||||||
QTC_ASSERT(mimeTypeIndex.isValid(), return);
|
QTC_ASSERT(mimeTypeIndex.isValid(), return);
|
||||||
@@ -558,19 +553,19 @@ void MimeTypeSettingsPrivate::removeMagicHeader()
|
|||||||
const QModelIndex &magicIndex = m_magicHeadersTreeWidget->currentIndex();
|
const QModelIndex &magicIndex = m_magicHeadersTreeWidget->currentIndex();
|
||||||
QTC_ASSERT(magicIndex.isValid(), return);
|
QTC_ASSERT(magicIndex.isValid(), return);
|
||||||
|
|
||||||
int index = m_filterModel->mapToSource(mimeTypeIndex).row();
|
int index = d->m_filterModel->mapToSource(mimeTypeIndex).row();
|
||||||
const Utils::MimeType mt = m_model->m_mimeTypes.at(index);
|
const Utils::MimeType mt = d->m_model->m_mimeTypes.at(index);
|
||||||
|
|
||||||
QTreeWidgetItem *item = m_magicHeadersTreeWidget->topLevelItem(magicIndex.row());
|
QTreeWidgetItem *item = m_magicHeadersTreeWidget->topLevelItem(magicIndex.row());
|
||||||
QTC_ASSERT(item, return);
|
QTC_ASSERT(item, return);
|
||||||
const MagicData data = item->data(0, Qt::UserRole).value<MagicData>();
|
const MagicData data = item->data(0, Qt::UserRole).value<MagicData>();
|
||||||
|
|
||||||
ensurePendingMimeType(mt);
|
ensurePendingMimeType(mt);
|
||||||
m_pendingModifiedMimeTypes[mt.name()].rules[data.m_priority].removeOne(data.m_rule);
|
d->m_pendingModifiedMimeTypes[mt.name()].rules[data.m_priority].removeOne(data.m_rule);
|
||||||
syncData(mimeTypeIndex, mimeTypeIndex);
|
syncData(mimeTypeIndex, mimeTypeIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MimeTypeSettingsPrivate::editMagicHeader()
|
void MimeTypeSettingsWidget::editMagicHeader()
|
||||||
{
|
{
|
||||||
const QModelIndex &mimeTypeIndex = m_mimeTypesTreeView->currentIndex();
|
const QModelIndex &mimeTypeIndex = m_mimeTypesTreeView->currentIndex();
|
||||||
QTC_ASSERT(mimeTypeIndex.isValid(), return);
|
QTC_ASSERT(mimeTypeIndex.isValid(), return);
|
||||||
@@ -578,8 +573,8 @@ void MimeTypeSettingsPrivate::editMagicHeader()
|
|||||||
const QModelIndex &magicIndex = m_magicHeadersTreeWidget->currentIndex();
|
const QModelIndex &magicIndex = m_magicHeadersTreeWidget->currentIndex();
|
||||||
QTC_ASSERT(magicIndex.isValid(), return);
|
QTC_ASSERT(magicIndex.isValid(), return);
|
||||||
|
|
||||||
int index = m_filterModel->mapToSource(mimeTypeIndex).row();
|
int index = d->m_filterModel->mapToSource(mimeTypeIndex).row();
|
||||||
const Utils::MimeType mt = m_model->m_mimeTypes.at(index);
|
const Utils::MimeType mt = d->m_model->m_mimeTypes.at(index);
|
||||||
|
|
||||||
QTreeWidgetItem *item = m_magicHeadersTreeWidget->topLevelItem(magicIndex.row());
|
QTreeWidgetItem *item = m_magicHeadersTreeWidget->topLevelItem(magicIndex.row());
|
||||||
QTC_ASSERT(item, return);
|
QTC_ASSERT(item, return);
|
||||||
@@ -591,42 +586,42 @@ void MimeTypeSettingsPrivate::editMagicHeader()
|
|||||||
if (dlg.magicData() != oldData) {
|
if (dlg.magicData() != oldData) {
|
||||||
ensurePendingMimeType(mt);
|
ensurePendingMimeType(mt);
|
||||||
const MagicData &dialogData = dlg.magicData();
|
const MagicData &dialogData = dlg.magicData();
|
||||||
int ruleIndex = m_pendingModifiedMimeTypes[mt.name()].rules[oldData.m_priority].indexOf(oldData.m_rule);
|
int ruleIndex = d->m_pendingModifiedMimeTypes[mt.name()].rules[oldData.m_priority].indexOf(oldData.m_rule);
|
||||||
if (oldData.m_priority != dialogData.m_priority) {
|
if (oldData.m_priority != dialogData.m_priority) {
|
||||||
m_pendingModifiedMimeTypes[mt.name()].rules[oldData.m_priority].removeAt(ruleIndex);
|
d->m_pendingModifiedMimeTypes[mt.name()].rules[oldData.m_priority].removeAt(ruleIndex);
|
||||||
m_pendingModifiedMimeTypes[mt.name()].rules[dialogData.m_priority].append(dialogData.m_rule);
|
d->m_pendingModifiedMimeTypes[mt.name()].rules[dialogData.m_priority].append(dialogData.m_rule);
|
||||||
} else {
|
} else {
|
||||||
m_pendingModifiedMimeTypes[mt.name()].rules[oldData.m_priority][ruleIndex] = dialogData.m_rule;
|
d->m_pendingModifiedMimeTypes[mt.name()].rules[oldData.m_priority][ruleIndex] = dialogData.m_rule;
|
||||||
}
|
}
|
||||||
editMagicHeaderRowData(magicIndex.row(), dialogData);
|
editMagicHeaderRowData(magicIndex.row(), dialogData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MimeTypeSettingsPrivate::resetMimeTypes()
|
void MimeTypeSettingsWidget::resetMimeTypes()
|
||||||
{
|
{
|
||||||
m_pendingModifiedMimeTypes.clear();
|
d->m_pendingModifiedMimeTypes.clear();
|
||||||
m_userModifiedMimeTypes.clear(); // settings file will be removed with next settings-save
|
d->m_userModifiedMimeTypes.clear(); // settings file will be removed with next settings-save
|
||||||
QMessageBox::information(ICore::dialogParent(),
|
QMessageBox::information(ICore::dialogParent(),
|
||||||
Tr::tr("Reset MIME Types"),
|
Tr::tr("Reset MIME Types"),
|
||||||
Tr::tr("Changes will take effect after restart."));
|
Tr::tr("Changes will take effect after restart."));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MimeTypeSettingsPrivate::setFilterPattern(const QString &pattern)
|
void MimeTypeSettingsWidget::setFilterPattern(const QString &pattern)
|
||||||
{
|
{
|
||||||
m_filterPattern = pattern;
|
d->m_filterPattern = pattern;
|
||||||
m_filterModel->setFilterWildcard(pattern);
|
d->m_filterModel->setFilterWildcard(pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MimeTypeSettingsPrivate::ensurePendingMimeType(const Utils::MimeType &mimeType)
|
void MimeTypeSettingsWidget::ensurePendingMimeType(const Utils::MimeType &mimeType)
|
||||||
{
|
{
|
||||||
if (!m_pendingModifiedMimeTypes.contains(mimeType.name())) {
|
if (!d->m_pendingModifiedMimeTypes.contains(mimeType.name())) {
|
||||||
// get a copy of the mime type into pending modified types
|
// get a copy of the mime type into pending modified types
|
||||||
UserMimeType userMt;
|
UserMimeType userMt;
|
||||||
userMt.name = mimeType.name();
|
userMt.name = mimeType.name();
|
||||||
userMt.globPatterns = mimeType.globPatterns();
|
userMt.globPatterns = mimeType.globPatterns();
|
||||||
userMt.rules = Utils::magicRulesForMimeType(mimeType);
|
userMt.rules = Utils::magicRulesForMimeType(mimeType);
|
||||||
m_pendingModifiedMimeTypes.insert(userMt.name, userMt);
|
d->m_pendingModifiedMimeTypes.insert(userMt.name, userMt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user