summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/mail.pro6
-rw-r--r--noncore/net/mail/opiemail.cpp30
-rw-r--r--noncore/net/mail/selectsmtp.cpp56
-rw-r--r--noncore/net/mail/selectsmtp.h27
4 files changed, 110 insertions, 9 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
@@ -8,33 +8,35 @@ HEADERS = defines.h \
mainwindow.h \
viewmail.h \
viewmailbase.h \
opiemail.h \
mailistviewitem.h \
settingsdialog.h \
statuswidget.h \
newmaildir.h \
- selectstore.h
+ selectstore.h \
+ selectsmtp.h
SOURCES = main.cpp \
opiemail.cpp \
mainwindow.cpp \
accountview.cpp \
accountitem.cpp \
composemail.cpp \
addresspicker.cpp \
editaccounts.cpp \
viewmail.cpp \
viewmailbase.cpp \
mailistviewitem.cpp \
settingsdialog.cpp \
statuswidget.cpp \
newmaildir.cpp \
- selectstore.cpp
+ selectstore.cpp \
+ selectsmtp.cpp
INTERFACES = editaccountsui.ui \
selectmailtypeui.ui \
imapconfigui.ui \
pop3configui.ui \
nntpconfigui.ui \
smtpconfigui.ui \
addresspickerui.ui \
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
@@ -8,16 +8,17 @@
#include <qpe/resource.h>
#include <qaction.h>
#include <qapplication.h>
#include <libmailwrapper/mailtypes.h>
#include <libmailwrapper/abstractmail.h>
#include "mailistviewitem.h"
#include "viewmail.h"
#include "selectstore.h"
+#include "selectsmtp.h"
OpieMail::OpieMail( QWidget *parent, const char *name, WFlags flags )
: MainWindow( parent, name, WStyle_ContextHelp )
{
settings = new Settings();
folderView->populate( settings->getAccounts() );
}
@@ -63,25 +64,40 @@ void OpieMail::slotComposeMail()
}
void OpieMail::slotSendQueued()
{
qDebug( "Send Queued" );
SMTPaccount *smtp = 0;
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() ) {
- if ( it->getType().compare( "SMTP" ) == 0 ) {
- smtp = static_cast<SMTPaccount *>(it);
- break;
- }
+ for ( it = list.first(); it; it = list.next() ) {
+ if ( it->getType().compare( "SMTP" ) == 0 ) {
+ smtp = static_cast<SMTPaccount *>(it);
+ 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) {
SMTPwrapper * wrap = new SMTPwrapper(settings);
if ( wrap->flushOutbox(smtp) ) {
QMessageBox::information(0,tr("Info"),tr("Mail queue flushed"));
}
}
}
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