Code Documentation 3.6
Social Network Visualizer
Loading...
Searching...
No Matches
DialogQueryBuilder Class Reference

Visual query builder that composes a multi-condition AND filter. More...

#include <forms/dialogquerybuilder.h>

Inheritance diagram for DialogQueryBuilder:
Collaboration diagram for DialogQueryBuilder:

Classes

struct  ConditionRow

Signals

void userChoices (const GraphQuery &query)

Public Member Functions

 DialogQueryBuilder (const QStringList &nodeKeys, const QStringList &edgeKeys, QWidget *parent=nullptr)

Private Slots

void onScopeChanged ()
void onAddRow ()
void onApply ()

Private Member Functions

void addRow ()
void removeRow (QWidget *rowWidget)
void repopulateKeys ()
void updateRemoveButtons ()
FilterCondition::Scope currentScope () const

Private Attributes

QStringList m_nodeKeys
QStringList m_edgeKeys
QRadioButton * m_nodesRadio
QRadioButton * m_edgesRadio
QVBoxLayout * m_rowsLayout
QWidget * m_rowsContainer
QScrollArea * m_scrollArea
QPushButton * m_addRowBtn
QDialogButtonBox * m_buttonBox
QList< ConditionRowm_rows

Detailed Description

Visual query builder that composes a multi-condition AND filter.

The user picks a scope (Nodes or Edges), then adds one or more condition rows (key / operator / value). Clicking Apply emits userChoices(GraphQuery) with all conditions carrying the chosen scope. The caller applies the filter and adds a single chip to the bar.

Implemented in pure C++ (no .ui file) so condition rows can be added and removed dynamically without UIC constraints.

Constructor & Destructor Documentation

◆ DialogQueryBuilder()

DialogQueryBuilder::DialogQueryBuilder ( const QStringList & nodeKeys,
const QStringList & edgeKeys,
QWidget * parent = nullptr )
explicit

Member Function Documentation

◆ addRow()

void DialogQueryBuilder::addRow ( )
private

◆ currentScope()

FilterCondition::Scope DialogQueryBuilder::currentScope ( ) const
private

◆ onAddRow

void DialogQueryBuilder::onAddRow ( )
privateslot

◆ onApply

void DialogQueryBuilder::onApply ( )
privateslot

◆ onScopeChanged

void DialogQueryBuilder::onScopeChanged ( )
privateslot

◆ removeRow()

void DialogQueryBuilder::removeRow ( QWidget * rowWidget)
private

◆ repopulateKeys()

void DialogQueryBuilder::repopulateKeys ( )
private

◆ updateRemoveButtons()

void DialogQueryBuilder::updateRemoveButtons ( )
private

◆ userChoices

void DialogQueryBuilder::userChoices ( const GraphQuery & query)
signal

Member Data Documentation

◆ m_addRowBtn

QPushButton* DialogQueryBuilder::m_addRowBtn
private

◆ m_buttonBox

QDialogButtonBox* DialogQueryBuilder::m_buttonBox
private

◆ m_edgeKeys

QStringList DialogQueryBuilder::m_edgeKeys
private

◆ m_edgesRadio

QRadioButton* DialogQueryBuilder::m_edgesRadio
private

◆ m_nodeKeys

QStringList DialogQueryBuilder::m_nodeKeys
private

◆ m_nodesRadio

QRadioButton* DialogQueryBuilder::m_nodesRadio
private

◆ m_rows

QList<ConditionRow> DialogQueryBuilder::m_rows
private

◆ m_rowsContainer

QWidget* DialogQueryBuilder::m_rowsContainer
private

◆ m_rowsLayout

QVBoxLayout* DialogQueryBuilder::m_rowsLayout
private

◆ m_scrollArea

QScrollArea* DialogQueryBuilder::m_scrollArea
private

The documentation for this class was generated from the following files: