summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mail/editaccounts.cpp1
-rw-r--r--noncore/net/mail/opiemail.cpp5
-rw-r--r--noncore/net/mail/opiemail.h5
3 files changed, 9 insertions, 2 deletions
diff --git a/noncore/net/mail/editaccounts.cpp b/noncore/net/mail/editaccounts.cpp
index 1c80adb..1246037 100644
--- a/noncore/net/mail/editaccounts.cpp
+++ b/noncore/net/mail/editaccounts.cpp
@@ -1,224 +1,225 @@
#include <qt.h>
#include "defines.h"
#include "editaccounts.h"
AccountListItem::AccountListItem( QListView *parent, Account *a)
: QListViewItem( parent )
{
account = a;
setText( 0, account->getAccountName() );
setText( 1, account->getType() );
}
EditAccounts::EditAccounts( Settings *s, QWidget *parent, const char *name, bool modal, WFlags flags )
: EditAccountsUI( parent, name, modal, flags )
{
qDebug( "New Account Configuration Widget" );
settings = s;
mailList->addColumn( tr( "Account" ) );
mailList->addColumn( tr( "Type" ) );
newsList->addColumn( tr( "Account" ) );
connect( newMail, SIGNAL( clicked() ), SLOT( slotNewMail() ) );
connect( editMail, SIGNAL( clicked() ), SLOT( slotEditMail() ) );
connect( deleteMail, SIGNAL( clicked() ), SLOT( slotDeleteMail() ) );
connect( newNews, SIGNAL( clicked() ), SLOT( slotNewNews() ) );
connect( editNews, SIGNAL( clicked() ), SLOT( slotEditNews() ) );
connect( deleteNews, SIGNAL( clicked() ), SLOT( slotDeleteNews() ) );
slotFillLists();
}
void EditAccounts::slotFillLists()
{
mailList->clear();
newsList->clear();
QList<Account> accounts = settings->getAccounts();
Account *it;
for ( it = accounts.first(); it; it = accounts.next() ) {
if ( it->getType().compare( "NNTP" ) == 0 ) {
(void) new AccountListItem( newsList, it );
} else {
(void) new AccountListItem( mailList, it );
}
}
}
void EditAccounts::slotNewMail()
{
qDebug( "New Mail Account" );
QString *selection = new QString();
SelectMailType selType( selection, this, 0, true );
selType.show();
if ( QDialog::Accepted == selType.exec() ) {
slotNewAccount( *selection );
}
}
void EditAccounts::slotNewAccount( const QString &type )
{
if ( type.compare( "IMAP" ) == 0 ) {
qDebug( "-> config IMAP" );
IMAPaccount *account = new IMAPaccount();
IMAPconfig imap( account, this, 0, true );
imap.showMaximized();
if ( QDialog::Accepted == imap.exec() ) {
settings->addAccount( account );
account->save();
slotFillLists();
} else {
account->remove();
}
} else if ( type.compare( "POP3" ) == 0 ) {
qDebug( "-> config POP3" );
POP3account *account = new POP3account();
POP3config pop3( account, this, 0, true );
pop3.showMaximized();
if ( QDialog::Accepted == pop3.exec() ) {
settings->addAccount( account );
account->save();
slotFillLists();
} else {
account->remove();
}
} else if ( type.compare( "SMTP" ) == 0 ) {
qDebug( "-> config SMTP" );
SMTPaccount *account = new SMTPaccount();
SMTPconfig smtp( account, this, 0, true );
smtp.showMaximized();
if ( QDialog::Accepted == smtp.exec() ) {
settings->addAccount( account );
account->save();
slotFillLists();
+
} else {
account->remove();
}
} else if ( type.compare( "NNTP" ) == 0 ) {
qDebug( "-> config NNTP" );
NNTPaccount *account = new NNTPaccount();
NNTPconfig nntp( account, this, 0, true );
nntp.showMaximized();
if ( QDialog::Accepted == nntp.exec() ) {
settings->addAccount( account );
account->save();
slotFillLists();
} else {
account->remove();
}
}
}
void EditAccounts::slotEditAccount( Account *account )
{
if ( account->getType().compare( "IMAP" ) == 0 ) {
IMAPaccount *imapAcc = static_cast<IMAPaccount *>(account);
IMAPconfig imap( imapAcc, this, 0, true );
imap.showMaximized();
if ( QDialog::Accepted == imap.exec() ) {
slotFillLists();
}
} else if ( account->getType().compare( "POP3" ) == 0 ) {
POP3account *pop3Acc = static_cast<POP3account *>(account);
POP3config pop3( pop3Acc, this, 0, true );
pop3.showMaximized();
if ( QDialog::Accepted == pop3.exec() ) {
slotFillLists();
}
} else if ( account->getType().compare( "SMTP" ) == 0 ) {
SMTPaccount *smtpAcc = static_cast<SMTPaccount *>(account);
SMTPconfig smtp( smtpAcc, this, 0, true );
smtp.showMaximized();
if ( QDialog::Accepted == smtp.exec() ) {
slotFillLists();
}
} else if ( account->getType().compare( "NNTP" ) == 0 ) {
NNTPaccount *nntpAcc = static_cast<NNTPaccount *>(account);
NNTPconfig nntp( nntpAcc, this, 0, true );
nntp.showMaximized();
if ( QDialog::Accepted == nntp.exec() ) {
slotFillLists();
}
}
}
void EditAccounts::slotDeleteAccount( Account *account )
{
if ( QMessageBox::information( this, tr( "Question" ),
tr( "<p>Do you really want to delete the selected Account?</p>" ),
tr( "Yes" ), tr( "No" ) ) == 0 ) {
settings->delAccount( account );
slotFillLists();
}
}
void EditAccounts::slotEditMail()
{
qDebug( "Edit Mail Account" );
if ( !mailList->currentItem() ) {
QMessageBox::information( this, tr( "Error" ),
tr( "<p>Please select an account.</p>" ),
tr( "Ok" ) );
return;
}
Account *a = ((AccountListItem *) mailList->currentItem())->getAccount();
slotEditAccount( a );
}
void EditAccounts::slotDeleteMail()
{
if ( !mailList->currentItem() ) {
QMessageBox::information( this, tr( "Error" ),
tr( "<p>Please select an account.</p>" ),
tr( "Ok" ) );
return;
}
Account *a = ((AccountListItem *) mailList->currentItem())->getAccount();
slotDeleteAccount( a );
}
void EditAccounts::slotNewNews()
{
qDebug( "New News Account" );
slotNewAccount( "NNTP" );
}
void EditAccounts::slotEditNews()
{
qDebug( "Edit News Account" );
if ( !newsList->currentItem() ) {
QMessageBox::information( this, tr( "Error" ),
tr( "<p>Please select an account.</p>" ),
tr( "Ok" ) );
return;
}
Account *a = ((AccountListItem *) newsList->currentItem())->getAccount();
slotEditAccount( a );
}
void EditAccounts::slotDeleteNews()
{
qDebug( "Delete News Account" );
if ( !newsList->currentItem() ) {
QMessageBox::information( this, tr( "Error" ),
tr( "<p>Please select an account.</p>" ),
tr( "Ok" ) );
return;
}
Account *a = ((AccountListItem *) newsList->currentItem())->getAccount();
slotDeleteAccount( a );
}
void EditAccounts::slotAdjustColumns()
{
int currPage = configTab->currentPageIndex();
configTab->showPage( mailTab );
mailList->setColumnWidth( 0, mailList->visibleWidth() - 50 );
diff --git a/noncore/net/mail/opiemail.cpp b/noncore/net/mail/opiemail.cpp
index 93f3bb7..740e4cf 100644
--- a/noncore/net/mail/opiemail.cpp
+++ b/noncore/net/mail/opiemail.cpp
@@ -1,50 +1,55 @@
#include "opiemail.h"
#include "editaccounts.h"
#include "composemail.h"
OpieMail::OpieMail( QWidget *parent, const char *name, WFlags flags )
: MainWindow( parent, name, flags )
{
settings = new Settings();
folderView->populate( settings->getAccounts() );
connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) );
connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) );
connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) );
connect( editSettings, SIGNAL( activated() ), SLOT( slotEditSettings() ) );
connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) );
}
void OpieMail::slotComposeMail()
{
qDebug( "Compose Mail" );
ComposeMail compose( settings, this, 0 , true );
compose.showMaximized();
compose.slotAdjustColumns();
compose.exec();
}
void OpieMail::slotSendQueued()
{
qDebug( "Send Queued" );
}
void OpieMail::slotSearchMails()
{
qDebug( "Search Mails" );
}
void OpieMail::slotEditSettings()
{
qDebug( "Edit Settings" );
}
void OpieMail::slotEditAccounts()
{
qDebug( "Edit Accounts" );
EditAccounts eaDialog( settings, this, 0, true );
eaDialog.showMaximized();
eaDialog.slotAdjustColumns();
eaDialog.exec();
+ if ( settings ) delete settings;
+ settings = new Settings();
+
+ folderView->populate( settings->getAccounts() );
}
+
diff --git a/noncore/net/mail/opiemail.h b/noncore/net/mail/opiemail.h
index 7bcd818..ba60297 100644
--- a/noncore/net/mail/opiemail.h
+++ b/noncore/net/mail/opiemail.h
@@ -1,26 +1,27 @@
#ifndef OPIEMAIL_H
#define OPIEMAIL_H
#include "mainwindow.h"
#include "settings.h"
class OpieMail : public MainWindow
{
Q_OBJECT
public:
OpieMail( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 );
static QString appName() { return QString::fromLatin1("opiemail"); }
-protected slots:
+
+public slots:
void slotComposeMail();
+protected slots:
void slotSendQueued();
void slotSearchMails();
void slotEditSettings();
void slotEditAccounts();
-
private:
Settings *settings;
};
#endif