🏡 index : quine-global-labs/mirror-kde-plasma-desktop.git

/*
    SPDX-FileCopyrightText: 2020 David Redondo <kde@david-redondo.de>

    SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/

#pragma once

#include <QSortFilterProxyModel>

#include "kglobalaccelmodel_export.h"

class KGLOBALACCELMODEL_EXPORT FilteredShortcutsModel : public QSortFilterProxyModel
{
    Q_OBJECT

    Q_PROPERTY(QString filter READ filter WRITE setFilter NOTIFY filterChanged)
    Q_PROPERTY(bool showsLaunchAction READ showsLaunchAction WRITE setShowsLaunchAction NOTIFY showsLaunchActionChanged)

public:
    explicit FilteredShortcutsModel(QObject *parent);

    bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override;

    QString filter() const;
    void setFilter(const QString &filter);

    bool showsLaunchAction() const;
    void setShowsLaunchAction(bool value);

Q_SIGNALS:
    void filterChanged();
    void showsLaunchActionChanged();

private:
    QString m_filter;
    bool m_showsLaunchAction = true;
};