kmail
folderviewtooltip.h00001 #ifndef __FOLDERVIEWTOOLTIP_H__
00002 #define __FOLDERVIEWTOOLTIP_H__
00003
00004 #include <kmfoldercachedimap.h>
00005
00006 #include <qtooltip.h>
00007
00008 namespace KMail {
00009
00010 class FolderViewToolTip : public QToolTip
00011 {
00012 public:
00013 FolderViewToolTip( QListView* parent ) :
00014 QToolTip( parent->viewport() ),
00015 mListView( parent ) {}
00016
00017 protected:
00018 void maybeTip( const QPoint &point )
00019 {
00020 KMFolderTreeItem *item = dynamic_cast<KMFolderTreeItem*>( mListView->itemAt( point ) );
00021 if ( !item )
00022 return;
00023 const QRect itemRect = mListView->itemRect( item );
00024 if ( !itemRect.isValid() )
00025 return;
00026 const QRect headerRect = mListView->header()->sectionRect( 0 );
00027 if ( !headerRect.isValid() )
00028 return;
00029
00030 if ( !item->folder() || item->folder()->noContent() )
00031 return;
00032
00033 item->updateCount();
00034 QString tipText = i18n("<qt><b>%1</b><br>Total: %2<br>Unread: %3<br>Size: %4" )
00035 .arg( item->folder()->prettyURL().replace( " ", " " ) )
00036 .arg( item->totalCount() < 0 ? "-" : QString::number( item->totalCount() ) )
00037 .arg( item->unreadCount() < 0 ? "-" : QString::number( item->unreadCount() ) )
00038 .arg( KIO::convertSize( item->folderSize() ) );
00039
00040 if ( KMFolderCachedImap* imap = dynamic_cast<KMFolderCachedImap*>( item->folder()->storage() ) ) {
00041 QuotaInfo info = imap->quotaInfo();
00042 if ( info.isValid() && !info.isEmpty() )
00043 tipText += i18n("<br>Quota: %1").arg( info.toString() );
00044 }
00045
00046 tip( QRect( headerRect.left(), itemRect.top(), headerRect.width(), itemRect.height() ), tipText );
00047 }
00048
00049 private:
00050 QListView *mListView;
00051 };
00052
00053 }
00054
00055 #endif
|