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

List:       kde-commits
Subject:    branches/KDE/3.5/kdepim
From:       Volker Krause <vkrause () kde ! org>
Date:       2008-08-18 17:32:49
Message-ID: 1219080769.231352.17820.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 848898 by vkrause:

Merged revisions 807761-809626,809628-809708,809710-810236,810238-810302,810304,810306-811064,81 \
1066-811205,811207-813546,813549-814372,814374,814376-816024,816026-816313,816315-816322,816324- \
817070,817072-817087,817089-817101,817103-817567,817569-817603,817605-817709,817711-818287,81828 \
9-818311,818313-819076,819078-820073,820075-821035,821037-821124,821126-821345,821347-821370,821 \
372-821378,821380-821648,821650,821652-821835,821837-822268,822270-823852,823854-823882,823884-8 \
24217,824219-824277,824279-824285,824287-825075,825077-825083,825085-825805,825807-826354,826356 \
-827490,827492-827612,827614-827891,827893-827903,827905-827944,827946-827949,827951-828972,8289 \
74-829033,829035-830099,830101-830132,830134-830442,830444-830477,830479-830875,830877-830932,830934-834241 \
via svnmerge from  https://vkrause@svn.kde.org/home/kde/branches/kdepim/enterprise/kdepim

........
  r807761 | vkrause | 2008-05-14 19:00:30 +0200 (Wed, 14 May 2008) | 5 lines
  
  Don't delete folder configs for folders that might not be in the list
  here but nevertheless still exist.
  
  Kolab issue 2667
........
  r821814 | vkrause | 2008-06-18 17:21:15 +0200 (Wed, 18 Jun 2008) | 5 lines
  
  Make sure favorite folder items get the same label independent of how
  say are created.
  
  Kolab issue 2785.
........
  r823865 | tilladam | 2008-06-24 14:03:18 +0200 (Tue, 24 Jun 2008) | 7 lines
  
  Make it possible again to accept an invitation that was sent
  to a distribution list the current user is part of, by offering
  all the identities in addition to the recipients of the invite
  as choices for the attendee.
  
  kolab/issue1998
........
  r824289 | vkrause | 2008-06-25 17:20:44 +0200 (Wed, 25 Jun 2008) | 3 lines
  
  Honor local subscription, fixes non-subscribed folders showing up in
  the folder tree for a short time after changing local subscriptions.
........
  r824806 | vkrause | 2008-06-26 18:42:06 +0200 (Thu, 26 Jun 2008) | 6 lines
  
  The else block is supposed to belong to the outer if, so we need braces
  here.
  This ensures that a failed annotation job is removed correctly from the
  job map and therefore avoids a crash on exit when KMail tries to cancel
  the apparently still running job.
........
  r830550 | vkrause | 2008-07-10 20:51:09 +0200 (Thu, 10 Jul 2008) | 23 lines
  
  Backport SVN commit 829126 by vkrause from enterprise4 branch:
  
  Close the folder before we unregister from the message dict.
  This fixes the .index.db file being newer than the corresponding
  .index.ids file, causing the latter being detected as outdated on the
  next startup. In this case message wouldn't have a serial number, which
  the sqlite backend poorly recovers from, causing apparent mail loss
  (fixable by rebuilding the folder index). And to make it even more
  confusing, this only happends for new DIMAP folders that have been
  synced but not entered yet before shutting down KMail.
  
  Kolab issue 2816
  
  
  Incidentally this also fixes the mysterious non-persistence of certain
  folder infos worked around in revision 830478. This happend because
  groupware folders were kept open until destructions. However,
  writeConfig() was called from the KMFolderMaildir dtor at which point
  the virtual writeConfig() in KMFolderCachedImap wasn't available
  anymore.
  
  Kolab issue 2666
........
  r834241 | vkrause | 2008-07-18 15:25:03 +0200 (Fri, 18 Jul 2008) | 7 lines
  
  Update the highest uid even if we don't find the corresponding message
  anymore or the folder is empty. This happens for example when the
  message with this uid was moved away by a filter just before we got
  here, which then caused mail duplication during the next sync.
  
  Kolab issue 2801
