logo       

branches/KDE/4.3/kdepim/kmail/messagelistview/core: msg#12794

kde-commits

Subject: branches/KDE/4.3/kdepim/kmail/messagelistview/core

SVN commit 1005089 by tmcguire:

Backport r1003213 by stefanek from trunk to the 4.3 branch:

Fix a problem with the sort indicator not properly restored after a folder
change.


M +35 -4 widgetbase.cpp


--- branches/KDE/4.3/kdepim/kmail/messagelistview/core/widgetbase.cpp
#1005088:1005089
@@ -680,14 +680,14 @@
// try to find the specified message sorting in the theme columns
const QList< Theme::Column * > & columns = mTheme->columns();
int idx = 0;
+
+ // First try with a well defined message sorting.
+
foreach( const Theme::Column* column, columns )
{
if ( !mView->header()->isSectionHidden( idx ) )
{
- if ( ( column->messageSorting() == messageSorting ||
- ( column->messageSorting() ==
SortOrder::SortMessagesBySenderOrReceiver ) ) &&
- ( messageSorting == SortOrder::SortMessagesByReceiver ||
- messageSorting == SortOrder::SortMessagesBySender ) )
+ if ( column->messageSorting() == messageSorting )
{
// found a visible column with this message sorting
logicalHeaderColumnIndex = idx;
@@ -696,6 +696,36 @@
}
++idx;
}
+
+ // if still not found, try again with a wider range
+ if ( logicalHeaderColumnIndex == 1 )
+ {
+ idx = 0;
+ foreach( const Theme::Column* column, columns )
+ {
+ if ( !mView->header()->isSectionHidden( idx ) )
+ {
+ if (
+ (
+ ( column->messageSorting() ==
SortOrder::SortMessagesBySenderOrReceiver ) ||
+ ( column->messageSorting() ==
SortOrder::SortMessagesByReceiver ) ||
+ ( column->messageSorting() == SortOrder::SortMessagesBySender
)
+ ) &&
+ (
+ ( messageSorting == SortOrder::SortMessagesBySenderOrReceiver
) ||
+ ( messageSorting == SortOrder::SortMessagesByReceiver ) ||
+ ( messageSorting == SortOrder::SortMessagesBySender )
+ )
+ )
+ {
+ // found a visible column with this message sorting
+ logicalHeaderColumnIndex = idx;
+ break;
+ }
+ }
+ ++idx;
+ }
+ }
}

if ( logicalHeaderColumnIndex == -1 )
@@ -706,6 +736,7 @@
}

mView->header()->setSortIndicatorShown( true );
+
if ( sortDirection == SortOrder::Ascending )
mView->header()->setSortIndicator( logicalHeaderColumnIndex,
Qt::AscendingOrder );
else

<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | Mail Home | sitemap | FAQ | advertise