diff --git a/containments/desktop/package/contents/ui/ConfigFilter.qml b/containments/desktop/package/contents/ui/ConfigFilter.qml --- a/containments/desktop/package/contents/ui/ConfigFilter.qml +++ b/containments/desktop/package/contents/ui/ConfigFilter.qml @@ -35,10 +35,17 @@ property alias cfg_filterPattern: filterPattern.text property alias cfg_filterMimeTypes: mimeTypesModel.checkedTypes - Folder.FilterableMimeTypesModel { - id: mimeTypesModel + PlasmaCore.SortFilterModel { + id: filderedMimeTypesModel - filter: mimeFilter.text + sourceModel: Folder.MimeTypesModel { + id: mimeTypesModel + } + + // SortFilterModel doesn't have a case-sensitivity option + // but filterRegExp always causes case-insensitive sorting. + filterRegExp: mimeFilter.text + filterRole: "display" } ColumnLayout { @@ -96,7 +103,7 @@ enabled: (filterMode.currentIndex > 0) ListView { - model: mimeTypesModel + model: filderedMimeTypesModel delegate: RowLayout { CheckBox { diff --git a/containments/desktop/plugins/folder/folderplugin.cpp b/containments/desktop/plugins/folder/folderplugin.cpp --- a/containments/desktop/plugins/folder/folderplugin.cpp +++ b/containments/desktop/plugins/folder/folderplugin.cpp @@ -43,7 +43,7 @@ qmlRegisterType(uri, 0, 1, "ItemViewAdapter"); qmlRegisterType(uri, 0, 1, "LabelGenerator"); qmlRegisterType(uri, 0, 1, "MenuHelper"); - qmlRegisterType(uri, 0, 1, "FilterableMimeTypesModel"); + qmlRegisterType(uri, 0, 1, "MimeTypesModel"); qmlRegisterType(uri, 0, 1, "PlacesModel"); qmlRegisterType(uri, 0, 1, "Positioner"); qmlRegisterType(uri, 0, 1, "PreviewPluginsModel"); diff --git a/containments/desktop/plugins/folder/mimetypesmodel.h b/containments/desktop/plugins/folder/mimetypesmodel.h --- a/containments/desktop/plugins/folder/mimetypesmodel.h +++ b/containments/desktop/plugins/folder/mimetypesmodel.h @@ -57,32 +57,4 @@ QVector checkedRows; }; -class FilterableMimeTypesModel : public QSortFilterProxyModel -{ - Q_OBJECT - - Q_PROPERTY(QStringList checkedTypes READ checkedTypes WRITE setCheckedTypes NOTIFY checkedTypesChanged) - Q_PROPERTY(QString filter READ filter WRITE setFilter NOTIFY filterChanged) - - public: - FilterableMimeTypesModel(QObject *parent = 0); - ~FilterableMimeTypesModel(); - - Q_INVOKABLE void checkAll(); - - QStringList checkedTypes() const; - void setCheckedTypes(const QStringList &list); - - QString filter() const; - void setFilter(const QString &filter); - - Q_SIGNALS: - void checkedTypesChanged() const; - void filterChanged() const; - - private: - MimeTypesModel *m_sourceModel; - QString m_filter; -}; - #endif diff --git a/containments/desktop/plugins/folder/mimetypesmodel.cpp b/containments/desktop/plugins/folder/mimetypesmodel.cpp --- a/containments/desktop/plugins/folder/mimetypesmodel.cpp +++ b/containments/desktop/plugins/folder/mimetypesmodel.cpp @@ -147,48 +147,3 @@ emit checkedTypesChanged(); } - -FilterableMimeTypesModel::FilterableMimeTypesModel(QObject *parent) : QSortFilterProxyModel(parent), - m_sourceModel(new MimeTypesModel(this)) -{ - setSourceModel(m_sourceModel); - setDynamicSortFilter(true); - - connect(m_sourceModel, &MimeTypesModel::checkedTypesChanged, this, &FilterableMimeTypesModel::checkedTypesChanged); -} - -FilterableMimeTypesModel::~FilterableMimeTypesModel() -{ -} - -void FilterableMimeTypesModel::checkAll() -{ - m_sourceModel->checkAll(); -} - -QStringList FilterableMimeTypesModel::checkedTypes() const -{ - return m_sourceModel->checkedTypes(); -} - -void FilterableMimeTypesModel::setCheckedTypes(const QStringList &list) -{ - m_sourceModel->setCheckedTypes(list); -} - -QString FilterableMimeTypesModel::filter() const -{ - return m_filter; -} - -void FilterableMimeTypesModel::setFilter(const QString &filter) -{ - if (m_filter != filter) { - m_filter = filter; - - setFilterFixedString(m_filter); - - emit filterChanged(); - } -} -