........


 _M            . (directory)  
 M  +1 -0      kmail/callback.cpp  
 M  +7 -0      kmail/favoritefolderview.cpp  
 M  +1 -0      kmail/favoritefolderview.h  
 M  +2 -1      kmail/kmfolder.cpp  
 M  +8 -7      kmail/kmfoldercachedimap.cpp  
 M  +3 -1      kmail/kmfolderimap.cpp  
 M  +10 -5     kmail/kmfoldertree.cpp  
 M  +2 -8      kmail/listjob.h  


** branches/KDE/3.5/kdepim #property svnmerge-integrated
   - /branches/kdepim/enterprise/kdepim:1-767022,767033,767233-767554,767556,767558-767946,76794 \
8-769318,769320-769354,769356-771105,771107-771251,771253-772311,772313-772316,772318-775194,775 \
196-775202,775204,775207-775211,775213-778001,778003-778004,778007,778010-778011,778013-778029,7 \
78031-778727,778729-779448,779450-779482,779484-779505,779507-779852,779854-779994,780211,780250 \
-780452,780454-780495,780497,780499-780529,780531-782028,782030-783127,783129-783243,783245,7832 \
48-783477,783479-784380,784382-784426,784428-784691,784693-785478,785480-785558,787827,788634,78 \
9925,790349-790352,791184-791440,791443-792201,792203-792957,793296,794734,795745-795763,795765, \
795767-798445,798447-798448,798450-798495,798497-800070,800072-800167,800169-802138,802140-80214 \
8,802150-802151,802153-803259,803261-803299,803301-803308,803310-803380,803383-803397,803399-804 \
615,804617-804993,804995-805347,805349-805427,805429-805459,805461-805702,817568,817604,817710-818288,818312-819076,819078-820
  073,820075-821035,821037-821124,821126-821378,821380-821648,821650-821813,821815-821835,821837 \
-822268,822270-823864,823866-824217,824219-824277,824279-824285,824287-824288,824290-824805,824807-825075,825077-825083,825085-826354,826356-827491,830100,830443
  + /branches/kdepim/enterprise/kdepim:1-767022,767033,767233-767554,767556,767558-767946,767948 \
-769318,769320-769354,769356-771105,771107-771251,771253-772311,772313-772316,772318-775194,7751 \
96-775202,775204,775207-775211,775213-778001,778003-778004,778007,778010-778011,778013-778029,77 \
8031-778727,778729-779448,779450-779482,779484-779505,779507-779852,779854-779994,780211,780250- \
780452,780454-780495,780497,780499-780529,780531-782028,782030-783127,783129-783243,783245,78324 \
8-783477,783479-784380,784382-784426,784428-784691,784693-785478,785480-785558,787827,788634,789 \
925,790349-790352,791184-791440,791443-792201,792203-792957,793296,794734,795745-795763,795765,7 \
95767-798445,798447-798448,798450-798495,798497-800070,800072-800167,800169-802138,802140-802148 \
,802150-802151,802153-803259,803261-803299,803301-803308,803310-803380,803383-803397,803399-8046 \
15,804617-804993,804995-805347,805349-805427,805429-805459,805461-805702,807761-809708,809710-810236,810238-810302,810304,810
  306-811205,811207-813547,813549-814372,814374,814376-816024,816026-816313,816315-816322,816324 \
-817070,817072-817087,817089-817101,817103-819076,819078-820073,820075-821035,821037-821124,8211 \
26-821378,821380-821648,821650-821835,821837-822268,822270-824217,824219-824277,824279-824285,82 \
4287-825075,825077-825083,825085-826354,826356-827612,827614-827891,827893-827944,827946-827949,827951-829033,829035-830477,830479-830875,830877-830932,830934-834241
                
