annotate examples/layouts/basiclayouts/dialog.d @ 282:256ab6cb8e85

Signals look-up andNew syntax for connect. The old one will not work from now on. This will allow for the signals overload. Although changes are done for both D1 and D2 versions, D1 won't work because of compiler bugs. I am tired of waiting for fixes.
author eldar
date Fri, 16 Oct 2009 02:43:59 +0000
parents 26036621830e
children 7a3c43424dca
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
1 /****************************************************************************
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
2 **
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
4 ** Contact: Qt Software Information (qt-info@nokia.com)
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
5 **
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
6 ** This file is part of the examples of the Qt Toolkit.
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
7 **
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
8 ** $QT_BEGIN_LICENSE:LGPL$
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
9 ** Commercial Usage
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
10 ** Licensees holding valid Qt Commercial licenses may use this file in
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
11 ** accordance with the Qt Commercial License Agreement provided with the
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
12 ** Software or, alternatively, in accordance with the terms contained in
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
13 ** a written agreement between you and Nokia.
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
14 **
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
15 ** GNU Lesser General Public License Usage
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
16 ** Alternatively, this file may be used under the terms of the GNU Lesser
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
17 ** General Public License version 2.1 as published by the Free Software
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
18 ** Foundation and appearing in the file LICENSE.LGPL included in the
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
19 ** packaging of this file. Please review the following information to
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
20 ** ensure the GNU Lesser General Public License version 2.1 requirements
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
21 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
22 **
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
23 ** In addition, as a special exception, Nokia gives you certain
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
24 ** additional rights. These rights are described in the Nokia Qt LGPL
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
26 ** package.
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
27 **
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
28 ** GNU General Public License Usage
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
29 ** Alternatively, this file may be used under the terms of the GNU
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
30 ** General Public License version 3.0 as published by the Free Software
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
31 ** Foundation and appearing in the file LICENSE.GPL included in the
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
32 ** packaging of this file. Please review the following information to
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
33 ** ensure the GNU General Public License version 3.0 requirements will be
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
34 ** met: http://www.gnu.org/copyleft/gpl.html.
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
35 **
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
36 ** If you are unsure which license is appropriate for your use, please
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
37 ** contact the sales department at qt-sales@nokia.com.
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
38 ** $QT_END_LICENSE$
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
39 **
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
40 ****************************************************************************/
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
41 module dialog;
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
42
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
43
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
44 import qt.gui.QDialogButtonBox;
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
45 import qt.gui.QGroupBox;
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
46 import qt.gui.QLabel;
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
47 import qt.gui.QLineEdit;
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
48 import qt.gui.QMenuBar;
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
49 import qt.gui.QPushButton;
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
50 import qt.gui.QTextEdit;
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
51 import qt.gui.QDialog;
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
52 import qt.gui.QVBoxLayout;
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
53 import qt.gui.QHBoxLayout;
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
54 import qt.gui.QGridLayout;
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
55 import qt.gui.QFormLayout;
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
56 import qt.gui.QComboBox;
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
57 import qt.gui.QSpinBox;
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
58
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
59 version(Tango)
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
60 import tango.text.convert.Format: format = Format;
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
61 else
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
62 import std.string;
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
63
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
64 class Dialog : public QDialog
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
65 {
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
66 this()
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
67 {
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
68 createMenu();
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
69 createHorizontalGroupBox();
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
70 createGridGroupBox();
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
71 createFormGroupBox();
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
72
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
73 bigEditor = new QTextEdit;
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
74 bigEditor.setPlainText(tr("This widget takes up all the remaining space in the top-level layout."));
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
75
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
76 buttonBox = new QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel);
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
77
282
256ab6cb8e85 Signals look-up andNew syntax for connect. The old one will not work from now on. This will allow for the signals overload. Although changes are done for both D1 and D2 versions, D1 won't work because of compiler bugs. I am tired of waiting for fixes.
eldar
parents: 213
diff changeset
78 connect!("accepted")(buttonBox, &this.accept);
256ab6cb8e85 Signals look-up andNew syntax for connect. The old one will not work from now on. This will allow for the signals overload. Although changes are done for both D1 and D2 versions, D1 won't work because of compiler bugs. I am tired of waiting for fixes.
eldar
parents: 213
diff changeset
79 connect!("rejected")(buttonBox, &this.reject);
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
80
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
81 QVBoxLayout mainLayout = new QVBoxLayout;
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
82
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
83 mainLayout.setMenuBar(menuBar);
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
84
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
85 mainLayout.addWidget(horizontalGroupBox);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
86 mainLayout.addWidget(gridGroupBox);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
87 mainLayout.addWidget(formGroupBox);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
88 mainLayout.addWidget(bigEditor);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
89 mainLayout.addWidget(buttonBox);
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
90
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
91 setLayout(mainLayout);
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
92
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
93 setWindowTitle(tr("Basic Layouts"));
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
94 }
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
95
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
96 void createMenu()
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
97 {
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
98 menuBar = new QMenuBar;
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
99
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
100 fileMenu = new QMenu(tr("&File"), this);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
101 exitAction = fileMenu.addAction(tr("E&xit"));
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
102 menuBar.addMenu(fileMenu);
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
103
282
256ab6cb8e85 Signals look-up andNew syntax for connect. The old one will not work from now on. This will allow for the signals overload. Although changes are done for both D1 and D2 versions, D1 won't work because of compiler bugs. I am tired of waiting for fixes.
eldar
parents: 213
diff changeset
104 connect!("triggered")(exitAction, &this.accept);
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
105 }
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
106
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
107 void createHorizontalGroupBox()
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
108 {
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
109 horizontalGroupBox = new QGroupBox(tr("Horizontal layout"));
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
110 QHBoxLayout layout = new QHBoxLayout;
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
111
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
112 for (int i = 0; i < NumButtons; ++i) {
213
26036621830e more D2 examples fixes
SokoL_SD
parents: 204
diff changeset
113 version(Tango)
26036621830e more D2 examples fixes
SokoL_SD
parents: 204
diff changeset
114 const string str = tr("Button {}:");
26036621830e more D2 examples fixes
SokoL_SD
parents: 204
diff changeset
115 else
26036621830e more D2 examples fixes
SokoL_SD
parents: 204
diff changeset
116 const string str = tr("Button %s:");
26036621830e more D2 examples fixes
SokoL_SD
parents: 204
diff changeset
117 buttons[i] = new QPushButton(format(str, i + 1));
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
118 layout.addWidget(buttons[i]);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
119 }
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
120 horizontalGroupBox.setLayout(layout);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
121 }
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
122
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
123 void createGridGroupBox()
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
124 {
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
125 gridGroupBox = new QGroupBox(tr("Grid layout"));
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
126 QGridLayout layout = new QGridLayout;
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
127
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
128 for (int i = 0; i < NumGridRows; ++i) {
213
26036621830e more D2 examples fixes
SokoL_SD
parents: 204
diff changeset
129 version(Tango)
26036621830e more D2 examples fixes
SokoL_SD
parents: 204
diff changeset
130 const string str = tr("Line {}:");
26036621830e more D2 examples fixes
SokoL_SD
parents: 204
diff changeset
131 else
26036621830e more D2 examples fixes
SokoL_SD
parents: 204
diff changeset
132 const string str = tr("Line %s:");
26036621830e more D2 examples fixes
SokoL_SD
parents: 204
diff changeset
133 labels[i] = new QLabel(format(str, i + 1));
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
134 lineEdits[i] = new QLineEdit;
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
135 layout.addWidget(labels[i], i + 1, 0);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
136 layout.addWidget(lineEdits[i], i + 1, 1);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
137 }
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
138
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
139 smallEditor = new QTextEdit;
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
140 smallEditor.setPlainText(tr("This widget takes up about two thirds of the grid layout."));
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
141 layout.addWidget(smallEditor, 0, 2, 4, 1);
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
142
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
143 layout.setColumnStretch(1, 10);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
144 layout.setColumnStretch(2, 20);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
145 gridGroupBox.setLayout(layout);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
146 }
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
147
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
148 void createFormGroupBox()
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
149 {
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
150 formGroupBox = new QGroupBox(tr("Form layout"));
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
151 QFormLayout layout = new QFormLayout;
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
152 layout.addRow(new QLabel(tr("Line 1:")), new QLineEdit);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
153 layout.addRow(new QLabel(tr("Line 2, long text:")), new QComboBox);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
154 layout.addRow(new QLabel(tr("Line 3:")), new QSpinBox);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
155 formGroupBox.setLayout(layout);
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
156 }
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
157
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
158 enum { NumGridRows = 3, NumButtons = 4 };
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
159
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
160 QMenuBar menuBar;
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
161 QGroupBox horizontalGroupBox;
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
162 QGroupBox gridGroupBox;
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
163 QGroupBox formGroupBox;
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
164 QTextEdit smallEditor;
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
165 QTextEdit bigEditor;
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
166 QLabel[NumGridRows] labels;
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
167 QLineEdit[NumGridRows] lineEdits;
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
168 QPushButton[NumButtons] buttons;
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
169 QDialogButtonBox buttonBox;
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
170
204
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
171 QMenu fileMenu;
6aeaf24018d7 more D2 examples fixes
eldar
parents: 116
diff changeset
172 QAction exitAction;
116
1c51d13eef25 add basiclayout example
mandel
parents:
diff changeset
173 }