Line data Source code
1 : #include "dbe/datahandler.hpp"
2 : #include "dbe/treenode.hpp"
3 : #include "dbe/dbcontroller.hpp"
4 : #include "dbe/Conversion.hpp"
5 :
6 3 : dbe::datahandler::datahandler()
7 3 : : root ( nullptr )
8 : {
9 3 : }
10 :
11 6 : dbe::datahandler::~datahandler()
12 : {
13 3 : delete root;
14 6 : }
15 :
16 0 : void dbe::datahandler::ResetData()
17 : {
18 0 : delete root;
19 0 : root = nullptr;
20 0 : }
21 :
22 0 : void dbe::datahandler::FetchMore ( const treenode * ClassNode )
23 : {
24 0 : emit FetchMoreData ( ClassNode );
25 0 : }
26 :
27 0 : dbe::treenode * dbe::datahandler::getnode ( std::string const & ClassName ) const
28 : {
29 0 : return getnode ( QString::fromStdString ( ClassName ) );
30 : }
31 :
32 0 : dbe::treenode * dbe::datahandler::getnode ( const QString & ClassName ) const
33 : {
34 0 : int current = 0;
35 0 : int const number_of_childs = root->ChildCount();
36 :
37 0 : for ( ;
38 0 : current != number_of_childs and root->GetChild ( current )->GetData ( 0 ).toString()
39 0 : != ClassName; ++current )
40 : ;
41 :
42 0 : return current == number_of_childs ? nullptr : root->GetChild ( current );
43 : }
44 :
45 0 : dbe::treenode * dbe::datahandler::getnode ( const std::string & ClassName,
46 : const std::string & ObjectName ) const
47 : {
48 0 : return getnode ( QString::fromStdString ( ClassName ),
49 0 : QString::fromStdString ( ObjectName ) );
50 : }
51 :
52 0 : dbe::treenode * dbe::datahandler::getnode ( const QString & ClassName,
53 : const QString & ObjectName ) const
54 : {
55 0 : if ( dbe::treenode * classnode = getnode ( ClassName ) )
56 : {
57 0 : int current = 0;
58 0 : int const number_of_objects = classnode->ChildCount();
59 :
60 0 : for ( ;
61 0 : current < number_of_objects and classnode->GetChild ( current )->GetData ( 0 ).toString()
62 0 : != ObjectName; ++current )
63 : ;
64 :
65 0 : return current == number_of_objects ? nullptr : classnode->GetChild ( current );
66 : }
67 :
68 : return nullptr;
69 : }
70 :
71 0 : dbe::treenode * dbe::datahandler::getnode() const
72 : {
73 0 : return root;
74 : }
75 :
76 0 : dbe::treenode * dbe::datahandler::findchild ( dbe::treenode * const top,
77 : QString const & name )
78 : {
79 0 : QList<dbe::treenode *> childs = top->GetChildren();
80 :
81 0 : for ( dbe::treenode * child : childs )
82 : {
83 0 : if ( QString::fromStdString ( child->GetObject().UID() ) == name )
84 : {
85 0 : return child;
86 : }
87 : }
88 :
89 0 : return nullptr;
90 0 : }
|