--- branches/KDE/3.5/kdepim/kmail/callback.cpp #848897:848898
@@ -171,6 +171,7 @@
           "receiver of this message,<br>please "
           "choose which of the following addresses "
           "is yours, if any:");
+      addrs += kmkernel->identityManager()->allEmails();
     } else {
       selectMessage = i18n("<qt>Several of your identities match the "
           "receiver of this message,<br>please "
--- branches/KDE/3.5/kdepim/kmail/favoritefolderview.cpp #848897:848898
@@ -450,6 +450,13 @@
   addFolder( folder, fti ? prettyName( fti ) : folder->label() );
 }
 
+void KMail::FavoriteFolderView::addFolder(KMFolderTreeItem * fti)
+{
+  if ( !fti || !fti->folder() )
+    return;
+  addFolder( fti->folder(), prettyName( fti ) );
+}
+
 KMFolderTreeItem * FavoriteFolderView::findFolderTreeItem(KMFolder * folder) const
 {
   assert( folder );
--- branches/KDE/3.5/kdepim/kmail/favoritefolderview.h #848897:848898
@@ -55,6 +55,7 @@
 
     KMFolderTreeItem* addFolder( KMFolder *folder, const QString &name = QString::null,
                                  QListViewItem *after = 0 );
+    void addFolder( KMFolderTreeItem *fti );
 
   public slots:
     void folderTreeSelectionChanged( KMFolder *folder );
--- branches/KDE/3.5/kdepim/kmail/kmfolder.cpp #848897:848898
@@ -127,7 +127,7 @@
 
   connect( mStorage, SIGNAL( contentsTypeChanged( KMail::FolderContentsType ) ),
                 this, SLOT( slotContentsTypeChanged( KMail::FolderContentsType ) ) );
-  
+
   connect( mStorage, SIGNAL( folderSizeChanged() ),
            this, SLOT( slotFolderSizeChanged() ) );
 
@@ -148,6 +148,7 @@
 
 KMFolder::~KMFolder()
 {
+  mStorage->close( "~KMFolder", true );
   delete mAcctList;
   if ( mHasIndex ) mStorage->deregisterFromMessageDict();
   delete mStorage;
--- branches/KDE/3.5/kdepim/kmail/kmfoldercachedimap.cpp #848897:848898
@@ -2718,10 +2718,11 @@
   bool cont = true;
   if ( job->error() ) {
     // Don't show error if the server doesn't support ANNOTATEMORE and this folder only \
                contains mail
-    if ( job->error() == KIO::ERR_UNSUPPORTED_ACTION && contentsType() == ContentsTypeMail )
+    if ( job->error() == KIO::ERR_UNSUPPORTED_ACTION && contentsType() == ContentsTypeMail ) {
       if (mAccount->slave()) mAccount->removeJob(job);
-    else
+    } else {
       cont = mAccount->handleJobError( job, i18n( "Error while setting annotation: " ) + '\n' \
); +    }
   } else {
     if (mAccount->slave()) mAccount->removeJob(job);
   }
@@ -2740,7 +2741,10 @@
       // highest one as well. If not, our notion of the highest
       // uid we've seen thus far is wrong, which is dangerous, so
       // don't update the mLastUid, then.
-      bool sane = false;
+      // Not entirely true though, mails might have been moved out
+      // of the folder already by filters, thus giving us a higher tentative
+      // uid than we actually observe here.
+      bool sane = count() == 0;
 
       for (int i=0;i<count(); i++ ) {
           ulong uid = getMsgBase(i)->UID();
@@ -2750,11 +2754,8 @@
               kdWarning(5006) << "uid: " << uid << " mTentativeHighestUid: " << \
mTentativeHighestUid << endl;  assert( false );
               break;
-          } else if ( uid == mTentativeHighestUid || lastUid() ) {
-              // we've found our highest uid, all is well
+          } else {
               sane = true;
-          } else {
-              // must be smaller, that's ok, let's wait for bigger fish
           }
       }
       if (sane) {
--- branches/KDE/3.5/kdepim/kmail/kmfolderimap.cpp #848897:848898
@@ -639,8 +639,9 @@
   for ( QStringList::Iterator it = personal.begin(); it != personal.end(); ++it )
   {
     KMail::ListJob* job = new KMail::ListJob( account(), type, this,
-	account()->addPathToNamespace( *it ) );
+    account()->addPathToNamespace( *it ) );
     job->setNamespace( *it );
+    job->setHonorLocalSubscription( true );
     connect( job, SIGNAL(receivedFolders(const QStringList&, const QStringList&,
             const QStringList&, const QStringList&, const ImapAccountBase::jobData&)),
         this, SLOT(slotListResult(const QStringList&, const QStringList&,
@@ -654,6 +655,7 @@
   for ( QStringList::Iterator it = ns.begin(); it != ns.end(); ++it )
   {
     KMail::ListJob* job = new  KMail::ListJob( account(), type, this, \
account()->addPathToNamespace( *it ) ); +    job->setHonorLocalSubscription( true );
     connect( job, SIGNAL(receivedFolders(const QStringList&, const QStringList&,
             const QStringList&, const QStringList&, const ImapAccountBase::jobData&)),
         this, SLOT(slotCheckNamespace(const QStringList&, const QStringList&,
--- branches/KDE/3.5/kdepim/kmail/kmfoldertree.cpp #848897:848898
@@ -1358,9 +1358,13 @@
     {
       KMFolder* folder = kmkernel->findFolderById( name );
       if ( folder ) {
-          if ( kmkernel->iCalIface().hideResourceFolder( folder )
+        if ( kmkernel->iCalIface().hideResourceFolder( folder )
            ||  kmkernel->iCalIface().hideResourceAccountRoot( folder ) )
-        continue; // hidden IMAP resource folder, don't delete info
+          continue; // hidden IMAP resource folder, don't delete info
+        if ( folder->noContent() )
+          continue; // we hide nocontent folders if they have no child folders
+        if ( folder == kmkernel->inboxFolder() )
+          continue; // local inbox can be hidden as well
       }
 
       //KMessageBox::error( 0, "cleanupConfigFile: Deleting group " + *grpIt );
@@ -2101,11 +2105,12 @@
 
 void KMFolderTree::slotAddToFavorites()
 {
-  QValueList<QGuardedPtr<KMFolder> > folders = selectedFolders();
   KMail::FavoriteFolderView *favView = mMainWidget->favoriteFolderView();
   assert( favView );
-  for ( QValueList<QGuardedPtr<KMFolder> >::ConstIterator it = folders.constBegin(); it != \
                folders.constEnd(); ++it )
-    favView->addFolder( *it );
+  for ( QListViewItemIterator it( this ); it.current(); ++it ) {
+    if ( it.current()->isSelected() )
+      favView->addFolder( static_cast<KMFolderTreeItem*>( it.current() ) );
+  }
 }
 
 void KMFolderTree::slotUnhideLocalInbox()
--- branches/KDE/3.5/kdepim/kmail/listjob.h #848897:848898
@@ -77,7 +77,7 @@
    * side subscription managed by the ctor parameter.
    */
   void setHonorLocalSubscription( bool value );
-  
+
   /**
    * Return whether the listing includes only folders that the
    * account is subscribed to locally. This is different from the server
@@ -97,18 +97,12 @@
   void setComplete( bool complete ) { mComplete = complete; }
 
   /** Set parent progress item */
-  void setParentProgressItem( KPIM::ProgressItem* it ) { 
+  void setParentProgressItem( KPIM::ProgressItem* it ) {
     mParentProgressItem = it; }
 
   /** Set the namespace for this listing */
   void setNamespace( const QString& ns ) { mNamespace = ns; }
 
-protected:
-  /**
-   * Does the actual KIO::listDir
-   */
-  void doListing( const KURL& url, const ImapAccountBase::jobData& jd );
-
 protected slots:
   /**
    * Is called when the listing is done


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

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