diff options
Diffstat (limited to 'examples/widgets/tools/regularexpression')
4 files changed, 162 insertions, 194 deletions
diff --git a/examples/widgets/tools/regularexpression/CMakeLists.txt b/examples/widgets/tools/regularexpression/CMakeLists.txt new file mode 100644 index 0000000000..af7701f1cf --- /dev/null +++ b/examples/widgets/tools/regularexpression/CMakeLists.txt @@ -0,0 +1,50 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +cmake_minimum_required(VERSION 3.16) +project(regularexpression LANGUAGES CXX) + +find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) + +qt_standard_project_setup() + +qt_add_executable(regularexpression + main.cpp + regularexpressiondialog.cpp regularexpressiondialog.h +) + +set_target_properties(regularexpression PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) + +target_link_libraries(regularexpression PRIVATE + Qt6::Core + Qt6::Gui + Qt6::Widgets +) + +# Resources: +set(regularexpression_resource_files + "images/copy.png" +) + +qt_add_resources(regularexpression "regularexpression" + PREFIX + "/" + FILES + ${regularexpression_resource_files} +) + +install(TARGETS regularexpression + BUNDLE DESTINATION . + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +) + +qt_generate_deploy_app_script( + TARGET regularexpression + OUTPUT_SCRIPT deploy_script + NO_UNSUPPORTED_PLATFORM_ERROR +) +install(SCRIPT ${deploy_script}) diff --git a/examples/widgets/tools/regularexpression/main.cpp b/examples/widgets/tools/regularexpression/main.cpp index 4b6b210226..460aa892c0 100644 --- a/examples/widgets/tools/regularexpression/main.cpp +++ b/examples/widgets/tools/regularexpression/main.cpp @@ -1,52 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause #include "regularexpressiondialog.h" diff --git a/examples/widgets/tools/regularexpression/regularexpressiondialog.cpp b/examples/widgets/tools/regularexpression/regularexpressiondialog.cpp index 6398098eee..6ba781731f 100644 --- a/examples/widgets/tools/regularexpression/regularexpressiondialog.cpp +++ b/examples/widgets/tools/regularexpression/regularexpressiondialog.cpp @@ -1,54 +1,7 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> -** Copyright (C) 2016 Samuel Gaist <samuel.gaist@edeltech.ch> -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> +// Copyright (C) 2016 Samuel Gaist <samuel.gaist@edeltech.ch> +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause #include "regularexpressiondialog.h" @@ -66,12 +19,13 @@ #include <QAction> #include <QClipboard> #include <QContextMenuEvent> +#include <QFont> +#include <QFontDatabase> #include <QHBoxLayout> #include <QGridLayout> #include <QFormLayout> -#include <QRegularExpression> #include <QRegularExpressionMatch> #include <QRegularExpressionMatchIterator> @@ -106,6 +60,20 @@ static QString codeToPattern(QString code) return code; } +static QFrame *createHorizontalSeparator() +{ + auto *result = new QFrame; + result->setFrameStyle(QFrame::HLine | QFrame::Sunken); + return result; +} + +static QFrame *createVerticalSeparator() +{ + auto *result = new QFrame; + result->setFrameStyle(QFrame::VLine | QFrame::Sunken); + return result; +} + class PatternLineEdit : public QLineEdit { Q_OBJECT @@ -219,13 +187,11 @@ RegularExpressionDialog::RegularExpressionDialog(QWidget *parent) connect(invertedGreedinessOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh); connect(dontCaptureOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh); connect(useUnicodePropertiesOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh); - connect(optimizeOnFirstUsageOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh); - connect(dontAutomaticallyOptimizeOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh); - connect(offsetSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), + connect(offsetSpinBox, &QSpinBox::valueChanged, this, &RegularExpressionDialog::refresh); - connect(matchTypeComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), + connect(matchTypeComboBox, &QComboBox::currentIndexChanged, this, &RegularExpressionDialog::refresh); connect(anchoredMatchOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh); @@ -241,6 +207,7 @@ void RegularExpressionDialog::setResultUiEnabled(bool enabled) { matchDetailsTreeWidget->setEnabled(enabled); namedGroupsTreeWidget->setEnabled(enabled); + replacementTextEdit->setEnabled(enabled); } static void setTextColor(QWidget *widget, const QColor &color) @@ -266,6 +233,7 @@ void RegularExpressionDialog::refresh() matchDetailsTreeWidget->clear(); namedGroupsTreeWidget->clear(); regexpStatusLabel->setText(QString()); + replacementTextEdit->clear(); if (pattern.isEmpty()) { setResultUiEnabled(false); @@ -273,12 +241,12 @@ void RegularExpressionDialog::refresh() return; } - QRegularExpression rx(pattern); - if (!rx.isValid()) { + regularExpression.setPattern(pattern); + if (!regularExpression.isValid()) { setTextColor(patternLineEdit, Qt::red); regexpStatusLabel->setText(tr("Invalid: syntax error at position %1 (%2)") - .arg(rx.patternErrorOffset()) - .arg(rx.errorString())); + .arg(regularExpression.patternErrorOffset()) + .arg(regularExpression.errorString())); setResultUiEnabled(false); setUpdatesEnabled(true); return; @@ -291,7 +259,7 @@ void RegularExpressionDialog::refresh() QRegularExpression::MatchOptions matchOptions = QRegularExpression::NoMatchOption; if (anchoredMatchOptionCheckBox->isChecked()) - matchOptions |= QRegularExpression::AnchoredMatchOption; + matchOptions |= QRegularExpression::AnchorAtOffsetMatchOption; if (dontCheckSubjectStringMatchOptionCheckBox->isChecked()) matchOptions |= QRegularExpression::DontCheckSubjectStringMatchOption; @@ -309,16 +277,14 @@ void RegularExpressionDialog::refresh() patternOptions |= QRegularExpression::DontCaptureOption; if (useUnicodePropertiesOptionCheckBox->isChecked()) patternOptions |= QRegularExpression::UseUnicodePropertiesOption; - if (optimizeOnFirstUsageOptionCheckBox->isChecked()) - patternOptions |= QRegularExpression::OptimizeOnFirstUsageOption; - if (dontAutomaticallyOptimizeOptionCheckBox->isChecked()) - patternOptions |= QRegularExpression::DontAutomaticallyOptimizeOption; - rx.setPatternOptions(patternOptions); + regularExpression.setPatternOptions(patternOptions); - const int capturingGroupsCount = rx.captureCount() + 1; + const int capturingGroupsCount = regularExpression.captureCount() + 1; - QRegularExpressionMatchIterator iterator = rx.globalMatch(text, offsetSpinBox->value(), matchType, matchOptions); + const int offset = offsetSpinBox->value(); + QRegularExpressionMatchIterator iterator = + regularExpression.globalMatch(text, offset, matchType, matchOptions); int i = 0; while (iterator.hasNext()) { @@ -340,7 +306,7 @@ void RegularExpressionDialog::refresh() regexpStatusLabel->setText(tr("Valid")); - const QStringList namedCaptureGroups = rx.namedCaptureGroups(); + const QStringList namedCaptureGroups = regularExpression.namedCaptureGroups(); for (int i = 0; i < namedCaptureGroups.size(); ++i) { const QString currentNamedCaptureGroup = namedCaptureGroups.at(i); @@ -349,28 +315,44 @@ void RegularExpressionDialog::refresh() namedGroupItem->setText(1, currentNamedCaptureGroup.isNull() ? tr("<no name>") : currentNamedCaptureGroup); } + updateReplacement(); setUpdatesEnabled(true); } -void RegularExpressionDialog::setupUi() +void RegularExpressionDialog::updateReplacement() { - QWidget *leftHalfContainer = setupLeftUi(); - - QFrame *verticalSeparator = new QFrame; - verticalSeparator->setFrameStyle(QFrame::VLine | QFrame::Sunken); - - QWidget *rightHalfContainer = setupRightUi(); + replacementTextEdit->clear(); + const QString &replacement = replacementLineEdit->text(); + if (!regularExpression.isValid() || replacement.isEmpty()) + return; - QHBoxLayout *mainLayout = new QHBoxLayout; - mainLayout->addWidget(leftHalfContainer); - mainLayout->addWidget(verticalSeparator); - mainLayout->addWidget(rightHalfContainer); + QString replaced = subjectTextEdit->toPlainText(); + replaced.replace(regularExpression, replacement); + replacementTextEdit->setPlainText(replaced); +} - setLayout(mainLayout); +void RegularExpressionDialog::setupUi() +{ + auto *mainLayout = new QVBoxLayout(this); + mainLayout->addWidget(setupTextUi()); + mainLayout->addWidget(createHorizontalSeparator()); + auto *horizontalLayout = new QHBoxLayout(); + mainLayout->addLayout(horizontalLayout); + horizontalLayout->addWidget(setupOptionsUi()); + horizontalLayout->addWidget(createVerticalSeparator()); + horizontalLayout->addWidget(setupInfoUi()); + + auto font = QFontDatabase::systemFont(QFontDatabase::FixedFont); + patternLineEdit->setFont(font); + rawStringLiteralLineEdit->setFont(font); + escapedPatternLineEdit->setFont(font); + replacementLineEdit->setFont(font); + subjectTextEdit->setFont(font); + replacementTextEdit->setFont(font); } -QWidget *RegularExpressionDialog::setupLeftUi() +QWidget *RegularExpressionDialog::setupTextUi() { QWidget *container = new QWidget; @@ -393,6 +375,35 @@ QWidget *RegularExpressionDialog::setupLeftUi() subjectTextEdit = new QPlainTextEdit; layout->addRow(tr("&Subject text:"), subjectTextEdit); + layout->addRow(createHorizontalSeparator()); + + QLabel *replaceLabel = new QLabel(tr("<h3>Replacement")); + layout->addRow(replaceLabel); + + replacementLineEdit = new QLineEdit; + replacementLineEdit->setClearButtonEnabled(true); + connect(replacementLineEdit, &QLineEdit::textChanged, this, + &RegularExpressionDialog::updateReplacement); + layout->addRow(tr("&Replace by:"), replacementLineEdit); + replacementLineEdit->setToolTip(tr("Use \\1, \\2... as placeholders for the captured groups.")); + + replacementTextEdit = new QPlainTextEdit; + replacementTextEdit->setReadOnly(true); + layout->addRow(tr("Result:"), replacementTextEdit); + + return container; +} + +QWidget *RegularExpressionDialog::setupOptionsUi() +{ + QWidget *container = new QWidget; + + QFormLayout *layout = new QFormLayout(container); + layout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow); + layout->setContentsMargins(QMargins()); + + layout->addRow(new QLabel(tr("<h3>Options</h3>"))); + caseInsensitiveOptionCheckBox = new QCheckBox(tr("Case insensitive (/i)")); dotMatchesEverythingOptionCheckBox = new QCheckBox(tr("Dot matches everything (/s)")); multilineOptionCheckBox = new QCheckBox(tr("Multiline (/m)")); @@ -400,8 +411,6 @@ QWidget *RegularExpressionDialog::setupLeftUi() invertedGreedinessOptionCheckBox = new QCheckBox(tr("Inverted greediness")); dontCaptureOptionCheckBox = new QCheckBox(tr("Don't capture")); useUnicodePropertiesOptionCheckBox = new QCheckBox(tr("Use unicode properties (/u)")); - optimizeOnFirstUsageOptionCheckBox = new QCheckBox(tr("Optimize on first usage")); - dontAutomaticallyOptimizeOptionCheckBox = new QCheckBox(tr("Don't automatically optimize")); QGridLayout *patternOptionsCheckBoxLayout = new QGridLayout; int gridRow = 0; @@ -415,9 +424,6 @@ QWidget *RegularExpressionDialog::setupLeftUi() patternOptionsCheckBoxLayout->addWidget(dontCaptureOptionCheckBox, gridRow, 2); ++gridRow; patternOptionsCheckBoxLayout->addWidget(useUnicodePropertiesOptionCheckBox, gridRow, 1); - patternOptionsCheckBoxLayout->addWidget(optimizeOnFirstUsageOptionCheckBox, gridRow, 2); - ++gridRow; - patternOptionsCheckBoxLayout->addWidget(dontAutomaticallyOptimizeOptionCheckBox, gridRow, 1); layout->addRow(tr("Pattern options:"), patternOptionsCheckBoxLayout); @@ -442,7 +448,7 @@ QWidget *RegularExpressionDialog::setupLeftUi() return container; } -QWidget *RegularExpressionDialog::setupRightUi() +QWidget *RegularExpressionDialog::setupInfoUi() { QWidget *container = new QWidget; @@ -458,9 +464,7 @@ QWidget *RegularExpressionDialog::setupRightUi() matchDetailsTreeWidget->setSizeAdjustPolicy(QTreeWidget::AdjustToContents); layout->addRow(tr("Match details:"), matchDetailsTreeWidget); - QFrame *horizontalSeparator = new QFrame; - horizontalSeparator->setFrameStyle(QFrame::HLine | QFrame::Sunken); - layout->addRow(horizontalSeparator); + layout->addRow(createHorizontalSeparator()); QLabel *regexpInfoLabel = new QLabel(tr("<h3>Regular expression information</h3>")); layout->addRow(regexpInfoLabel); diff --git a/examples/widgets/tools/regularexpression/regularexpressiondialog.h b/examples/widgets/tools/regularexpression/regularexpressiondialog.h index 8fe85afe56..6924cc0c7b 100644 --- a/examples/widgets/tools/regularexpression/regularexpressiondialog.h +++ b/examples/widgets/tools/regularexpression/regularexpressiondialog.h @@ -1,59 +1,13 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> -** Copyright (C) 2016 Samuel Gaist <samuel.gaist@edeltech.ch> -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> +// Copyright (C) 2016 Samuel Gaist <samuel.gaist@edeltech.ch> +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause #ifndef REGULAREXPRESSIONDIALOG_H #define REGULAREXPRESSIONDIALOG_H #include <QDialog> +#include <QRegularExpression> QT_BEGIN_NAMESPACE class QCheckBox; @@ -72,18 +26,25 @@ class RegularExpressionDialog : public QDialog public: RegularExpressionDialog(QWidget *parent = nullptr); +private slots: + void updateReplacement(); + private: void refresh(); void setupUi(); QWidget *setupLeftUi(); - QWidget *setupRightUi(); + QWidget *setupTextUi(); + QWidget *setupOptionsUi(); + QWidget *setupInfoUi(); void setResultUiEnabled(bool enabled); QLineEdit *patternLineEdit; QLineEdit *rawStringLiteralLineEdit; QLineEdit *escapedPatternLineEdit; + QLineEdit *replacementLineEdit; QPlainTextEdit *subjectTextEdit; + QPlainTextEdit *replacementTextEdit; QCheckBox *caseInsensitiveOptionCheckBox; QCheckBox *dotMatchesEverythingOptionCheckBox; @@ -92,8 +53,6 @@ private: QCheckBox *invertedGreedinessOptionCheckBox; QCheckBox *dontCaptureOptionCheckBox; QCheckBox *useUnicodePropertiesOptionCheckBox; - QCheckBox *optimizeOnFirstUsageOptionCheckBox; - QCheckBox *dontAutomaticallyOptimizeOptionCheckBox; QSpinBox *offsetSpinBox; @@ -106,6 +65,8 @@ private: QLabel *regexpStatusLabel; QTreeWidget *namedGroupsTreeWidget; + + QRegularExpression regularExpression; }; #endif |