1717
1818#include < QTextEdit>
1919#include < QProgressBar>
20- #include < QDesktopWidget>
2120#include < QFileDialog>
2221#include < QUrl>
22+ #include < QRegularExpression>
2323#if QT_VERSION >= 0x050000
2424#include < QStandardPaths>
2525#else
@@ -213,139 +213,136 @@ void CheckerWindow::create_parsespeed_options(QString& parsespeed)
213213// ---------------------------------------------------------------------------
214214void CheckerWindow::add_policy_to_html_selection (QString& policies, QString& html, const QString& selector)
215215{
216- QRegExp reg (" class=\" policyList form-control\" >" );
216+ QRegularExpression reg (" class=\" policyList form-control\" >" , QRegularExpression::InvertedGreedinessOption );
217217 int pos = html.indexOf (selector);
218218
219- reg.setMinimal (true );
220-
221219 if (pos == -1 )
222220 return ;
223221
224- if ((pos = reg.indexIn (html, pos)) != -1 )
222+ QRegularExpressionMatch match = reg.match (html, pos);
223+ if ((pos = match.capturedStart ()) != -1 )
225224 {
226- pos += reg. matchedLength ();
225+ pos += match. capturedLength ();
227226 html.insert (pos, policies);
228227 }
229228}
230229
231230// ---------------------------------------------------------------------------
232231void CheckerWindow::add_display_to_html_selection (QString& displays, QString& html, const QString& selector)
233232{
234- QRegExp reg (" class=\" displayList form-control\" >" );
235- reg.setMinimal (true );
233+ QRegularExpression reg (" class=\" displayList form-control\" >" , QRegularExpression::InvertedGreedinessOption);
236234
237235 int pos = html.indexOf (selector);
238236 if (pos == -1 )
239237 return ;
240238
241- if ((pos = reg.indexIn (html, pos)) != -1 )
239+ QRegularExpressionMatch match = reg.match (html, pos);
240+ if ((pos = match.capturedStart ()) != -1 )
242241 {
243- pos += reg. matchedLength ();
242+ pos += match. capturedLength ();
244243 html.insert (pos, displays);
245244 }
246245}
247246
248247// ---------------------------------------------------------------------------
249248void CheckerWindow::add_verbosity_to_html_selection (QString& verbosity, QString& html, const QString& selector)
250249{
251- QRegExp reg (" class=\" verbosityList form-control\" >" );
252- reg.setMinimal (true );
250+ QRegularExpression reg (" class=\" verbosityList form-control\" >" , QRegularExpression::InvertedGreedinessOption);
253251
254252 int pos = html.indexOf (selector);
255253 if (pos == -1 )
256254 return ;
257255
258- if ((pos = reg.indexIn (html, pos)) != -1 )
256+ QRegularExpressionMatch match = reg.match (html, pos);
257+ if ((pos = match.capturedStart ()) != -1 )
259258 {
260- pos += reg. matchedLength ();
259+ pos += match. capturedLength ();
261260 html.insert (pos, verbosity);
262261 }
263262}
264263
265264// ---------------------------------------------------------------------------
266265void CheckerWindow::add_parsespeed_to_html_selection (QString& parsespeed, QString& html, const QString& selector)
267266{
268- QRegExp reg (" class=\" parsespeedList form-control\" >" );
269- reg.setMinimal (true );
267+ QRegularExpression reg (" class=\" parsespeedList form-control\" >" , QRegularExpression::InvertedGreedinessOption);
270268
271269 int pos = html.indexOf (selector);
272270 if (pos == -1 )
273271 return ;
274272
275- if ((pos = reg.indexIn (html, pos)) != -1 )
273+ QRegularExpressionMatch match = reg.match (html, pos);
274+ if ((pos = match.capturedStart ()) != -1 )
276275 {
277- pos += reg. matchedLength ();
276+ pos += match. capturedLength ();
278277 html.insert (pos, parsespeed);
279278 }
280279}
281280
282281// ---------------------------------------------------------------------------
283282void CheckerWindow::load_include_in_template (QString& html)
284283{
285- QRegExp reg (" \\ {\\ {[\\ s]+include\\ ('AppBundle:(\\ w+):(\\ w+).html.twig'(,[\\ s]*\\ { '\\ w+':[\\ s]*\\ w+[\\ s]*\\ })?\\ )[\\ s]\\ }\\ }" );
284+ QRegularExpression reg (" \\ {\\ {[\\ s]+include\\ ('AppBundle:(\\ w+):(\\ w+).html.twig'(,[\\ s]*\\ { '\\ w+':[\\ s]*\\ w+[\\ s]*\\ })?\\ )[\\ s]\\ }\\ }" );
285+ QRegularExpressionMatch match;
286286 int pos = 0 ;
287287
288- while ((pos = reg.indexIn (html, pos)) != -1 )
288+ while ((pos = (match = reg.match (html, pos)). capturedStart ( )) != -1 )
289289 {
290- QString app = reg. cap (1 );
291- QString module = reg. cap (2 );
290+ QString app = match. captured (1 );
291+ QString module = match. captured (2 );
292292 if (app == " Default" && module == " quotaExceeded" )
293293 {
294- html.replace (pos, reg. matchedLength (), " " );
294+ html.replace (match. capturedStart (), match. capturedLength (), " " );
295295 continue ;
296296 }
297- html.replace (pos, reg. matchedLength (), " " );
297+ html.replace (match. capturedStart (), match. capturedLength (), " " );
298298 pos = 0 ;
299299 }
300300}
301301
302302// ---------------------------------------------------------------------------
303303void CheckerWindow::remove_element_in_template (QString& html)
304304{
305- QRegExp reg (" \\ {% (.*) %\\ }" );
306- int pos = 0 ;
307-
308- reg.setMinimal (true );
309- while ((pos = reg.indexIn (html, pos)) != -1 )
310- html.replace (pos, reg.matchedLength (), " " );
305+ QRegularExpression reg (" \\ {% (.*) %\\ }" , QRegularExpression::InvertedGreedinessOption);
306+ html.replace (reg, " " );
311307}
312308
313309// ---------------------------------------------------------------------------
314310void CheckerWindow::change_collapse_form (QString& html)
315311{
316- QRegExp reg (" class=\" panel-collapse collapse in\" " );
317- int pos = 0 ;
318-
319- while ((pos = reg.indexIn (html, pos)) != -1 )
320- html.replace (pos, reg.matchedLength (), " class=\" panel-collapse collapse\" " );
312+ QRegularExpression reg (" class=\" panel-collapse collapse in\" " );
313+ html.replace (reg, " class=\" panel-collapse collapse\" " );
321314}
322315
323316// ---------------------------------------------------------------------------
324317void CheckerWindow::load_form_in_template (QString& html)
325318{
326- QRegExp reg (" \\ {\\ {[\\ s]+form\\ ((\\ w+)\\ )[\\ s]\\ }\\ }" );
327- int pos = 0 ;
319+ QRegularExpression reg (" \\ {\\ {[\\ s]+form\\ ((\\ w+)\\ )[\\ s]\\ }\\ }" );
320+ QRegularExpressionMatch match ;
328321
329322 bool has_libcurl = main_window->mil_has_curl_enabled ();
330- while ((pos = reg.indexIn (html, pos)) != -1 )
323+
324+ int pos = 0 ;
325+ while ((pos = (match = reg.match (html)).capturedStart ()) != -1 )
331326 {
332- QString value = reg. cap (1 );
327+ QString value = match. captured (1 );
333328 if (value == " formUpload" )
334- html.replace (pos, reg.matchedLength (), create_form_upload ());
329+ {
330+ html.replace (match.capturedStart (), match.capturedLength (), create_form_upload ());
331+ }
335332 else if (value == " formOnline" )
336333 {
337334 if (has_libcurl)
338- html.replace (pos, reg. matchedLength (), create_form_online ());
335+ html.replace (match. capturedStart (), match. capturedLength (), create_form_online ());
339336 else
340337 {
341338 remove_form_online (pos, html);
342- remove_li_online (pos, html);
339+ remove_li_online (html);
343340 }
344341 }
345342 else if (value == " formRepository" )
346- html.replace (pos, reg. matchedLength (), create_form_repository ());
343+ html.replace (match. capturedStart (), match. capturedLength (), create_form_repository ());
347344 else
348- html.replace (pos, reg. matchedLength (), " " );
345+ html.replace (match. capturedStart (), match. capturedLength (), " " );
349346 }
350347
351348 change_collapse_form (html);
@@ -413,40 +410,31 @@ QString CheckerWindow::create_form_online()
413410void CheckerWindow::remove_form_online (int pos, QString& html)
414411{
415412 int start_div_pos = pos;
416- QRegExp reg (" <div role=\" tabpanel\" class=\" tab-pane panel col-md-12\" id=\" url\" >" );
417- reg.setMinimal (true );
418- start_div_pos = reg.lastIndexIn (html, start_div_pos);
413+ start_div_pos = html.lastIndexOf (" <div role=\" tabpanel\" class=\" tab-pane panel col-md-12\" id=\" url\" >" , start_div_pos);
419414
420- reg = QRegExp (" </div>" );
421- reg.setMinimal (true );
422- int end_div_pos = pos;
423- if ((end_div_pos = reg.indexIn (html, end_div_pos)) != -1 )
424- end_div_pos += reg.matchedLength ();
415+ int end_div_pos = html.indexOf (" </div>" , start_div_pos);
416+ if (end_div_pos != -1 )
417+ end_div_pos += 6 ;
425418
426419 if (end_div_pos != -1 && start_div_pos != -1 )
427420 html.remove (start_div_pos, end_div_pos - start_div_pos);
428421}
429422
430423// ---------------------------------------------------------------------------
431- void CheckerWindow::remove_li_online (int & pos, QString& html)
424+ void CheckerWindow::remove_li_online (QString& html)
432425{
433- QRegExp reg (" <li role=\" presentation\" class=\"\" ><a href=\" #url\" " );
434- reg.setMinimal (true );
435- int start = reg.lastIndexIn (html);
426+ int start = html.lastIndexOf (" <li role=\" presentation\" class=\"\" ><a href=\" #url\" " );
436427 if (start == -1 )
437428 return ;
438429
439- reg = QRegExp (" </li>" );
440- reg.setMinimal (true );
441- int end_pos = -1 ;
442- if ((end_pos = reg.indexIn (html, start)) != -1 )
443- end_pos += reg.matchedLength ();
430+ int end_pos = html.indexOf (" </li>" , start);
431+ if (end_pos != -1 )
432+ end_pos += 5 ;
444433
445434 if (end_pos != -1 && start != -1 )
446435 {
447436 int len = end_pos - start;
448437 html.remove (start, len);
449- pos -= len;
450438 }
451439}
452440
@@ -503,23 +491,24 @@ void CheckerWindow::create_html_checker(QString& checker)
503491// ---------------------------------------------------------------------------
504492void CheckerWindow::change_checker_in_template (const QString& checker, QString& html)
505493{
506- QRegExp reg (" \\ {% block checker %\\ }\\ {% endblock %\\ }" );
494+ QRegularExpression reg (" \\ {% block checker %\\ }\\ {% endblock %\\ }" , QRegularExpression::InvertedGreedinessOption );
507495 int pos = 0 ;
508496
509- reg.setMinimal (true );
510- while ((pos = reg.indexIn (html, pos)) != -1 )
511- html.replace (pos, reg.matchedLength (), checker);
497+ QRegularExpressionMatch match;
498+ while ((match = reg.match (html, pos)).hasMatch ())
499+ {
500+ pos = match.capturedStart ();
501+ html.replace (pos, match.capturedLength (), checker);
502+ }
512503}
513504
514505// ---------------------------------------------------------------------------
515506void CheckerWindow::change_body_script_in_template (QString& html)
516507{
517- QRegExp reg (" \\ {\\ { QT_SCRIPTS \\ }\\ }" );
508+ QRegularExpression reg (" \\ {\\ { QT_SCRIPTS \\ }\\ }" , QRegularExpression::InvertedGreedinessOption );
518509 QString script;
519510 int pos = 0 ;
520511
521- reg.setMinimal (true );
522-
523512#if defined(WEB_MACHINE_KIT)
524513 script += " <script type=\" text/javascript\" src=\" qrc:/checker/webkit.js\" ></script>\n " ;
525514#elif defined(WEB_MACHINE_ENGINE)
@@ -539,25 +528,26 @@ void CheckerWindow::change_body_script_in_template(QString& html)
539528 " <script type=\" text/javascript\" src=\" qrc:/utils/text.js\" ></script>\n "
540529 " <script type=\" text/javascript\" src=\" qrc:/menu.js\" ></script>\n " ;
541530
542- if ((pos = reg.indexIn (html, pos)) != -1 )
543- html.replace (pos, reg.matchedLength (), script);
531+ QRegularExpressionMatch match = reg.match (html, pos);
532+ if ((pos = match.capturedStart ()) != -1 )
533+ html.replace (pos, match.capturedLength (), script);
544534}
545535
546536// ---------------------------------------------------------------------------
547537void CheckerWindow::set_webmachine_script_in_template (QString& html)
548538{
549- QRegExp reg (" \\ {\\ {[\\ s]+webmachine[\\ s]\\ }\\ }" );
539+ QRegularExpression reg (" \\ {\\ {[\\ s]+webmachine[\\ s]\\ }\\ }" , QRegularExpression::InvertedGreedinessOption );
550540 QString machine;
551541 int pos = 0 ;
552542
553- reg.setMinimal (true );
554543#if defined(WEB_MACHINE_KIT)
555544 machine = " WEB_MACHINE_KIT" ;
556545#elif defined(WEB_MACHINE_ENGINE)
557546 machine = " WEB_MACHINE_ENGINE" ;
558547#endif
559- if ((pos = reg.indexIn (html, pos)) != -1 )
560- html.replace (pos, reg.matchedLength (), machine);
548+ QRegularExpressionMatch match = reg.match (html, pos);
549+ if ((pos = match.capturedStart ()) != -1 )
550+ html.replace (pos, match.capturedLength (), machine);
561551}
562552
563553// ---------------------------------------------------------------------------
0 commit comments