summaryrefslogtreecommitdiff
path: root/noncore/net/mailit/writemail.cpp
Unidiff
Diffstat (limited to 'noncore/net/mailit/writemail.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mailit/writemail.cpp38
1 files changed, 23 insertions, 15 deletions
diff --git a/noncore/net/mailit/writemail.cpp b/noncore/net/mailit/writemail.cpp
index a9dcb02..0336c83 100644
--- a/noncore/net/mailit/writemail.cpp
+++ b/noncore/net/mailit/writemail.cpp
@@ -9,34 +9,35 @@
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#include <qmessagebox.h> 20#include <qmessagebox.h>
21#include <qwhatsthis.h>
21#include "writemail.h" 22#include "writemail.h"
22#include <qpe/resource.h> 23#include <qpe/resource.h>
23 24
24WriteMail::WriteMail( QWidget* parent, const char* name, WFlags fl ) 25WriteMail::WriteMail( QWidget* parent, const char* name, WFlags fl )
25 : QMainWindow( parent, name, fl ) 26 : QMainWindow( parent, name, fl )
26{ 27{
27 showingAddressList = FALSE; 28 showingAddressList = FALSE;
28 init(); 29 init();
29 30
30 addAtt = new AddAtt(0, "Add Attatchments"); 31 addAtt = new AddAtt(0, "Add Attachments");
31} 32}
32 33
33WriteMail::~WriteMail() 34WriteMail::~WriteMail()
34{ 35{
35 delete addAtt; 36 delete addAtt;
36} 37}
37 38
38void WriteMail::setAddressList(AddressList *list) 39void WriteMail::setAddressList(AddressList *list)
39{ 40{
40 Contact *cPtr; 41 Contact *cPtr;
41 42
42 addressList = list; 43 addressList = list;
@@ -55,104 +56,111 @@ void WriteMail::init()
55 56
56 bar = new QToolBar(this); 57 bar = new QToolBar(this);
57 bar->setHorizontalStretchable( TRUE ); 58 bar->setHorizontalStretchable( TRUE );
58 59
59 menu = new QMenuBar( bar ); 60 menu = new QMenuBar( bar );
60 61
61 mailMenu = new QPopupMenu(menu); 62 mailMenu = new QPopupMenu(menu);
62 menu->insertItem( tr( "&Mail" ), mailMenu); 63 menu->insertItem( tr( "&Mail" ), mailMenu);
63 addMenu = new QPopupMenu(menu); 64 addMenu = new QPopupMenu(menu);
64 menu->insertItem( tr( "&Add" ), addMenu); 65 menu->insertItem( tr( "&Add" ), addMenu);
65 66
66 bar = new QToolBar(this); 67 bar = new QToolBar(this);
67 attatchButton = new QAction(tr("Attatchment"), Resource::loadPixmap("mailit/attach"), QString::null, 0, this, 0); 68 attachButton = new QAction(tr("Attachment"), Resource::loadPixmap("mailit/attach"), QString::null, 0, this, 0);
68 attatchButton->addTo(bar); 69 attachButton->addTo(bar);
69 attatchButton->addTo(addMenu); 70 attachButton->addTo(addMenu);
70 connect( attatchButton, SIGNAL( activated() ), this, SLOT( attatchFile() ) ); 71 connect( attachButton, SIGNAL( activated() ), this, SLOT( attachFile() ) );
72 attachButton->setWhatsThis(tr("Click here to attach files to your mail"));
71 73
72 confirmButton = new QAction(tr("Enque mail"), Resource::loadPixmap("OKButton"), QString::null, 0, this, 0); 74 confirmButton = new QAction(tr("Enque mail"), Resource::loadPixmap("OKButton"), QString::null, 0, this, 0);
73 confirmButton->addTo(bar); 75 confirmButton->addTo(bar);
74 confirmButton->addTo(mailMenu); 76 confirmButton->addTo(mailMenu);
75 connect( confirmButton, SIGNAL( activated() ), this, SLOT( accept() ) ); 77 connect( confirmButton, SIGNAL( activated() ), this, SLOT( accept() ) );
78 confirmButton->setWhatsThis(tr("This button puts your mail in the send queue"));
76 79
77 newButton = new QAction(tr("New mail"), Resource::loadPixmap("new"), QString::null, 0, this, 0); 80 newButton = new QAction(tr("New mail"), Resource::loadPixmap("new"), QString::null, 0, this, 0);
78 newButton->addTo(mailMenu); 81 newButton->addTo(mailMenu);
79 connect( newButton, SIGNAL( activated() ), this, SLOT( newMail() ) ); 82 connect( newButton, SIGNAL( activated() ), this, SLOT( newMail() ) );
83 newButton->setWhatsThis(tr("Click here to create a new mail"));
80 84
81 widget = new QWidget(this, "widget"); 85 widget = new QWidget(this, "widget");
82 grid = new QGridLayout( widget ); 86 grid = new QGridLayout( widget );
83 87
84 recipientsBox = new QComboBox( FALSE, widget, "toLabel" ); 88 recipientsBox = new QComboBox( FALSE, widget, "toLabel" );
85 recipientsBox->insertItem( tr( "To:" ) ); 89 recipientsBox->insertItem( tr( "To:" ) );
86 recipientsBox->insertItem( tr( "CC:" ) ); 90 recipientsBox->insertItem( tr( "CC:" ) );
87 recipientsBox->setCurrentItem(0); 91 recipientsBox->setCurrentItem(0);
88 grid->addWidget( recipientsBox, 0, 0 ); 92 grid->addWidget( recipientsBox, 0, 0 );
89 connect(recipientsBox,SIGNAL(activated(int)),this, SLOT(changeRecipients(int))); 93 connect(recipientsBox,SIGNAL(activated(int)),this, SLOT(changeRecipients(int)));
90 94
91
92 subjetLabel = new QLabel( widget, "subjetLabel" ); 95 subjetLabel = new QLabel( widget, "subjetLabel" );
93 subjetLabel->setText( tr( "Subject:" ) ); 96 subjetLabel->setText( tr( "Subject:" ) );
94 97
95 grid->addWidget( subjetLabel, 1, 0 ); 98 grid->addWidget( subjetLabel, 1, 0 );
96 99
97 ToolButton13_2 = new QToolButton( widget, "ToolButton13_2" ); 100 ToolButton13_2 = new QToolButton( widget, "ToolButton13_2" );
98 ToolButton13_2->setText( tr( "..." ) ); 101 ToolButton13_2->setText( tr( "..." ) );
99 grid->addWidget( ToolButton13_2, 1, 2 ); 102 grid->addWidget( ToolButton13_2, 1, 2 );
100 103
101 subjectInput = new QLineEdit( widget, "subjectInput" ); 104 subjectInput = new QLineEdit( widget, "subjectInput" );
102 grid->addWidget( subjectInput, 1, 1 ); 105 grid->addWidget( subjectInput, 1, 1 );
106 QWhatsThis::add(subjectInput,QWidget::tr("The mail subject should be entered here"));
103 107
104 toInput = new QLineEdit( widget, "toInput" ); 108 toInput = new QLineEdit( widget, "toInput" );
105 grid->addWidget( toInput, 0, 1 ); 109 grid->addWidget( toInput, 0, 1 );
110 QWhatsThis::add(recipientsBox,QWidget::tr("Recipients can be entered here"));
106 111
107 ccInput = new QLineEdit( widget, "ccInput" ); 112 ccInput = new QLineEdit( widget, "ccInput" );
108 ccInput->hide(); 113 ccInput->hide();
109 grid->addWidget( ccInput, 0, 1 ); 114 grid->addWidget( ccInput, 0, 1 );
110 115 QWhatsThis::add(ccInput,QWidget::tr("If you would like to send copies of your mail they can be entered here"));
111 116
112 addressButton = new QToolButton( widget, "addressButton" ); 117 addressButton = new QToolButton( widget, "addressButton" );
113 addressButton->setPixmap( Resource::loadPixmap("AddressBook") ); 118 addressButton->setPixmap( Resource::loadPixmap("AddressBook") );
114 addressButton->setToggleButton(TRUE); 119 addressButton->setToggleButton(TRUE);
115 grid->addWidget( addressButton, 0, 2 ); 120 grid->addWidget( addressButton, 0, 2 );
116 connect(addressButton, SIGNAL(clicked()), this, SLOT(getAddress()) ); 121 connect(addressButton, SIGNAL(clicked()), this, SLOT(getAddress()) );
122 QWhatsThis::add(addressButton,QWidget::tr("This button opens the address selector with all mail adresses from your OPIE addressbook"));
117 123
118 emailInput = new QMultiLineEdit( widget, "emailInput" ); 124 emailInput = new QMultiLineEdit( widget, "emailInput" );
119 grid->addMultiCellWidget( emailInput, 2, 2, 0, 2); 125 grid->addMultiCellWidget( emailInput, 2, 2, 0, 2);
120 126 QWhatsThis::add(recipientsBox,QWidget::tr("Enter your mail text here"));
121 127
122 addressView = new QListView( widget, "addressView"); 128 addressView = new QListView( widget, "addressView");
123 addressView->addColumn("Name"); 129 addressView->addColumn("Name");
124 addressView->addColumn("EMail"); 130 addressView->addColumn("EMail");
125 addressView->setAllColumnsShowFocus(TRUE); 131 addressView->setAllColumnsShowFocus(TRUE);
126 addressView->setMultiSelection(TRUE); 132 addressView->setMultiSelection(TRUE);
127 addressView->hide(); 133 addressView->hide();
128 grid->addMultiCellWidget( addressView, 3, 3, 0, 2); 134 grid->addMultiCellWidget( addressView, 3, 3, 0, 2);
135 QWhatsThis::add(recipientsBox,QWidget::tr("Chose the recipients from this list"));
129 136
130 okButton = new QToolButton(bar, "ok"); 137 okButton = new QToolButton(bar, "ok");
131 okButton->setPixmap( Resource::loadPixmap("enter") ); 138 okButton->setPixmap( Resource::loadPixmap("enter") );
132 okButton->hide(); 139 okButton->hide();
133 connect(okButton, SIGNAL(clicked()), this, SLOT(addRecipients()) ); 140 connect(okButton, SIGNAL(clicked()), this, SLOT(addRecipients()) );
141 QWhatsThis::add(okButton,QWidget::tr("Queue your mail by clicking here"));
134 142
135 setCentralWidget(widget); 143 setCentralWidget(widget);
136} 144}
137 145
138void WriteMail::reject() 146void WriteMail::reject()
139{ 147{
140 emit cancelMail(); 148 emit cancelMail();
141} 149}
142 150
143// need to insert date 151// need to insert date
144void WriteMail::accept() 152void WriteMail::accept()
145{ 153{
146 QStringList attatchedFiles, attatchmentsType; 154 QStringList attachedFiles, attachmentsType;
147 int idCount = 0; 155 int idCount = 0;
148 156
149 if (toInput->text() == "") 157 if (toInput->text() == "")
150 { 158 {
151 QMessageBox::warning(this,tr("No recipient"), tr("Send mail to whom?"), tr("OK\n")); 159 QMessageBox::warning(this,tr("No recipient"), tr("Send mail to whom?"), tr("OK\n"));
152 return; 160 return;
153 } 161 }
154 162
155 if (! getRecipients(false) ) 163 if (! getRecipients(false) )
156 { 164 {
157 QMessageBox::warning(this,tr("Incorrect recipient separator"), 165 QMessageBox::warning(this,tr("Incorrect recipient separator"),
158 tr("Recipients must be separated by ;\nand be valid emailaddresses"), tr("OK\n")); 166 tr("Recipients must be separated by ;\nand be valid emailaddresses"), tr("OK\n"));
@@ -187,31 +195,31 @@ void WriteMail::accept()
187 for (QStringList::Iterator it = mail.carbonCopies.begin(); 195 for (QStringList::Iterator it = mail.carbonCopies.begin();
188 it != mail.carbonCopies.end(); ++it) { 196 it != mail.carbonCopies.end(); ++it) {
189 197
190 mail.rawMail += (*it); 198 mail.rawMail += (*it);
191 mail.rawMail += ",\n"; 199 mail.rawMail += ",\n";
192 } 200 }
193 201
194 mail.rawMail += mail.from; 202 mail.rawMail += mail.from;
195 mail.rawMail += "\nSubject: "; 203 mail.rawMail += "\nSubject: ";
196 mail.rawMail += mail.subject; 204 mail.rawMail += mail.subject;
197 mail.rawMail += "\n\n"; 205 mail.rawMail += "\n\n";
198 206
199 attatchedFiles = addAtt->returnAttatchedFiles(); 207 attachedFiles = addAtt->returnattachedFiles();
200 attatchmentsType = addAtt->returnFileTypes(); 208 attachmentsType = addAtt->returnFileTypes();
201 209
202 QStringList::Iterator itType = attatchmentsType.begin(); 210 QStringList::Iterator itType = attachmentsType.begin();
203 211
204 Enclosure e; 212 Enclosure e;
205 for ( QStringList::Iterator it = attatchedFiles.begin(); it != attatchedFiles.end(); ++it ) { 213 for ( QStringList::Iterator it = attachedFiles.begin(); it != attachedFiles.end(); ++it ) {
206 e.id = idCount; 214 e.id = idCount;
207 e.originalName = (*it).latin1(); 215 e.originalName = (*it).latin1();
208 e.contentType = (*itType).latin1(); 216 e.contentType = (*itType).latin1();
209 e.contentAttribute = (*itType).latin1(); 217 e.contentAttribute = (*itType).latin1();
210 e.saved = TRUE; 218 e.saved = TRUE;
211 mail.addEnclosure(&e); 219 mail.addEnclosure(&e);
212 220
213 itType++; 221 itType++;
214 idCount++; 222 idCount++;
215 } 223 }
216 mail.rawMail += mail.body; 224 mail.rawMail += mail.body;
217 mail.rawMail += "\n"; 225 mail.rawMail += "\n";
@@ -227,45 +235,45 @@ void WriteMail::getAddress()
227 if (showingAddressList) { 235 if (showingAddressList) {
228 emailInput->hide(); 236 emailInput->hide();
229 addressView->show(); 237 addressView->show();
230 okButton->show(); 238 okButton->show();
231 239
232 } else { 240 } else {
233 addressView->hide(); 241 addressView->hide();
234 okButton->hide(); 242 okButton->hide();
235 emailInput->show(); 243 emailInput->show();
236 } 244 }
237} 245}
238 246
239void WriteMail::attatchFile() 247void WriteMail::attachFile()
240{ 248{
241 addAtt->showMaximized(); 249 addAtt->showMaximized();
242} 250}
243 251
244void WriteMail::reply(Email replyMail, bool replyAll) 252void WriteMail::reply(Email replyMail, bool replyAll)
245{ 253{
246 int pos; 254 int pos;
247 255
248 mail = replyMail; 256 mail = replyMail;
249 mail.files.clear(); 257 mail.files.clear();
250 258
251 toInput->setText(mail.fromMail); 259 toInput->setText(mail.fromMail);
252 //replyAll ? ccInput->setText(mail.c) 260 //replyAll ? ccInput->setText(mail.c)
253 261
254 addRecipients(replyAll); 262 addRecipients(replyAll);
255 263
256 subjectInput->setText(tr("Re: ") + mail.subject); 264 subjectInput->setText(tr("Re: ") + mail.subject);
257 265
258 pos = 0; 266 pos = 0;
259 mail.body.insert(pos, ">>"); 267 mail.body.insert(pos, ">");
260 while (pos != -1) { 268 while (pos != -1) {
261 pos = mail.body.find('\n', pos); 269 pos = mail.body.find('\n', pos);
262 if (pos != -1) 270 if (pos != -1)
263 mail.body.insert(++pos, ">>"); 271 mail.body.insert(++pos, ">>");
264 } 272 }
265 273
266 emailInput->setText(mail.body); 274 emailInput->setText(mail.body);
267} 275}
268 276
269void WriteMail::forward(Email forwMail) 277void WriteMail::forward(Email forwMail)
270{ 278{
271 int pos=0; 279 int pos=0;