[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdebase/konqueror/listview
From: David Faure <faure () kde ! org>
Date: 2004-12-20 0:31:34
Message-ID: 20041220003134.988CB1B915 () office ! kde ! org
[Download RAW message or body]
CVS commit by faure:
Fixed sorting by deletion date
M +44 -23 konq_listviewitems.cc 1.71
--- kdebase/konqueror/listview/konq_listviewitems.cc #1.70:1.71
@@ -28,4 +28,25 @@
#include <kiconloader.h>
+static QString retrieveExtraEntry( KFileItem* fileitem, int numExtra )
+{
+ /// ######## SLOOOOW
+ KIO::UDSEntry::ConstIterator it = fileitem->entry().begin();
+ const KIO::UDSEntry::ConstIterator end = fileitem->entry().end();
+ int n = 0;
+ for( ; it != end; ++it )
+ {
+ if ((*it).m_uds == KIO::UDS_EXTRA)
+ {
+ ++n;
+ if ( n == numExtra )
+ {
+ return (*it).m_str;
+ }
+ }
+ }
+ return QString::null;
+}
+
+
/**************************************************************
*
@@ -114,17 +135,8 @@ void KonqListViewItem::updateContents()
case KIO::UDS_EXTRA:
{
- // extraData[numExtra]
- /// ######## SLOOOOW
- KIO::UDSEntry::ConstIterator it = m_fileitem->entry().begin();
- int n = 0;
- for( ; it != m_fileitem->entry().end(); it++ ) {
- if ((*it).m_uds == KIO::UDS_EXTRA)
- {
- ++n;
- if ( n == numExtra )
- {
+ const QString entryStr = retrieveExtraEntry( m_fileitem, numExtra );
if ( tmpColumn->type == QVariant::DateTime )
{
- QDateTime dt = QDateTime::fromString( (*it).m_str, Qt::ISODate );
+ QDateTime dt = QDateTime::fromString( entryStr, Qt::ISODate );
setText(tmpColumn->displayInColumn,
KGlobal::locale()->formatDate(dt.date(),TRUE)+" "+
@@ -132,11 +144,7 @@ void KonqListViewItem::updateContents()
}
else // if ( tmpColumn->type == QVariant::String )
- setText(tmpColumn->displayInColumn, (*it).m_str);
- break;
- }
- }
- }
-
+ setText(tmpColumn->displayInColumn, entryStr);
++numExtra;
+ break;
}
default:
@@ -234,7 +242,10 @@ int KonqBaseListViewItem::compare( QList
return !ascending ? k->sortChar - sortChar : sortChar - k->sortChar;
+ int numExtra = 0;
for ( unsigned int i=0; i<m_pListViewWidget->NumberOfAtoms; i++ )
{
ColumnInfo *cInfo = &m_pListViewWidget->columnConfigInfo()[i];
+ if ( cInfo->udsId == KIO::UDS_EXTRA )
+ ++numExtra;
if ( col == cInfo->displayInColumn )
{
@@ -255,4 +266,14 @@ int KonqBaseListViewItem::compare( QList
return ( s1 > s2 ) ? 1 : ( s1 < s2 ) ? -1 : 0;
}
+ case KIO::UDS_EXTRA:
+ {
+ if ( cInfo->type & QVariant::DateTime ) {
+ const QString entryStr1 = retrieveExtraEntry( m_fileitem, numExtra );
+ QDateTime dt1 = QDateTime::fromString( entryStr1, Qt::ISODate );
+ const QString entryStr2 = retrieveExtraEntry( k->m_fileitem, numExtra );
+ QDateTime dt2 = QDateTime::fromString( entryStr2, Qt::ISODate );
+ return ( dt1 > dt2 ) ? 1 : ( dt1 < dt2 ) ? -1 : 0;
+ }
+ }
default:
break;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic