void ObxTreeViewItem::paintEvent(QPaintEvent *) { if (view_.header().model() == 0 || data() == 0) { return; } QPainter p(this); for(int i = 0; i < view_.header().model()->columnCount(); ++i) { QRect rc(view_.header().columnRect(i)); rc.setTop(MARGIN); rc.setHeight(height() - 2 * MARGIN); QStandardItem * item = view_.item(data(), i); if (item != 0) { rc.adjust(ITEM_HEIGHT + MARGIN, MARGIN, -MARGIN * 4, -MARGIN); if (i == 0) { rc.setLeft(rc.left() + obx::indent(item)); } p.setOpacity(item->isSelectable() ? 1.0 : 0.5); QIcon icon = item->icon(); p.drawPixmap(8, 8, icon.pixmap(84, 84)); QString title = item->text(); p.setFont(item->font()); chopStringByRect(p, rc, item->textAlignment()|Qt::AlignTop, title); p.drawText(rc, item->textAlignment()|Qt::AlignTop, title); QFont smallFont; smallFont.setPointSize(16); title = item->toolTip(); p.setFont(smallFont); chopStringByRect(p, rc, Qt::AlignRight|Qt::AlignBottom, title); p.drawText(rc, Qt::AlignRight|Qt::AlignBottom, title); } } if (isSelected()) { p.setOpacity(1); QPen pen(Qt::SolidLine); pen.setColor(Qt::black); p.setPen(pen); p.drawRoundedRect(rect().adjusted(0, 0, -1, -1), 8, 8); } }
void tst_QStandardItem::getSetFlags() { QStandardItem item; item.setEnabled(true); QVERIFY(item.isEnabled()); QVERIFY(item.flags() & Qt::ItemIsEnabled); item.setEditable(true); QVERIFY(item.isEditable()); QVERIFY(item.flags() & Qt::ItemIsEditable); item.setSelectable(true); QVERIFY(item.isSelectable()); QVERIFY(item.flags() & Qt::ItemIsSelectable); item.setCheckable(true); QVERIFY(item.isCheckable()); QCOMPARE(item.checkState(), Qt::Unchecked); QVERIFY(item.flags() & Qt::ItemIsUserCheckable); item.setTristate(true); QVERIFY(item.isTristate()); QVERIFY(item.flags() & Qt::ItemIsTristate); #ifndef QT_NO_DRAGANDDROP item.setDragEnabled(true); QVERIFY(item.isDragEnabled()); QVERIFY(item.flags() & Qt::ItemIsDragEnabled); item.setDropEnabled(true); QVERIFY(item.isDropEnabled()); QVERIFY(item.flags() & Qt::ItemIsDropEnabled); #endif QVERIFY(item.isEnabled()); item.setEnabled(false); QVERIFY(!item.isEnabled()); QVERIFY(!(item.flags() & Qt::ItemIsEnabled)); QVERIFY(item.isEditable()); item.setEditable(false); QVERIFY(!item.isEditable()); QVERIFY(!(item.flags() & Qt::ItemIsEditable)); QVERIFY(item.isSelectable()); item.setSelectable(false); QVERIFY(!item.isSelectable()); QVERIFY(!(item.flags() & Qt::ItemIsSelectable)); QVERIFY(item.isCheckable()); item.setCheckable(false); QVERIFY(!item.isCheckable()); QVERIFY(!(item.flags() & Qt::ItemIsUserCheckable)); QVERIFY(item.isTristate()); item.setTristate(false); QVERIFY(!item.isTristate()); QVERIFY(!(item.flags() & Qt::ItemIsTristate)); #ifndef QT_NO_DRAGANDDROP QVERIFY(item.isDragEnabled()); item.setDragEnabled(false); QVERIFY(!item.isDragEnabled()); QVERIFY(!(item.flags() & Qt::ItemIsDragEnabled)); QVERIFY(item.isDropEnabled()); item.setDropEnabled(false); QVERIFY(!item.isDropEnabled()); QVERIFY(!(item.flags() & Qt::ItemIsDropEnabled)); #endif item.setCheckable(false); item.setCheckState(Qt::Checked); item.setCheckable(true); QCOMPARE(item.checkState(), Qt::Checked); }