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

List:       kde-commits
Subject:    KDE_3_4_BRANCH: kdepim/korn
From:       Mart Kelder <mart.kde () hccnet ! nl>
Date:       2005-04-25 6:33:42
Message-ID: 20050425063342.510A7488 () office ! kde ! org
[Download RAW message or body]

CVS commit by mkelder: 

Backport

This makes it possible to delete messages again. The button was disabled all the 
time, and this should enable it if (and only if) deleting is possible.

This also fixes some small bugs around deleting emails.

BUGS:102861 


  M +32 -10    subjectsdlg.cpp   1.11.2.1
  M +1 -1      subjectsdlg.h   1.5.2.1


--- kdepim/korn/subjectsdlg.cpp  #1.11:1.11.2.1
@@ -6,4 +6,5 @@
 #include <qlayout.h>
 #include <qdatetime.h>
+#include <qtimer.h>
 #include "mailsubject.h"
 #include <klocale.h>
@@ -123,7 +123,20 @@ void KornSubjectsDlg::loadMessages()
 void KornSubjectsDlg::listSelectionChanged()
 {
+        QPtrList< QListViewItem > list( _list->selectedItems() );
+        
         if (!_mailDrop)
                 return;
-        int selected = _list->selectedItems().count();
+        int selected = list.count();
+        bool enableDelete = selected > 0;
+
+        if(enableDelete)
+        {
+                KornSubjectsDlg::SubjectListViewItem* current = \
(SubjectListViewItem*)list.first(); +                KMailDrop *drop = \
current->getMailSubject()->getMailDrop(); +                enableDelete = \
drop->canDeleteMails(); +
+                while( enableDelete &&  ( current = \
(SubjectListViewItem*)list.next() ) ) +                        enableDelete = \
current->getMailSubject()->getMailDrop()->canDeleteMails(); +        }
 
         // eneable the show button if one is selected
@@ -131,5 +144,6 @@ void KornSubjectsDlg::listSelectionChang
 
         // eneable the delete button if one or more items are selected
-        //TODO//deleteButton->setEnabled((selected > 0) && \
_mailDrop->canDeleteMails()); +        
+        deleteButton->setEnabled(enableDelete);
 }
 
@@ -295,4 +309,6 @@ void KornSubjectsDlg::deleteSubjectsStru
         disconnect( _subjects->progress, SIGNAL( cancelPressed() ), this, SLOT( \
slotSubjectsCanceled() ) );  
+        this->unsetCursor();
+        
         delete _subjects->progress;
         delete _subjects->subjects;
@@ -383,5 +398,5 @@ void KornSubjectsDlg::subjectsReady( boo
 void KornSubjectsDlg::deleteMessage()
 {
-        if ( !_delete )
+        if ( _delete )
                 return; //A delete action is already pending
         
@@ -440,5 +455,7 @@ void KornSubjectsDlg::fillDeleteMessageL
 {
         QListViewItem *current;
-        for( current = _list->selectedItems().first(); current; current = \
_list->selectedItems().next() ) +        QPtrList< QListViewItem > list( \
_list->selectedItems() ); +        
+        for( current = list.first(); current; current = list.next() )
                 _delete->messages->append( ( ( KornSubjectsDlg::SubjectListViewItem \
* ) current )->getMailSubject() );  }
@@ -450,5 +467,8 @@ void KornSubjectsDlg::fillDeleteIdList( 
         for( current = _delete->messages->first(); current; current = \
_delete->messages->next() )  if( current->getMailDrop() == drop )
+                {
                         _delete->ids->append( current->getId() );
+                        _delete->messages->remove( current );
+                }
 }
 
@@ -457,6 +477,7 @@ void KornSubjectsDlg::deleteNextMessage(
         if( _delete->messages->count() == 0 ) //No more messages to delete
         {
+                QTimer::singleShot( 100, this, SLOT( reloadSubjects() ) );
                 deleteDeleteStruct();
-                reloadSubjects(); //Reload all subjects again
+                //reloadSubjects(); //Reload all subjects again
                 return;
         }

--- kdepim/korn/subjectsdlg.h  #1.5:1.5.2.1
@@ -170,5 +170,5 @@ private slots:
         
         //Functions for the subjects
-public:
+public slots:
         void reloadSubjects();
 private:


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

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