Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
finddialog.cpp
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4/* TRANSLATOR FindDialog
5
6 Choose Edit|Find from the menu bar or press Ctrl+F to pop up the
7 Find dialog
8*/
9
10#include "finddialog.h"
11
13
16{
17 setupUi(this);
18
19 statusFilter->addItem(tr("All"), -1);
20 statusFilter->addItem(tr("Finished"), TranslatorMessage::Finished);
21 statusFilter->addItem(tr("Unfinished"), TranslatorMessage::Unfinished);
22
23 findNxt->setEnabled(false);
24
25 connect(findNxt, &QAbstractButton::clicked,
26 this, &FindDialog::emitFindNext);
27 connect(useRegExp, &QCheckBox::checkStateChanged,
28 this, &FindDialog::verify);
29 connect(led, &QLineEdit::textChanged,
30 this, &FindDialog::verify);
31 connect(statusFilter, &QComboBox::currentIndexChanged,
32 this, &FindDialog::statusFilterChanged);
33
34 led->setFocus();
35}
36
37void FindDialog::verify()
38{
39 bool validRegExp = true;
40 if (useRegExp->isChecked() && !led->text().isEmpty()) {
41 m_regExp.setPattern(led->text());
42 validRegExp = m_regExp.isValid();
43 }
44 if (validRegExp && m_redText) {
45 QPalette p = led->palette();
46 p.setColor(QPalette::Text, palette().color(QPalette::Text));
47 led->setPalette(p);
48 } else if (!validRegExp && !m_redText) {
49 QPalette p = led->palette();
50 p.setColor(QPalette::Text, Qt::red);
51 led->setPalette(p);
52 }
53 m_redText = !validRegExp;
54 findNxt->setEnabled(!led->text().isEmpty() && validRegExp);
55}
56
57void FindDialog::statusFilterChanged()
58{
59 int newStateFilter = statusFilter->currentData().toInt();
60 if (newStateFilter != -1) {
61 if (m_lastStateFilter == -1)
62 m_storedSkipObsolete = skipObsolete->isChecked();
63 skipObsolete->setEnabled(false);
64 skipObsolete->setChecked(true);
65 } else {
66 skipObsolete->setEnabled(true);
67 skipObsolete->setChecked(m_storedSkipObsolete);
68 }
69 m_lastStateFilter = newStateFilter;
70}
71
72void FindDialog::emitFindNext()
73{
75 if (sourceText != 0)
76 where =
77 DataModel::FindLocation(
78 (sourceText->isChecked() ? DataModel::SourceText : 0) |
79 (translations->isChecked() ? DataModel::Translations : 0) |
80 (comments->isChecked() ? DataModel::Comments : 0));
81 else
83
84 FindOptions options((matchCase->isChecked() ? FindOption::MatchCase : 0) |
85 (ignoreAccelerators->isChecked() ? FindDialog::IgnoreAccelerators : 0) |
86 (skipObsolete->isChecked() ? FindDialog::SkipObsolete : 0) |
87 (useRegExp->isChecked() ? FindDialog::UseRegExp : 0));
88 emit findNext(led->text(), where, options, statusFilter->currentData().toInt());
89 led->selectAll();
90}
91
92void FindDialog::find()
93{
94 led->setFocus();
95
96 show();
97 activateWindow();
98 raise();
99}
100
101QT_END_NAMESPACE
QObject * parent
Definition qobject.h:73
The QWidget class is the base class of all user interface objects.
Definition qwidget.h:99