File: Composer_8C-source.html

package info (click to toggle)
witty 3.1.2-3
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 45,512 kB
  • ctags: 35,832
  • sloc: cpp: 69,469; ansic: 66,945; xml: 4,383; sh: 594; perl: 108; makefile: 106
file content (410 lines) | stat: -rw-r--r-- 73,667 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Wt examples: /home/koen/project/wt/public-git/wt/examples/composer/Composer.C Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
<h1>/home/koen/project/wt/public-git/wt/examples/composer/Composer.C</h1><a href="Composer_8C.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2008 Emweb bvba, Kessel-Lo, Belgium.</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * See the LICENSE file for terms of use.</span>
<a name="l00005"></a>00005 <span class="comment"> */</span>
<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;iostream&gt;</span>
<a name="l00007"></a>00007 
<a name="l00008"></a>00008 <span class="preprocessor">#include "<a class="code" href="AddresseeEdit_8h.html">AddresseeEdit.h</a>"</span>
<a name="l00009"></a>00009 <span class="preprocessor">#include "<a class="code" href="AttachmentEdit_8h.html">AttachmentEdit.h</a>"</span>
<a name="l00010"></a>00010 <span class="preprocessor">#include "<a class="code" href="Composer_8h.html">Composer.h</a>"</span>
<a name="l00011"></a>00011 <span class="preprocessor">#include "<a class="code" href="ContactSuggestions_8h.html">ContactSuggestions.h</a>"</span>
<a name="l00012"></a>00012 <span class="preprocessor">#include "<a class="code" href="Label_8h.html">Label.h</a>"</span>
<a name="l00013"></a>00013 <span class="preprocessor">#include "<a class="code" href="Option_8h.html">Option.h</a>"</span>
<a name="l00014"></a>00014 <span class="preprocessor">#include "<a class="code" href="OptionList_8h.html">OptionList.h</a>"</span>
<a name="l00015"></a>00015 
<a name="l00016"></a>00016 <span class="preprocessor">#include &lt;Wt/WContainerWidget&gt;</span>
<a name="l00017"></a>00017 <span class="preprocessor">#include &lt;Wt/WImage&gt;</span>
<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;Wt/WLineEdit&gt;</span>
<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;Wt/WPushButton&gt;</span>
<a name="l00020"></a>00020 <span class="preprocessor">#include &lt;Wt/WText&gt;</span>
<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;Wt/WTable&gt;</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;Wt/WTableCell&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;Wt/WStringUtil&gt;</span>
<a name="l00024"></a>00024 
<a name="l00025"></a><a class="code" href="classComposer.html#084dec0bea86c87db2d711bfea72e47d">00025</a> <a class="code" href="classComposer.html#084dec0bea86c87db2d711bfea72e47d" title="Construct a new Composer.">Composer::Composer</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a> *parent)
<a name="l00026"></a>00026   : <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WCompositeWidget.html">WCompositeWidget</a>(parent),
<a name="l00027"></a>00027     saving_(false),
<a name="l00028"></a>00028     sending_(false)
<a name="l00029"></a>00029 {
<a name="l00030"></a>00030   <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WCompositeWidget.html#a5a3e93a551fd41b180c6b28fa169946">setImplementation</a>(<a class="code" href="classComposer.html#af13aa9b960e901cc97270350f4b7990">layout_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a>());
<a name="l00031"></a>00031 
<a name="l00032"></a>00032   <a class="code" href="classComposer.html#d949df7a1910929fffb12a67b362508f">createUi</a>();
<a name="l00033"></a>00033 }
<a name="l00034"></a>00034 
<a name="l00035"></a><a class="code" href="classComposer.html#875c536e6e8cc4c31b8cdb6b17e0c72c">00035</a> <span class="keywordtype">void</span> <a class="code" href="classComposer.html#875c536e6e8cc4c31b8cdb6b17e0c72c" title="Set message To: contacts.">Composer::setTo</a>(<span class="keyword">const</span> std::vector&lt;Contact&gt;&amp; <a class="code" href="classComposer.html#8d147821090f6e305111bd82187b929f" title="Get the To: contacts.">to</a>)
<a name="l00036"></a>00036 {
<a name="l00037"></a>00037   <a class="code" href="classComposer.html#5171d107b535bd670b72d6d3abe4b850" title="To: Addressees edit.">toEdit_</a>-&gt;<a class="code" href="classAddresseeEdit.html#dbf088c1a833e6bdc8d3f3f551d42a98" title="Set a list of addressees.">setAddressees</a>(to);
<a name="l00038"></a>00038 }
<a name="l00039"></a>00039 
<a name="l00040"></a><a class="code" href="classComposer.html#af759051d0b21bcc4a285172f23edaaa">00040</a> <span class="keywordtype">void</span> <a class="code" href="classComposer.html#af759051d0b21bcc4a285172f23edaaa" title="Set subject.">Composer::setSubject</a>(<span class="keyword">const</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WString.html">WString</a>&amp; <a class="code" href="classComposer.html#09023bf88e8d7c566e27d489d28b3d50" title="Get the subject.">subject</a>)
<a name="l00041"></a>00041 {
<a name="l00042"></a>00042   <a class="code" href="classComposer.html#7bc919d444b2bb9ea8cfb7fd3db689df" title="The subject line edit.">subject_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WLineEdit.html#ddb99c6ab5483836adf44a2706a410af">setText</a>(subject);
<a name="l00043"></a>00043 }
<a name="l00044"></a>00044 
<a name="l00045"></a><a class="code" href="classComposer.html#0b5002a67038461ec6ef3adf37800bf0">00045</a> <span class="keywordtype">void</span> <a class="code" href="classComposer.html#0b5002a67038461ec6ef3adf37800bf0" title="Set the message.">Composer::setMessage</a>(<span class="keyword">const</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WString.html">WString</a>&amp; <a class="code" href="classComposer.html#99572a1e5ee69bfbe804318fc28dae1b" title="Get the message.">message</a>)
<a name="l00046"></a>00046 {
<a name="l00047"></a>00047   <a class="code" href="classComposer.html#17dbbe76abbe0ed57d4c5928bcf24c42" title="WTextArea for the main message.">message_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTextArea.html#1f05060c037d13c2c6c26f51f1fb9640">setText</a>(message);
<a name="l00048"></a>00048 }
<a name="l00049"></a>00049 
<a name="l00050"></a><a class="code" href="classComposer.html#8d147821090f6e305111bd82187b929f">00050</a> std::vector&lt;Contact&gt; <a class="code" href="classComposer.html#8d147821090f6e305111bd82187b929f" title="Get the To: contacts.">Composer::to</a>()<span class="keyword"> const</span>
<a name="l00051"></a>00051 <span class="keyword"></span>{
<a name="l00052"></a>00052   <span class="keywordflow">return</span> <a class="code" href="classComposer.html#5171d107b535bd670b72d6d3abe4b850" title="To: Addressees edit.">toEdit_</a>-&gt;<a class="code" href="classAddresseeEdit.html#b7dbde2bff2fef234d20617b7ae42e26" title="Get a list of addressees.">addressees</a>();
<a name="l00053"></a>00053 }
<a name="l00054"></a>00054 
<a name="l00055"></a><a class="code" href="classComposer.html#fbabc511b2d7faf6e789d83e999886d1">00055</a> std::vector&lt;Contact&gt; <a class="code" href="classComposer.html#fbabc511b2d7faf6e789d83e999886d1" title="Get the Cc: contacts.">Composer::cc</a>()<span class="keyword"> const</span>
<a name="l00056"></a>00056 <span class="keyword"></span>{
<a name="l00057"></a>00057   <span class="keywordflow">return</span> <a class="code" href="classComposer.html#9d12e4daf1f221a8f387037fbcd147ae" title="Cc: Addressees edit.">ccEdit_</a>-&gt;<a class="code" href="classAddresseeEdit.html#b7dbde2bff2fef234d20617b7ae42e26" title="Get a list of addressees.">addressees</a>();
<a name="l00058"></a>00058 }
<a name="l00059"></a>00059  
<a name="l00060"></a><a class="code" href="classComposer.html#d28ae55ec6069a08d86fc0e92387dccb">00060</a> std::vector&lt;Contact&gt; <a class="code" href="classComposer.html#d28ae55ec6069a08d86fc0e92387dccb" title="Get the Bc: contacts.">Composer::bcc</a>()<span class="keyword"> const</span>
<a name="l00061"></a>00061 <span class="keyword"></span>{
<a name="l00062"></a>00062   <span class="keywordflow">return</span> <a class="code" href="classComposer.html#e58f4078c8859022a18f9d4460894289" title="Bcc: Addressees edit.">bccEdit_</a>-&gt;<a class="code" href="classAddresseeEdit.html#b7dbde2bff2fef234d20617b7ae42e26" title="Get a list of addressees.">addressees</a>();
<a name="l00063"></a>00063 }
<a name="l00064"></a>00064 
<a name="l00065"></a><a class="code" href="classComposer.html#c952c4e43c8dfb1ae46e83d84b381728">00065</a> <span class="keywordtype">void</span> <a class="code" href="classComposer.html#c952c4e43c8dfb1ae46e83d84b381728" title="Set the address book, for autocomplete suggestions.">Composer::setAddressBook</a>(<span class="keyword">const</span> std::vector&lt;Contact&gt;&amp; contacts)
<a name="l00066"></a>00066 {
<a name="l00067"></a>00067   <a class="code" href="classComposer.html#889f0931ce31c316b89201db6b146814" title="The suggestions popup for the addressee edits.">contactSuggestions_</a>-&gt;<a class="code" href="classContactSuggestions.html#bb65b3c75e64e050608d970d61b3fdcf" title="Set the address book.">setAddressBook</a>(contacts);
<a name="l00068"></a>00068 }
<a name="l00069"></a>00069 
<a name="l00070"></a><a class="code" href="classComposer.html#09023bf88e8d7c566e27d489d28b3d50">00070</a> <span class="keyword">const</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WString.html">WString</a>&amp; <a class="code" href="classComposer.html#09023bf88e8d7c566e27d489d28b3d50" title="Get the subject.">Composer::subject</a>()<span class="keyword"> const</span>
<a name="l00071"></a>00071 <span class="keyword"></span>{
<a name="l00072"></a>00072   <span class="keywordflow">return</span> <a class="code" href="classComposer.html#7bc919d444b2bb9ea8cfb7fd3db689df" title="The subject line edit.">subject_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WLineEdit.html#c74b58779cb635898cac13e81d8b0c7a">text</a>();
<a name="l00073"></a>00073 }
<a name="l00074"></a>00074 
<a name="l00075"></a><a class="code" href="classComposer.html#84ca3fe36eddc04930ce0471de1ba7b8">00075</a> std::vector&lt;Attachment&gt; <a class="code" href="classComposer.html#84ca3fe36eddc04930ce0471de1ba7b8" title="Get the list of attachments.">Composer::attachments</a>()<span class="keyword"> const</span>
<a name="l00076"></a>00076 <span class="keyword"></span>{
<a name="l00077"></a>00077   std::vector&lt;Attachment&gt; <a class="code" href="classComposer.html#84ca3fe36eddc04930ce0471de1ba7b8" title="Get the list of attachments.">attachments</a>;
<a name="l00078"></a>00078 
<a name="l00079"></a>00079   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; <a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>.size() - 1; ++i) {
<a name="l00080"></a>00080     <span class="keywordflow">if</span> (<a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>[i]-&gt;include())
<a name="l00081"></a>00081       attachments.push_back(<a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>[i]-&gt;attachment());
<a name="l00082"></a>00082   }
<a name="l00083"></a>00083 
<a name="l00084"></a>00084   <span class="keywordflow">return</span> attachments;
<a name="l00085"></a>00085 }
<a name="l00086"></a>00086 
<a name="l00087"></a><a class="code" href="classComposer.html#99572a1e5ee69bfbe804318fc28dae1b">00087</a> <span class="keyword">const</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WString.html">WString</a>&amp; <a class="code" href="classComposer.html#99572a1e5ee69bfbe804318fc28dae1b" title="Get the message.">Composer::message</a>()<span class="keyword"> const</span>
<a name="l00088"></a>00088 <span class="keyword"></span>{
<a name="l00089"></a>00089   <span class="keywordflow">return</span> <a class="code" href="classComposer.html#17dbbe76abbe0ed57d4c5928bcf24c42" title="WTextArea for the main message.">message_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTextArea.html#d8b89ce30df2b02894c53b6ed71fe4a6">text</a>();
<a name="l00090"></a>00090 }
<a name="l00091"></a>00091 
<a name="l00092"></a><a class="code" href="classComposer.html#d949df7a1910929fffb12a67b362508f">00092</a> <span class="keywordtype">void</span> <a class="code" href="classComposer.html#d949df7a1910929fffb12a67b362508f">Composer::createUi</a>()
<a name="l00093"></a>00093 {
<a name="l00094"></a>00094   <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WCompositeWidget.html#f9a8abf4e8b5be186a31cd951e60bdc6">setStyleClass</a>(<span class="stringliteral">"darker"</span>);
<a name="l00095"></a>00095 
<a name="l00096"></a>00096   <span class="comment">// horizontal layout container, used for top and bottom buttons.</span>
<a name="l00097"></a>00097   <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a> *horiz;
<a name="l00098"></a>00098 
<a name="l00099"></a>00099   <span class="comment">/*</span>
<a name="l00100"></a>00100 <span class="comment">   * Top buttons</span>
<a name="l00101"></a>00101 <span class="comment">   */</span>
<a name="l00102"></a>00102   horiz = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a>(<a class="code" href="classComposer.html#af13aa9b960e901cc97270350f4b7990">layout_</a>);
<a name="l00103"></a>00103   horiz-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WContainerWidget.html#fa5f6800e2170ae2f4586a25c72f8c34">setPadding</a>(5);
<a name="l00104"></a>00104   <a class="code" href="classComposer.html#476ad9498a617ce73199792d4ab727be">topSendButton_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WPushButton.html">WPushButton</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.send"</span>), horiz);
<a name="l00105"></a>00105   <a class="code" href="classComposer.html#476ad9498a617ce73199792d4ab727be">topSendButton_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#6fd43dced1a62f7e79bc3522eeb16216">setStyleClass</a>(<span class="stringliteral">"default"</span>); <span class="comment">// default action</span>
<a name="l00106"></a>00106   <a class="code" href="classComposer.html#2b4444c47fe4718e03661bb2af36102e">topSaveNowButton_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WPushButton.html">WPushButton</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.savenow"</span>), horiz);
<a name="l00107"></a>00107   <a class="code" href="classComposer.html#7dc86db047a022086d644c825fa9588d">topDiscardButton_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WPushButton.html">WPushButton</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.discard"</span>), horiz);
<a name="l00108"></a>00108 
<a name="l00109"></a>00109   <span class="comment">// Text widget which shows status messages, next to the top buttons.</span>
<a name="l00110"></a>00110   <a class="code" href="classComposer.html#09067ffd913810f9d499570609e17674">statusMsg_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WText.html">WText</a>(horiz);
<a name="l00111"></a>00111   <a class="code" href="classComposer.html#09067ffd913810f9d499570609e17674">statusMsg_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#07719d06da0dd17af2381c663e8fb0b7">setMargin</a>(15, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a36568fecac7c7d7223afaed240bcfdd9e">Left</a>);
<a name="l00112"></a>00112 
<a name="l00113"></a>00113   <span class="comment">/*</span>
<a name="l00114"></a>00114 <span class="comment">   * To, Cc, Bcc, Subject, Attachments</span>
<a name="l00115"></a>00115 <span class="comment">   *</span>
<a name="l00116"></a>00116 <span class="comment">   * They are organized in a two-column table: left column for</span>
<a name="l00117"></a>00117 <span class="comment">   * labels, and right column for the edit.</span>
<a name="l00118"></a>00118 <span class="comment">   */</span>
<a name="l00119"></a>00119   <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html">WTable</a>(<a class="code" href="classComposer.html#af13aa9b960e901cc97270350f4b7990">layout_</a>);
<a name="l00120"></a>00120   <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#6fd43dced1a62f7e79bc3522eeb16216">setStyleClass</a>(<span class="stringliteral">"lighter"</span>);
<a name="l00121"></a>00121   <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#e1b84e31581405358b6d57ec14505234">resize</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WLength.html">WLength</a>(100, WLength::Percentage), WLength::Auto);
<a name="l00122"></a>00122   <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(0, 0)-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#e1b84e31581405358b6d57ec14505234">resize</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WLength.html">WLength</a>(1, WLength::Percentage),
<a name="l00123"></a>00123                                   WLength::Auto);
<a name="l00124"></a>00124 
<a name="l00125"></a>00125   <span class="comment">/*</span>
<a name="l00126"></a>00126 <span class="comment">   * To, Cc, Bcc</span>
<a name="l00127"></a>00127 <span class="comment">   */</span>
<a name="l00128"></a>00128   <a class="code" href="classComposer.html#5171d107b535bd670b72d6d3abe4b850" title="To: Addressees edit.">toEdit_</a> = <span class="keyword">new</span> <a class="code" href="classAddresseeEdit.html" title="An edit field for an email addressee.">AddresseeEdit</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.to"</span>), <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(0, 1),
<a name="l00129"></a>00129                               <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(0, 0));
<a name="l00130"></a>00130   <span class="comment">// add some space above To:</span>
<a name="l00131"></a>00131   <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(0, 1)-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#07719d06da0dd17af2381c663e8fb0b7">setMargin</a>(5, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a368b058364f8c2380c1d369a321f22f92">Top</a>);
<a name="l00132"></a>00132   <a class="code" href="classComposer.html#9d12e4daf1f221a8f387037fbcd147ae" title="Cc: Addressees edit.">ccEdit_</a> = <span class="keyword">new</span> <a class="code" href="classAddresseeEdit.html" title="An edit field for an email addressee.">AddresseeEdit</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.cc"</span>), <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(1, 1),
<a name="l00133"></a>00133                               <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(1, 0));
<a name="l00134"></a>00134   <a class="code" href="classComposer.html#e58f4078c8859022a18f9d4460894289" title="Bcc: Addressees edit.">bccEdit_</a> = <span class="keyword">new</span> <a class="code" href="classAddresseeEdit.html" title="An edit field for an email addressee.">AddresseeEdit</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.bcc"</span>), <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(2, 1),
<a name="l00135"></a>00135                                <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(2, 0));
<a name="l00136"></a>00136 
<a name="l00137"></a>00137   <a class="code" href="classComposer.html#9d12e4daf1f221a8f387037fbcd147ae" title="Cc: Addressees edit.">ccEdit_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#0825c3ccbd4999afc1a88fafa6aa6fc7">hide</a>();
<a name="l00138"></a>00138   bccEdit_-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#0825c3ccbd4999afc1a88fafa6aa6fc7">hide</a>();
<a name="l00139"></a>00139 
<a name="l00140"></a>00140   <span class="comment">/*</span>
<a name="l00141"></a>00141 <span class="comment">   * Addressbook suggestions popup</span>
<a name="l00142"></a>00142 <span class="comment">   */</span>
<a name="l00143"></a>00143   <a class="code" href="classComposer.html#889f0931ce31c316b89201db6b146814" title="The suggestions popup for the addressee edits.">contactSuggestions_</a> = <span class="keyword">new</span> <a class="code" href="classContactSuggestions.html" title="A suggestion popup suggesting contacts from an addressbook.">ContactSuggestions</a>(<a class="code" href="classComposer.html#af13aa9b960e901cc97270350f4b7990">layout_</a>);
<a name="l00144"></a>00144 
<a name="l00145"></a>00145   <a class="code" href="classComposer.html#889f0931ce31c316b89201db6b146814" title="The suggestions popup for the addressee edits.">contactSuggestions_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WSuggestionPopup.html#94b623fc6500be6ae5d9cdf00247edc0">forEdit</a>(<a class="code" href="classComposer.html#5171d107b535bd670b72d6d3abe4b850" title="To: Addressees edit.">toEdit_</a>);
<a name="l00146"></a>00146   <a class="code" href="classComposer.html#889f0931ce31c316b89201db6b146814" title="The suggestions popup for the addressee edits.">contactSuggestions_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WSuggestionPopup.html#94b623fc6500be6ae5d9cdf00247edc0">forEdit</a>(<a class="code" href="classComposer.html#9d12e4daf1f221a8f387037fbcd147ae" title="Cc: Addressees edit.">ccEdit_</a>);
<a name="l00147"></a>00147   <a class="code" href="classComposer.html#889f0931ce31c316b89201db6b146814" title="The suggestions popup for the addressee edits.">contactSuggestions_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WSuggestionPopup.html#94b623fc6500be6ae5d9cdf00247edc0">forEdit</a>(bccEdit_);
<a name="l00148"></a>00148 
<a name="l00149"></a>00149   <span class="comment">/*</span>
<a name="l00150"></a>00150 <span class="comment">   * We use an OptionList widget to show the expand options for</span>
<a name="l00151"></a>00151 <span class="comment">   * ccEdit_ and bccEdit_ nicely next to each other, separated</span>
<a name="l00152"></a>00152 <span class="comment">   * by pipe characters.</span>
<a name="l00153"></a>00153 <span class="comment">   */</span>
<a name="l00154"></a>00154   <a class="code" href="classComposer.html#ea60b95ef9d0053fcffe930e4865a958" title="OptionsList for editing Cc or Bcc.">options_</a> = <span class="keyword">new</span> <a class="code" href="classOptionList.html" title="A list of options, separated by &amp;#39;|&amp;#39;.">OptionList</a>(<a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(3, 1));
<a name="l00155"></a>00155 
<a name="l00156"></a>00156   <a class="code" href="classComposer.html#ea60b95ef9d0053fcffe930e4865a958" title="OptionsList for editing Cc or Bcc.">options_</a>-&gt;<a class="code" href="classOptionList.html#358bf988ce23142cabf3e19dcbc2a158" title="Add an Option to the list.">add</a>(<a class="code" href="classComposer.html#c307d36403cab6ff70204c7822d9e149" title="Option for editing Cc:.">addcc_</a> = <span class="keyword">new</span> <a class="code" href="classOption.html" title="A clickable option.">Option</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.addcc"</span>)));
<a name="l00157"></a>00157   <a class="code" href="classComposer.html#ea60b95ef9d0053fcffe930e4865a958" title="OptionsList for editing Cc or Bcc.">options_</a>-&gt;<a class="code" href="classOptionList.html#358bf988ce23142cabf3e19dcbc2a158" title="Add an Option to the list.">add</a>(<a class="code" href="classComposer.html#9d102646eca2e3081886796cdb15a409" title="Option for editing Bcc:.">addbcc_</a> = <span class="keyword">new</span> <a class="code" href="classOption.html" title="A clickable option.">Option</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.addbcc"</span>)));
<a name="l00158"></a>00158 
<a name="l00159"></a>00159   <span class="comment">/*</span>
<a name="l00160"></a>00160 <span class="comment">   * Subject</span>
<a name="l00161"></a>00161 <span class="comment">   */</span>
<a name="l00162"></a>00162   <span class="keyword">new</span> <a class="code" href="classLabel.html" title="A label.">Label</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.subject"</span>), <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(4, 0));
<a name="l00163"></a>00163   <a class="code" href="classComposer.html#7bc919d444b2bb9ea8cfb7fd3db689df" title="The subject line edit.">subject_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WLineEdit.html">WLineEdit</a>(<a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(4, 1));
<a name="l00164"></a>00164   subject_-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#e1b84e31581405358b6d57ec14505234">resize</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WLength.html">WLength</a>(99, WLength::Percentage), WLength::Auto);
<a name="l00165"></a>00165 
<a name="l00166"></a>00166   <span class="comment">/*</span>
<a name="l00167"></a>00167 <span class="comment">   * Attachments</span>
<a name="l00168"></a>00168 <span class="comment">   */</span>
<a name="l00169"></a>00169   <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WImage.html">WImage</a>(<span class="stringliteral">"icons/paperclip.png"</span>, <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(5, 0));
<a name="l00170"></a>00170   <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(5, 0)-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WContainerWidget.html#ba13c9e62c74bcba53519ee9cf41f40a">setContentAlignment</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#b8f772c69bc8180c31f9e4f4593b143fb250310385383f0b2f68d4e0ad5567e1">AlignRight</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#b8f772c69bc8180c31f9e4f4593b143f58fe5182bd266132c59718c6d30945a9">AlignTop</a>);
<a name="l00171"></a>00171 
<a name="l00172"></a>00172   
<a name="l00173"></a>00173   <span class="comment">// Attachment edits: we always have the next attachmentedit ready</span>
<a name="l00174"></a>00174   <span class="comment">// but hidden. This improves the response time, since the show()</span>
<a name="l00175"></a>00175   <span class="comment">// and hide() slots are stateless.</span>
<a name="l00176"></a>00176   <a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>.push_back(<span class="keyword">new</span> <a class="code" href="classComposer.html#a4bbd94229aa2788f3dd71177c1b1f34">AttachmentEdit</a>(<span class="keyword">this</span>, <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(5, 1)));
<a name="l00177"></a>00177   <a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>.back()-&gt;hide();
<a name="l00178"></a>00178 
<a name="l00179"></a>00179   <span class="comment">/*</span>
<a name="l00180"></a>00180 <span class="comment">   * Two options for attaching files. The first does not say 'another'.</span>
<a name="l00181"></a>00181 <span class="comment">   */</span>
<a name="l00182"></a>00182   <a class="code" href="classComposer.html#8e04ae3dc2b27ea08a803cbbb8ebd031" title="Option for attaching a file.">attachFile_</a> = <span class="keyword">new</span> <a class="code" href="classOption.html" title="A clickable option.">Option</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.attachfile"</span>),
<a name="l00183"></a>00183                            <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(5, 1));
<a name="l00184"></a>00184   <a class="code" href="classComposer.html#0ab2b9453f4787af299e72b4c2a2423d" title="Option for attaching another file.">attachOtherFile_</a> = <span class="keyword">new</span> <a class="code" href="classOption.html" title="A clickable option.">Option</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.attachanother"</span>),
<a name="l00185"></a>00185                                 <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(5, 1));
<a name="l00186"></a>00186   attachOtherFile_-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#0825c3ccbd4999afc1a88fafa6aa6fc7">hide</a>();
<a name="l00187"></a>00187 
<a name="l00188"></a>00188   <span class="comment">/*</span>
<a name="l00189"></a>00189 <span class="comment">   * Message</span>
<a name="l00190"></a>00190 <span class="comment">   */</span>
<a name="l00191"></a>00191   <a class="code" href="classComposer.html#17dbbe76abbe0ed57d4c5928bcf24c42" title="WTextArea for the main message.">message_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTextArea.html">WTextArea</a>(<a class="code" href="classComposer.html#af13aa9b960e901cc97270350f4b7990">layout_</a>);
<a name="l00192"></a>00192   <a class="code" href="classComposer.html#17dbbe76abbe0ed57d4c5928bcf24c42" title="WTextArea for the main message.">message_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTextArea.html#f429ed3a2b6011c97b4f9ea7f910e079">setColumns</a>(80);
<a name="l00193"></a>00193   <a class="code" href="classComposer.html#17dbbe76abbe0ed57d4c5928bcf24c42" title="WTextArea for the main message.">message_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTextArea.html#de46b47350f427f45c9b53ac7e41c5b2">setRows</a>(10); <span class="comment">// should be 20, but let's keep it smaller</span>
<a name="l00194"></a>00194   <a class="code" href="classComposer.html#17dbbe76abbe0ed57d4c5928bcf24c42" title="WTextArea for the main message.">message_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#07719d06da0dd17af2381c663e8fb0b7">setMargin</a>(10);
<a name="l00195"></a>00195 
<a name="l00196"></a>00196   <span class="comment">/*</span>
<a name="l00197"></a>00197 <span class="comment">   * Bottom buttons</span>
<a name="l00198"></a>00198 <span class="comment">   */</span>
<a name="l00199"></a>00199   horiz = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a>(<a class="code" href="classComposer.html#af13aa9b960e901cc97270350f4b7990">layout_</a>);
<a name="l00200"></a>00200   horiz-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WContainerWidget.html#fa5f6800e2170ae2f4586a25c72f8c34">setPadding</a>(5);
<a name="l00201"></a>00201   <a class="code" href="classComposer.html#66efb6563c5dfd378def156a91531b6b">botSendButton_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WPushButton.html">WPushButton</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.send"</span>), horiz);
<a name="l00202"></a>00202   <a class="code" href="classComposer.html#66efb6563c5dfd378def156a91531b6b">botSendButton_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#6fd43dced1a62f7e79bc3522eeb16216">setStyleClass</a>(<span class="stringliteral">"default"</span>);
<a name="l00203"></a>00203   <a class="code" href="classComposer.html#03113e5fe16b19f8108659d30da25a3c">botSaveNowButton_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WPushButton.html">WPushButton</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.savenow"</span>), horiz);
<a name="l00204"></a>00204   <a class="code" href="classComposer.html#8ed76b62de2178118194a6672b18588a">botDiscardButton_</a> = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WPushButton.html">WPushButton</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.discard"</span>), horiz);
<a name="l00205"></a>00205 
<a name="l00206"></a>00206   <span class="comment">/*</span>
<a name="l00207"></a>00207 <span class="comment">   * Button events.</span>
<a name="l00208"></a>00208 <span class="comment">   */</span>
<a name="l00209"></a>00209   <a class="code" href="classComposer.html#476ad9498a617ce73199792d4ab727be">topSendButton_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<span class="keyword">this</span>, <a class="code" href="classComposer.html#06e0d72a05418d11d1cfec8a5fcb48b6" title="Slot attached to the Send button.">Composer::sendIt</a>));
<a name="l00210"></a>00210   <a class="code" href="classComposer.html#66efb6563c5dfd378def156a91531b6b">botSendButton_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<span class="keyword">this</span>, <a class="code" href="classComposer.html#06e0d72a05418d11d1cfec8a5fcb48b6" title="Slot attached to the Send button.">Composer::sendIt</a>));
<a name="l00211"></a>00211   <a class="code" href="classComposer.html#2b4444c47fe4718e03661bb2af36102e">topSaveNowButton_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<span class="keyword">this</span>, <a class="code" href="classComposer.html#5db93f098178964c68c1ecb287ff11ca" title="Slot attached to the Save now button.">Composer::saveNow</a>));
<a name="l00212"></a>00212   <a class="code" href="classComposer.html#03113e5fe16b19f8108659d30da25a3c">botSaveNowButton_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<span class="keyword">this</span>, <a class="code" href="classComposer.html#5db93f098178964c68c1ecb287ff11ca" title="Slot attached to the Save now button.">Composer::saveNow</a>));
<a name="l00213"></a>00213   <a class="code" href="classComposer.html#7dc86db047a022086d644c825fa9588d">topDiscardButton_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<span class="keyword">this</span>, <a class="code" href="classComposer.html#5880788a9a63a938572e6ca7e47a01ab" title="Slot attached to the Discard button.">Composer::discardIt</a>));
<a name="l00214"></a>00214   <a class="code" href="classComposer.html#8ed76b62de2178118194a6672b18588a">botDiscardButton_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<span class="keyword">this</span>, <a class="code" href="classComposer.html#5880788a9a63a938572e6ca7e47a01ab" title="Slot attached to the Discard button.">Composer::discardIt</a>));
<a name="l00215"></a>00215 
<a name="l00216"></a>00216   <span class="comment">/*</span>
<a name="l00217"></a>00217 <span class="comment">   * Option events to show the cc or Bcc edit.</span>
<a name="l00218"></a>00218 <span class="comment">   *</span>
<a name="l00219"></a>00219 <span class="comment">   * Clicking on the option should both show the corresponding edit, and</span>
<a name="l00220"></a>00220 <span class="comment">   * hide the option itself.</span>
<a name="l00221"></a>00221 <span class="comment">   */</span>
<a name="l00222"></a>00222   <a class="code" href="classComposer.html#c307d36403cab6ff70204c7822d9e149" title="Option for editing Cc:.">addcc_</a>-&gt;<a class="code" href="classOption.html#31cd766f28605ceba53642d7d4e68c9e" title="Returns the clickable part.">item</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<a class="code" href="classComposer.html#9d12e4daf1f221a8f387037fbcd147ae" title="Cc: Addressees edit.">ccEdit_</a>, WWidget::show));
<a name="l00223"></a>00223   <a class="code" href="classComposer.html#c307d36403cab6ff70204c7822d9e149" title="Option for editing Cc:.">addcc_</a>-&gt;<a class="code" href="classOption.html#31cd766f28605ceba53642d7d4e68c9e" title="Returns the clickable part.">item</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<a class="code" href="classComposer.html#c307d36403cab6ff70204c7822d9e149" title="Option for editing Cc:.">addcc_</a>, WWidget::hide));
<a name="l00224"></a>00224   <a class="code" href="classComposer.html#c307d36403cab6ff70204c7822d9e149" title="Option for editing Cc:.">addcc_</a>-&gt;<a class="code" href="classOption.html#31cd766f28605ceba53642d7d4e68c9e" title="Returns the clickable part.">item</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<a class="code" href="classComposer.html#ea60b95ef9d0053fcffe930e4865a958" title="OptionsList for editing Cc or Bcc.">options_</a>, <a class="code" href="classOptionList.html#5b0013e09c5f269f33aa5c9bfb17e32b" title="Update the stateless implementations after an Option has been hidden or shown.">OptionList::update</a>));
<a name="l00225"></a>00225   <a class="code" href="classComposer.html#c307d36403cab6ff70204c7822d9e149" title="Option for editing Cc:.">addcc_</a>-&gt;<a class="code" href="classOption.html#31cd766f28605ceba53642d7d4e68c9e" title="Returns the clickable part.">item</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<a class="code" href="classComposer.html#9d12e4daf1f221a8f387037fbcd147ae" title="Cc: Addressees edit.">ccEdit_</a>, WFormWidget::setFocus));
<a name="l00226"></a>00226 
<a name="l00227"></a>00227   <a class="code" href="classComposer.html#9d102646eca2e3081886796cdb15a409" title="Option for editing Bcc:.">addbcc_</a>-&gt;<a class="code" href="classOption.html#31cd766f28605ceba53642d7d4e68c9e" title="Returns the clickable part.">item</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(bccEdit_, WWidget::show));
<a name="l00228"></a>00228   <a class="code" href="classComposer.html#9d102646eca2e3081886796cdb15a409" title="Option for editing Bcc:.">addbcc_</a>-&gt;<a class="code" href="classOption.html#31cd766f28605ceba53642d7d4e68c9e" title="Returns the clickable part.">item</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<a class="code" href="classComposer.html#9d102646eca2e3081886796cdb15a409" title="Option for editing Bcc:.">addbcc_</a>, WWidget::hide));
<a name="l00229"></a>00229   <a class="code" href="classComposer.html#9d102646eca2e3081886796cdb15a409" title="Option for editing Bcc:.">addbcc_</a>-&gt;<a class="code" href="classOption.html#31cd766f28605ceba53642d7d4e68c9e" title="Returns the clickable part.">item</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<a class="code" href="classComposer.html#ea60b95ef9d0053fcffe930e4865a958" title="OptionsList for editing Cc or Bcc.">options_</a>, <a class="code" href="classOptionList.html#5b0013e09c5f269f33aa5c9bfb17e32b" title="Update the stateless implementations after an Option has been hidden or shown.">OptionList::update</a>));
<a name="l00230"></a>00230   <a class="code" href="classComposer.html#9d102646eca2e3081886796cdb15a409" title="Option for editing Bcc:.">addbcc_</a>-&gt;<a class="code" href="classOption.html#31cd766f28605ceba53642d7d4e68c9e" title="Returns the clickable part.">item</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(bccEdit_, WFormWidget::setFocus));
<a name="l00231"></a>00231 
<a name="l00232"></a>00232   <span class="comment">/*</span>
<a name="l00233"></a>00233 <span class="comment">   * Option event to attach the first attachment.</span>
<a name="l00234"></a>00234 <span class="comment">   *</span>
<a name="l00235"></a>00235 <span class="comment">   * We show the first attachment, and call attachMore() to prepare the</span>
<a name="l00236"></a>00236 <span class="comment">   * next attachment edit that will be hidden.</span>
<a name="l00237"></a>00237 <span class="comment">   *</span>
<a name="l00238"></a>00238 <span class="comment">   * In addition, we need to show the 'attach More' option, and hide the</span>
<a name="l00239"></a>00239 <span class="comment">   * 'attach' option.</span>
<a name="l00240"></a>00240 <span class="comment">   */</span>
<a name="l00241"></a>00241   <a class="code" href="classComposer.html#8e04ae3dc2b27ea08a803cbbb8ebd031" title="Option for attaching a file.">attachFile_</a>-&gt;<a class="code" href="classOption.html#31cd766f28605ceba53642d7d4e68c9e" title="Returns the clickable part.">item</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>.back(),
<a name="l00242"></a>00242                                               WWidget::show));
<a name="l00243"></a>00243   <a class="code" href="classComposer.html#8e04ae3dc2b27ea08a803cbbb8ebd031" title="Option for attaching a file.">attachFile_</a>-&gt;<a class="code" href="classOption.html#31cd766f28605ceba53642d7d4e68c9e" title="Returns the clickable part.">item</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(attachOtherFile_, WWidget::show));
<a name="l00244"></a>00244   <a class="code" href="classComposer.html#8e04ae3dc2b27ea08a803cbbb8ebd031" title="Option for attaching a file.">attachFile_</a>-&gt;<a class="code" href="classOption.html#31cd766f28605ceba53642d7d4e68c9e" title="Returns the clickable part.">item</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<a class="code" href="classComposer.html#8e04ae3dc2b27ea08a803cbbb8ebd031" title="Option for attaching a file.">attachFile_</a>, WWidget::hide));
<a name="l00245"></a>00245   <a class="code" href="classComposer.html#8e04ae3dc2b27ea08a803cbbb8ebd031" title="Option for attaching a file.">attachFile_</a>-&gt;<a class="code" href="classOption.html#31cd766f28605ceba53642d7d4e68c9e" title="Returns the clickable part.">item</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<span class="keyword">this</span>, <a class="code" href="classComposer.html#5ade97ee657c39f8576c8ca2a98a8731" title="Add an attachment edit.">Composer::attachMore</a>));
<a name="l00246"></a>00246   attachOtherFile_-&gt;<a class="code" href="classOption.html#31cd766f28605ceba53642d7d4e68c9e" title="Returns the clickable part.">item</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<span class="keyword">this</span>, <a class="code" href="classComposer.html#5ade97ee657c39f8576c8ca2a98a8731" title="Add an attachment edit.">Composer::attachMore</a>));
<a name="l00247"></a>00247 }
<a name="l00248"></a>00248 
<a name="l00249"></a><a class="code" href="classComposer.html#5ade97ee657c39f8576c8ca2a98a8731">00249</a> <span class="keywordtype">void</span> <a class="code" href="classComposer.html#5ade97ee657c39f8576c8ca2a98a8731" title="Add an attachment edit.">Composer::attachMore</a>()
<a name="l00250"></a>00250 {
<a name="l00251"></a>00251   <span class="comment">/*</span>
<a name="l00252"></a>00252 <span class="comment">   * Create and append the next AttachmentEdit, that will be hidden.</span>
<a name="l00253"></a>00253 <span class="comment">   */</span>
<a name="l00254"></a>00254   <a class="code" href="classAttachmentEdit.html" title="An edit field for an email attachment.">AttachmentEdit</a> *edit = <span class="keyword">new</span> <a class="code" href="classComposer.html#a4bbd94229aa2788f3dd71177c1b1f34">AttachmentEdit</a>(<span class="keyword">this</span>);
<a name="l00255"></a>00255   <a class="code" href="classComposer.html#9bcfcbfc8651cefaaa3c830d64a9ffb3">edits_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WTable.html#c4b59af9a44e185edb14e7f1f439d6c4">elementAt</a>(5, 1)-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WContainerWidget.html#1439877a32c4b082f312fee81d139665">insertBefore</a>(edit, <a class="code" href="classComposer.html#0ab2b9453f4787af299e72b4c2a2423d" title="Option for attaching another file.">attachOtherFile_</a>);
<a name="l00256"></a>00256   <a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>.push_back(edit);
<a name="l00257"></a>00257   <a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>.back()-&gt;hide();
<a name="l00258"></a>00258 
<a name="l00259"></a>00259   <span class="comment">// Connect the attachOtherFile_ option to show this attachment.</span>
<a name="l00260"></a>00260   <a class="code" href="classComposer.html#0ab2b9453f4787af299e72b4c2a2423d" title="Option for attaching another file.">attachOtherFile_</a>-&gt;<a class="code" href="classOption.html#31cd766f28605ceba53642d7d4e68c9e" title="Returns the clickable part.">item</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>.back(),
<a name="l00261"></a>00261                                                    WWidget::show));
<a name="l00262"></a>00262 }
<a name="l00263"></a>00263 
<a name="l00264"></a><a class="code" href="classComposer.html#b142f49c8de59da0f84185165eb6c1c1">00264</a> <span class="keywordtype">void</span> <a class="code" href="classComposer.html#b142f49c8de59da0f84185165eb6c1c1" title="Remove the given attachment edit.">Composer::removeAttachment</a>(<a class="code" href="classAttachmentEdit.html" title="An edit field for an email attachment.">AttachmentEdit</a> *attachment)
<a name="l00265"></a>00265 {
<a name="l00266"></a>00266   <span class="comment">/*</span>
<a name="l00267"></a>00267 <span class="comment">   * Remove the given attachment from the attachments list.</span>
<a name="l00268"></a>00268 <span class="comment">   */</span>
<a name="l00269"></a>00269   std::vector&lt;AttachmentEdit *&gt;::iterator i
<a name="l00270"></a>00270     = std::find(<a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>.begin(), <a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>.end(), attachment);
<a name="l00271"></a>00271 
<a name="l00272"></a>00272   <span class="keywordflow">if</span> (i != <a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>.end()) {
<a name="l00273"></a>00273     <a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>.erase(i);
<a name="l00274"></a>00274     <span class="keyword">delete</span> attachment;
<a name="l00275"></a>00275 
<a name="l00276"></a>00276     <span class="keywordflow">if</span> (<a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>.size() == 1) {
<a name="l00277"></a>00277       <span class="comment">/*</span>
<a name="l00278"></a>00278 <span class="comment">       * This was the last visible attachment, thus, we should switch</span>
<a name="l00279"></a>00279 <span class="comment">       * the option control again.</span>
<a name="l00280"></a>00280 <span class="comment">       */</span>
<a name="l00281"></a>00281       <a class="code" href="classComposer.html#0ab2b9453f4787af299e72b4c2a2423d" title="Option for attaching another file.">attachOtherFile_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#0825c3ccbd4999afc1a88fafa6aa6fc7">hide</a>();
<a name="l00282"></a>00282       <a class="code" href="classComposer.html#8e04ae3dc2b27ea08a803cbbb8ebd031" title="Option for attaching a file.">attachFile_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#52dcef5a385ddfa0a8c3e6c20000f181">show</a>();
<a name="l00283"></a>00283       <a class="code" href="classComposer.html#8e04ae3dc2b27ea08a803cbbb8ebd031" title="Option for attaching a file.">attachFile_</a>-&gt;<a class="code" href="classOption.html#31cd766f28605ceba53642d7d4e68c9e" title="Returns the clickable part.">item</a>()-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WInteractWidget.html#e11e050cce0d4a8f742afa3ef92bfe8c">clicked</a>().connect(SLOT(<a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>.back(),
<a name="l00284"></a>00284                                                   WWidget::show));
<a name="l00285"></a>00285     }
<a name="l00286"></a>00286   }
<a name="l00287"></a>00287 }
<a name="l00288"></a>00288 
<a name="l00289"></a><a class="code" href="classComposer.html#06e0d72a05418d11d1cfec8a5fcb48b6">00289</a> <span class="keywordtype">void</span> <a class="code" href="classComposer.html#06e0d72a05418d11d1cfec8a5fcb48b6" title="Slot attached to the Send button.">Composer::sendIt</a>()
<a name="l00290"></a>00290 {
<a name="l00291"></a>00291   <span class="keywordflow">if</span> (!<a class="code" href="classComposer.html#a079baf3b2fcec4ceabda3457cf28de4">sending_</a>) {
<a name="l00292"></a>00292     <a class="code" href="classComposer.html#a079baf3b2fcec4ceabda3457cf28de4">sending_</a> = <span class="keyword">true</span>;
<a name="l00293"></a>00293 
<a name="l00294"></a>00294     <span class="comment">/*</span>
<a name="l00295"></a>00295 <span class="comment">     * First save -- this will check for the sending_ state</span>
<a name="l00296"></a>00296 <span class="comment">     * signal if successfull.</span>
<a name="l00297"></a>00297 <span class="comment">     */</span>
<a name="l00298"></a>00298     <a class="code" href="classComposer.html#5db93f098178964c68c1ecb287ff11ca" title="Slot attached to the Save now button.">saveNow</a>();
<a name="l00299"></a>00299   }
<a name="l00300"></a>00300 }
<a name="l00301"></a>00301 
<a name="l00302"></a><a class="code" href="classComposer.html#5db93f098178964c68c1ecb287ff11ca">00302</a> <span class="keywordtype">void</span> <a class="code" href="classComposer.html#5db93f098178964c68c1ecb287ff11ca" title="Slot attached to the Save now button.">Composer::saveNow</a>()
<a name="l00303"></a>00303 {
<a name="l00304"></a>00304   <span class="keywordflow">if</span> (!<a class="code" href="classComposer.html#75988a529863cd5e90138e46056aae9f" title="state when waiting asyncrhonously for attachments to be uploaded">saving_</a>) {
<a name="l00305"></a>00305     <a class="code" href="classComposer.html#75988a529863cd5e90138e46056aae9f" title="state when waiting asyncrhonously for attachments to be uploaded">saving_</a> = <span class="keyword">true</span>;
<a name="l00306"></a>00306 
<a name="l00307"></a>00307     <span class="comment">/*</span>
<a name="l00308"></a>00308 <span class="comment">     * Check if any attachments still need to be uploaded.</span>
<a name="l00309"></a>00309 <span class="comment">     * This may be the case when fileupload change events could not</span>
<a name="l00310"></a>00310 <span class="comment">     * be caught (for example in Konqueror).</span>
<a name="l00311"></a>00311 <span class="comment">     */</span>
<a name="l00312"></a>00312     <a class="code" href="classComposer.html#818abbb226340284e5998daa1d10a72c" title="number of attachments waiting to be uploaded during saving">attachmentsPending_</a> = 0;
<a name="l00313"></a>00313 
<a name="l00314"></a>00314     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; <a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>.size() - 1; ++i) {
<a name="l00315"></a>00315       <span class="keywordflow">if</span> (<a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>[i]-&gt;uploadNow()) {
<a name="l00316"></a>00316         ++<a class="code" href="classComposer.html#818abbb226340284e5998daa1d10a72c" title="number of attachments waiting to be uploaded during saving">attachmentsPending_</a>;
<a name="l00317"></a>00317 
<a name="l00318"></a>00318         <span class="comment">// this will trigger attachmentDone() when done, see</span>
<a name="l00319"></a>00319         <span class="comment">// the AttachmentEdit constructor.</span>
<a name="l00320"></a>00320       }
<a name="l00321"></a>00321     }
<a name="l00322"></a>00322 
<a name="l00323"></a>00323     std::cerr &lt;&lt; <span class="stringliteral">"Attachments pending: "</span> &lt;&lt; <a class="code" href="classComposer.html#818abbb226340284e5998daa1d10a72c" title="number of attachments waiting to be uploaded during saving">attachmentsPending_</a> &lt;&lt; std::endl;
<a name="l00324"></a>00324     <span class="keywordflow">if</span> (<a class="code" href="classComposer.html#818abbb226340284e5998daa1d10a72c" title="number of attachments waiting to be uploaded during saving">attachmentsPending_</a>)
<a name="l00325"></a>00325       <a class="code" href="classComposer.html#5163d3b98235d9c8d8d5aff82738ca57" title="Set the status, and apply the given style.">setStatus</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.uploading"</span>), <span class="stringliteral">"status"</span>);
<a name="l00326"></a>00326     <span class="keywordflow">else</span>
<a name="l00327"></a>00327       <a class="code" href="classComposer.html#1097d72401283f58dfd79dbfb47a30a5" title="All attachments have been processed, determine the result of saving the message.">saved</a>();
<a name="l00328"></a>00328   }
<a name="l00329"></a>00329 }
<a name="l00330"></a>00330 
<a name="l00331"></a><a class="code" href="classComposer.html#aa2db4aef750f6533c53af1189c92144">00331</a> <span class="keywordtype">void</span> <a class="code" href="classComposer.html#aa2db4aef750f6533c53af1189c92144" title="Slotcalled when an attachment has been uploaded.">Composer::attachmentDone</a>()
<a name="l00332"></a>00332 {
<a name="l00333"></a>00333   <span class="keywordflow">if</span> (<a class="code" href="classComposer.html#75988a529863cd5e90138e46056aae9f" title="state when waiting asyncrhonously for attachments to be uploaded">saving_</a>) {
<a name="l00334"></a>00334     --<a class="code" href="classComposer.html#818abbb226340284e5998daa1d10a72c" title="number of attachments waiting to be uploaded during saving">attachmentsPending_</a>;
<a name="l00335"></a>00335     std::cerr &lt;&lt; <span class="stringliteral">"Attachments still: "</span> &lt;&lt; <a class="code" href="classComposer.html#818abbb226340284e5998daa1d10a72c" title="number of attachments waiting to be uploaded during saving">attachmentsPending_</a> &lt;&lt; std::endl;
<a name="l00336"></a>00336 
<a name="l00337"></a>00337     <span class="keywordflow">if</span> (<a class="code" href="classComposer.html#818abbb226340284e5998daa1d10a72c" title="number of attachments waiting to be uploaded during saving">attachmentsPending_</a> == 0)
<a name="l00338"></a>00338       <a class="code" href="classComposer.html#1097d72401283f58dfd79dbfb47a30a5" title="All attachments have been processed, determine the result of saving the message.">saved</a>();
<a name="l00339"></a>00339   }
<a name="l00340"></a>00340 }
<a name="l00341"></a>00341 
<a name="l00342"></a><a class="code" href="classComposer.html#5163d3b98235d9c8d8d5aff82738ca57">00342</a> <span class="keywordtype">void</span> <a class="code" href="classComposer.html#5163d3b98235d9c8d8d5aff82738ca57" title="Set the status, and apply the given style.">Composer::setStatus</a>(<span class="keyword">const</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WString.html">WString</a>&amp; text, <span class="keyword">const</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WString.html">WString</a>&amp; style)
<a name="l00343"></a>00343 {
<a name="l00344"></a>00344   <a class="code" href="classComposer.html#09067ffd913810f9d499570609e17674">statusMsg_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WText.html#2f788aa524d51b3962642c9f565e66e6">setText</a>(text);
<a name="l00345"></a>00345   <a class="code" href="classComposer.html#09067ffd913810f9d499570609e17674">statusMsg_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#6fd43dced1a62f7e79bc3522eeb16216">setStyleClass</a>(style);
<a name="l00346"></a>00346 }
<a name="l00347"></a>00347 
<a name="l00348"></a><a class="code" href="classComposer.html#1097d72401283f58dfd79dbfb47a30a5">00348</a> <span class="keywordtype">void</span> <a class="code" href="classComposer.html#1097d72401283f58dfd79dbfb47a30a5" title="All attachments have been processed, determine the result of saving the message.">Composer::saved</a>()
<a name="l00349"></a>00349 {
<a name="l00350"></a>00350   <span class="comment">/*</span>
<a name="l00351"></a>00351 <span class="comment">   * All attachments have been processed.</span>
<a name="l00352"></a>00352 <span class="comment">   */</span>
<a name="l00353"></a>00353 
<a name="l00354"></a>00354   <span class="keywordtype">bool</span> attachmentsFailed = <span class="keyword">false</span>;
<a name="l00355"></a>00355   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; <a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>.size() - 1; ++i)
<a name="l00356"></a>00356     <span class="keywordflow">if</span> (<a class="code" href="classComposer.html#9616ef08dd2e3f16b63cec7b1d1cbf2c" title="Array which holds all the attachments, including one extra invisible one.">attachments_</a>[i]-&gt;uploadFailed()) {
<a name="l00357"></a>00357       attachmentsFailed = <span class="keyword">true</span>;
<a name="l00358"></a>00358       <span class="keywordflow">break</span>;
<a name="l00359"></a>00359     }
<a name="l00360"></a>00360 
<a name="l00361"></a>00361   <span class="keywordflow">if</span> (attachmentsFailed) {
<a name="l00362"></a>00362     <a class="code" href="classComposer.html#5163d3b98235d9c8d8d5aff82738ca57" title="Set the status, and apply the given style.">setStatus</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.attachment.failed"</span>), <span class="stringliteral">"error"</span>);
<a name="l00363"></a>00363   } <span class="keywordflow">else</span> {
<a name="l00364"></a>00364 <span class="preprocessor">#ifndef WIN32</span>
<a name="l00365"></a>00365 <span class="preprocessor"></span>    time_t t = time(0);
<a name="l00366"></a>00366     <span class="keyword">struct </span>tm td;
<a name="l00367"></a>00367     gmtime_r(&amp;t, &amp;td);
<a name="l00368"></a>00368     <span class="keywordtype">char</span> buffer[100];
<a name="l00369"></a>00369     strftime(buffer, 100, <span class="stringliteral">"%H:%M"</span>, &amp;td);
<a name="l00370"></a>00370 <span class="preprocessor">#else</span>
<a name="l00371"></a>00371 <span class="preprocessor"></span>    <span class="keywordtype">char</span> buffer[] = <span class="stringliteral">"server"</span>; <span class="comment">// Should fix this; for now just make sense</span>
<a name="l00372"></a>00372 <span class="preprocessor">#endif</span>
<a name="l00373"></a>00373 <span class="preprocessor"></span>    <a class="code" href="classComposer.html#5163d3b98235d9c8d8d5aff82738ca57" title="Set the status, and apply the given style.">setStatus</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#a651f107ec7cf080faef6c435705fc44">tr</a>(<span class="stringliteral">"msg.ok"</span>), <span class="stringliteral">"status"</span>);
<a name="l00374"></a>00374     <a class="code" href="classComposer.html#09067ffd913810f9d499570609e17674">statusMsg_</a>-&gt;<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WText.html#2f788aa524d51b3962642c9f565e66e6">setText</a>(std::string(<span class="stringliteral">"Draft saved at "</span>) + buffer);
<a name="l00375"></a>00375 
<a name="l00376"></a>00376     <span class="keywordflow">if</span> (<a class="code" href="classComposer.html#a079baf3b2fcec4ceabda3457cf28de4">sending_</a>) {
<a name="l00377"></a>00377       <a class="code" href="classComposer.html#523271b083a60c433f044018f3c0d02a" title="The message is ready to be sent...">send</a>.<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Signal.html#b9ec97260c79e7b546b7235ad2ffd627">emit</a>();
<a name="l00378"></a>00378       <span class="keywordflow">return</span>;
<a name="l00379"></a>00379     }
<a name="l00380"></a>00380   }
<a name="l00381"></a>00381 
<a name="l00382"></a>00382   <a class="code" href="classComposer.html#75988a529863cd5e90138e46056aae9f" title="state when waiting asyncrhonously for attachments to be uploaded">saving_</a> = <span class="keyword">false</span>;
<a name="l00383"></a>00383   <a class="code" href="classComposer.html#a079baf3b2fcec4ceabda3457cf28de4">sending_</a> = <span class="keyword">false</span>;
<a name="l00384"></a>00384 }
<a name="l00385"></a>00385 
<a name="l00386"></a><a class="code" href="classComposer.html#5880788a9a63a938572e6ca7e47a01ab">00386</a> <span class="keywordtype">void</span> <a class="code" href="classComposer.html#5880788a9a63a938572e6ca7e47a01ab" title="Slot attached to the Discard button.">Composer::discardIt</a>()
<a name="l00387"></a>00387 { 
<a name="l00388"></a>00388   <a class="code" href="classComposer.html#93eb63c5e90cf794a710348a847b9c0a" title="The message must be discarded.">discard</a>.<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Signal.html#b9ec97260c79e7b546b7235ad2ffd627">emit</a>();
<a name="l00389"></a>00389 }
</pre></div></div>
<hr size="1"><address style="align: right;"><small>
Generated on Fri Mar 26 17:12:12 2010 for <a href="http://www.webtoolkit.eu/wt/">Wt</a> by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6</small></address>
</body>
</html>