/** * @RDE_HEADER@ * Test for LtsDataView and their AbstractDisplayWidgets * $Id$ * $HeadURL$ * $Author$ * Created by Mike Wille, SLSE, 2016-03-14 */ #include "test.h" #include #include #include #include #include #include #include #include #include Disp::Disp() : LtsDataView::AbstractDisplayWidget(nullptr) , m_label(new QLabel(this)) { } bool Disp::init(const QModelIndex &idx) { if (!idx.isValid()) return false; m_label->setText(rowData(idx, 0).toString()); return true; } int main(int argc, char **argv) { QApplication app(argc,argv); int rows = 20; int cols = 7; QElapsedTimer et; et.start(); qWarning() << "creating" << rows << "items"; qWarning() << "wait.."; LtsDataView::LtsDataView *view = new LtsDataView::LtsDataView(); QStandardItemModel model; for (int r = 0; r < rows; r++) { for (int c = 0; c < cols; c++) { QStandardItem *item = new QStandardItem(QStringLiteral("Item %1/%2").arg(r).arg(c)); model.setItem(r,c,item); } } view->setModel(&model, [](){ return new Disp(); }); view->show(); #ifdef TABLET_MODE auto widget = view; if (widget) { widget->setAttribute(Qt::WA_AcceptTouchEvents); { QScrollArea *sca = qobject_cast(widget); if (sca) { qWarning() << widget << "is scroll area"; QScroller::grabGesture(sca->viewport(), QScroller::LeftMouseButtonGesture); QScroller::grabGesture(sca, QScroller::LeftMouseButtonGesture); } else { QAbstractItemView *aiv = qobject_cast(widget); if (aiv) { qWarning() << widget << "is abst. item view"; QScroller::grabGesture(aiv->viewport(), QScroller::LeftMouseButtonGesture); QScroller::grabGesture(aiv, QScroller::LeftMouseButtonGesture); aiv->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); aiv->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); } } } } #endif qWarning() << "took" << et.elapsed() << "ms"; return app.exec(); }