summaryrefslogtreecommitdiff
authoralwin <alwin>2004-01-12 15:47:40 (UTC)
committer alwin <alwin>2004-01-12 15:47:40 (UTC)
commit334a1b57629211cdd77af4ea6857bfc41ab0cefb (patch) (side-by-side diff)
treed9a7daf0e05efad79d05bf4dbffa19953ddbae17
parent713a845a0d2ad3aba8230a5ba743a1c7b1622ef1 (diff)
downloadopie-334a1b57629211cdd77af4ea6857bfc41ab0cefb.zip
opie-334a1b57629211cdd77af4ea6857bfc41ab0cefb.tar.gz
opie-334a1b57629211cdd77af4ea6857bfc41ab0cefb.tar.bz2
when flush sendmail queue the user will be asked for selecting an
smtp account to use when there are more than one smtp-accounts
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mail/mail.pro6
-rw-r--r--noncore/net/mail/opiemail.cpp22
-rw-r--r--noncore/net/mail/selectsmtp.cpp56
-rw-r--r--noncore/net/mail/selectsmtp.h27
4 files changed, 106 insertions, 5 deletions
diff --git a/noncore/net/mail/mail.pro b/noncore/net/mail/mail.pro
index 552f0e5..184b5b3 100644
--- a/noncore/net/mail/mail.pro
+++ b/noncore/net/mail/mail.pro
@@ -15,3 +15,4 @@ HEADERS = defines.h \
newmaildir.h \
- selectstore.h
+ selectstore.h \
+ selectsmtp.h
@@ -31,3 +32,4 @@ SOURCES = main.cpp \
newmaildir.cpp \
- selectstore.cpp
+ selectstore.cpp \
+ selectsmtp.cpp
diff --git a/noncore/net/mail/opiemail.cpp b/noncore/net/mail/opiemail.cpp
index d3d3cdb..ea0019d 100644
--- a/noncore/net/mail/opiemail.cpp
+++ b/noncore/net/mail/opiemail.cpp
@@ -15,2 +15,3 @@
#include "selectstore.h"
+#include "selectsmtp.h"
@@ -70,4 +71,5 @@ void OpieMail::slotSendQueued()
QList<Account> list = settings->getAccounts();
+ QList<SMTPaccount> smtpList;
+ smtpList.setAutoDelete(false);
Account *it;
-// if (list.count()==1) {
for ( it = list.first(); it; it = list.next() ) {
@@ -75,6 +77,20 @@ void OpieMail::slotSendQueued()
smtp = static_cast<SMTPaccount *>(it);
- break;
+ smtpList.append(smtp);
+ }
+ }
+ if (smtpList.count()==0) {
+ QMessageBox::information(0,tr("Info"),tr("Define a smtp account first"));
+ return;
+ }
+ if (smtpList.count()==1) {
+ smtp = smtpList.at(0);
+ } else {
+ smtp = 0;
+ selectsmtp selsmtp;
+ selsmtp.setSelectionlist(&smtpList);
+ selsmtp.showMaximized();
+ if (selsmtp.exec()==QDialog::Accepted) {
+ smtp = selsmtp.selected_smtp();
}
}
-// }
if (smtp) {
diff --git a/noncore/net/mail/selectsmtp.cpp b/noncore/net/mail/selectsmtp.cpp
new file mode 100644
index 0000000..e82c6ca
--- a/dev/null
+++ b/noncore/net/mail/selectsmtp.cpp
@@ -0,0 +1,56 @@
+#include "selectsmtp.h"
+#include <libmailwrapper/mailwrapper.h>
+#include <qlist.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qcheckbox.h>
+#include <qframe.h>
+#include <qlineedit.h>
+#include <qcombobox.h>
+
+selectsmtp::selectsmtp(QWidget* parent, const char* name, bool modal, WFlags fl)
+ : selectstoreui(parent,name,modal,fl)
+{
+ //m_smtpList.setAutoDelete(false);
+ m_smtpList = 0;
+ //headlabel->setText(tr("<center>Select SMTP account to use</center>"));
+ headlabel->hide();
+ folderSelection->hide();
+ folderLabel->hide();
+ accountlabel->setText("<center>SMTP Accounts</center>");
+ Line1->hide();
+ newFoldersel->hide();
+ newFolderedit->hide();
+ newFolderLabel->hide();
+ Line2->hide();
+ selMove->hide();
+ m_current_smtp = 0;
+ setCaption(tr("Select SMTP Account"));
+}
+
+selectsmtp::~selectsmtp()
+{
+}
+
+void selectsmtp::slotAccountselected(int which)
+{
+ if (!m_smtpList || (unsigned)which>=m_smtpList->count() || which < 0) {
+ m_current_smtp = 0;
+ return;
+ }
+ m_current_smtp = m_smtpList->at(which);
+}
+
+void selectsmtp::setSelectionlist(QList<SMTPaccount>*list)
+{
+ m_smtpList = list;
+ accountSelection->clear();
+ for (unsigned i = 0; m_smtpList!=0 && i < m_smtpList->count(); ++i) {
+ accountSelection->insertItem( m_smtpList->at(i)->getAccountName());
+ }
+}
+
+SMTPaccount*selectsmtp::selected_smtp()
+{
+ return m_current_smtp;
+}
diff --git a/noncore/net/mail/selectsmtp.h b/noncore/net/mail/selectsmtp.h
new file mode 100644
index 0000000..4bb2437
--- a/dev/null
+++ b/noncore/net/mail/selectsmtp.h
@@ -0,0 +1,27 @@
+#ifndef __selectsmtp_h
+#define __selectstmp_h
+
+#include <qt.h>
+#include "selectstoreui.h"
+#include <qlist.h>
+
+class SMTPaccount;
+
+class selectsmtp : public selectstoreui
+{
+ Q_OBJECT
+public:
+ selectsmtp(QWidget* parent = 0, const char* name = 0, bool modal = TRUE, WFlags fl = 0 );
+ virtual ~selectsmtp();
+ void setSelectionlist(QList<SMTPaccount>*list);
+ SMTPaccount*selected_smtp();
+
+protected:
+ QList<SMTPaccount>*m_smtpList;
+ SMTPaccount*m_current_smtp;
+
+protected slots:
+ virtual void slotAccountselected(int);
+};
+
+#endif