From 904be59f467dc7838e402033000687fb3b8d29c5 Mon Sep 17 00:00:00 2001 From: Till Adam Date: Tue, 20 Jan 2004 20:46:06 +0000 Subject: [PATCH] Move isSystemFolder() to KMFolder from FolderStorage as it's storage independent. svn path=/trunk/kdepim/; revision=281367 --- folderstorage.cpp | 10 ++++++---- folderstorage.h | 9 +-------- kmfolder.cpp | 14 +++----------- kmfolder.h | 5 +++-- kmfoldercachedimap.cpp | 1 - kmfolderimap.cpp | 10 +++++----- kmfoldermaildir.cpp | 3 ++- kmfoldermbox.cpp | 3 ++- 8 files changed, 22 insertions(+), 33 deletions(-) diff --git a/folderstorage.cpp b/folderstorage.cpp index 7c90d44f4..175311207 100644 --- a/folderstorage.cpp +++ b/folderstorage.cpp @@ -65,7 +65,6 @@ FolderStorage::FolderStorage( KMFolder* folder, const char* aName ) mQuiet = 0; mChanged = FALSE; mAutoCreateIndex= TRUE; - mIsSystemFolder = FALSE; folder->setType( "plain" ); mAcctList = 0; mDirty = FALSE; @@ -755,8 +754,10 @@ const char* FolderStorage::type() const //----------------------------------------------------------------------------- QString FolderStorage::label() const { - if (mIsSystemFolder && !mLabel.isEmpty()) return mLabel; - if (mIsSystemFolder) return i18n(folder()->name().latin1()); + if ( folder() && folder()->isSystemFolder() && !mLabel.isEmpty() ) + return mLabel; + if ( folder() && folder()->isSystemFolder() ) + return i18n( folder()->name().latin1() ); return name(); } @@ -985,7 +986,8 @@ void FolderStorage::setUserWhoField(const QString &whoField, bool aWriteConfig) const KMIdentity & identity = kmkernel->identityManager()->identityForUoidOrDefault( mIdentity ); - if ( mIsSystemFolder && folderType() != KMFolderTypeImap ) + if ( folder() && folder()->isSystemFolder() + && folderType() != KMFolderTypeImap ) { // local system folders if ( folder() == kmkernel->inboxFolder() || diff --git a/folderstorage.h b/folderstorage.h index 827d749ab..02daa4b5b 100644 --- a/folderstorage.h +++ b/folderstorage.h @@ -298,13 +298,7 @@ public: /** Is the folder read-only? */ virtual bool isReadOnly() const = 0; - /** Returns TRUE if the folder is a kmail system folder. These are - the folders 'outbox', 'sent', 'trash'. The name of these - folders is nationalized in the folder display and they cannot have - accounts associated. Deletion is also forbidden. Etc. */ - bool isSystemFolder() const { return mIsSystemFolder; } - void setSystemFolder(bool itIs) { mIsSystemFolder=itIs; } - + /** Returns the label of the folder for visualization. */ virtual QString label() const; void setLabel(const QString& lbl) { mLabel = lbl; } @@ -602,7 +596,6 @@ protected: QString mLabel; /** name of the field that is used for "From" in listbox */ QString mWhoField, mUserWhoField; - bool mIsSystemFolder; KMAcctList* mAcctList; bool mMailingListEnabled; diff --git a/kmfolder.cpp b/kmfolder.cpp index 20d64d295..38c9c4b45 100644 --- a/kmfolder.cpp +++ b/kmfolder.cpp @@ -20,8 +20,10 @@ KMFolder::KMFolder( KMFolderDir* aParent, const QString& aFolderName, KMFolderType aFolderType ) - : KMFolderNode( aParent, aFolderName ), mParent( aParent ), mChild( 0 ) + : KMFolderNode( aParent, aFolderName ), mParent( aParent ), mChild( 0 ), + mIsSystemFolder( false ) { + if( aFolderType == KMFolderTypeCachedImap ) mStorage = new KMFolderCachedImap( this, aFolderName.latin1() ); else if( aFolderType == KMFolderTypeImap ) @@ -406,16 +408,6 @@ bool KMFolder::isReadOnly() const return mStorage->isReadOnly(); } -bool KMFolder::isSystemFolder() const -{ - return mStorage->isSystemFolder(); -} - -void KMFolder::setSystemFolder( bool itIs ) -{ - mStorage->setSystemFolder( itIs ); -} - QString KMFolder::label() const { return mStorage->label(); diff --git a/kmfolder.h b/kmfolder.h index db01426a0..f7652a21c 100644 --- a/kmfolder.h +++ b/kmfolder.h @@ -289,8 +289,8 @@ public: the folders 'outbox', 'sent', 'trash'. The name of these folders is nationalized in the folder display and they cannot have accounts associated. Deletion is also forbidden. Etc. */ - bool isSystemFolder() const; - void setSystemFolder(bool itIs); + bool isSystemFolder() const { return mIsSystemFolder; } + void setSystemFolder(bool itIs) { mIsSystemFolder=itIs; } /** Returns the label of the folder for visualization. */ QString label() const; @@ -497,6 +497,7 @@ private: FolderStorage* mStorage; KMFolderDir* mParent; KMFolderDir* mChild; + bool mIsSystemFolder; }; #endif /*kmfolder_h*/ diff --git a/kmfoldercachedimap.cpp b/kmfoldercachedimap.cpp index cb13d0f75..edb0be47c 100644 --- a/kmfoldercachedimap.cpp +++ b/kmfoldercachedimap.cpp @@ -127,7 +127,6 @@ KMFolderCachedImap::KMFolderCachedImap( KMFolder* folder, const char* aName ) { //mLabel = i18n("inbox"); } - mIsSystemFolder = false; mNoContent = config->readBoolEntry("NoContent", FALSE); mReadOnly = config->readBoolEntry("ReadOnly", FALSE); diff --git a/kmfolderimap.cpp b/kmfolderimap.cpp index 2188f41ba..74d62e8b1 100644 --- a/kmfolderimap.cpp +++ b/kmfolderimap.cpp @@ -61,7 +61,7 @@ KMFolderImap::KMFolderImap(KMFolder* folder, const char* aName) if (mImapPath.isEmpty()) mImapPath = config->readEntry("ImapPath"); if (aName == "INBOX" && mImapPath == "/INBOX/") { - mIsSystemFolder = TRUE; + folder->setSystemFolder( true ); mLabel = i18n("inbox"); } mNoContent = config->readBoolEntry("NoContent", FALSE); @@ -515,8 +515,8 @@ bool KMFolderImap::listDirectory(bool secondStep) QStringList, const ImapAccountBase::jobData &))); // start a new listing for the root-folder - bool reset = (mImapPath == mAccount->prefix() && - !secondStep && !mIsSystemFolder) ? true : false; + bool reset = ( mImapPath == mAccount->prefix() && + !secondStep && !folder()->isSystemFolder() ) ? true : false; // get the folders mAccount->listDirectory(mImapPath, mAccount->onlySubscribedFolders(), @@ -553,8 +553,8 @@ void KMFolderImap::slotListResult( QStringList mSubfolderNames, // list again only for the INBOX listDirectory(TRUE); } else { - if (mIsSystemFolder && mImapPath == "/INBOX/" - && mAccount->prefix() == "/INBOX/") + if ( folder()->isSystemFolder() && mImapPath == "/INBOX/" + && mAccount->prefix() == "/INBOX/" ) { // do not create folders under INBOX mAccount->setCreateInbox(FALSE); diff --git a/kmfoldermaildir.cpp b/kmfoldermaildir.cpp index 6773c4547..5400dab59 100644 --- a/kmfoldermaildir.cpp +++ b/kmfoldermaildir.cpp @@ -199,7 +199,8 @@ void KMFolderMaildir::close(bool aForced) if (mOpenCount <= 0) return; if (mOpenCount > 0) mOpenCount--; if (mOpenCount > 0 && !aForced) return; - if ((folder() != kmkernel->inboxFolder()) && isSystemFolder() && !aForced) + if ( (folder() != kmkernel->inboxFolder()) + && folder()->isSystemFolder() && !aForced) { mOpenCount = 1; return; diff --git a/kmfoldermbox.cpp b/kmfoldermbox.cpp index 5ad2eced1..3d378a979 100644 --- a/kmfoldermbox.cpp +++ b/kmfoldermbox.cpp @@ -224,7 +224,8 @@ void KMFolderMbox::close(bool aForced) if (mOpenCount <= 0 || !mStream) return; if (mOpenCount > 0) mOpenCount--; if (mOpenCount > 0 && !aForced) return; - if ((folder() != kmkernel->inboxFolder()) && isSystemFolder() && !aForced) + if ( (folder() != kmkernel->inboxFolder()) + && folder()->isSystemFolder() && !aForced ) { mOpenCount = 1; return;