Code Documentation 3.6
Social Network Visualizer
Loading...
Searching...
No Matches
dialogquerybuilder.h
Go to the documentation of this file.
1
12
13#pragma once
14
15#include <QDialog>
16#include <QList>
17#include <QStringList>
20
21class QComboBox;
22class QLineEdit;
23class QPushButton;
24class QVBoxLayout;
25class QScrollArea;
26class QRadioButton;
27class QDialogButtonBox;
28
40class DialogQueryBuilder : public QDialog
41{
42 Q_OBJECT
43public:
44 explicit DialogQueryBuilder(const QStringList &nodeKeys,
45 const QStringList &edgeKeys,
46 QWidget *parent = nullptr);
47
48signals:
49 void userChoices(const GraphQuery &query);
50
51private slots:
52 void onScopeChanged();
53 void onAddRow();
54 void onApply();
55
56private:
57 struct ConditionRow {
58 QWidget *widget = nullptr;
59 QComboBox *keyCombo = nullptr;
60 QComboBox *opCombo = nullptr;
61 QLineEdit *valueEdit= nullptr;
62 QPushButton *removeBtn= nullptr;
63 };
64
65 QStringList m_nodeKeys;
66 QStringList m_edgeKeys;
67
68 QRadioButton *m_nodesRadio;
69 QRadioButton *m_edgesRadio;
70 QVBoxLayout *m_rowsLayout;
72 QScrollArea *m_scrollArea;
73 QPushButton *m_addRowBtn;
74 QDialogButtonBox*m_buttonBox;
75 QList<ConditionRow> m_rows;
76
77 void addRow();
78 void removeRow(QWidget *rowWidget);
79 void repopulateKeys();
82};
QWidget * m_rowsContainer
Definition dialogquerybuilder.h:71
QDialogButtonBox * m_buttonBox
Definition dialogquerybuilder.h:74
QStringList m_nodeKeys
Definition dialogquerybuilder.h:65
QScrollArea * m_scrollArea
Definition dialogquerybuilder.h:72
DialogQueryBuilder(const QStringList &nodeKeys, const QStringList &edgeKeys, QWidget *parent=nullptr)
Definition dialogquerybuilder.cpp:28
QRadioButton * m_edgesRadio
Definition dialogquerybuilder.h:69
void repopulateKeys()
Definition dialogquerybuilder.cpp:157
void userChoices(const GraphQuery &query)
void removeRow(QWidget *rowWidget)
Definition dialogquerybuilder.cpp:139
QStringList m_edgeKeys
Definition dialogquerybuilder.h:66
QRadioButton * m_nodesRadio
Definition dialogquerybuilder.h:68
QVBoxLayout * m_rowsLayout
Definition dialogquerybuilder.h:70
QPushButton * m_addRowBtn
Definition dialogquerybuilder.h:73
void addRow()
Definition dialogquerybuilder.cpp:99
QList< ConditionRow > m_rows
Definition dialogquerybuilder.h:75
void updateRemoveButtons()
Definition dialogquerybuilder.cpp:169
void onScopeChanged()
Definition dialogquerybuilder.cpp:152
FilterCondition::Scope currentScope() const
Definition dialogquerybuilder.cpp:176
void onApply()
Definition dialogquerybuilder.cpp:187
void onAddRow()
Definition dialogquerybuilder.cpp:182
Defines the FilterCondition struct shared by all attribute-based filters.
Defines GraphQuery — a multi-condition AND filter applied as one chip.
Definition dialogquerybuilder.h:57
QLineEdit * valueEdit
Definition dialogquerybuilder.h:61
QPushButton * removeBtn
Definition dialogquerybuilder.h:62
QComboBox * opCombo
Definition dialogquerybuilder.h:60
QWidget * widget
Definition dialogquerybuilder.h:58
QComboBox * keyCombo
Definition dialogquerybuilder.h:59
Scope
Definition filter_condition.h:25
A compound AND-logic filter applied in one operation (one snapshot, one chip).
Definition graph_query.h:28