[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE_3_2_BRANCH: kdepim/kmail
From: Carsten Burghardt <cb () magic-shop ! de>
Date: 2004-02-01 22:50:28
Message-ID: 20040201225028.CB218991A () office ! kde ! org
[Download RAW message or body]
CVS commit by burghard:
Correct the sizes shown in the mtv for imap messages. Parts sum up the size of their \
children and compare this to their own.
M +25 -5 kmmimeparttree.cpp 1.50.6.1
M +7 -0 kmmimeparttree.h 1.15.6.1
--- kdepim/kmail/kmmimeparttree.h #1.15:1.15.6.1
@@ -23,4 +23,6 @@ public:
virtual ~KMMimePartTree();
+ void correctSize( QListViewItem * item );
+
protected slots:
void itemClicked( QListViewItem* );
@@ -46,4 +48,5 @@ protected:
KMReaderWin* mReaderWin;
KMMimePartTreeItem* mCurrentContextMenuItem;
+ int mSizeColumn;
};
@@ -66,8 +69,12 @@ public:
partNode* node() const { return mPartNode; }
+ KIO::filesize_t origSize() const { return mOrigSize; }
+ void setOrigSize( KIO::filesize_t size ) { mOrigSize = size; }
+
private:
void setIconAndTextForType( const QString & mimetype );
partNode* mPartNode;
+ KIO::filesize_t mOrigSize;
};
--- kdepim/kmail/kmmimeparttree.cpp #1.50:1.50.6.1
@@ -24,5 +24,5 @@ KMMimePartTree::KMMimePartTree( KMReader
const char* name )
: KListView( parent, name ),
- mReaderWin( readerWin )
+ mReaderWin( readerWin ), mSizeColumn(0)
{
setStyleDependantFrameWidth();
@@ -30,5 +30,5 @@ KMMimePartTree::KMMimePartTree( KMReader
addColumn( i18n("Type") );
addColumn( i18n("Encoding") );
- addColumn( i18n("Size") );
+ mSizeColumn = addColumn( i18n("Size") );
setColumnAlignment( 3, Qt::AlignRight );
@@ -193,4 +193,21 @@ void KMMimePartTree::styleChange( QStyle
}
+//-----------------------------------------------------------------------------
+void KMMimePartTree::correctSize( QListViewItem * item )
+{
+ if (!item) return;
+
+ KIO::filesize_t totalSize = 0;
+ QListViewItem * myChild = item->firstChild();
+ while ( myChild )
+ {
+ totalSize += static_cast<KMMimePartTreeItem*>(myChild)->origSize();
+ myChild = myChild->nextSibling();
+ }
+ if ( totalSize > static_cast<KMMimePartTreeItem*>(item)->origSize() )
+ item->setText( mSizeColumn, KIO::convertSize(totalSize) );
+ if ( item->parent() )
+ correctSize( item->parent() );
+}
//=============================================================================
@@ -205,9 +222,11 @@ KMMimePartTreeItem::KMMimePartTreeItem(
encoding,
KIO::convertSize( size ) ),
- mPartNode( node )
+ mPartNode( node ), mOrigSize(size)
{
if( node )
node->setMimePartTreeItem( this );
setIconAndTextForType( mimetype );
+ if ( parent )
+ parent->correctSize(this);
}
@@ -223,5 +242,5 @@ KMMimePartTreeItem::KMMimePartTreeItem(
encoding,
KIO::convertSize( size ) ),
- mPartNode( node )
+ mPartNode( node ), mOrigSize(size)
{
if( revertOrder && nextSibling() ){
@@ -234,4 +253,6 @@ KMMimePartTreeItem::KMMimePartTreeItem(
node->setMimePartTreeItem( this );
setIconAndTextForType( mimetype );
+ if ( listView() )
+ static_cast<KMMimePartTree*>(listView())->correctSize(this);
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic