annotate examples/mainwindows/dockwidgets/mainwindow.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 8aaa84d48451
children 7a3c43424dca
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
e78566595089 initial import
mandel
parents:
diff changeset
1 /****************************************************************************
e78566595089 initial import
mandel
parents:
diff changeset
2 **
e78566595089 initial import
mandel
parents:
diff changeset
3 ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
e78566595089 initial import
mandel
parents:
diff changeset
4 ** Contact: Qt Software Information (qt-info@nokia.com)
e78566595089 initial import
mandel
parents:
diff changeset
5 **
e78566595089 initial import
mandel
parents:
diff changeset
6 ** This file is part of the example classes of the Qt Toolkit.
e78566595089 initial import
mandel
parents:
diff changeset
7 **
e78566595089 initial import
mandel
parents:
diff changeset
8 ** Commercial Usage
e78566595089 initial import
mandel
parents:
diff changeset
9 ** Licensees holding valid Qt Commercial licenses may use this file in
e78566595089 initial import
mandel
parents:
diff changeset
10 ** accordance with the Qt Commercial License Agreement provided with the
e78566595089 initial import
mandel
parents:
diff changeset
11 ** Software or, alternatively, in accordance with the terms contained in
e78566595089 initial import
mandel
parents:
diff changeset
12 ** a written agreement between you and Nokia.
e78566595089 initial import
mandel
parents:
diff changeset
13 **
e78566595089 initial import
mandel
parents:
diff changeset
14 **
e78566595089 initial import
mandel
parents:
diff changeset
15 ** GNU General Public License Usage
e78566595089 initial import
mandel
parents:
diff changeset
16 ** Alternatively, this file may be used under the terms of the GNU
e78566595089 initial import
mandel
parents:
diff changeset
17 ** General Public License versions 2.0 or 3.0 as published by the Free
e78566595089 initial import
mandel
parents:
diff changeset
18 ** Software Foundation and appearing in the file LICENSE.GPL included in
e78566595089 initial import
mandel
parents:
diff changeset
19 ** the packaging of this file. Please review the following information
e78566595089 initial import
mandel
parents:
diff changeset
20 ** to ensure GNU General Public Licensing requirements will be met:
e78566595089 initial import
mandel
parents:
diff changeset
21 ** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
e78566595089 initial import
mandel
parents:
diff changeset
22 ** http://www.gnu.org/copyleft/gpl.html. In addition, as a special
e78566595089 initial import
mandel
parents:
diff changeset
23 ** exception, Nokia gives you certain additional rights. These rights
e78566595089 initial import
mandel
parents:
diff changeset
24 ** are described in the Nokia Qt GPL Exception version 1.3, included in
e78566595089 initial import
mandel
parents:
diff changeset
25 ** the file GPL_EXCEPTION.txt in this package.
e78566595089 initial import
mandel
parents:
diff changeset
26 **
e78566595089 initial import
mandel
parents:
diff changeset
27 ** Qt for Windows(R) Licensees
e78566595089 initial import
mandel
parents:
diff changeset
28 ** As a special exception, Nokia, as the sole copyright holder for Qt
e78566595089 initial import
mandel
parents:
diff changeset
29 ** Designer, grants users of the Qt/Eclipse Integration plug-in the
e78566595089 initial import
mandel
parents:
diff changeset
30 ** right for the Qt/Eclipse Integration to link to functionality
e78566595089 initial import
mandel
parents:
diff changeset
31 ** provided by Qt Designer and its related libraries.
e78566595089 initial import
mandel
parents:
diff changeset
32 **
e78566595089 initial import
mandel
parents:
diff changeset
33 ** If you are unsure which license is appropriate for your use, please
e78566595089 initial import
mandel
parents:
diff changeset
34 ** contact the sales department at qt-sales@nokia.com.
e78566595089 initial import
mandel
parents:
diff changeset
35 **
e78566595089 initial import
mandel
parents:
diff changeset
36 ****************************************************************************/
e78566595089 initial import
mandel
parents:
diff changeset
37
e78566595089 initial import
mandel
parents:
diff changeset
38
e78566595089 initial import
mandel
parents:
diff changeset
39 import qt.gui.QMainWindow;
e78566595089 initial import
mandel
parents:
diff changeset
40
e78566595089 initial import
mandel
parents:
diff changeset
41 import qt.gui.QListWidget;
e78566595089 initial import
mandel
parents:
diff changeset
42 import qt.gui.QMenu;
e78566595089 initial import
mandel
parents:
diff changeset
43 import qt.gui.QToolBar;
e78566595089 initial import
mandel
parents:
diff changeset
44 import qt.gui.QDockWidget;
e78566595089 initial import
mandel
parents:
diff changeset
45 import qt.gui.QListWidget;
e78566595089 initial import
mandel
parents:
diff changeset
46 import qt.gui.QMessageBox;
e78566595089 initial import
mandel
parents:
diff changeset
47 import qt.gui.QTextEdit;
e78566595089 initial import
mandel
parents:
diff changeset
48 import qt.gui.QTextCursor;
e78566595089 initial import
mandel
parents:
diff changeset
49 import qt.gui.QTextFrame;
e78566595089 initial import
mandel
parents:
diff changeset
50 import qt.gui.QTextFrameFormat;
e78566595089 initial import
mandel
parents:
diff changeset
51 import qt.gui.QTextCharFormat;
e78566595089 initial import
mandel
parents:
diff changeset
52 import qt.gui.QTextTableFormat;
e78566595089 initial import
mandel
parents:
diff changeset
53 import qt.gui.QAction;
e78566595089 initial import
mandel
parents:
diff changeset
54 import qt.gui.QStatusBar;
e78566595089 initial import
mandel
parents:
diff changeset
55 import qt.gui.QFont;
e78566595089 initial import
mandel
parents:
diff changeset
56 import qt.gui.QIcon;
215
8aaa84d48451 Improve examples.
SokoL_SD
parents: 191
diff changeset
57 import qt.core.QDate;
1
e78566595089 initial import
mandel
parents:
diff changeset
58
191
a212c97edcd2 one more example
eldar
parents: 61
diff changeset
59 version(Tango)
a212c97edcd2 one more example
eldar
parents: 61
diff changeset
60 import tango.text.Util;
a212c97edcd2 one more example
eldar
parents: 61
diff changeset
61 else
a212c97edcd2 one more example
eldar
parents: 61
diff changeset
62 import std.string;
1
e78566595089 initial import
mandel
parents:
diff changeset
63
e78566595089 initial import
mandel
parents:
diff changeset
64 class MainWindow : public QMainWindow
e78566595089 initial import
mandel
parents:
diff changeset
65 {
e78566595089 initial import
mandel
parents:
diff changeset
66 // Q_OBJECT
e78566595089 initial import
mandel
parents:
diff changeset
67
e78566595089 initial import
mandel
parents:
diff changeset
68 public:
e78566595089 initial import
mandel
parents:
diff changeset
69 this()
e78566595089 initial import
mandel
parents:
diff changeset
70 {
e78566595089 initial import
mandel
parents:
diff changeset
71 textEdit = new QTextEdit;
e78566595089 initial import
mandel
parents:
diff changeset
72 setCentralWidget(textEdit);
e78566595089 initial import
mandel
parents:
diff changeset
73
e78566595089 initial import
mandel
parents:
diff changeset
74 createActions();
e78566595089 initial import
mandel
parents:
diff changeset
75 createMenus();
e78566595089 initial import
mandel
parents:
diff changeset
76 createToolBars();
e78566595089 initial import
mandel
parents:
diff changeset
77 createStatusBar();
e78566595089 initial import
mandel
parents:
diff changeset
78 createDockWindows();
e78566595089 initial import
mandel
parents:
diff changeset
79
e78566595089 initial import
mandel
parents:
diff changeset
80 setWindowTitle(tr("Dock Widgets"));
e78566595089 initial import
mandel
parents:
diff changeset
81 newLetter();
e78566595089 initial import
mandel
parents:
diff changeset
82 }
e78566595089 initial import
mandel
parents:
diff changeset
83
e78566595089 initial import
mandel
parents:
diff changeset
84 private : //slots:
e78566595089 initial import
mandel
parents:
diff changeset
85 void newLetter()
e78566595089 initial import
mandel
parents:
diff changeset
86 {
e78566595089 initial import
mandel
parents:
diff changeset
87 textEdit.clear();
e78566595089 initial import
mandel
parents:
diff changeset
88
e78566595089 initial import
mandel
parents:
diff changeset
89 scope cursor = textEdit.textCursor;
e78566595089 initial import
mandel
parents:
diff changeset
90 cursor.movePosition(QTextCursor.Start);
e78566595089 initial import
mandel
parents:
diff changeset
91 QTextFrame topFrame = cursor.currentFrame();
e78566595089 initial import
mandel
parents:
diff changeset
92 QTextFrameFormat topFrameFormat = topFrame.frameFormat();
e78566595089 initial import
mandel
parents:
diff changeset
93 topFrameFormat.setPadding(16);
e78566595089 initial import
mandel
parents:
diff changeset
94 topFrame.setFrameFormat(topFrameFormat);
e78566595089 initial import
mandel
parents:
diff changeset
95
e78566595089 initial import
mandel
parents:
diff changeset
96 scope textFormat = new QTextCharFormat;
e78566595089 initial import
mandel
parents:
diff changeset
97 scope boldFormat = new QTextCharFormat;
e78566595089 initial import
mandel
parents:
diff changeset
98 scope italicFormat = new QTextCharFormat;
e78566595089 initial import
mandel
parents:
diff changeset
99 boldFormat.setFontWeight(QFont.Bold);
e78566595089 initial import
mandel
parents:
diff changeset
100 italicFormat.setFontItalic(true);
e78566595089 initial import
mandel
parents:
diff changeset
101
e78566595089 initial import
mandel
parents:
diff changeset
102 scope tableFormat = new QTextTableFormat;
e78566595089 initial import
mandel
parents:
diff changeset
103 tableFormat.setBorder(1);
e78566595089 initial import
mandel
parents:
diff changeset
104 tableFormat.setCellPadding(16);
e78566595089 initial import
mandel
parents:
diff changeset
105 tableFormat.setAlignment(Qt.AlignRight);
e78566595089 initial import
mandel
parents:
diff changeset
106 cursor.insertTable(1, 1, tableFormat);
e78566595089 initial import
mandel
parents:
diff changeset
107 cursor.insertText("The Firm", boldFormat);
e78566595089 initial import
mandel
parents:
diff changeset
108 cursor.insertBlock();
e78566595089 initial import
mandel
parents:
diff changeset
109 cursor.insertText("321 City Street", textFormat);
e78566595089 initial import
mandel
parents:
diff changeset
110 cursor.insertBlock();
e78566595089 initial import
mandel
parents:
diff changeset
111 cursor.insertText("Industry Park");
e78566595089 initial import
mandel
parents:
diff changeset
112 cursor.insertBlock();
e78566595089 initial import
mandel
parents:
diff changeset
113 cursor.insertText("Some Country");
e78566595089 initial import
mandel
parents:
diff changeset
114 cursor.setPosition(topFrame.lastPosition());
e78566595089 initial import
mandel
parents:
diff changeset
115 cursor.insertText(QDate.currentDate.toString("d MMMM yyyy"), textFormat);
e78566595089 initial import
mandel
parents:
diff changeset
116 cursor.insertBlock();
e78566595089 initial import
mandel
parents:
diff changeset
117 cursor.insertBlock();
e78566595089 initial import
mandel
parents:
diff changeset
118 cursor.insertText("Dear ", textFormat);
e78566595089 initial import
mandel
parents:
diff changeset
119 cursor.insertText("NAME", italicFormat);
e78566595089 initial import
mandel
parents:
diff changeset
120 cursor.insertText(",", textFormat);
e78566595089 initial import
mandel
parents:
diff changeset
121 for (int i = 0; i < 3; ++i)
e78566595089 initial import
mandel
parents:
diff changeset
122 cursor.insertBlock();
e78566595089 initial import
mandel
parents:
diff changeset
123 cursor.insertText(tr("Yours sincerely,"), textFormat);
e78566595089 initial import
mandel
parents:
diff changeset
124 for (int i = 0; i < 3; ++i)
e78566595089 initial import
mandel
parents:
diff changeset
125 cursor.insertBlock();
e78566595089 initial import
mandel
parents:
diff changeset
126 cursor.insertText("The Boss", textFormat);
e78566595089 initial import
mandel
parents:
diff changeset
127 cursor.insertBlock();
e78566595089 initial import
mandel
parents:
diff changeset
128 cursor.insertText("ADDRESS", italicFormat);
e78566595089 initial import
mandel
parents:
diff changeset
129 }
e78566595089 initial import
mandel
parents:
diff changeset
130 /*
e78566595089 initial import
mandel
parents:
diff changeset
131 void save()
e78566595089 initial import
mandel
parents:
diff changeset
132 {
e78566595089 initial import
mandel
parents:
diff changeset
133 char[] fileName = QFileDialog.getSaveFileName(this,
e78566595089 initial import
mandel
parents:
diff changeset
134 tr("Choose a file name"), ".",
e78566595089 initial import
mandel
parents:
diff changeset
135 tr("HTML (*.html *.htm)"));
e78566595089 initial import
mandel
parents:
diff changeset
136 if (fileName.isEmpty())
e78566595089 initial import
mandel
parents:
diff changeset
137 return;
e78566595089 initial import
mandel
parents:
diff changeset
138 scope file = new QFile(fileName);
e78566595089 initial import
mandel
parents:
diff changeset
139 if (!file.open(QFile.WriteOnly | QFile.Text)) {
e78566595089 initial import
mandel
parents:
diff changeset
140 QMessageBox.warning(this, tr("Dock Widgets"),
e78566595089 initial import
mandel
parents:
diff changeset
141 tr(layout("Cannot write file %1:\n%2.", fileName, file.errorString))
e78566595089 initial import
mandel
parents:
diff changeset
142 return;
e78566595089 initial import
mandel
parents:
diff changeset
143 }
e78566595089 initial import
mandel
parents:
diff changeset
144
e78566595089 initial import
mandel
parents:
diff changeset
145 scope outStream = new QTextStream(file);
e78566595089 initial import
mandel
parents:
diff changeset
146 QApplication.setOverrideCursor(Qt.WaitCursor);
e78566595089 initial import
mandel
parents:
diff changeset
147 outStream << textEdit.toHtml();
e78566595089 initial import
mandel
parents:
diff changeset
148 QApplication.restoreOverrideCursor();
e78566595089 initial import
mandel
parents:
diff changeset
149
e78566595089 initial import
mandel
parents:
diff changeset
150 statusBar.showMessage(layout("Saved '%1'", fileName), 2000);
e78566595089 initial import
mandel
parents:
diff changeset
151 }*/
e78566595089 initial import
mandel
parents:
diff changeset
152
e78566595089 initial import
mandel
parents:
diff changeset
153 void print() { }
e78566595089 initial import
mandel
parents:
diff changeset
154
e78566595089 initial import
mandel
parents:
diff changeset
155 void undo() {
e78566595089 initial import
mandel
parents:
diff changeset
156 auto document = textEdit.document();
e78566595089 initial import
mandel
parents:
diff changeset
157 document.undo();
e78566595089 initial import
mandel
parents:
diff changeset
158 }
e78566595089 initial import
mandel
parents:
diff changeset
159
191
a212c97edcd2 one more example
eldar
parents: 61
diff changeset
160 void insertCustomer(string customer)
1
e78566595089 initial import
mandel
parents:
diff changeset
161 {
e78566595089 initial import
mandel
parents:
diff changeset
162 if (customer == "")
e78566595089 initial import
mandel
parents:
diff changeset
163 return;
191
a212c97edcd2 one more example
eldar
parents: 61
diff changeset
164
a212c97edcd2 one more example
eldar
parents: 61
diff changeset
165 string[] customerList = customer.split(", ");
1
e78566595089 initial import
mandel
parents:
diff changeset
166 auto document = textEdit.document();
e78566595089 initial import
mandel
parents:
diff changeset
167 QTextCursor cursor = document.find("NAME");
e78566595089 initial import
mandel
parents:
diff changeset
168 if (!cursor.isNull) {
e78566595089 initial import
mandel
parents:
diff changeset
169 cursor.beginEditBlock();
e78566595089 initial import
mandel
parents:
diff changeset
170 cursor.insertText(customerList[0]);
e78566595089 initial import
mandel
parents:
diff changeset
171 scope oldcursor = new QTextCursor(cursor);
e78566595089 initial import
mandel
parents:
diff changeset
172 cursor = document.find("ADDRESS");
e78566595089 initial import
mandel
parents:
diff changeset
173 if (!cursor.isNull) {
e78566595089 initial import
mandel
parents:
diff changeset
174 for (int i = 1; i < customerList.length; ++i) {
e78566595089 initial import
mandel
parents:
diff changeset
175 cursor.insertBlock();
e78566595089 initial import
mandel
parents:
diff changeset
176 cursor.insertText(customerList[i]);
e78566595089 initial import
mandel
parents:
diff changeset
177 }
e78566595089 initial import
mandel
parents:
diff changeset
178 cursor.endEditBlock();
e78566595089 initial import
mandel
parents:
diff changeset
179 }
e78566595089 initial import
mandel
parents:
diff changeset
180 else
e78566595089 initial import
mandel
parents:
diff changeset
181 oldcursor.endEditBlock();
e78566595089 initial import
mandel
parents:
diff changeset
182 }
e78566595089 initial import
mandel
parents:
diff changeset
183 }
e78566595089 initial import
mandel
parents:
diff changeset
184
191
a212c97edcd2 one more example
eldar
parents: 61
diff changeset
185 void addParagraph(string paragraph)
1
e78566595089 initial import
mandel
parents:
diff changeset
186 {
e78566595089 initial import
mandel
parents:
diff changeset
187 if (paragraph == "")
e78566595089 initial import
mandel
parents:
diff changeset
188 return;
e78566595089 initial import
mandel
parents:
diff changeset
189 auto document = textEdit.document();
e78566595089 initial import
mandel
parents:
diff changeset
190 scope cursor = document.find(tr("Yours sincerely,"));
e78566595089 initial import
mandel
parents:
diff changeset
191 if (cursor.isNull)
e78566595089 initial import
mandel
parents:
diff changeset
192 return;
e78566595089 initial import
mandel
parents:
diff changeset
193 cursor.beginEditBlock();
e78566595089 initial import
mandel
parents:
diff changeset
194 cursor.movePosition(QTextCursor.PreviousBlock, QTextCursor.MoveAnchor, 2);
e78566595089 initial import
mandel
parents:
diff changeset
195 cursor.insertBlock();
e78566595089 initial import
mandel
parents:
diff changeset
196 cursor.insertText(paragraph);
e78566595089 initial import
mandel
parents:
diff changeset
197 cursor.insertBlock();
e78566595089 initial import
mandel
parents:
diff changeset
198 cursor.endEditBlock();
e78566595089 initial import
mandel
parents:
diff changeset
199
e78566595089 initial import
mandel
parents:
diff changeset
200 }
e78566595089 initial import
mandel
parents:
diff changeset
201
e78566595089 initial import
mandel
parents:
diff changeset
202 void about()
e78566595089 initial import
mandel
parents:
diff changeset
203 {
e78566595089 initial import
mandel
parents:
diff changeset
204 QMessageBox.about(this, "About Dock Widgets",
e78566595089 initial import
mandel
parents:
diff changeset
205 "The <b>Dock Widgets</b> example demonstrates how to "
e78566595089 initial import
mandel
parents:
diff changeset
206 "use Qt's dock widgets. You can enter your own text, "
e78566595089 initial import
mandel
parents:
diff changeset
207 "click a customer to add a customer name and "
e78566595089 initial import
mandel
parents:
diff changeset
208 "address, and click standard paragraphs to add them.");
e78566595089 initial import
mandel
parents:
diff changeset
209 }
e78566595089 initial import
mandel
parents:
diff changeset
210
e78566595089 initial import
mandel
parents:
diff changeset
211 private:
e78566595089 initial import
mandel
parents:
diff changeset
212 void createActions()
e78566595089 initial import
mandel
parents:
diff changeset
213 {
61
a2871e6b8b15 drcc: automatic initialization of resources with program start (disabled with option -no-static-initialize)
SokoL_SD
parents: 1
diff changeset
214 newLetterAct = new QAction(new QIcon(":images/new.png"), tr("&New Letter"), this);
1
e78566595089 initial import
mandel
parents:
diff changeset
215 newLetterAct.setShortcut(tr("Ctrl+N"));
e78566595089 initial import
mandel
parents:
diff changeset
216 newLetterAct.setStatusTip(tr("Create a new form letter"));
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: 215
diff changeset
217 connect!("triggered")(newLetterAct, &this.newLetter);
1
e78566595089 initial import
mandel
parents:
diff changeset
218
61
a2871e6b8b15 drcc: automatic initialization of resources with program start (disabled with option -no-static-initialize)
SokoL_SD
parents: 1
diff changeset
219 saveAct = new QAction(new QIcon(":images/save.png"), tr("&Save..."), this);
1
e78566595089 initial import
mandel
parents:
diff changeset
220 saveAct.setShortcut(tr("Ctrl+S"));
e78566595089 initial import
mandel
parents:
diff changeset
221 saveAct.setStatusTip(tr("Save the current form letter"));
e78566595089 initial import
mandel
parents:
diff changeset
222 // saveAct.triggered.connect(&save);
e78566595089 initial import
mandel
parents:
diff changeset
223
61
a2871e6b8b15 drcc: automatic initialization of resources with program start (disabled with option -no-static-initialize)
SokoL_SD
parents: 1
diff changeset
224 printAct = new QAction(new QIcon(":images/print.png"), tr("&Print..."), this);
1
e78566595089 initial import
mandel
parents:
diff changeset
225 printAct.setShortcut(tr("Ctrl+P"));
e78566595089 initial import
mandel
parents:
diff changeset
226 printAct.setStatusTip(tr("Print the current form letter"));
e78566595089 initial import
mandel
parents:
diff changeset
227 // printAct.triggered.connect(&print);
e78566595089 initial import
mandel
parents:
diff changeset
228
61
a2871e6b8b15 drcc: automatic initialization of resources with program start (disabled with option -no-static-initialize)
SokoL_SD
parents: 1
diff changeset
229 undoAct = new QAction(new QIcon(":images/undo.png"), tr("&Undo"), this);
1
e78566595089 initial import
mandel
parents:
diff changeset
230 undoAct.setShortcut(tr("Ctrl+Z"));
e78566595089 initial import
mandel
parents:
diff changeset
231 undoAct.setStatusTip(tr("Undo the last editing action"));
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: 215
diff changeset
232 connect!("triggered")(undoAct, &undo);
1
e78566595089 initial import
mandel
parents:
diff changeset
233
e78566595089 initial import
mandel
parents:
diff changeset
234 quitAct = new QAction(tr("&Quit"), this);
e78566595089 initial import
mandel
parents:
diff changeset
235 quitAct.setShortcut(tr("Ctrl+Q"));
e78566595089 initial import
mandel
parents:
diff changeset
236 quitAct.setStatusTip(tr("Quit the application"));
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: 215
diff changeset
237 connect!("triggered")(quitAct, &this.close);
1
e78566595089 initial import
mandel
parents:
diff changeset
238
e78566595089 initial import
mandel
parents:
diff changeset
239 aboutAct = new QAction(tr("&About"), this);
e78566595089 initial import
mandel
parents:
diff changeset
240 aboutAct.setStatusTip(tr("Show the application's About box"));
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: 215
diff changeset
241 connect!("triggered")(aboutAct, &about);
1
e78566595089 initial import
mandel
parents:
diff changeset
242
e78566595089 initial import
mandel
parents:
diff changeset
243 aboutQtAct = new QAction(tr("About &Qt"), this);
e78566595089 initial import
mandel
parents:
diff changeset
244 aboutQtAct.setStatusTip(tr("Show the Qt library's About box"));
e78566595089 initial import
mandel
parents:
diff changeset
245 // aboutQtAct.triggered(&aboutQt);
e78566595089 initial import
mandel
parents:
diff changeset
246 }
e78566595089 initial import
mandel
parents:
diff changeset
247
e78566595089 initial import
mandel
parents:
diff changeset
248 void createMenus()
e78566595089 initial import
mandel
parents:
diff changeset
249 {
e78566595089 initial import
mandel
parents:
diff changeset
250 fileMenu = menuBar.addMenu(tr("&File"));
e78566595089 initial import
mandel
parents:
diff changeset
251 fileMenu.addAction(newLetterAct);
e78566595089 initial import
mandel
parents:
diff changeset
252 fileMenu.addAction(saveAct);
e78566595089 initial import
mandel
parents:
diff changeset
253 fileMenu.addAction(printAct);
e78566595089 initial import
mandel
parents:
diff changeset
254 fileMenu.addSeparator();
e78566595089 initial import
mandel
parents:
diff changeset
255 fileMenu.addAction(quitAct);
e78566595089 initial import
mandel
parents:
diff changeset
256
e78566595089 initial import
mandel
parents:
diff changeset
257 editMenu = menuBar.addMenu(tr("&Edit"));
e78566595089 initial import
mandel
parents:
diff changeset
258 editMenu.addAction(undoAct);
e78566595089 initial import
mandel
parents:
diff changeset
259
e78566595089 initial import
mandel
parents:
diff changeset
260 viewMenu = menuBar.addMenu(tr("&View"));
e78566595089 initial import
mandel
parents:
diff changeset
261
e78566595089 initial import
mandel
parents:
diff changeset
262 menuBar().addSeparator();
e78566595089 initial import
mandel
parents:
diff changeset
263
e78566595089 initial import
mandel
parents:
diff changeset
264 helpMenu = menuBar.addMenu(tr("&Help"));
e78566595089 initial import
mandel
parents:
diff changeset
265 helpMenu.addAction(aboutAct);
e78566595089 initial import
mandel
parents:
diff changeset
266 helpMenu.addAction(aboutQtAct);
e78566595089 initial import
mandel
parents:
diff changeset
267 }
e78566595089 initial import
mandel
parents:
diff changeset
268
e78566595089 initial import
mandel
parents:
diff changeset
269 void createToolBars()
e78566595089 initial import
mandel
parents:
diff changeset
270 {
e78566595089 initial import
mandel
parents:
diff changeset
271 fileToolBar = addToolBar(tr("File"));
e78566595089 initial import
mandel
parents:
diff changeset
272 fileToolBar.addAction(newLetterAct);
e78566595089 initial import
mandel
parents:
diff changeset
273 fileToolBar.addAction(saveAct);
e78566595089 initial import
mandel
parents:
diff changeset
274 fileToolBar.addAction(printAct);
e78566595089 initial import
mandel
parents:
diff changeset
275
e78566595089 initial import
mandel
parents:
diff changeset
276 editToolBar = addToolBar(tr("Edit"));
e78566595089 initial import
mandel
parents:
diff changeset
277 editToolBar.addAction(undoAct);
e78566595089 initial import
mandel
parents:
diff changeset
278 }
e78566595089 initial import
mandel
parents:
diff changeset
279
e78566595089 initial import
mandel
parents:
diff changeset
280 void createStatusBar()
e78566595089 initial import
mandel
parents:
diff changeset
281 {
e78566595089 initial import
mandel
parents:
diff changeset
282 statusBar.showMessage(tr("Ready"));
e78566595089 initial import
mandel
parents:
diff changeset
283 }
e78566595089 initial import
mandel
parents:
diff changeset
284
e78566595089 initial import
mandel
parents:
diff changeset
285 void createDockWindows()
e78566595089 initial import
mandel
parents:
diff changeset
286 {
e78566595089 initial import
mandel
parents:
diff changeset
287 QDockWidget dock = new QDockWidget(tr("Customers"), this);
e78566595089 initial import
mandel
parents:
diff changeset
288 dock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea);
e78566595089 initial import
mandel
parents:
diff changeset
289 customerList = new QListWidget(dock);
e78566595089 initial import
mandel
parents:
diff changeset
290 customerList.addItems([
e78566595089 initial import
mandel
parents:
diff changeset
291 "John Doe, Harmony Enterprises, 12 Lakeside, Ambleton",
e78566595089 initial import
mandel
parents:
diff changeset
292 "Jane Doe, Memorabilia, 23 Watersedge, Beaton",
e78566595089 initial import
mandel
parents:
diff changeset
293 "Tammy Shea, Tiblanka, 38 Sea Views, Carlton",
e78566595089 initial import
mandel
parents:
diff changeset
294 "Tim Sheen, Caraba Gifts, 48 Ocean Way, Deal",
e78566595089 initial import
mandel
parents:
diff changeset
295 "Sol Harvey, Chicos Coffee, 53 New Springs, Eccleston",
e78566595089 initial import
mandel
parents:
diff changeset
296 "Sally Hobart, Tiroli Tea, 67 Long River, Fedula"]);
e78566595089 initial import
mandel
parents:
diff changeset
297 dock.setWidget(customerList);
e78566595089 initial import
mandel
parents:
diff changeset
298 addDockWidget(Qt.RightDockWidgetArea, dock);
e78566595089 initial import
mandel
parents:
diff changeset
299 viewMenu.addAction(dock.toggleViewAction());
e78566595089 initial import
mandel
parents:
diff changeset
300
e78566595089 initial import
mandel
parents:
diff changeset
301 dock = new QDockWidget(tr("Paragraphs"), this);
e78566595089 initial import
mandel
parents:
diff changeset
302 paragraphsList = new QListWidget(dock);
e78566595089 initial import
mandel
parents:
diff changeset
303 paragraphsList.addItems([
e78566595089 initial import
mandel
parents:
diff changeset
304 "Thank you for your payment which we have received today.",
e78566595089 initial import
mandel
parents:
diff changeset
305 "Your order has been dispatched and should be with you "
e78566595089 initial import
mandel
parents:
diff changeset
306 "within 28 days.",
e78566595089 initial import
mandel
parents:
diff changeset
307
e78566595089 initial import
mandel
parents:
diff changeset
308 "We have dispatched those items that were in stock. The "
e78566595089 initial import
mandel
parents:
diff changeset
309 "rest of your order will be dispatched once all the "
e78566595089 initial import
mandel
parents:
diff changeset
310 "remaining items have arrived at our warehouse. No "
e78566595089 initial import
mandel
parents:
diff changeset
311 "additional shipping charges will be made.",
e78566595089 initial import
mandel
parents:
diff changeset
312
e78566595089 initial import
mandel
parents:
diff changeset
313 "You made a small overpayment (less than $5) which we "
e78566595089 initial import
mandel
parents:
diff changeset
314 "will keep on account for you, or return at your request.",
e78566595089 initial import
mandel
parents:
diff changeset
315
e78566595089 initial import
mandel
parents:
diff changeset
316 "You made a small underpayment (less than $1), but we have "
e78566595089 initial import
mandel
parents:
diff changeset
317 "sent your order anyway. We'll add this underpayment to "
e78566595089 initial import
mandel
parents:
diff changeset
318 "your next bill.",
e78566595089 initial import
mandel
parents:
diff changeset
319
e78566595089 initial import
mandel
parents:
diff changeset
320 "Unfortunately you did not send enough money. Please remit "
e78566595089 initial import
mandel
parents:
diff changeset
321 "an additional $. Your order will be dispatched as soon as "
e78566595089 initial import
mandel
parents:
diff changeset
322 "the complete amount has been received.",
e78566595089 initial import
mandel
parents:
diff changeset
323
e78566595089 initial import
mandel
parents:
diff changeset
324 "You made an overpayment (more than $5). Do you wish to "
e78566595089 initial import
mandel
parents:
diff changeset
325 "buy more items, or should we return the excess to you?"]);
e78566595089 initial import
mandel
parents:
diff changeset
326 dock.setWidget(paragraphsList);
e78566595089 initial import
mandel
parents:
diff changeset
327 addDockWidget(Qt.RightDockWidgetArea, dock);
e78566595089 initial import
mandel
parents:
diff changeset
328 viewMenu.addAction(dock.toggleViewAction());
e78566595089 initial import
mandel
parents:
diff changeset
329
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: 215
diff changeset
330 connect!("currentTextChanged")(customerList, &this.insertCustomer);
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: 215
diff changeset
331 connect!("currentTextChanged")(paragraphsList, &this.addParagraph);
1
e78566595089 initial import
mandel
parents:
diff changeset
332 }
e78566595089 initial import
mandel
parents:
diff changeset
333
e78566595089 initial import
mandel
parents:
diff changeset
334 QTextEdit textEdit;
e78566595089 initial import
mandel
parents:
diff changeset
335 QListWidget customerList;
e78566595089 initial import
mandel
parents:
diff changeset
336 QListWidget paragraphsList;
e78566595089 initial import
mandel
parents:
diff changeset
337
e78566595089 initial import
mandel
parents:
diff changeset
338 QMenu fileMenu;
e78566595089 initial import
mandel
parents:
diff changeset
339 QMenu editMenu;
e78566595089 initial import
mandel
parents:
diff changeset
340 QMenu viewMenu;
e78566595089 initial import
mandel
parents:
diff changeset
341 QMenu helpMenu;
e78566595089 initial import
mandel
parents:
diff changeset
342 QToolBar fileToolBar;
e78566595089 initial import
mandel
parents:
diff changeset
343 QToolBar editToolBar;
e78566595089 initial import
mandel
parents:
diff changeset
344 QAction newLetterAct;
e78566595089 initial import
mandel
parents:
diff changeset
345 QAction saveAct;
e78566595089 initial import
mandel
parents:
diff changeset
346 QAction printAct;
e78566595089 initial import
mandel
parents:
diff changeset
347 QAction undoAct;
e78566595089 initial import
mandel
parents:
diff changeset
348 QAction aboutAct;
e78566595089 initial import
mandel
parents:
diff changeset
349 QAction aboutQtAct;
e78566595089 initial import
mandel
parents:
diff changeset
350 QAction quitAct;
e78566595089 initial import
mandel
parents:
diff changeset
351 }
e78566595089 initial import
mandel
parents:
diff changeset
352
e78566595089 initial import
mandel
parents:
diff changeset
353
e78566595089 initial import
mandel
parents:
diff changeset
354 //! [9]