File: ForeignKeyDelegate.cpp

package info (click to toggle)
js8call 2.5.1%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 24,720 kB
  • sloc: cpp: 562,655; sh: 898; python: 132; ansic: 102; makefile: 4
file content (37 lines) | stat: -rw-r--r-- 1,543 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "ForeignKeyDelegate.h"

#include <QComboBox>

#include "CandidateKeyFilter.h"

ForeignKeyDelegate::ForeignKeyDelegate(QAbstractItemModel *referenced_model,
                                       int referenced_key_column,
                                       QObject *parent, int referenced_key_role)
    : QStyledItemDelegate{parent}, candidate_key_filter_{new CandidateKeyFilter{
                                       referenced_model, referenced_key_column,
                                       nullptr, referenced_key_role}} {}

ForeignKeyDelegate::ForeignKeyDelegate(
    QAbstractItemModel *referenced_model,
    QAbstractItemModel const *referencing_model, int referenced_key_column,
    int referencing_key_column, QObject *parent, int referenced_key_role,
    int referencing_key_role)
    : QStyledItemDelegate{parent},
      candidate_key_filter_{new CandidateKeyFilter{
          referenced_model, referencing_model, referenced_key_column,
          referencing_key_column, nullptr, referenced_key_role,
          referencing_key_role}} {}

ForeignKeyDelegate::~ForeignKeyDelegate() {}

QWidget *
ForeignKeyDelegate::createEditor(QWidget *parent,
                                 QStyleOptionViewItem const & /* option */
                                 ,
                                 QModelIndex const &index) const {
    auto editor = new QComboBox{parent};
    editor->setFrame(false);
    candidate_key_filter_->set_active_key(index);
    editor->setModel(candidate_key_filter_.data());
    return editor;
}