void FancyItem::setup() { Q3ListView *lv = listView(); int ph = 0; for(int i = 0; i < lv->columns(); ++i) { if(pixmap(i)) ph = QMAX(ph, pixmap(i)->height()); } int y = QMAX(ph, lv->fontMetrics().height()); y += 8; setHeight(y); }
QRAttribute* QRListViewItem::getQRattrib(int column) { if (column == 0) return NULL; Q3ListView *lv = listView(); QRTreeBox *tree = (QRTreeBox *) lv->parent(); string attrib_name; if (tree->getWidgetListView() == lv) attrib_name = tree->m_capturedIndices[column]; else attrib_name = tree->m_capturedCacheIndices[column]; QRAttribute *qrattrib = tree->getAttribute(attrib_name); return qrattrib; }
bool Q3ListViewExtraInfo::saveWidgetExtraInfo(DomWidget *ui_widget) { // ### finish me Q3ListView *listView = qobject_cast<Q3ListView*>(widget()); Q_ASSERT(listView != 0); QList<DomColumn*> columns; Q3Header *header = listView->header(); for (int i=0; i<header->count(); ++i) { DomColumn *c = new DomColumn(); QList<DomProperty*> properties; DomString *str = new DomString(); str->setText(header->label(i)); DomProperty *ptext = new DomProperty(); ptext->setAttributeName(QLatin1String("text")); ptext->setElementString(str); DomProperty *pclickable = new DomProperty(); pclickable->setAttributeName(QLatin1String("clickable")); pclickable->setElementBool(header->isClickEnabled(i) ? QLatin1String("true") : QLatin1String("false")); DomProperty *presizable = new DomProperty(); presizable->setAttributeName(QLatin1String("resizable")); presizable->setElementBool(header->isResizeEnabled(i) ? QLatin1String("true") : QLatin1String("false")); properties.append(ptext); properties.append(pclickable); properties.append(presizable); c->setElementProperty(properties); columns.append(c); } ui_widget->setElementColumn(columns); QList<DomItem *> items; Q3ListViewItem *child = listView->firstChild(); while (child) { items.append(saveQ3ListViewItem(child)); child = child->nextSibling(); } ui_widget->setElementItem(items); return true; }
bool Q3ListViewExtraInfo::loadWidgetExtraInfo(DomWidget *ui_widget) { Q3ListView *listView = qobject_cast<Q3ListView*>(widget()); Q_ASSERT(listView != 0); Q3Header *header = listView->header(); QList<DomColumn*> columns = ui_widget->elementColumn(); for (int i=0; i<columns.size(); ++i) { DomColumn *column = columns.at(i); QHash<QString, DomProperty*> properties = propertyMap(column->elementProperty()); DomProperty *text = properties.value(QLatin1String("text")); DomProperty *pixmap = properties.value(QLatin1String("pixmap")); DomProperty *clickable = properties.value(QLatin1String("clickable")); DomProperty *resizable = properties.value(QLatin1String("resizable")); QString txt = text->elementString()->text(); if (pixmap != 0) { DomResourcePixmap *pix = pixmap->elementPixmap(); QIcon icon(core()->iconCache()->resolveQrcPath(pix->text(), pix->attributeResource(), workingDirectory())); listView->addColumn(icon, txt); } else { listView->addColumn(txt); } if (clickable != 0) { header->setClickEnabled(clickable->elementBool() == QLatin1String("true"), header->count() - 1); } if (resizable != 0) { header->setResizeEnabled(resizable->elementBool() == QLatin1String("true"), header->count() - 1); } } if (ui_widget->elementItem().size()) { initializeQ3ListViewItems(ui_widget->elementItem()); } return true; }
void GAlbumViewItem::paintCell(QPainter* p, const QColorGroup& cg, int column, int width, int) { if (!p) return; Q3ListView *lv = listView(); if (!lv) return; QFontMetrics fm(p->fontMetrics()); if (isSelected()) p->fillRect(0, 0, width, height(), cg.color(QColorGroup::Highlight)); else p->fillRect(0, 0, width, height(), cg.color(QColorGroup::Base)); const QPixmap* icon = pixmap(column); int iconWidth = 0; if (icon) { iconWidth = icon->width() + lv->itemMargin(); int xo = lv->itemMargin(); int yo = (height() - icon->height())/2; p->drawPixmap( xo, yo, *icon ); } if (isSelected()) p->setPen( cg.color(QColorGroup::HighlightedText) ); else p->setPen( cg.color(QColorGroup::Text) ); int r = lv->itemMargin() + iconWidth; int h = lv->fontMetrics().height() + 2; p->drawText(r, 0, width-r, h, Qt::AlignVCenter, m_album.title); QFont fn(lv->font()); fn.setPointSize(fn.pointSize()-2); fn.setItalic(true); p->setFont(fn); p->setPen(isSelected() ? cg.color(QColorGroup::HighlightedText) : Qt::gray); p->drawText(r, h, width-r, h, Qt::AlignVCenter, m_album.name); }