Setup the config panel for spop3. This is still non-functional in kmail

but the slave and config variables are in place.

Also changed the experimental account to use getservbyname().

Note that it may look like the old pop3 supports spop3, but it does not.

svn path=/trunk/kdenetwork/kmail/; revision=50742
wilder-work
George Staikos 26 years ago
parent b49cae7c47
commit fed5a52939
  1. 62
      accountdialog.cpp
  2. 2
      accountdialog.h
  3. 25
      kmacctexppop.cpp
  4. 5
      kmacctexppop.h
  5. 10
      kmacctpop.cpp
  6. 5
      kmacctpop.h

@ -32,6 +32,9 @@
#include <klocale.h>
#include <kmessagebox.h>
#include <netdb.h>
#include <netinet/in.h>
#include "accountdialog.h"
#include "kmacctlocal.h"
#include "kmacctmgr.h"
@ -140,7 +143,7 @@ void AccountDialog::makeLocalAccountPage()
void AccountDialog::makePopAccountPage()
{
QFrame *page = makeMainWidget();
QGridLayout *topLayout = new QGridLayout( page, 16, 2, 0, spacingHint() );
QGridLayout *topLayout = new QGridLayout( page, 17, 2, 0, spacingHint() );
topLayout->addColSpacing( 1, fontMetrics().maxWidth()*15 );
topLayout->setRowStretch( 16, 10 );
topLayout->setColStretch( 1, 10 );
@ -189,51 +192,56 @@ void AccountDialog::makePopAccountPage()
mPop.portEdit->setValidator( new QIntValidator(this) );
topLayout->addWidget( mPop.portEdit, 6, 1 );
mPop.useSSLCheck =
new QCheckBox( i18n("Use SSL for secure mail download"), page);
topLayout->addMultiCellWidget( mPop.useSSLCheck, 7, 7, 0, 1);
connect(mPop.useSSLCheck, SIGNAL(clicked()), this, SLOT(slotSSLChanged()));
mPop.storePasswordCheck =
new QCheckBox( i18n("Store POP password in configuration file"), page );
topLayout->addMultiCellWidget( mPop.storePasswordCheck, 7, 7, 0, 1 );
topLayout->addMultiCellWidget( mPop.storePasswordCheck, 8, 8, 0, 1 );
mPop.deleteMailCheck =
new QCheckBox( i18n("Delete mail from server"), page );
topLayout->addMultiCellWidget( mPop.deleteMailCheck, 8, 8, 0, 1 );
topLayout->addMultiCellWidget( mPop.deleteMailCheck, 9, 9, 0, 1 );
mPop.retriveAllCheck =
new QCheckBox( i18n("Retrieve all mail from server"), page );
topLayout->addMultiCellWidget( mPop.retriveAllCheck, 9, 9, 0, 1 );
topLayout->addMultiCellWidget( mPop.retriveAllCheck, 10, 10, 0, 1 );
mPop.excludeCheck =
new QCheckBox( i18n("Exclude from \"Check Mail\""), page );
topLayout->addMultiCellWidget( mPop.excludeCheck, 10, 10, 0, 1 );
topLayout->addMultiCellWidget( mPop.excludeCheck, 11, 11, 0, 1 );
mPop.intervalCheck =
new QCheckBox( i18n("Enable interval mail checking"), page );
topLayout->addMultiCellWidget( mPop.intervalCheck, 11, 11, 0, 1 );
topLayout->addMultiCellWidget( mPop.intervalCheck, 12, 12, 0, 1 );
connect( mPop.intervalCheck, SIGNAL(toggled(bool)),
this, SLOT(slotEnablePopInterval(bool)) );
mPop.intervalLabel = new QLabel( i18n("Check interval (minutes):"), page );
topLayout->addWidget( mPop.intervalLabel, 12, 0 );
topLayout->addWidget( mPop.intervalLabel, 13, 0 );
mPop.intervalSpin = new QSpinBox( page );
mPop.intervalSpin->setRange( 1, 10000 );
mPop.intervalSpin->setValue( 1 );
topLayout->addWidget( mPop.intervalSpin, 12, 1 );
topLayout->addWidget( mPop.intervalSpin, 13, 1 );
label = new QLabel( i18n("Destination folder:"), page );
topLayout->addWidget( label, 13, 0 );
topLayout->addWidget( label, 14, 0 );
mPop.folderCombo = new QComboBox( false, page );
topLayout->addWidget( mPop.folderCombo, 13, 1 );
topLayout->addWidget( mPop.folderCombo, 14, 1 );
/*
label = new QLabel( i18n("Default identity:"), page );
topLayout->addWidget( label, 14, 0 );
topLayout->addWidget( label, 15, 0 );
mPop.identityCombo = new QComboBox( false, page );
topLayout->addWidget( mPop.identityCombo, 14, 1 );
topLayout->addWidget( mPop.identityCombo, 15, 1 );
*/
label->setEnabled(false);
// mPop.identityCombo->setEnabled(false);
label = new QLabel( i18n("Precommand:"), page );
topLayout->addWidget( label, 15, 0 );
topLayout->addWidget( label, 16, 0 );
mPop.precommand = new QLineEdit( page );
topLayout->addWidget( mPop.precommand, 15, 1 );
topLayout->addWidget( mPop.precommand, 16, 1 );
connect(kapp,SIGNAL(kdisplayFontChanged()),SLOT(slotFontChanged()));
}
@ -265,6 +273,7 @@ void AccountDialog::setupSettings()
mPop.passwordEdit->setText( ap.passwd());
mPop.hostEdit->setText( ap.host() );
mPop.portEdit->setText( QString("%1").arg( ap.port() ) );
mPop.useSSLCheck->setChecked( ap.useSSL() );
mPop.storePasswordCheck->setChecked( ap.storePasswd() );
mPop.deleteMailCheck->setChecked( !ap.leaveOnServer() );
mPop.retriveAllCheck->setChecked( ap.retrieveAll() );
@ -313,6 +322,30 @@ void AccountDialog::setupSettings()
}
void AccountDialog::slotSSLChanged()
{
if (mPop.useSSLCheck->isChecked()) {
struct servent *serv = getservbyname("spop3", "tcp");
if (serv) {
QString x;
x.sprintf("%u", ntohs(serv->s_port));
mPop.portEdit->setText(x);
} else {
mPop.portEdit->setText("995");
}
} else {
struct servent *serv = getservbyname("pop-3", "tcp");
if (serv) {
QString x;
x.sprintf("%u", ntohs(serv->s_port));
mPop.portEdit->setText(x);
} else {
mPop.portEdit->setText("110");
}
}
}
void AccountDialog::slotOk()
{
saveSettings();
@ -367,6 +400,7 @@ void AccountDialog::saveSettings()
epa.setPort( mPop.portEdit->text().toInt() );
epa.setLogin( mPop.loginEdit->text() );
epa.setPasswd( mPop.passwordEdit->text(), true );
epa.setUseSSL( mPop.useSSLCheck->isChecked() );
epa.setStorePasswd( mPop.storePasswordCheck->isChecked() );
epa.setPasswd( mPop.passwordEdit->text(), epa.storePasswd() );
epa.setLeaveOnServer( !mPop.deleteMailCheck->isChecked() );

@ -60,6 +60,7 @@ class AccountDialog : public KDialogBase
QLineEdit *hostEdit;
QLineEdit *portEdit;
QLineEdit *precommand;
QCheckBox *useSSLCheck;
QCheckBox *storePasswordCheck;
QCheckBox *deleteMailCheck;
QCheckBox *retriveAllCheck;
@ -77,6 +78,7 @@ class AccountDialog : public KDialogBase
void slotEnablePopInterval( bool state );
void slotEnableLocalInterval( bool state );
void slotFontChanged();
void slotSSLChanged();
private:
void makeLocalAccountPage();

@ -4,6 +4,7 @@
#include "kmacctexppop.moc"
#include <netdb.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
@ -39,11 +40,17 @@ KMAcctExpPop::KMAcctExpPop(KMAcctMgr* aOwner, const char* aAccountName):
{
initMetaObject();
mUseSSL = FALSE;
mStorePasswd = FALSE;
mLeaveOnServer = FALSE;
mRetrieveAll = TRUE;
mProtocol = 3;
mPort = 110;
struct servent *serv = getservbyname("pop-3", "tcp");
if (serv) {
mPort = serv->s_port;
} else {
mPort = 110;
}
job = 0L;
stage = Idle;
indexOfCurrentMsg = -1;
@ -76,10 +83,16 @@ const char* KMAcctExpPop::type(void) const
void KMAcctExpPop::init(void)
{
mHost = "";
mPort = 110;
struct servent *serv = getservbyname("pop-3", "tcp");
if (serv) {
mPort = serv->s_port;
} else {
mPort = 110;
}
mLogin = "";
mPasswd = "";
mProtocol = 3;
mUseSSL = FALSE;
mStorePasswd = FALSE;
mLeaveOnServer = FALSE;
mRetrieveAll = TRUE;
@ -130,6 +143,7 @@ void KMAcctExpPop::readConfig(KConfig& config)
mLogin = config.readEntry("login", "");
mUseSSL = config.readNumEntry("use-ssl", FALSE);
mStorePasswd = config.readNumEntry("store-passwd", TRUE);
if (mStorePasswd) mPasswd = config.readEntry("passwd");
else mPasswd = "";
@ -147,6 +161,7 @@ void KMAcctExpPop::writeConfig(KConfig& config)
KMAcctExpPopInherited::writeConfig(config);
config.writeEntry("login", mLogin);
config.writeEntry("use-ssl", mUseSSL);
config.writeEntry("store-passwd", mStorePasswd);
if (mStorePasswd) config.writeEntry("passwd", mPasswd);
else config.writeEntry("passwd", "");
@ -186,6 +201,12 @@ const QString KMAcctExpPop::decryptStr(const QString aStr) const
}
//-----------------------------------------------------------------------------
void KMAcctExpPop::setUseSSL(bool b)
{
mUseSSL = b;
}
//-----------------------------------------------------------------------------
void KMAcctExpPop::setStorePasswd(bool b)
{

@ -44,6 +44,10 @@ public:
const QString passwd(void) const;
virtual void setPasswd(const QString&, bool storeInConfig=FALSE);
/** Use SSL? */
bool useSSL(void) const { return mUseSSL; }
virtual void setUseSSL(bool);
/** Will the password be stored in the config file ? */
bool storePasswd(void) const { return mStorePasswd; }
virtual void setStorePasswd(bool);
@ -101,6 +105,7 @@ protected:
QString mHost, mPrecommand;
unsigned short int mPort;
short mProtocol;
bool mUseSSL;
bool mStorePasswd;
bool mLeaveOnServer;
bool mRetrieveAll;

@ -39,6 +39,7 @@ KMAcctPop::KMAcctPop(KMAcctMgr* aOwner, const char* aAccountName):
initMetaObject();
mStorePasswd = FALSE;
mUseSSL = FALSE;
mLeaveOnServer = FALSE;
mRetrieveAll = TRUE;
mProtocol = 3;
@ -67,6 +68,7 @@ void KMAcctPop::init(void)
mLogin = "";
mPasswd = "";
mProtocol = 3;
mUseSSL = FALSE;
mStorePasswd = FALSE;
mLeaveOnServer = FALSE;
mRetrieveAll = TRUE;
@ -375,6 +377,7 @@ void KMAcctPop::readConfig(KConfig& config)
mLogin = config.readEntry("login", "");
mUseSSL = config.readNumEntry("use-ssl", FALSE);
mStorePasswd = config.readNumEntry("store-passwd", TRUE);
if (mStorePasswd) mPasswd = config.readEntry("passwd");
else mPasswd = "";
@ -393,6 +396,7 @@ void KMAcctPop::writeConfig(KConfig& config)
KMAcctPopInherited::writeConfig(config);
config.writeEntry("login", mLogin);
config.writeEntry("use-ssl", mUseSSL);
config.writeEntry("store-passwd", mStorePasswd);
if (mStorePasswd) config.writeEntry("passwd", mPasswd);
else config.writeEntry("passwd", "");
@ -433,6 +437,12 @@ const QString KMAcctPop::decryptStr(const QString aStr) const
}
//-----------------------------------------------------------------------------
void KMAcctPop::setUseSSL(bool b)
{
mUseSSL = b;
}
//-----------------------------------------------------------------------------
void KMAcctPop::setStorePasswd(bool b)
{

@ -35,6 +35,10 @@ public:
const QString passwd(void) const;
virtual void setPasswd(const QString&, bool storeInConfig=FALSE);
/** Use SSL ? */
bool useSSL(void) const { return mUseSSL; }
virtual void setUseSSL(bool);
/** Will the password be stored in the config file ? */
bool storePasswd(void) const { return mStorePasswd; }
virtual void setStorePasswd(bool);
@ -92,6 +96,7 @@ protected:
QString mHost, mPrecommand;
unsigned short int mPort;
short mProtocol;
bool mUseSSL;
bool mStorePasswd;
bool mLeaveOnServer;
bool mRetrieveAll;

Loading…
Cancel
Save