~oif-team/ubuntu/natty/qt4-x11/xi2.1

« back to all changes in this revision

Viewing changes to doc/html/tools-regexp-regexpdialog-cpp.html

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-08-24 04:09:09 UTC
  • Revision ID: james.westby@ubuntu.com-20050824040909-xmxe9jfr4a0w5671
Tags: upstream-4.0.0
ImportĀ upstreamĀ versionĀ 4.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="iso-8859-1"?>
 
2
<!DOCTYPE html
 
3
    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
 
4
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 
5
<head>
 
6
    <title>Qt 4.0: regexpdialog.cpp Example File (tools/regexp/regexpdialog.cpp)</title>
 
7
    <style>h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; }
 
8
a:link { color: #004faf; text-decoration: none }
 
9
a:visited { color: #672967; text-decoration: none }
 
10
td.postheader { font-family: sans-serif }
 
11
tr.address { font-family: sans-serif }
 
12
body { background: #ffffff; color: black; }</style>
 
13
</head>
 
14
<body>
 
15
<table border="0" cellpadding="0" cellspacing="0" width="100%">
 
16
<tr>
 
17
<td align="left" valign="top" width="32"><img src="images/qt-logo.png" align="left" width="32" height="32" border="0" /></td>
 
18
<td width="1">&nbsp;&nbsp;</td><td class="postheader" valign="center"><a href="index.html"><font color="#004faf">Home</font></a>&nbsp;&middot; <a href="classes.html"><font color="#004faf">All&nbsp;Classes</font></a>&nbsp;&middot; <a href="mainclasses.html"><font color="#004faf">Main&nbsp;Classes</font></a>&nbsp;&middot; <a href="annotated.html"><font color="#004faf">Annotated</font></a>&nbsp;&middot; <a href="groups.html"><font color="#004faf">Grouped&nbsp;Classes</font></a>&nbsp;&middot; <a href="functions.html"><font color="#004faf">Functions</font></a></td>
 
19
<td align="right" valign="top" width="230"><img src="images/trolltech-logo.png" align="right" width="203" height="32" border="0" /></td></tr></table><h1 align="center">regexpdialog.cpp Example File<br /><small><small>tools/regexp/regexpdialog.cpp</small></small></h1>
 
20
<pre>&nbsp;   /****************************************************************************
 
21
    **
 
22
    ** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
 
23
    **
 
24
    ** This file is part of the documentation of the Qt Toolkit.
 
25
    **
 
26
    ** This file may be distributed under the terms of the Q Public License
 
27
** as defined by Trolltech AS of Norway and appearing in the file
 
28
** LICENSE.QPL included in the packaging of this file.
 
29
**
 
30
** This file may be distributed and/or modified under the terms of the
 
31
** GNU General Public License version 2 as published by the Free Software
 
32
** Foundation and appearing in the file LICENSE.GPL included in the
 
33
** packaging of this file.
 
34
**
 
35
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
 
36
**   information about Qt Commercial License Agreements.
 
37
** See http://www.trolltech.com/qpl/ for QPL licensing information.
 
38
** See http://www.trolltech.com/gpl/ for GPL licensing information.
 
39
**
 
40
** Contact info@trolltech.com if any conditions of this licensing are
 
41
** not clear to you.
 
42
    **
 
43
    ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 
44
    ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 
45
    **
 
46
    ****************************************************************************/
 
47
 
 
48
    #include &quot;regexpdialog.h&quot;
 
49
 
 
50
    RegExpDialog::RegExpDialog(QWidget *parent)
 
51
        : QDialog(parent)
 
52
    {
 
53
        patternComboBox = new QComboBox;
 
54
        patternComboBox-&gt;setEditable(true);
 
55
        patternComboBox-&gt;setSizePolicy(QSizePolicy::Expanding,
 
56
                                       QSizePolicy::Preferred);
 
57
 
 
58
        patternLabel = new QLabel(tr(&quot;&amp;Pattern:&quot;));
 
59
        patternLabel-&gt;setBuddy(patternComboBox);
 
60
 
 
61
        escapedPatternLineEdit = new QLineEdit;
 
62
        escapedPatternLineEdit-&gt;setReadOnly(true);
 
63
        QPalette palette = escapedPatternLineEdit-&gt;palette();
 
64
        palette.setBrush(QPalette::Base, palette.brush(QPalette::Disabled, QPalette::Base));
 
65
        escapedPatternLineEdit-&gt;setPalette(palette);
 
66
 
 
67
        escapedPatternLabel = new QLabel(tr(&quot;&amp;Escaped Pattern:&quot;));
 
68
        escapedPatternLabel-&gt;setBuddy(escapedPatternLineEdit);
 
69
 
 
70
        textComboBox = new QComboBox;
 
71
        textComboBox-&gt;setEditable(true);
 
72
        textComboBox-&gt;setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
 
73
 
 
74
        textLabel = new QLabel(tr(&quot;&amp;Text:&quot;));
 
75
        textLabel-&gt;setBuddy(textComboBox);
 
76
 
 
77
        caseSensitiveCheckBox = new QCheckBox(tr(&quot;Case &amp;Sensitive&quot;));
 
78
        caseSensitiveCheckBox-&gt;setChecked(true);
 
79
        minimalCheckBox = new QCheckBox(tr(&quot;&amp;Minimal&quot;));
 
80
        wildcardCheckBox = new QCheckBox(tr(&quot;&amp;Wildcard&quot;));
 
81
 
 
82
        indexLabel = new QLabel(tr(&quot;Index of Match:&quot;));
 
83
        indexEdit = new QLineEdit;
 
84
        indexEdit-&gt;setReadOnly(true);
 
85
 
 
86
        matchedLengthLabel = new QLabel(tr(&quot;Matched Length:&quot;));
 
87
        matchedLengthEdit = new QLineEdit;
 
88
        matchedLengthEdit-&gt;setReadOnly(true);
 
89
 
 
90
        for (int i = 0; i &lt; MaxCaptures; ++i) {
 
91
            captureLabels[i] = new QLabel(tr(&quot;Capture %1:&quot;).arg(i));
 
92
            captureEdits[i] = new QLineEdit;
 
93
            captureEdits[i]-&gt;setReadOnly(true);
 
94
        }
 
95
        captureLabels[0]-&gt;setText(tr(&quot;Match:&quot;));
 
96
 
 
97
        QHBoxLayout *checkBoxLayout = new QHBoxLayout;
 
98
        checkBoxLayout-&gt;addWidget(caseSensitiveCheckBox);
 
99
        checkBoxLayout-&gt;addWidget(minimalCheckBox);
 
100
        checkBoxLayout-&gt;addWidget(wildcardCheckBox);
 
101
        checkBoxLayout-&gt;addStretch(1);
 
102
 
 
103
        QGridLayout *mainLayout = new QGridLayout;
 
104
        mainLayout-&gt;setSizeConstraint(QLayout::SetFixedSize);
 
105
        mainLayout-&gt;addWidget(patternLabel, 0, 0);
 
106
        mainLayout-&gt;addWidget(patternComboBox, 0, 1);
 
107
        mainLayout-&gt;addWidget(escapedPatternLabel, 1, 0);
 
108
        mainLayout-&gt;addWidget(escapedPatternLineEdit, 1, 1);
 
109
        mainLayout-&gt;addWidget(textLabel, 2, 0);
 
110
        mainLayout-&gt;addWidget(textComboBox, 2, 1);
 
111
        mainLayout-&gt;addLayout(checkBoxLayout, 3, 0, 1, 2);
 
112
        mainLayout-&gt;addWidget(indexLabel, 4, 0);
 
113
        mainLayout-&gt;addWidget(indexEdit, 4, 1);
 
114
        mainLayout-&gt;addWidget(matchedLengthLabel, 5, 0);
 
115
        mainLayout-&gt;addWidget(matchedLengthEdit, 5, 1);
 
116
 
 
117
        for (int j = 0; j &lt; MaxCaptures; ++j) {
 
118
            mainLayout-&gt;addWidget(captureLabels[j], 6 + j, 0);
 
119
            mainLayout-&gt;addWidget(captureEdits[j], 6 + j, 1);
 
120
        }
 
121
        setLayout(mainLayout);
 
122
 
 
123
        connect(patternComboBox, SIGNAL(editTextChanged(const QString &amp;)),
 
124
                this, SLOT(refresh()));
 
125
        connect(textComboBox, SIGNAL(editTextChanged(const QString &amp;)),
 
126
                this, SLOT(refresh()));
 
127
        connect(caseSensitiveCheckBox, SIGNAL(toggled(bool)),
 
128
                this, SLOT(refresh()));
 
129
        connect(minimalCheckBox, SIGNAL(toggled(bool)), this, SLOT(refresh()));
 
130
        connect(wildcardCheckBox, SIGNAL(toggled(bool)), this, SLOT(refresh()));
 
131
 
 
132
        patternComboBox-&gt;addItem(tr(&quot;([A-Za-z_])([A-Za-z_0-9]*)&quot;));
 
133
        textComboBox-&gt;addItem(tr(&quot;(10 + delta4) * 32&quot;));
 
134
 
 
135
        setWindowTitle(tr(&quot;RegExp&quot;));
 
136
        refresh();
 
137
    }
 
138
 
 
139
    void RegExpDialog::refresh()
 
140
    {
 
141
        QString pattern = patternComboBox-&gt;currentText();
 
142
        QString text = textComboBox-&gt;currentText();
 
143
 
 
144
        QString escaped = patternComboBox-&gt;currentText();
 
145
        escaped = escaped.replace(&quot;\\&quot;, &quot;\\\\&quot;);
 
146
        escaped = &quot;\&quot;&quot; + escaped + &quot;\&quot;&quot;;
 
147
        escapedPatternLineEdit-&gt;setText(escaped);
 
148
 
 
149
        QRegExp rx(pattern);
 
150
        Qt::CaseSensitivity cs = Qt::CaseInsensitive;
 
151
        if (caseSensitiveCheckBox-&gt;isChecked())
 
152
            cs = Qt::CaseSensitive;
 
153
        rx.setCaseSensitivity(cs);
 
154
        rx.setMinimal(minimalCheckBox-&gt;isChecked());
 
155
        QRegExp::PatternSyntax syntax =
 
156
                wildcardCheckBox-&gt;isChecked() ? QRegExp::Wildcard : QRegExp::RegExp;
 
157
        rx.setPatternSyntax(syntax);
 
158
 
 
159
        QPalette palette = patternComboBox-&gt;palette();
 
160
        if (rx.isValid()) {
 
161
            palette.setColor(QPalette::Text,
 
162
                             textComboBox-&gt;palette().color(QPalette::Text));
 
163
        } else {
 
164
            palette.setColor(QPalette::Text, Qt::red);
 
165
        }
 
166
        patternComboBox-&gt;setPalette(palette);
 
167
 
 
168
        indexEdit-&gt;setText(QString::number(rx.indexIn(text)));
 
169
        matchedLengthEdit-&gt;setText(QString::number(rx.matchedLength()));
 
170
        for (int i = 0; i &lt; MaxCaptures; ++i) {
 
171
            captureLabels[i]-&gt;setEnabled(i &lt;= rx.numCaptures());
 
172
            captureEdits[i]-&gt;setEnabled(i &lt;= rx.numCaptures());
 
173
            captureEdits[i]-&gt;setText(rx.cap(i));
 
174
        }
 
175
    }</pre>
 
176
<p /><address><hr /><div align="center">
 
177
<table width="100%" cellspacing="0" border="0"><tr class="address">
 
178
<td width="30%">Copyright &copy; 2005 <a href="trolltech.html">Trolltech</a></td>
 
179
<td width="40%" align="center"><a href="trademarks.html">Trademarks</a></td>
 
180
<td width="30%" align="right"><div align="right">Qt 4.0.0</div></td>
 
181
</tr></table></div></address></body>
 
182
</html>