00001 #include <qmultilineedit.h>
00002 #include <qbuttongroup.h>
00003 #include <qradiobutton.h>
00004 #include <qmessagebox.h>
00005 #include <qtoolbutton.h>
00006 #include <qtabwidget.h>
00007 #include <qlineedit.h>
00008 #include <qcheckbox.h>
00009
00010 #include <qpe/resource.h>
00011
00012 #include "accounteditor.h"
00013 #include "miscfunctions.h"
00014
00015 AccountEditor::AccountEditor(Account account, QWidget *parent, const char *name, bool modal, WFlags fl)
00016 : AccountEditorBase(parent, name, modal, fl), _account(account)
00017 {
00018 TabWidget2->removePage(sslTab);
00019 showPasswd->setPixmap(Resource::loadPixmap("mail/showpasswd"));
00020
00021 connect(showPasswd, SIGNAL(toggled(bool)),
00022 SLOT(showPasswdToggled(bool)));
00023
00024 fillValues();
00025 }
00026
00027 void AccountEditor::showPasswdToggled(bool toggled)
00028 {
00029 if (toggled)
00030 pass->setEchoMode(QLineEdit::Normal);
00031 else
00032 pass->setEchoMode(QLineEdit::Password);
00033 }
00034
00035 void AccountEditor::accept()
00036 {
00037 int numLf = 0;
00038 for (unsigned int i = 0; i <= signature->text().length(); i++) {
00039 if (signature->text()[i] == '\n') numLf++;
00040 }
00041 if (numLf >= 4) {
00042 int ret = QMessageBox::warning(this, tr("Warning"), tr("<p>Your signature is longer than 4 lines. This is considered inpolite by many people. You should shorten your signature.</p>"), tr("Change"), tr("Continue"));
00043 if (ret == 0) return;
00044 }
00045
00046 _account.setAccountName(_account.accountName() ? _account.accountName() : MiscFunctions::uniqueString());
00047 _account.setRealName(realname->text());
00048 _account.setEmail(email->text());
00049 _account.setOrg(org->text());
00050 _account.setImapServer(imapServer->text());
00051 _account.setImapPort(imapPort->text());
00052 _account.setSmtpServer(smtpServer->text());
00053 _account.setSmtpPort(smtpPort->text());
00054 _account.setUser(user->text());
00055 _account.setPass(pass->text());
00056 _account.setSmtpSsl(smtpssl->isChecked());
00057 _account.setSmtpSslPort(smtpsPort->text());
00058 _account.setImapSsl(imapssl->isChecked());
00059 _account.setImapSslPort(imapsPort->text());
00060 _account.setDefaultCc(addCc->isChecked());
00061 _account.setDefaultBcc(addBcc->isChecked());
00062 _account.setDefaultReplyTo(addReplyTo->isChecked());
00063 _account.setCc(cc->text());
00064 _account.setBcc(bcc->text());
00065 _account.setReplyTo(replyTo->text());
00066 _account.setSignature(signature->text());
00067
00068 QDialog::accept();
00069 }
00070
00071 void AccountEditor::fillValues()
00072 {
00073 realname->setText(_account.realName());
00074 email->setText(_account.email());
00075 org->setText(_account.org());
00076 imapServer->setText(_account.imapServer());
00077 imapPort->setText(!_account.imapPort().isEmpty() ? _account.imapPort() : QString("143"));
00078 smtpServer->setText(_account.smtpServer());
00079 smtpPort->setText(!_account.smtpPort().isEmpty() ? _account.smtpPort() : QString("25"));
00080 user->setText(_account.user());
00081 pass->setText(_account.pass());
00082 smtpssl->setChecked(_account.smtpSsl());
00083 smtpsPort->setText(_account.smtpSslPort());
00084 imapssl->setChecked(_account.imapSsl());
00085 imapsPort->setText(!_account.imapSslPort().isEmpty() ? _account.imapSslPort() : QString("993"));
00086 addCc->setChecked(_account.defaultCc());
00087 if (_account.defaultCc()) cc->setEnabled(true);
00088 addBcc->setChecked(_account.defaultBcc());
00089 if (_account.defaultBcc()) bcc->setEnabled(true);
00090 addReplyTo->setChecked(_account.defaultReplyTo());
00091 if (_account.defaultReplyTo()) replyTo->setEnabled(true);
00092 cc->setText(_account.cc());
00093 bcc->setText(_account.bcc());
00094 replyTo->setText(_account.replyTo());
00095 signature->setText(_account.signature());
00096 }
00097