[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/kdeprint/management
From: Albert Astals Cid <tsdgeos () terra ! es>
Date: 2007-09-02 22:04:07
Message-ID: 1188770647.108485.29725.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 707778 by aacid:
make it work
it does not mantain the same item painting than in kde3 but at least now you can see \
things, previous code was broken
M +16 -67 cjanuswidget.cpp
--- trunk/KDE/kdelibs/kdeprint/management/cjanuswidget.cpp #707777:707778
@@ -33,68 +33,16 @@
class CJanusWidget::CPage
{
public:
- QWidget *m_widget;
- QString m_text;
- QString m_header;
- QPixmap m_pixmap;
- CListBoxItem *m_item;
+ QWidget *m_widget;
+ QString m_text;
+ QString m_header;
+ QPixmap m_pixmap;
+ QListWidgetItem *m_item;
};
//***********************************************************************************
-class CJanusWidget::CListBoxItem : public QListWidgetItem
-{
-public:
- CListBoxItem(QListWidget *lb, QListWidgetItem *after, const QPixmap& pix, const \
QString& text);
- int height(const QListWidget*) const;
- int width(const QListWidget*) const;
-private:
- QPixmap m_pix;
-};
-
-class CJanusWidget::CListBoxItemDelegate : public QItemDelegate
-{
-public:
- CListBoxItemDelegate(QObject* parent) : QItemDelegate(parent){}
-
- virtual void paint(QPainter* painter,const QStyleOptionViewItem& option,const \
QModelIndex& index) const;
-};
-
-CJanusWidget::CListBoxItem::CListBoxItem(QListWidget *lb, QListWidgetItem *after, \
const QPixmap& pix, const QString& text)
-: QListWidgetItem(), m_pix(pix)
-{
- lb->insertItem( lb->row(after) , this );
- setText(text);
-}
-
-int CJanusWidget::CListBoxItem::height(const QListWidget *lb) const
-{
- return (m_pix.height() + lb->fontMetrics().lineSpacing() + 12);
-}
-
-int CJanusWidget::CListBoxItem::width(const QListWidget *lb) const
-{
- int w = qMax(lb->fontMetrics().width(text()),m_pix.width());
- return (w + 10);
-}
-
-void CJanusWidget::CListBoxItemDelegate::paint(QPainter* painter, const \
QStyleOptionViewItem& option,
- const QModelIndex& index) const
-{
-
- const QString text = index.data(Qt::DisplayRole).value<QString>();
-
- const QPixmap pixmap = index.data(Qt::DecorationRole).value<QPixmap>();
-
- int w1 = (option.rect.width()-pixmap.width())/2;
- painter->drawPixmap(w1,5,pixmap);
- painter->drawText(0,7+pixmap.height(),option.rect.width(),painter->fontMetrics().lineSpacing(),Qt::AlignHCenter,text);
-
-}
-
-
-
//***********************************************************************************
class CJanusWidget::CListBox : public KListWidget
@@ -113,8 +61,6 @@
: KListWidget(parent)
{
verticalScrollBar()->installEventFilter(this);
-
- setItemDelegate( new CJanusWidget::CListBoxItemDelegate(this) );
}
CJanusWidget::CListBox::~CListBox()
@@ -162,20 +108,20 @@
f = m_iconlist->font();
f.setBold(true);
m_iconlist->setFont(f);
- connect(m_iconlist,SIGNAL(selectionChanged(QListWidgetItem*)),SLOT(slotSelected(QListWidgetItem*)));
+ connect(m_iconlist,SIGNAL(currentItemChanged(QListWidgetItem*, \
QListWidgetItem*)),SLOT(slotSelected(QListWidgetItem*)));
m_empty = new QWidget( this );
- m_empty->setObjectName( "Empty" );
+ m_empty->setObjectName( "Empty" );
m_stack->insertWidget(0,m_empty);
QHBoxLayout *main_ = new QHBoxLayout(this);
- main_->setMargin(0);
- main_->setSpacing(10);
+ main_->setMargin(0);
+ main_->setSpacing(10);
QVBoxLayout *sub_ = new QVBoxLayout();
main_->addWidget(m_iconlist,0);
main_->addLayout(sub_,1);
- sub_->setMargin(0);
- sub_->setSpacing(5);
+ sub_->setMargin(0);
+ sub_->setSpacing(5);
sub_->addWidget(m_header,0);
sub_->addWidget(sep,0);
sub_->addWidget(m_stack,1);
@@ -195,12 +141,15 @@
page->m_text = text;
page->m_header = header;
page->m_pixmap = pix;
- page->m_item = new CListBoxItem(m_iconlist,findPrevItem(page),pix,text);
+ page->m_item = new QListWidgetItem(pix, text, m_iconlist);
m_iconlist->computeWidth();
m_stack->insertWidget(m_pages.count(),w);
if (m_iconlist->count() == 1)
+ {
page->m_item->setSelected(true);
+ slotSelected(page->m_item);
+ }
}
void CJanusWidget::enablePage(QWidget *w)
@@ -208,7 +157,7 @@
CPage *page = findPage(w);
if (page && !page->m_item)
{
- page->m_item = new \
CListBoxItem(m_iconlist,findPrevItem(page),page->m_pixmap,page->m_text); \
+ page->m_item = new QListWidgetItem(page->m_pixmap, page->m_text, m_iconlist); \
m_iconlist->computeWidth(); if (m_iconlist->count() == 1)
page->m_item->setSelected(true);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic