mirror of
https://github.com/JS8Call-improved/JS8Call-improved
synced 2026-08-13 17:47:36 -04:00
40 lines
1.4 KiB
C++
40 lines
1.4 KiB
C++
#ifndef CANDIDATE_KEY_FILTER_HPP_
|
|
#define CANDIDATE_KEY_FILTER_HPP_
|
|
|
|
#include "JS8_Include/pimpl_h.h"
|
|
|
|
#include <QModelIndex>
|
|
#include <QSortFilterProxyModel>
|
|
|
|
class QAbstractItemModel;
|
|
|
|
class CandidateKeyFilter final : public QSortFilterProxyModel {
|
|
public:
|
|
explicit CandidateKeyFilter(QAbstractItemModel *referenced_model,
|
|
int referenced_key_column,
|
|
QObject *parent = nullptr,
|
|
int referenced_key_role = Qt::EditRole);
|
|
explicit CandidateKeyFilter(QAbstractItemModel *referenced_model,
|
|
QAbstractItemModel const *referencing_model,
|
|
int referenced_key_column,
|
|
int referencing_key_column,
|
|
QObject *parent = nullptr,
|
|
int referenced_key_role = Qt::EditRole,
|
|
int referencing_key_role = Qt::EditRole);
|
|
~CandidateKeyFilter();
|
|
|
|
// this key is not to be filtered, usually because we want to allow
|
|
// it since we are editing the row that contains it this it is valid
|
|
// even though it is in use
|
|
void set_active_key(QModelIndex const &index = QModelIndex{});
|
|
|
|
protected:
|
|
bool filterAcceptsRow(int candidate_row,
|
|
QModelIndex const &candidate_parent) const override;
|
|
|
|
private:
|
|
class impl;
|
|
pimpl<impl> m_;
|
|
};
|
|
|
|
#endif
|