summaryrefslogtreecommitdiff
path: root/noncore/unsupported/mailit/writemail.cpp
authorgroucho <groucho>2003-04-20 07:59:48 (UTC)
committer groucho <groucho>2003-04-20 07:59:48 (UTC)
commit8b85cba50912127ff6a2d048021baf68306481c6 (patch) (side-by-side diff)
treebfd1b377911d05db8e1c816f72fe070d5a5b2ff3 /noncore/unsupported/mailit/writemail.cpp
parent6b381e438fdeb1757b3278c683349dee9c4ab230 (diff)
downloadopie-8b85cba50912127ff6a2d048021baf68306481c6.zip
opie-8b85cba50912127ff6a2d048021baf68306481c6.tar.gz
opie-8b85cba50912127ff6a2d048021baf68306481c6.tar.bz2
- Added CC: support
- Added mail forwarding - Added icon for selective mail download - Removing mails from mail list via icon - Temporarily disabled mail header download queue
Diffstat (limited to 'noncore/unsupported/mailit/writemail.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/mailit/writemail.cpp103
1 files changed, 89 insertions, 14 deletions
diff --git a/noncore/unsupported/mailit/writemail.cpp b/noncore/unsupported/mailit/writemail.cpp
index 38a2596..a9dcb02 100644
--- a/noncore/unsupported/mailit/writemail.cpp
+++ b/noncore/unsupported/mailit/writemail.cpp
@@ -83,9 +83,11 @@ void WriteMail::init()
recipientsBox = new QComboBox( FALSE, widget, "toLabel" );
recipientsBox->insertItem( tr( "To:" ) );
- recipientsBox->insertItem( tr( "CC:" ) );
+ recipientsBox->insertItem( tr( "CC:" ) );
recipientsBox->setCurrentItem(0);
grid->addWidget( recipientsBox, 0, 0 );
+ connect(recipientsBox,SIGNAL(activated(int)),this, SLOT(changeRecipients(int)));
+
subjetLabel = new QLabel( widget, "subjetLabel" );
subjetLabel->setText( tr( "Subject:" ) );
@@ -102,6 +104,11 @@ void WriteMail::init()
toInput = new QLineEdit( widget, "toInput" );
grid->addWidget( toInput, 0, 1 );
+ ccInput = new QLineEdit( widget, "ccInput" );
+ ccInput->hide();
+ grid->addWidget( ccInput, 0, 1 );
+
+
addressButton = new QToolButton( widget, "addressButton" );
addressButton->setPixmap( Resource::loadPixmap("AddressBook") );
addressButton->setToggleButton(TRUE);
@@ -139,19 +146,31 @@ void WriteMail::accept()
QStringList attatchedFiles, attatchmentsType;
int idCount = 0;
- if (toInput->text() == "") {
- QMessageBox::warning(this,"No recipient", "Send mail to whom?", "OK\n");
+ if (toInput->text() == "")
+ {
+ QMessageBox::warning(this,tr("No recipient"), tr("Send mail to whom?"), tr("OK\n"));
+ return;
+ }
+
+ if (! getRecipients(false) )
+ {
+ QMessageBox::warning(this,tr("Incorrect recipient separator"),
+ tr("Recipients must be separated by ;\nand be valid emailaddresses"), tr("OK\n"));
return;
}
- if (! getRecipients() ) {
- QMessageBox::warning(this,"Incorrect recipient separator",
- "Recipients must be separated by ;\nand be valid emailaddresses", "OK\n");
+
+ if ((ccInput->text()!="") && (! getRecipients(true) ))
+ {
+ QMessageBox::warning(this,tr("Incorrect carbon copy separator"),
+ tr("CC Recipients must be separated by ;\nand be valid emailaddresses"), tr("OK\n"));
return;
}
+
mail.subject = subjectInput->text();
mail.body = emailInput->text();
mail.sent = false;
mail.received = false;
+
mail.rawMail = "To: ";
for (QStringList::Iterator it = mail.recipients.begin();
@@ -160,7 +179,18 @@ void WriteMail::accept()
mail.rawMail += (*it);
mail.rawMail += ",\n";
}
+
mail.rawMail.truncate(mail.rawMail.length()-2);
+
+ mail.rawMail += "\nCC: ";
+
+ for (QStringList::Iterator it = mail.carbonCopies.begin();
+ it != mail.carbonCopies.end(); ++it) {
+
+ mail.rawMail += (*it);
+ mail.rawMail += ",\n";
+ }
+
mail.rawMail += mail.from;
mail.rawMail += "\nSubject: ";
mail.rawMail += mail.subject;
@@ -211,7 +241,7 @@ void WriteMail::attatchFile()
addAtt->showMaximized();
}
-void WriteMail::reply(Email replyMail)
+void WriteMail::reply(Email replyMail, bool replyAll)
{
int pos;
@@ -219,7 +249,11 @@ void WriteMail::reply(Email replyMail)
mail.files.clear();
toInput->setText(mail.fromMail);
- subjectInput->setText("Re: " + mail.subject);
+ //replyAll ? ccInput->setText(mail.c)
+
+ addRecipients(replyAll);
+
+ subjectInput->setText(tr("Re: ") + mail.subject);
pos = 0;
mail.body.insert(pos, ">>");
@@ -232,37 +266,63 @@ void WriteMail::reply(Email replyMail)
emailInput->setText(mail.body);
}
-bool WriteMail::getRecipients()
+void WriteMail::forward(Email forwMail)
+{
+ int pos=0;
+
+ QString fwdBody=tr("======forwarded message from ");
+ fwdBody.append(forwMail.fromMail);
+ fwdBody.append(tr(" starts======\n\n"));
+
+ mail=forwMail;
+ toInput->setText("");
+ ccInput->setText("");
+ subjectInput->setText(tr("FWD: ") + mail.subject);
+
+ fwdBody+=mail.body;
+ fwdBody+=QString(tr("======end of forwarded message======\n\n"));
+
+ emailInput->setText(fwdBody);
+}
+
+bool WriteMail::getRecipients(bool ccField)
{
QString str, temp;
int pos = 0;
mail.recipients.clear();
- temp = toInput->text();
+ ccField ? temp = ccInput->text() : temp=toInput->text() ;
+
while ( (pos = temp.find(';')) != -1) {
str = temp.left(pos).stripWhiteSpace();
temp = temp.right(temp.length() - (pos + 1));
if ( str.find('@') == -1)
return false;
- mail.recipients.append(str);
+ ccField ? mail.carbonCopies.append(str) : mail.recipients.append(str);
addressList->addContact(str, "");
}
temp = temp.stripWhiteSpace();
if ( temp.find('@') == -1)
return false;
- mail.recipients.append(temp);
+ ccField ? mail.carbonCopies.append(temp) : mail.recipients.append(temp);
addressList->addContact(temp, "");
return TRUE;
}
-
void WriteMail::addRecipients()
{
+
+ addRecipients(false);
+}
+
+void WriteMail::addRecipients(bool ccField)
+{
QString recipients = "";
mail.recipients.clear();
+
QListViewItem *item = addressView->firstChild();
while (item != NULL) {
if ( item->isSelected() ) {
@@ -274,7 +334,8 @@ void WriteMail::addRecipients()
}
item = item->nextSibling();
}
- toInput->setText(recipients);
+
+ ccField ? ccInput->setText(recipients):toInput->setText(recipients);
addressView->hide();
okButton->hide();
@@ -283,6 +344,20 @@ void WriteMail::addRecipients()
showingAddressList = !showingAddressList;
}
+void WriteMail::changeRecipients(int selection)
+{
+ if (selection==0)
+ {
+ toInput->show();
+ ccInput->hide();
+ }
+ else if (selection==1)
+ {
+ toInput->hide();
+ ccInput->show();
+ }
+}
+
void WriteMail::setRecipient(const QString &recipient)
{
toInput->setText(recipient);