void MainWindow::mouseDoubleClickEvent(QMouseEvent *event) { if (Q_UNLIKELY(over->containsDrawing("blank_table"))) { QTableWidget *w = static_cast<QTableWidget *>( ui->listTabs->currentWidget()->layout()->itemAt(0)->widget()); QPoint location = w->mapTo(this, QPoint(0, 0)); QRect r(location.x() + 1, location.y() + 24, w->width() - 2, w->height() - 25); if (r.contains(event->x(), event->y())) { SearchPanel *sp = new SearchPanel(this); sp->show(); } } }
void PrintingController::printLegend(bool newPageForSection) { if (fwbdebug) qDebug("******** Legend"); if (newPageForSection) { pr->flushPage(); pr->beginPage(); // resets yPos } else pr->printText("\n"); pr->printText(QObject::tr("Legend")); pr->printText(" "); QTableWidget *legendTbl = new QTableWidget(1,2); configureQTableForPrint(legendTbl); string icon_path="/FWBuilderResources/Type/"; int row = 0; int col = 0; QPixmap pm; QPixmap bfr(32,32); QPainter bfrp(&bfr); for (int i=0; !legendList[i].isEmpty(); ++i,++i) { if (row >= legendTbl->rowCount()) legendTbl->insertRow(row); QString type_name = legendList[i]; QString objName = legendList[i+1]; if (type_name==CustomService::TYPENAME) { col++; row=0; } #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) if (fwbdebug) qDebug("Legend table: row=%d col=%d %s %s", row, col, type_name.toAscii().constData(), objName.toAscii().constData()); #else if (fwbdebug) qDebug("Legend table: row=%d col=%d %s %s", row, col, type_name.toLatin1().constData(), objName.toLatin1().constData()); #endif QString icn = ":/Icons/"+type_name+"/icon"; QPixmap pm; if ( ! QPixmapCache::find( icn, pm) ) { pm.load( icn ); QPixmapCache::insert( icn, pm); } bfrp.fillRect(0,0,32,32,QColor(Qt::white)); bfrp.drawPixmap(4,4,pm); QTableWidgetItem *itm = new QTableWidgetItem; itm->setIcon(QIcon(bfr)); itm->setText(objName); legendTbl->setItem(row, col, itm); row++; } legendTbl->resizeColumnToContents(0); legendTbl->resizeColumnToContents(1); for (int i=0; i<legendTbl->rowCount(); ++i) legendTbl->resizeRowToContents(i); QSize sh = legendTbl->sizeHint(); legendTbl->resize(sh.width(),sh.height()); if (fwbdebug) qDebug("legendTbl size: %dx%d", legendTbl->width(),legendTbl->height()); pr->printQTable(legendTbl, false, false); }