JS8Call-Improved master
Loading...
Searching...
No Matches
ForeignKeyDelegate.h
1#ifndef FOREIGN_KEY_DELEGATE_HPP_
2#define FOREIGN_KEY_DELEGATE_HPP_
3
4#include <QScopedPointer>
5#include <QStyledItemDelegate>
6
8
9//
10// Class ForeignKeyDelegate
11//
12// Item delegate for editing a foreign key item in a one or many
13// to one relationship. A QComboBox is used as an item delegate
14// for the edit role.
15//
16class ForeignKeyDelegate final : public QStyledItemDelegate {
17 public:
18 // many to many relationship
19 explicit ForeignKeyDelegate(QAbstractItemModel *referenced_model,
20 int referenced_key_column,
21 QObject *parent = nullptr,
22 int referenced_key_role = Qt::EditRole);
23
24 // one to many (referenced to referencing) relationship
25 explicit ForeignKeyDelegate(QAbstractItemModel *referenced_model,
26 QAbstractItemModel const *referencing_model,
27 int referenced_key_column,
28 int referencing_key_column,
29 QObject *parent = nullptr,
30 int referenced_key_role = Qt::EditRole,
31 int referencing_key_role = Qt::EditRole);
32 ~ForeignKeyDelegate();
33
34 QWidget *createEditor(QWidget *parent, QStyleOptionViewItem const &,
35 QModelIndex const &) const override;
36
37 private:
38 QScopedPointer<CandidateKeyFilter> candidate_key_filter_;
39};
40
41#endif
Definition CandidateKeyFilter.h:11