Move isSystemFolder() to KMFolder from FolderStorage as it's storage

independent.

svn path=/trunk/kdepim/; revision=281367
wilder-work
Till Adam 22 years ago
parent 1ce8fae258
commit 904be59f46
  1. 10
      folderstorage.cpp
  2. 9
      folderstorage.h
  3. 14
      kmfolder.cpp
  4. 5
      kmfolder.h
  5. 1
      kmfoldercachedimap.cpp
  6. 10
      kmfolderimap.cpp
  7. 3
      kmfoldermaildir.cpp
  8. 3
      kmfoldermbox.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() ||

@ -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;

@ -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();

@ -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*/

@ -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);

@ -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);

@ -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;

@ -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;

Loading…
Cancel
Save