diff options
| author | 2008-08-25 17:04:32 +0000 | |
|---|---|---|
| committer | 2008-08-25 17:04:32 +0000 | |
| commit | 181a585d24521feecbd47ed997e57202c43cd8c9 (patch) | |
| tree | a1cf623b6a14cae8f56ac89699181f8ffbd4732a /src | |
| parent | added 3.4.1 splash to the site (diff) | |
| download | KVIrc-181a585d24521feecbd47ed997e57202c43cd8c9.tar.gz KVIrc-181a585d24521feecbd47ed997e57202c43cd8c9.tar.bz2 KVIrc-181a585d24521feecbd47ed997e57202c43cd8c9.zip | |
added itemdelegate for topicwidget
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@2293 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
| -rw-r--r-- | src/kvirc/ui/kvi_topicw.cpp | 22 | ||||
| -rw-r--r-- | src/kvirc/ui/kvi_topicw.h | 16 |
2 files changed, 33 insertions, 5 deletions
diff --git a/src/kvirc/ui/kvi_topicw.cpp b/src/kvirc/ui/kvi_topicw.cpp index 94a8c2b05..fa1fa725f 100644 --- a/src/kvirc/ui/kvi_topicw.cpp +++ b/src/kvirc/ui/kvi_topicw.cpp @@ -72,9 +72,21 @@ int KviListBoxTopicItem::width ( const KviTalListWidget * lb ) const return fm.width(KviMircCntrl::stripControlBytes(text())); } -void KviListBoxTopicItem::paint ( QPainter * p ) +QSize KviListBoxTopicItemDelegate::sizeHint(const QStyleOptionViewItem &option,const QModelIndex &index) const { - KviTopicWidget::paintColoredText(p,text(),listWidget()->palette(),height(listWidget())); + KviTalListWidget* listWidget = (KviTalListWidget*)parent(); + QFontMetrics fm(listWidget->font()); + KviListBoxTopicItem* item = (KviListBoxTopicItem*) listWidget->item(index.row()); + + return QSize(listWidget->width(), fm.height()); +} + +void KviListBoxTopicItemDelegate::paint(QPainter * p, const QStyleOptionViewItem & option, const QModelIndex & index) const +{ + KviTalListWidget* listWidget = (KviTalListWidget*)parent(); + KviListBoxTopicItem* item = (KviListBoxTopicItem*) listWidget->item(index.row()); + + if(item) KviTopicWidget::paintColoredText(p,item->text(),option.palette,listWidget->visualItemRect(item).top()); } @@ -99,7 +111,11 @@ KviTopicWidget::KviTopicWidget(QWidget * par,const char * name) // m_pCompletionBox->setHScrollBarMode( KviTalListWidget::AlwaysOff ); m_pCompletionBox->setFrameStyle( QFrame::Box | QFrame::Plain ); m_pCompletionBox->setLineWidth( 1 ); - connect(m_pCompletionBox,SIGNAL(selected(int)),this,SLOT(complete(int))); + + m_pItemDelegate = new KviListBoxTopicItemDelegate(m_pCompletionBox); + m_pCompletionBox->setItemDelegate(m_pItemDelegate); + + connect(m_pCompletionBox,SIGNAL(itemSelectionChanged(int)),this,SLOT(complete(int))); m_pCompletionBox->hide(); } diff --git a/src/kvirc/ui/kvi_topicw.h b/src/kvirc/ui/kvi_topicw.h index fdb871dfc..515d2bfb6 100644 --- a/src/kvirc/ui/kvi_topicw.h +++ b/src/kvirc/ui/kvi_topicw.h @@ -30,6 +30,7 @@ #include "kvi_app.h" #include "kvi_input.h" #include "kvi_tal_listwidget.h" +#include "kvi_tal_itemdelegates.h" #include <QFrame> #include <QPushButton> @@ -45,7 +46,7 @@ public: KviListBoxTopicItem( KviTalListWidget * listbox = 0 , const QString & text = QString::null):KviTalListWidgetText(listbox,text) { ; }; virtual int width ( const KviTalListWidget * lb ) const; protected: - virtual void paint ( QPainter * p ); + //virtual void paint ( QPainter * p ); }; @@ -54,7 +55,7 @@ class KVIRC_API KviTopicWidget : public QFrame Q_OBJECT Q_PROPERTY(int TransparencyCapable READ dummyRead) friend class KviChannel; - + friend class KviTalListWidget; public: KviTopicWidget(QWidget * par,const char * name); ~KviTopicWidget(); @@ -67,6 +68,7 @@ private: QPushButton * m_pDiscard; QPushButton * m_pHistory; KviTalPopupMenu * m_pContextPopup; + QAbstractItemDelegate* m_pItemDelegate; QChar getSubstituteChar(unsigned short control_code); int xCursorPostionCalculation(int xInd); KviInputEditor* m_pInput; @@ -115,4 +117,14 @@ signals: void topicSelected(const QString &szTopic); }; +class KVIRC_API KviListBoxTopicItemDelegate : public KviTalIconAndRichTextItemDelegate +{ + Q_OBJECT +public: + KviListBoxTopicItemDelegate(QAbstractItemView * pWidget=0) + : KviTalIconAndRichTextItemDelegate(pWidget) {}; + ~KviListBoxTopicItemDelegate(){}; + QSize sizeHint(const QStyleOptionViewItem &option,const QModelIndex &index) const; + void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const; +}; #endif //_KVI_TOPICW_H_ |
