[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kmail-devel
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

_______________________________________________
KMail Developers mailing list
kmail@mail.kde.org
http://mail.kde.org/mailman/listinfo/kmail
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic