Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 180244
Collapse All | Expand All

(-)branches/KDE/3.5/kdepim/kmail/folderstorage.h (+3 lines)
Lines 421-426 Link Here
421
      emmitted first. */
421
      emmitted first. */
422
  void expunged( KMFolder* );
422
  void expunged( KMFolder* );
423
423
424
  /** Emitted when the folder was closed and ticket owners have to reopen */
425
  void closed( KMFolder* );
426
  
424
  /** Emitted when the serial numbers of this folder were invalidated. */
427
  /** Emitted when the serial numbers of this folder were invalidated. */
425
  void invalidated( KMFolder * );
428
  void invalidated( KMFolder * );
426
  
429
  
(-)branches/KDE/3.5/kdepim/kmail/kmheaders.h (+2 lines)
Lines 221-226 Link Here
221
  void msgChanged();
221
  void msgChanged();
222
  /** For when the folder has been cleared */
222
  /** For when the folder has been cleared */
223
  void folderCleared();
223
  void folderCleared();
224
  /** For when the folder has been cleared */
225
  void folderClosed();
224
  /** For when the message with the given message id has been added to a folder */
226
  /** For when the message with the given message id has been added to a folder */
225
  void msgAdded(int);
227
  void msgAdded(int);
226
  /** For when the message with the given id has been removed for a folder */
228
  /** For when the message with the given id has been removed for a folder */
(-)branches/KDE/3.5/kdepim/kmail/kmheaders.cpp (+11 lines)
Lines 673-678 Link Here
673
                 this, SLOT(folderCleared()));
673
                 this, SLOT(folderCleared()));
674
      disconnect(mFolder, SIGNAL(expunged( KMFolder* )),
674
      disconnect(mFolder, SIGNAL(expunged( KMFolder* )),
675
                 this, SLOT(folderCleared()));
675
                 this, SLOT(folderCleared()));
676
      disconnect(mFolder, SIGNAL(closed()),
677
                 this, SLOT(folderClosed()));
676
      disconnect( mFolder, SIGNAL( statusMsg( const QString& ) ),
678
      disconnect( mFolder, SIGNAL( statusMsg( const QString& ) ),
677
                  BroadcastStatus::instance(), SLOT( setStatusMsg( const QString& ) ) );
679
                  BroadcastStatus::instance(), SLOT( setStatusMsg( const QString& ) ) );
678
      disconnect(mFolder, SIGNAL(viewConfigChanged()), this, SLOT(reset()));
680
      disconnect(mFolder, SIGNAL(viewConfigChanged()), this, SLOT(reset()));
Lines 706-711 Link Here
706
              this, SLOT(folderCleared()));
708
              this, SLOT(folderCleared()));
707
      connect(mFolder, SIGNAL(expunged( KMFolder* )),
709
      connect(mFolder, SIGNAL(expunged( KMFolder* )),
708
                 this, SLOT(folderCleared()));
710
                 this, SLOT(folderCleared()));
711
      connect(mFolder, SIGNAL(closed()),
712
                 this, SLOT(folderClosed()));
709
      connect(mFolder, SIGNAL(statusMsg(const QString&)),
713
      connect(mFolder, SIGNAL(statusMsg(const QString&)),
710
              BroadcastStatus::instance(), SLOT( setStatusMsg( const QString& ) ) );
714
              BroadcastStatus::instance(), SLOT( setStatusMsg( const QString& ) ) );
711
      connect(mFolder, SIGNAL(numUnreadMsgsChanged(KMFolder*)),
715
      connect(mFolder, SIGNAL(numUnreadMsgsChanged(KMFolder*)),
Lines 2562-2567 Link Here
2562
    emit selected(0);
2566
    emit selected(0);
2563
}
2567
}
2564
2568
2569
2570
void KMHeaders::folderClosed()
2571
{
2572
    mFolder->open( "kmheaders" );
2573
    folderCleared();
2574
}
2575
2565
bool KMHeaders::writeSortOrder()
2576
bool KMHeaders::writeSortOrder()
2566
{
2577
{
2567
  QString sortFile = KMAIL_SORT_FILE(mFolder);
2578
  QString sortFile = KMAIL_SORT_FILE(mFolder);
(-)branches/KDE/3.5/kdepim/kmail/folderstorage.cpp (-14 / +5 lines)
Lines 84-89 Link Here
84
84
85
  mHasChildren = HasNoChildren;
85
  mHasChildren = HasNoChildren;
86
  mContentsType = KMail::ContentsTypeMail;
86
  mContentsType = KMail::ContentsTypeMail;
87
 
88
  connect(this, SIGNAL(closed(KMFolder*)), mFolder, SIGNAL(closed()));  
87
}
89
}
88
90
89
//-----------------------------------------------------------------------------
91
//-----------------------------------------------------------------------------
Lines 627-633 Link Here
627
  QString oldLoc, oldIndexLoc, oldIdsLoc, newLoc, newIndexLoc, newIdsLoc;
629
  QString oldLoc, oldIndexLoc, oldIdsLoc, newLoc, newIndexLoc, newIdsLoc;
628
  QString oldSubDirLoc, newSubDirLoc;
630
  QString oldSubDirLoc, newSubDirLoc;
629
  QString oldName;
631
  QString oldName;
630
  int rc=0, openCount=mOpenCount;
632
  int rc=0;
631
  KMFolderDir *oldParent;
633
  KMFolderDir *oldParent;
632
634
633
  assert(!newName.isEmpty());
635
  assert(!newName.isEmpty());
Lines 697-707 Link Here
697
    }
699
    }
698
  }
700
  }
699
701
700
  if (openCount > 0)
701
  {
702
    open("rename");
703
    mOpenCount = openCount;
704
  }
705
  writeConfig();
