From 4ae477f2935b8f6ede751eaa7747bdf1bfe1023b Mon Sep 17 00:00:00 2001 From: Michael Haeckel Date: Mon, 17 Sep 2001 14:46:26 +0000 Subject: [PATCH] Optionally show only the subscribed IMAP folders. Well, the most difficult thing was actually the check box for that :-) Nevertheless, we still need also a dialog for subscribing and unsubscribing. svn path=/trunk/kdenetwork/kmail/; revision=114565 --- accountdialog.cpp | 20 +++++++++++++------- accountdialog.h | 1 + kmacctimap.cpp | 11 +++++++++++ kmacctimap.h | 7 +++++++ kmfolderimap.cpp | 2 +- 5 files changed, 33 insertions(+), 8 deletions(-) diff --git a/accountdialog.cpp b/accountdialog.cpp index 5c6625a5f..077d6deb3 100644 --- a/accountdialog.cpp +++ b/accountdialog.cpp @@ -608,9 +608,9 @@ void AccountDialog::makeImapAccountPage() QWidget *page1 = new QWidget( tabWidget ); tabWidget->addTab( page1, i18n("&General") ); - QGridLayout *grid = new QGridLayout( page1, 10, 2, spacingHint() ); + QGridLayout *grid = new QGridLayout( page1, 11, 2, spacingHint() ); grid->addColSpacing( 1, fontMetrics().maxWidth()*15 ); - grid->setRowStretch( 9, 10 ); + grid->setRowStretch( 10, 10 ); grid->setColStretch( 1, 10 ); QLabel *label = new QLabel( i18n("&Name:"), page1 ); @@ -651,16 +651,20 @@ void AccountDialog::makeImapAccountPage() label->setBuddy( mImap.prefixEdit ); grid->addWidget( mImap.prefixEdit, 5, 1 ); + mImap.storePasswordCheck = + new QCheckBox( i18n("Sto&re IMAP password in configuration file"), page1 ); + grid->addMultiCellWidget( mImap.storePasswordCheck, 6, 6, 0, 1 ); + mImap.autoExpungeCheck = new QCheckBox( i18n("&Automatically expunge deleted messages"), page1); - grid->addMultiCellWidget( mImap.autoExpungeCheck, 6, 6, 0, 1 ); + grid->addMultiCellWidget( mImap.autoExpungeCheck, 7, 7, 0, 1 ); mImap.hiddenFoldersCheck = new QCheckBox( i18n("&Show hidden folders"), page1); - grid->addMultiCellWidget( mImap.hiddenFoldersCheck, 7, 7, 0, 1 ); + grid->addMultiCellWidget( mImap.hiddenFoldersCheck, 8, 8, 0, 1 ); - mImap.storePasswordCheck = - new QCheckBox( i18n("Sto&re IMAP password in configuration file"), page1 ); - grid->addMultiCellWidget( mImap.storePasswordCheck, 8, 8, 0, 1 ); + mImap.subscribedFoldersCheck = new QCheckBox( + i18n("Show &only subscribed folders"), page1); + grid->addMultiCellWidget( mImap.subscribedFoldersCheck, 9, 9, 0, 1 ); QWidget *page2 = new QWidget( tabWidget ); tabWidget->addTab( page2, i18n("S&ecurity") ); @@ -790,6 +794,7 @@ void AccountDialog::setupSettings() mImap.prefixEdit->setText( ai.prefix() ); mImap.autoExpungeCheck->setChecked( ai.autoExpunge() ); mImap.hiddenFoldersCheck->setChecked( ai.hiddenFolders() ); + mImap.subscribedFoldersCheck->setChecked( ai.onlySubscribedFolders() ); mImap.storePasswordCheck->setChecked( ai.storePasswd() ); if (ai.useSSL()) mImap.encryptionSSL->setChecked( TRUE ); @@ -1046,6 +1051,7 @@ void AccountDialog::saveSettings() epa.setLogin( mImap.loginEdit->text().stripWhiteSpace() ); epa.setAutoExpunge( mImap.autoExpungeCheck->isChecked() ); epa.setHiddenFolders( mImap.hiddenFoldersCheck->isChecked() ); + epa.setOnlySubscribedFolders( mImap.subscribedFoldersCheck->isChecked() ); epa.setStorePasswd( mImap.storePasswordCheck->isChecked() ); epa.setPasswd( mImap.passwordEdit->text(), epa.storePasswd() ); epa.setUseSSL( mImap.encryptionSSL->isChecked() ); diff --git a/accountdialog.h b/accountdialog.h index 5e1a7f6c6..4a250afd1 100644 --- a/accountdialog.h +++ b/accountdialog.h @@ -120,6 +120,7 @@ class AccountDialog : public KDialogBase QLineEdit *prefixEdit; QCheckBox *autoExpungeCheck; QCheckBox *hiddenFoldersCheck; + QCheckBox *subscribedFoldersCheck; QCheckBox *storePasswordCheck; QButtonGroup *encryptionGroup; QRadioButton *encryptionNone; diff --git a/kmacctimap.cpp b/kmacctimap.cpp index 84764ca8a..90a48070f 100644 --- a/kmacctimap.cpp +++ b/kmacctimap.cpp @@ -106,6 +106,7 @@ void KMAcctImap::init(void) mPrefix = "/"; mAutoExpunge = TRUE; mHiddenFolders = FALSE; + mOnlySubscribedFolders = FALSE; mUseSSL = FALSE; mUseTLS = FALSE; mIdle = TRUE; @@ -131,6 +132,7 @@ void KMAcctImap::pseudoAssign(KMAccount* account) setAuth(acct->auth()); setAutoExpunge(acct->autoExpunge()); setHiddenFolders(acct->hiddenFolders()); + setOnlySubscribedFolders(acct->onlySubscribedFolders()); setStorePasswd(acct->storePasswd()); setPasswd(acct->passwd(), acct->storePasswd()); setUseSSL(acct->useSSL()); @@ -153,6 +155,7 @@ void KMAcctImap::readConfig(KConfig& config) if (mFolder) mFolder->setImapPath(mPrefix); mAutoExpunge = config.readBoolEntry("auto-expunge", TRUE); mHiddenFolders = config.readBoolEntry("hidden-folders", FALSE); + mOnlySubscribedFolders = config.readBoolEntry("subscribed-folders", FALSE); mUseSSL = config.readBoolEntry("use-ssl", FALSE); mUseTLS = config.readBoolEntry("use-tls", FALSE); } @@ -174,6 +177,7 @@ void KMAcctImap::writeConfig(KConfig& config) config.writeEntry("prefix", mPrefix); config.writeEntry("auto-expunge", mAutoExpunge); config.writeEntry("hidden-folders", mHiddenFolders); + config.writeEntry("subscribed-folders", mOnlySubscribedFolders); config.writeEntry("use-ssl", mUseSSL); config.writeEntry("use-tls", mUseTLS); } @@ -306,6 +310,13 @@ void KMAcctImap::setHiddenFolders(bool aHiddenFolders) } +//----------------------------------------------------------------------------- +void KMAcctImap::setOnlySubscribedFolders(bool aOnlySubscribedFolders) +{ + mOnlySubscribedFolders = aOnlySubscribedFolders; +} + + //----------------------------------------------------------------------------- void KMAcctImap::setAuth(const QString& aAuth) { diff --git a/kmacctimap.h b/kmacctimap.h index ef1f3063a..f840caad8 100644 --- a/kmacctimap.h +++ b/kmacctimap.h @@ -104,6 +104,12 @@ public: bool hiddenFolders() { return mHiddenFolders; } virtual void setHiddenFolders(bool); + /** + * Show only subscribed folders + */ + bool onlySubscribedFolders() { return mOnlySubscribedFolders; } + virtual void setOnlySubscribedFolders(bool); + /** * Use SSL or not */ @@ -209,6 +215,7 @@ protected: bool mUseSSL; bool mUseTLS; bool mHiddenFolders; + bool mOnlySubscribedFolders; bool mProgressEnabled; int mTotal; bool mIdle; diff --git a/kmfolderimap.cpp b/kmfolderimap.cpp index 0052ccac4..9c5be48bf 100644 --- a/kmfolderimap.cpp +++ b/kmfolderimap.cpp @@ -219,7 +219,7 @@ void KMFolderImap::listDirectory(KMFolderTreeItem * fti, bool secondStep) && imapPath() == mAccount->prefix(); KURL url = mAccount->getUrl(); url.setPath(((jd.inboxOnly) ? QString("/") : imapPath()) - + ";TYPE=LIST"); + + ";TYPE=" + ((mAccount->onlySubscribedFolders()) ? "LSUB" : "LIST")); if (!mAccount->makeConnection()) { if (fti) fti->setOpen( FALSE );