[Apollon-cvs] apollon/apollon apollonlistview.cpp,1.4,1.5 apollonlistview.h,1.5,1.6 apollontransferv
Brought to you by:
bastiaannaber,
mkoebele
From: David S. <dav...@us...> - 2004-05-28 15:51:04
|
Update of /cvsroot/apollon/apollon/apollon In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18248/apollon Modified Files: apollonlistview.cpp apollonlistview.h apollontransferviewitem.cpp apollontransferviewitem.h Log Message: Use real progress bars in the transfers tab. Index: apollonlistview.cpp =================================================================== RCS file: /cvsroot/apollon/apollon/apollon/apollonlistview.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** apollonlistview.cpp 17 Apr 2004 09:41:07 -0000 1.4 --- apollonlistview.cpp 28 May 2004 15:50:53 -0000 1.5 *************** *** 16,24 **** ***************************************************************************/ ! #include "apollonlistview.h" ApollonListView::ApollonListView(QWidget* parent) : KListView(parent) { } --- 16,35 ---- ***************************************************************************/ ! #include "apollonlistview.h" ! #include "apollontransferviewitem.h" ! ! #include <qheader.h> ApollonListView::ApollonListView(QWidget* parent) : KListView(parent) { + connect ( header(),SIGNAL( sizeChange ( int, int, int ) ), + this, SLOT( slotAdjustGeometry() ) ); + connect ( header(),SIGNAL( indexChange ( int, int, int ) ), + this, SLOT( slotAdjustGeometry() ) ); + connect ( this, SIGNAL( expanded( QListViewItem * ) ), + this, SLOT( slotAdjustGeometry() ) ); + connect ( this, SIGNAL( collapsed( QListViewItem * ) ), + this, SLOT( slotAdjustGeometry() ) ); } *************** *** 38,39 **** --- 49,69 ---- return QSize(1, 1); } + + void ApollonListView::resizeEvent( QResizeEvent* e ) + { + QListView::resizeEvent( e ); + slotAdjustGeometry(); + } + + void ApollonListView::slotAdjustGeometry() + { + for (QListViewItemIterator it( this ); it.current(); it++) + { + if (it.current()->rtti() != 1463) + continue; + ApollonTransferViewItem *i = static_cast<ApollonTransferViewItem*>( it.current() ); + i->adjustGeometry(); + } + } + + Index: apollonlistview.h =================================================================== RCS file: /cvsroot/apollon/apollon/apollon/apollonlistview.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** apollonlistview.h 17 Apr 2004 09:41:07 -0000 1.5 --- apollonlistview.h 28 May 2004 15:50:53 -0000 1.6 *************** *** 26,29 **** --- 26,30 ---- class ApollonListView : public KListView { + Q_OBJECT public: ApollonListView(QWidget* parent); *************** *** 33,36 **** --- 34,42 ---- QSize minimumSize() const; + void resizeEvent( QResizeEvent* e ); + + public slots: + void slotAdjustGeometry(); + }; Index: apollontransferviewitem.cpp =================================================================== RCS file: /cvsroot/apollon/apollon/apollon/apollontransferviewitem.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** apollontransferviewitem.cpp 31 Dec 2003 18:51:11 -0000 1.12 --- apollontransferviewitem.cpp 28 May 2004 15:50:53 -0000 1.13 *************** *** 26,31 **** --- 26,33 ---- #include <qpen.h> #include <kpixmapeffect.h> + #include <qheader.h> #include "apollontransferviewitem.h" + #include "apollonlistview.h" ApollonTransferViewItem::ApollonTransferViewItem(QListView *parent, const QString &updown, int ID, const QString &protocolName) : *************** *** 49,52 **** --- 51,55 ---- m_pausePix = loader->loadIcon("player_pause", KIcon::Small); m_protocolName = protocolName; + m_progressBar = new QProgressBar(100, listView()->viewport()); } *************** *** 67,74 **** --- 70,79 ---- KIconLoader *loader = KGlobal::iconLoader(); m_pausePix = loader->loadIcon("player_pause", KIcon::Small); + m_progressBar = new QProgressBar(100, listView()->viewport()); } ApollonTransferViewItem::~ApollonTransferViewItem() { + delete m_progressBar; } *************** *** 249,252 **** --- 254,266 ---- } + void ApollonTransferViewItem::adjustGeometry() + { + QRect r = listView()->itemRect(this); + QHeader *h = listView()->header(); + r.setLeft(h->sectionPos(columnStatus) - h->offset()); + r.setWidth(h->sectionSize(columnStatus)); + m_progressBar->setGeometry( r ); + } + void ApollonTransferViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int align) { *************** *** 254,297 **** if(column == columnStatus) { ! int fillwidth; ! p->setPen(cg.foreground()); ! p->drawRect(1, 1, width - 2, height() - 2); ! p->setPen(QColor(255, 255, 255)); ! p->drawRect(0, 0, width, height()); ! p->drawRect(2, 2, width - 4, height() - 4); ! if(m_lastWidth != width) ! { ! m_lastWidth = width; ! m_gradient.resize(width, height()); ! QColor color; ! if(m_progress != -1) ! color = cg.highlight(); ! else ! color = cg.background(); ! KPixmapEffect::gradient((KPixmap &) m_gradient, color, color.light(), KPixmapEffect::EllipticGradient); ! } ! if(parent() == 0) ! { ! if(m_progress == -1) ! fillwidth = width - 6; ! else ! fillwidth = (int) (m_progress / 100.0 * (width - 6)); ! bitBlt(p->device(), (int) p->worldMatrix().dx() + 3, (int) p->worldMatrix().dy() + 3, &m_gradient, 0, 0, fillwidth, height() - 6, Qt::CopyROP, false); ! p->fillRect(3 + fillwidth, 3, width - fillwidth - 6, height() - 6, QColor(255, 255, 255)); ! p->setPen(cg.foreground()); ! if(m_progress != -1) ! p->drawText(0, 0, width, height(), Qt::AlignCenter, QString::number((int) m_progress) + "%"); ! else ! p->drawText(0, 0, width, height(), Qt::AlignCenter, m_status); ! } ! else ! { ! fillwidth = (int) (m_progress / 100.0 * (width - 6)); ! bitBlt(p->device(), (int) p->worldMatrix().dx() + 3, (int) p->worldMatrix().dy() + 3, &m_gradient, 0, 0, fillwidth, height() - 6, Qt::CopyROP, false); ! p->fillRect(3 + fillwidth, 3, width - fillwidth - 6, height() - 6, QColor(255, 255, 255)); ! p->setPen(cg.foreground()); ! p->drawText(0, 0, width, height(), Qt::AlignCenter, m_status); ! } ! listView()->repaint(); } // other cells --- 268,272 ---- if(column == columnStatus) { ! ((ApollonListView*)listView())->slotAdjustGeometry(); } // other cells Index: apollontransferviewitem.h =================================================================== RCS file: /cvsroot/apollon/apollon/apollon/apollontransferviewitem.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** apollontransferviewitem.h 9 Jan 2004 15:47:29 -0000 1.9 --- apollontransferviewitem.h 28 May 2004 15:50:53 -0000 1.10 *************** *** 23,26 **** --- 23,27 ---- #include <qlistview.h> #include <qpixmap.h> + #include <qprogressbar.h> #include "apollonutils.h" *************** *** 113,116 **** --- 114,120 ---- void paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int align); + void adjustGeometry(); + inline int rtti() const { return 1463; } // To identify a transfer item - just in case + private: int m_id; *************** *** 133,136 **** --- 137,141 ---- QString m_protocolName; int m_start; + QProgressBar* m_progressBar; }; *************** *** 222,225 **** --- 227,231 ---- { m_progress = progress; + m_progressBar->setProgress((int)progress); repaint(); } |