10 const QStringList & Default,
12 : QSortFilterProxyModel ( parent ),
13 this_gui_windowname ( Name ),
14 this_default_filter ( Default ),
15 this_apply_default_filter ( false )
32 const QModelIndex & source_parent )
const
34 if ( this_apply_default_filter )
36 return ApplyDefaultFilter ( source_row, source_parent );
40 return ApplyUserFilter ( source_row, source_parent );
45 const QModelIndex & right )
const
47 if ( left.parent() == QModelIndex() || left.parent().parent() == QModelIndex() )
49 QVariant LeftData = sourceModel()->data ( left );
50 QVariant RightData = sourceModel()->data ( right );
52 switch ( LeftData.type() )
56 return ( LeftData.toUInt() < RightData.toUInt() );
59 return ( LeftData.toInt() < RightData.toInt() );
61 case QVariant::String:
62 return ( ( LeftData.toString() ).compare ( RightData.toString() ) > 0 );
77 this_gui_windowname.toStdString() );
79 if ( this_window_config.Title.isEmpty() )
81 this_apply_default_filter =
true;
87 if ( this_apply_default_filter ==
false )
89 for ( QString
const & i : this_window_config.GraphicalClassesList )
95 for ( QString & ClassName : ClassList )
105 if ( sourceModel()->canFetchMore ( ParentIndex ) ) sourceModel()->fetchMore (
115 if ( index.isValid() )
117 QModelIndex sourceParent = mapToSource ( index );
126 throw daq::dbe::cannot_handle_invalid_qmodelindex (
ERS_HERE );
131 QModelIndex sourceParent = mapToSource ( index );
136 return my->
getnode ( sourceParent );
145 QModelIndex sourceParent = mapToSource ( index );
150 return my->
getclass ( sourceParent );
158 return sourceModel();
162 const QModelIndex & source_parent )
const
164 Q_UNUSED ( source_row )
165 Q_UNUSED ( source_parent )
171 const QModelIndex & source_parent )
const
175 QModelIndex
const & nodeindex = srcmodel->
index ( source_row, 0, source_parent );
177 QString
const nodename = srcmodel->
data ( nodeindex ).toString();
179 if ( not source_parent.isValid() )
183 for ( QString
const & admissible : this_window_config.GraphicalClassesList )
186 admissible.toStdString() );
195 else if (
dynamic_cast<ObjectNode *
> ( tofilter ) )
202 QString
const related = sourceModel()->data ( nodeindex.parent().parent() ).toString();
204 for ( QString
const & admissible : this_window_config.GraphicalClassesList )
207 admissible.toStdString() );
226 QString::fromStdString ( obj.class_name() ) ) )
229 auto found = [&obj, classnode] (
int i )
231 return obj.UID() == classnode->GetChild ( i )->GetData ( 0 ).toString().toStdString();
235 int const childs = classnode->ChildCount();
237 for ( ; i < childs and not found ( i ); ++i )
240 return i == childs ? QModelIndex() : index ( i, 0, QModelIndex() );
243 return QModelIndex();
253 if ( index.isValid() )
255 this->removeRows ( index.row(), 1, index.parent() );
#define TREEMODEL_REMOVE_ROWS_DEF(classname)
static cptr< datahandler > gethandler()
static cptr< ui::config::info > guiconfig()
void model_common_connections()
treenode * getnode(const QModelIndex &index) const
bool lessThan(const QModelIndex &left, const QModelIndex &right) const
bool ApplyDefaultFilter(int source_row, const QModelIndex &source_parent) const
bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
subtree_proxy(const QString &Name, const QStringList &Default, QObject *parent=nullptr)
Including DBE.
bool ApplyUserFilter(int source_row, const QModelIndex &source_parent) const
QVariant data(const type_index &index, int role=Qt::DisplayRole) const override
type_index getindex(treenode *NodeItem, type_index const &RootIndex=QModelIndex()) const
type_datum * getnode(const type_index &index) const override
type_index index(int row, int column, const type_index &parent) const override
#define MODEL_COMMON_INTERFACE_LOOKUP_IMPL(classname)
#define MODEL_COMMON_INTERFACE_RENAME_THAT_OBJ_IMPL(classname)
#define MODEL_COMMON_INTERFACE_UPDATE_THAT_OBJ_IMPL(classname)
#define MODEL_COMMON_INTERFACE_DELETE_THAT_OBJ_IMPL(classname)
#define MODEL_COMMON_INTERFACE_SLOTS_DEF(classname)
#define MODEL_COMMON_INTERFACE_CREATE_THAT_OBJ_IMPL(classname)
QString DatabaseClassName
QStringList DerivedClasses
bool ShowAllRelationships
QStringList Relationships
virtual type_class_info getclass(type_index const &index) const =0
virtual type_object_ref getobject(type_index const &index) const =0
virtual QAbstractItemModel * ReturnSourceModel() const =0