Пример #1
0
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);
}
Пример #2
0
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;
}
Пример #3
0
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;
}
Пример #4
0
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;
}
Пример #5
0
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);
}