Author: craig
Date: Sun Jan 30 14:24:43 2022
New Revision: 24853

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=24853
Log:
Qt6 build fixes, latex QRegExp replacement

Modified:
    trunk/Scribus/scribus/latexhelpers.cpp
    trunk/Scribus/scribus/latexhelpers.h
    trunk/Scribus/scribus/pdflib_core.cpp

Modified: trunk/Scribus/scribus/latexhelpers.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24853&path=/trunk/Scribus/scribus/latexhelpers.cpp
==============================================================================
--- trunk/Scribus/scribus/latexhelpers.cpp      (original)
+++ trunk/Scribus/scribus/latexhelpers.cpp      Sun Jan 30 14:24:43 2022
@@ -42,38 +42,26 @@
 {
        //This is required to fix a Qt incompatibility. See error message below 
for details.
        static bool disable_highlighting = false;
-       if (disable_highlighting) return;
-
-       if (!m_rules) return;
+       if (disable_highlighting)
+               return;
+       if (!m_rules)
+               return;
        foreach (LatexHighlighterRule *rule, *m_rules)
        {
-               int index = text.indexOf(rule->regex);
-               while (index >= 0) {
-                       int length;
-                       if (rule->regex.captureCount() == 0)
-                       {
-                               length = rule->regex.matchedLength();
-                       }
-                       else
-                       {
-                               length = rule->regex.cap(1).length();
-                               index = rule->regex.pos(1);
-                       }
+               QRegularExpressionMatch match = rule->regex.match(text);
+               int n = 0;
+               int index = match.capturedStart(n);
+               while (index>=0)
+               {
+                       int length = match.capturedLength(n);
+                       index = match.capturedStart(n);
                        if (length == 0)
                        {
                                qWarning() << "Highlighter pattern" << 
rule->regex.pattern() << "matched a zero length string. This would lead to an 
infinite loop. Aborting. Please fix this pattern!";
                                break;
                        }
                        setFormat(index, length, rule->format);
-                       
-                       int oldindex = index;
-                       int offset = index + length;
-                       index = text.indexOf(rule->regex, offset);
-                       if (index >= 0 && (index == oldindex || index <= 
offset)) {
-                               qWarning() << QObject::tr("Highlighter error: 
Invalid index returned by Qt's QString.indexOf(). This is a incompatibility 
between different Qt versions and it can only be fixed by recompiling Scribus 
with the same Qt version that is running on this system. Syntax highlighting is 
disabled now, but render frames should continue to work without problems.") << 
"Additional debugging info: old index:" << oldindex << "new index:"<< index << 
"offset:" << offset;
-                               disable_highlighting = true;
-                               return;
-                       }
+                       index = match.capturedStart(++n);
                }
        }
 }
@@ -223,7 +211,7 @@
                        newRule->format.setFontWeight(QFont::Bold);
                newRule->format.setFontUnderline(underline);
                newRule->regex.setPattern(regex);
-               newRule->regex.setMinimal(minimal);
+               
newRule->regex.setPatternOptions(QRegularExpression::InvertedGreedinessOption);
                highlighterRules.append(newRule);
        }
 }

Modified: trunk/Scribus/scribus/latexhelpers.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24853&path=/trunk/Scribus/scribus/latexhelpers.h
==============================================================================
--- trunk/Scribus/scribus/latexhelpers.h        (original)
+++ trunk/Scribus/scribus/latexhelpers.h        Sun Jan 30 14:24:43 2022
@@ -25,6 +25,7 @@
 
 #include <QObject>
 #include <QPointer>
+#include <QRegularExpression>
 #include <QString>
 #include <QStringRef>
 #include <QStringView>
@@ -34,10 +35,10 @@
 class LatexHighlighterRule
 {
        public:
-               LatexHighlighterRule(){multiline=false;}
-               QRegExp regex;
+               LatexHighlighterRule();
+               QRegularExpression regex;
                QTextCharFormat format;
-               bool multiline;
+               bool multiline {false};
 };
 
 class LatexHighlighter : public QSyntaxHighlighter

Modified: trunk/Scribus/scribus/pdflib_core.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24853&path=/trunk/Scribus/scribus/pdflib_core.cpp
==============================================================================
--- trunk/Scribus/scribus/pdflib_core.cpp       (original)
+++ trunk/Scribus/scribus/pdflib_core.cpp       Sun Jan 30 14:24:43 2022
@@ -56,7 +56,6 @@
 #include <QString>
 #include <QTemporaryFile>
 #include <QTextCodec>
-#include <QtXml>
 #include <QUuid>
 
 #include "cmsettings.h"


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to