702
  writeConfig();
706
703
707
  // delete the old entry as we get two entries with the same ID otherwise
704
  // delete the old entry as we get two entries with the same ID otherwise
Lines 711-716 Link Here
711
  emit locationChanged( oldLoc, newLoc );
708
  emit locationChanged( oldLoc, newLoc );
712
  emit nameChanged();
709
  emit nameChanged();
713
  kmkernel->folderMgr()->contentsChanged();
710
  kmkernel->folderMgr()->contentsChanged();
711
  emit closed(folder()); // let the ticket owners regain
714
  return rc;
712
  return rc;
715
}
713
}
716
714
Lines 738-743 Link Here
738
  KConfig* config = KMKernel::config();
736
  KConfig* config = KMKernel::config();
739
  config->deleteGroup( "Folder-" + folder()->idString() );
737
  config->deleteGroup( "Folder-" + folder()->idString() );
740
738
739
  emit closed(folder());
741
  emit removed(folder(), (rc ? false : true));
740
  emit removed(folder(), (rc ? false : true));
742
}
741
}
743
742
Lines 745-752 Link Here
745
//-----------------------------------------------------------------------------
744
//-----------------------------------------------------------------------------
746
int FolderStorage::expunge()
745
int FolderStorage::expunge()
747
{
746
{
748
  int openCount = mOpenCount;
749
750
  assert(!folder()->name().isEmpty());
747
  assert(!folder()->name().isEmpty());
751
748
752
  clearIndex( true, mExportsSernums );   // delete and remove from dict, if needed
749
  clearIndex( true, mExportsSernums );   // delete and remove from dict, if needed
Lines 764-775 Link Here
764
  mDirty = false;
761
  mDirty = false;
765
  needsCompact = false; //we're cleared and truncated no need to compact
762
  needsCompact = false; //we're cleared and truncated no need to compact
766
763
767
  if (openCount > 0)
768
  {
769
    open("expunge");
770
    mOpenCount = openCount;
771
  }
772
773
  mUnreadMsgs = 0;
764
  mUnreadMsgs = 0;
774
  mTotalMsgs = 0;
765
  mTotalMsgs = 0;
775
  emit numUnreadMsgsChanged( folder() );
766
  emit numUnreadMsgsChanged( folder() );
(-)branches/KDE/3.5/kdepim/kmail/kmfolder.h (+4 lines)
Lines 540-545 Link Here
540
    folder changed. */
540
    folder changed. */
541
  void changed();
541
  void changed();
542
542
543
  /** Emitted when the folder is closed for real - ticket holders should
544
   * discard any messages */
545
  void closed();
546
543
  /** Emitted when the contents of a folder have been cleared
547
  /** Emitted when the contents of a folder have been cleared
544
     (new search in a search folder, for example) */
548
     (new search in a search folder, for example) */
545
  void cleared();
549
  void cleared();
(-)branches/KDE/3.5/kdepim/kmail/kmfoldermbox.cpp (-7 / +1 lines)
Lines 264-270 Link Here
264
  if (mOpenCount <= 0 || !mStream) { mOpenCount = 0; return; }
264
  if (mOpenCount <= 0 || !mStream) { mOpenCount = 0; return; }
265
  if (mOpenCount > 0) mOpenCount--;
265
  if (mOpenCount > 0) mOpenCount--;
266
  if (mOpenCount > 0 && !aForced) { assert(mStream); return; }
266
  if (mOpenCount > 0 && !aForced) { assert(mStream); return; }
267
  
267
268
#if 0 // removed hack that prevented closing system folders (see kmail-devel discussion about mail expiring)
268
#if 0 // removed hack that prevented closing system folders (see kmail-devel discussion about mail expiring)
269
  if ( (folder() != kmkernel->inboxFolder())
269
  if ( (folder() != kmkernel->inboxFolder())
270
        && folder()->isSystemFolder() && !aForced )
270
        && folder()->isSystemFolder() && !aForced )
Lines 1269-1285 Link Here
1269
{
1269
{
1270
  // This is called only when the user explicitely requests compaction,
1270
  // This is called only when the user explicitely requests compaction,
1271
  // so we don't check needsCompact.
1271
  // so we don't check needsCompact.
1272
  int openCount = mOpenCount;
1273
1272
1274
  KMail::MboxCompactionJob* job = new KMail::MboxCompactionJob( folder(), true /*immediate*/ );
1273
  KMail::MboxCompactionJob* job = new KMail::MboxCompactionJob( folder(), true /*immediate*/ );
1275
  int rc = job->executeNow( silent );
1274
  int rc = job->executeNow( silent );
1276
  // Note that job autodeletes itself.
1275
  // Note that job autodeletes itself.
1277
1276
1278
  if (openCount > 0)
1279
  {
1280
    open("mboxcompact");
1281
    mOpenCount = openCount;
1282
  }
1283
  // If this is the current folder, the changed signal will ultimately call
1277
  // If this is the current folder, the changed signal will ultimately call
1284
  // KMHeaders::setFolderInfoStatus which will override the message, so save/restore it
1278
  // KMHeaders::setFolderInfoStatus which will override the message, so save/restore it
1285
  QString statusMsg = BroadcastStatus::instance()->statusMsg();
1279
  QString statusMsg = BroadcastStatus::instance()->statusMsg();
(-)branches/KDE/3.5/kdepim/kmail/kmfolder.cpp (+1 lines)
Lines 481-486 Link Here
481
481
482
void KMFolder::close( const char *owner, bool force )
482
void KMFolder::close( const char *owner, bool force )
483
{
483
{
484
  // do not emit closed() in here - as this would regain too early
484
  mStorage->close( owner, force );
485
  mStorage->close( owner, force );
485
}
486
}
486
487

Return to bug 180244