[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: Re: kdenetwork/kmail
From: Bo Thorsen <bo () sonofthor ! dk>
Date: 2003-01-15 13:12:45
[Download RAW message or body]
On Wednesday 15 January 2003 14:04, David Faure wrote:
> On Wednesday 15 January 2003 14:00, Laurent Montel wrote:
> > Le Wednesday 15 January 2003 13:56, Laurent Montel a écrit :
> > > CVS commit by mlaurent:
> > >
> > > Fix crash.
> >
> > Can a people can backport it on other branch please.
>
> kroupware_branch has very different code, patch doesn't apply there.
In fact what I have done there is this (this patch is waiting for Zacks
job work to be done):
(Note: this patch isn't working since kmail somehow screws up formatting
of it. It can be found in my mail to kmail@kde.org on dec. 12th titled
"Small patch for HEAD".)
Index: kmfolder.h
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmfolder.h,v
retrieving revision 1.99
diff -u -p -r1.99 kmfolder.h
--- kmfolder.h 30 Nov 2002 21:27:20 -0000 1.99
+++ kmfolder.h 9 Dec 2002 14:00:45 -0000
@@ -491,6 +491,8 @@ public:
/** Set the status of the message(s) in the QValueList @p ids to @p status. */
virtual void setStatus(QValueList<int>& ids, KMMsgStatus status);
+ virtual bool canRemoveFolder() const { return !isSystemFolder(); }
+
signals:
/** Emitted when the status, name, or associated accounts of this
folder changed. */
Index: kmfoldercachedimap.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmfoldercachedimap.cpp,v
retrieving revision 1.3
diff -u -p -r1.3 kmfoldercachedimap.cpp
--- kmfoldercachedimap.cpp 5 Dec 2002 00:52:06 -0000 1.3
+++ kmfoldercachedimap.cpp 9 Dec 2002 14:00:46 -0000
@@ -223,11 +223,8 @@ bool KMFolderCachedImap::canRemoveFolder
if( child() != 0 && child()->count() > 0 )
return false;
-#if 0
// No special condition here, so let base class decide
return KMFolderCachedImapInherited::canRemoveFolder();
-#endif
- return true;
}
/* Reimplemented from KMFolderDir */
Index: kmfoldernode.h
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmfoldernode.h,v
retrieving revision 1.12
diff -u -p -r1.12 kmfoldernode.h
--- kmfoldernode.h 11 Oct 2002 22:36:20 -0000 1.12
+++ kmfoldernode.h 9 Dec 2002 14:00:46 -0000
@@ -60,6 +60,9 @@ public:
the name. */
virtual QString label(void) const;
+ /** Returns true, if the removeFolder action can be enabled. */
+ virtual bool canRemoveFolder() const { return true; }
+
protected:
QString mName;
const char* mType;
Index: kmfoldertree.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmfoldertree.cpp,v
retrieving revision 1.211
diff -u -p -r1.211 kmfoldertree.cpp
--- kmfoldertree.cpp 29 Nov 2002 19:08:25 -0000 1.211
+++ kmfoldertree.cpp 9 Dec 2002 14:00:46 -0000
@@ -892,7 +892,7 @@ void KMFolderTree::rightButtonPressed(QL
i18n("&Move All Messages to Trash"), topLevelWidget(),
SLOT(slotEmptyFolder()));
}
- if ( !fti->folder()->isSystemFolder() )
+ if ( fti->folder()->canRemoveFolder() )
folderMenu->insertItem(SmallIcon("editdelete"),
i18n("&Delete Folder"), topLevelWidget(),
SLOT(slotRemoveFolder()));
Index: kmmainwin.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kmail/kmmainwin.cpp,v
retrieving revision 1.549
diff -u -p -r1.549 kmmainwin.cpp
--- kmmainwin.cpp 4 Dec 2002 13:40:05 -0000 1.549
+++ kmmainwin.cpp 9 Dec 2002 14:00:46 -0000
@@ -1096,7 +1096,7 @@ void KMMainWin::slotRemoveFolder()
QDir dir;
if (!mFolder) return;
- if (mFolder->isSystemFolder()) return;
+ if (!mFolder->canRemoveFolder()) return;
str = i18n("Are you sure you want to delete the folder "
"\"%1\" and all its subfolders, discarding their contents?")
@@ -3040,7 +3040,7 @@ void KMMainWin::updateFolderMenu()
emptyFolderAction->setEnabled( mFolder ? !mFolder->noContent() : false );
emptyFolderAction->setText( (mFolder && kernel->folderIsTrash(mFolder))
? i18n("&Empty Trash") : i18n("&Move All Messages to Trash") );
- removeFolderAction->setEnabled( (mFolder && !mFolder->isSystemFolder()) );
+ removeFolderAction->setEnabled( (mFolder && mFolder->canRemoveFolder()) );
expireFolderAction->setEnabled( mFolder && mFolder->protocol() != "imap"
&& mFolder->isAutoExpire() );
markAllAsReadAction->setEnabled( mFolder && (mFolder->countUnread() > 0) );
--
Bo Thorsen | Praestevejen 4
Senior Software Engineer | 5290 Marslev
Klarälvdalens Datakonsult | Denmark
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic