forked from qt-creator/qt-creator
Settings: Add a filter for mime types
Change-Id: I05213ca74cf3838c923ce6117ffdde28546d465f Reviewed-by: David Schulz <david.schulz@digia.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
fcf8575163
commit
e4714f80c4
@@ -27,24 +27,25 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "mimetypesettings.h"
|
|
||||||
#include "ui_mimetypesettingspage.h"
|
|
||||||
#include "mimetypemagicdialog.h"
|
|
||||||
#include "mimedatabase.h"
|
|
||||||
#include "coreconstants.h"
|
#include "coreconstants.h"
|
||||||
#include "editormanager.h"
|
#include "editormanager.h"
|
||||||
#include "icore.h"
|
#include "icore.h"
|
||||||
#include "ieditorfactory.h"
|
#include "ieditorfactory.h"
|
||||||
#include "iexternaleditor.h"
|
#include "iexternaleditor.h"
|
||||||
|
#include "mimedatabase.h"
|
||||||
|
#include "mimetypemagicdialog.h"
|
||||||
|
#include "mimetypesettings.h"
|
||||||
|
#include "ui_mimetypesettingspage.h"
|
||||||
|
|
||||||
#include <QCoreApplication>
|
|
||||||
#include <QStringList>
|
|
||||||
#include <QSet>
|
|
||||||
#include <QScopedPointer>
|
|
||||||
#include <QAbstractTableModel>
|
#include <QAbstractTableModel>
|
||||||
|
#include <QCoreApplication>
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
#include <QTableWidgetItem>
|
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
|
#include <QScopedPointer>
|
||||||
|
#include <QSet>
|
||||||
|
#include <QStringList>
|
||||||
|
#include <QTableWidgetItem>
|
||||||
|
#include <QSortFilterProxyModel>
|
||||||
#include <QtAlgorithms>
|
#include <QtAlgorithms>
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
@@ -232,17 +233,22 @@ public slots:
|
|||||||
void resetMimeTypes();
|
void resetMimeTypes();
|
||||||
void updateMagicHeaderButtons();
|
void updateMagicHeaderButtons();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void setFilterPattern(const QString &pattern);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static const QChar kSemiColon;
|
static const QChar kSemiColon;
|
||||||
|
|
||||||
QString m_keywords;
|
QString m_keywords;
|
||||||
MimeDatabase *m_mimeDatabase;
|
MimeDatabase *m_mimeDatabase;
|
||||||
QScopedPointer<MimeTypeSettingsModel> m_model;
|
MimeTypeSettingsModel *m_model;
|
||||||
|
QSortFilterProxyModel *m_filterModel;
|
||||||
int m_mimeForPatternSync;
|
int m_mimeForPatternSync;
|
||||||
int m_mimeForMagicSync;
|
int m_mimeForMagicSync;
|
||||||
bool m_reset;
|
bool m_reset;
|
||||||
bool m_persist;
|
bool m_persist;
|
||||||
QList<int> m_modifiedMimeTypes;
|
QList<int> m_modifiedMimeTypes;
|
||||||
|
QString m_filterPattern;
|
||||||
Ui::MimeTypeSettingsPage m_ui;
|
Ui::MimeTypeSettingsPage m_ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -250,12 +256,16 @@ const QChar MimeTypeSettingsPrivate::kSemiColon(QLatin1Char(';'));
|
|||||||
|
|
||||||
MimeTypeSettingsPrivate::MimeTypeSettingsPrivate()
|
MimeTypeSettingsPrivate::MimeTypeSettingsPrivate()
|
||||||
: m_mimeDatabase(ICore::mimeDatabase())
|
: m_mimeDatabase(ICore::mimeDatabase())
|
||||||
, m_model(new MimeTypeSettingsModel)
|
, m_model(new MimeTypeSettingsModel(this))
|
||||||
|
, m_filterModel(new QSortFilterProxyModel(this))
|
||||||
, m_mimeForPatternSync(-1)
|
, m_mimeForPatternSync(-1)
|
||||||
, m_mimeForMagicSync(-1)
|
, m_mimeForMagicSync(-1)
|
||||||
, m_reset(false)
|
, m_reset(false)
|
||||||
, m_persist(false)
|
, m_persist(false)
|
||||||
{}
|
{
|
||||||
|
m_filterModel->setSourceModel(m_model);
|
||||||
|
m_filterModel->setFilterKeyColumn(-1);
|
||||||
|
}
|
||||||
|
|
||||||
MimeTypeSettingsPrivate::~MimeTypeSettingsPrivate()
|
MimeTypeSettingsPrivate::~MimeTypeSettingsPrivate()
|
||||||
{}
|
{}
|
||||||
@@ -263,9 +273,12 @@ MimeTypeSettingsPrivate::~MimeTypeSettingsPrivate()
|
|||||||
void MimeTypeSettingsPrivate::configureUi(QWidget *w)
|
void MimeTypeSettingsPrivate::configureUi(QWidget *w)
|
||||||
{
|
{
|
||||||
m_ui.setupUi(w);
|
m_ui.setupUi(w);
|
||||||
|
m_ui.filterLineEdit->setText(m_filterPattern);
|
||||||
|
|
||||||
m_model->load();
|
m_model->load();
|
||||||
m_ui.mimeTypesTableView->setModel(m_model.data());
|
connect(m_ui.filterLineEdit, SIGNAL(textChanged(QString)),
|
||||||
|
this, SLOT(setFilterPattern(QString)));
|
||||||
|
m_ui.mimeTypesTableView->setModel(m_filterModel);
|
||||||
|
|
||||||
configureTable(m_ui.mimeTypesTableView);
|
configureTable(m_ui.mimeTypesTableView);
|
||||||
configureTable(m_ui.magicHeadersTableWidget);
|
configureTable(m_ui.magicHeadersTableWidget);
|
||||||
@@ -398,7 +411,8 @@ void MimeTypeSettingsPrivate::syncData(const QModelIndex ¤t,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (current.isValid()) {
|
if (current.isValid()) {
|
||||||
const MimeType ¤tMimeType = m_model->m_mimeTypes.at(current.row());
|
const MimeType ¤tMimeType =
|
||||||
|
m_model->m_mimeTypes.at(m_filterModel->mapToSource(current).row());
|
||||||
|
|
||||||
QStringList formatedPatterns;
|
QStringList formatedPatterns;
|
||||||
foreach (const MimeGlobPattern &pattern, currentMimeType.globPatterns())
|
foreach (const MimeGlobPattern &pattern, currentMimeType.globPatterns())
|
||||||
@@ -551,6 +565,12 @@ void MimeTypeSettingsPrivate::updateMagicHeaderButtons()
|
|||||||
m_ui.editMagicButton->setEnabled(enabled);
|
m_ui.editMagicButton->setEnabled(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MimeTypeSettingsPrivate::setFilterPattern(const QString &pattern)
|
||||||
|
{
|
||||||
|
m_filterPattern = pattern;
|
||||||
|
m_filterModel->setFilterWildcard(pattern);
|
||||||
|
}
|
||||||
|
|
||||||
// MimeTypeSettingsPage
|
// MimeTypeSettingsPage
|
||||||
MimeTypeSettings::MimeTypeSettings(QObject *parent)
|
MimeTypeSettings::MimeTypeSettings(QObject *parent)
|
||||||
: IOptionsPage(parent)
|
: IOptionsPage(parent)
|
||||||
|
|||||||
@@ -21,6 +21,13 @@
|
|||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="0" column="0" colspan="2">
|
<item row="0" column="0" colspan="2">
|
||||||
|
<widget class="QLineEdit" name="filterLineEdit">
|
||||||
|
<property name="placeholderText">
|
||||||
|
<string>Filter</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0" colspan="2">
|
||||||
<widget class="QTableView" name="mimeTypesTableView">
|
<widget class="QTableView" name="mimeTypesTableView">
|
||||||
<property name="showGrid">
|
<property name="showGrid">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
@@ -30,7 +37,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QPushButton" name="resetButton">
|
<widget class="QPushButton" name="resetButton">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Reset all to default.</string>
|
<string>Reset all to default.</string>
|
||||||
@@ -40,7 +47,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="2" column="1">
|
||||||
<spacer name="horizontalSpacer">
|
<spacer name="horizontalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
|
|||||||
Reference in New Issue
Block a user