@@ -81,7 +81,8 @@ RegExpToFA::RegExpToFA(AlgorithmWidget* _algorithm_widget, modes _mode, RegExpWi
81
81
connect (this ->algorithm_widget ,SIGNAL (stopPressed ()),this ,SLOT (stop ()));
82
82
connect (this ->algorithm_widget ,SIGNAL (prewPressed ()),this ,SLOT (prewStep ()));
83
83
connect (this ->algorithm_widget ,SIGNAL (nextPressed ()),this ,SLOT (nextStep ()));
84
-
84
+ connect (this ->re_widget ,SIGNAL (itemClicked (QModelIndex)),this ,SLOT (selectRegExp (QModelIndex)));
85
+ connect (this ->center_fa_widget ,SIGNAL (FA_changed (FiniteAutomata*))
85
86
}
86
87
87
88
@@ -95,6 +96,30 @@ void RegExpToFA::setRE(RegExp* _re)
95
96
// computeSolution();
96
97
}
97
98
99
+ void RegExpToFA::selectRegExp (QModelIndex index)
100
+ {
101
+ RegExpNode* node = re_widget->treeModel ->nodeFromIndex (index);
102
+
103
+ QList<RegExpNode*> children = node->children ;
104
+ if (children.count () > 0 )
105
+ {
106
+ left_fa_widget->setFA (new FiniteAutomata (children.at (0 )->user_FA ));
107
+ }
108
+ else
109
+ {
110
+ left_fa_widget->setFA (new FiniteAutomata ());
111
+ }
112
+ if (children.count () > 1 )
113
+ {
114
+ right_fa_widget->setFA (new FiniteAutomata (children.at (1 )->user_FA ));
115
+ }
116
+ else
117
+ {
118
+ right_fa_widget->setFA (new FiniteAutomata ());
119
+ }
120
+ center_fa_widget->setFA (new FiniteAutomata (node->user_FA ));
121
+ }
122
+
98
123
void RegExpToFA::computeSolution ()
99
124
{
100
125
while (nodesToProcede.count () != 0 )
@@ -171,21 +196,21 @@ void RegExpToFA::nextStep()
171
196
qDebug () << " Pocet synu: " << children.count ();
172
197
if (children.count () > 0 )
173
198
{
174
- left_fa_widget->setFA (& (children.at (0 )->user_FA ));
199
+ left_fa_widget->setFA (new FiniteAutomata (children.at (0 )->user_FA ));
175
200
}
176
201
else
177
202
{
178
203
left_fa_widget->setFA (new FiniteAutomata ());
179
204
}
180
205
if (children.count () > 1 )
181
206
{
182
- right_fa_widget->setFA (& (children.at (1 )->user_FA ));
207
+ right_fa_widget->setFA (new FiniteAutomata (children.at (1 )->user_FA ));
183
208
}
184
209
else
185
210
{
186
211
right_fa_widget->setFA (new FiniteAutomata ());
187
212
}
188
- center_fa_widget->setFA (& (processedNode->user_FA ));
213
+ center_fa_widget->setFA (new FiniteAutomata (processedNode->user_FA ));
189
214
190
215
// set and update node icon
191
216
processedNode->state = RegExpNode::CORRECT;
@@ -197,6 +222,7 @@ void RegExpToFA::nextStep()
197
222
else
198
223
{
199
224
// qDebug() << "Nodes to precesed empty!";
225
+ timer->stop ();
200
226
}
201
227
202
228
0 commit comments