Reload the folder when the view configuration changes.

BUG: 183237



svn path=/trunk/KDE/kdepim/; revision=937865
wilder-work
Szymon Stefanek 17 years ago
parent 0ca3118b71
commit 835d1fba3f
  1. 1
      kmmainwidget.cpp
  2. 5
      messagelistview/core/model.cpp
  3. 7
      messagelistview/core/model.h
  4. 16
      messagelistview/storagemodel.cpp
  5. 5
      messagelistview/storagemodel.h

@ -1280,6 +1280,7 @@ void KMMainWidget::slotModifyFolder( KMMainWidget::PropsPage whichPage )
if ( whichPage != KMMainWidget::PropsGeneral )
props.setPage( whichPage );
props.exec();
updateFolderMenu();
}

@ -473,7 +473,7 @@ QVariant Model::headerData(int section, Qt::Orientation, int role) const
if ( mStorageModel && column->isSenderOrReceiver() )
{
if ( mStorageModel->containsOutboundMessages() )
if ( mStorageModelContainsOutboundMessages )
return QVariant( i18n( "Receiver" ) );
return QVariant( i18n( "Sender" ) );
}
@ -649,6 +649,7 @@ void Model::setStorageModel( StorageModel *storageModel, PreSelectionMode preSel
mPreSelectionMode = preSelectionMode;
mUniqueIdOfLastSelectedMessageInFolder = Manager::instance()->preSelectedMessageForStorageModel( mStorageModel );
mStorageModelContainsOutboundMessages = mStorageModel->containsOutboundMessages();
connect( mStorageModel, SIGNAL( rowsInserted( const QModelIndex &, int, int ) ),
this, SLOT( slotStorageModelRowsInserted( const QModelIndex &, int, int ) ) );
@ -2695,7 +2696,7 @@ Model::ViewItemJobResult Model::viewItemJobStepInternalForJobPass1Fill( ViewItem
int elapsed;
// Should we use the receiver or the sender field for sorting ?
bool bUseReceiver = ( mStorageModel->containsOutboundMessages() );
bool bUseReceiver = mStorageModelContainsOutboundMessages;
// The begin storage index of our work
int curIndex = job->currentIndex();

@ -346,6 +346,13 @@ private:
*/
Model * mModelForItemFunctions;
/**
* The cached result of StorageModel::containsOutboundMessages().
* We access this property at each incoming message and StorageModel::containsOutboundMessages() is
* virtual (so it's always an indirect function call). Caching makes sense.
*/
bool mStorageModelContainsOutboundMessages;
public:
/**

@ -87,6 +87,9 @@ StorageModel::StorageModel( KMFolder * folder, QObject * parent )
connect( mFolder, SIGNAL( msgHeaderChanged( KMFolder * , int ) ),
SLOT( slotMessageHeaderChanged( KMFolder *, int ) ) );
connect( mFolder, SIGNAL( viewConfigChanged() ),
SLOT( slotViewConfigChanged() ) );
#if 0
// FIXME: Do we need to handle these remaining signals ?
@ -109,8 +112,6 @@ StorageModel::StorageModel( KMFolder * folder, QObject * parent )
/** Emitted when a folder was removed */
void removed(KMFolder*, bool);
/** Emitted when the variables for the config of the view have changed */
void viewConfigChanged();
#endif
mMessageCount = mFolder->count();
@ -179,6 +180,12 @@ StorageModel::~StorageModel()
this, SLOT( slotMessageHeaderChanged( KMFolder *, int ) )
);
disconnect(
mFolder, SIGNAL( viewConfigChanged() ),
this, SLOT( slotViewConfigChanged() )
);
//mFolder->markNewAsUnread(); <-- do we REALLY need to do this ?.. couldn't we use a timed-expire instead ?
if ( mFolder->dirty() )
mFolder->writeIndex(); // this is straight from KMHeaders...
@ -596,6 +603,11 @@ void StorageModel::slotFolderCleared()
reset();
}
void StorageModel::slotViewConfigChanged()
{
reset();
}
void StorageModel::slotFolderExpunged()
{
slotFolderClosed();

@ -224,6 +224,11 @@ private slots:
*/
void slotFolderNameChanged();
/**
* Internal handler of KMFolder signal.
*/
void slotViewConfigChanged();
/**
* Internal handler of KMFolder signal.
*/

Loading…
Cancel
Save