void OverviewWidget::contextMenuRequest(QPoint pos) { QMenu* addFrameMenu = new QMenu(this); //addFrameMenu->setStyleSheet("background:white"); QAction snapshotAction(tr("Take Snapshot"), this); QAction regeneratePreviews(tr("Regenerate Previews"), this); addFrameMenu->addAction(&snapshotAction); //addFrameMenu->addSeparator(); addFrameMenu->addAction(®eneratePreviews); QMenu* canvasRendererMenu = new QMenu("Canvasrenderer", this); const ProcessorNetwork* network = networkEvaluator_->getProcessorNetwork(); const std::vector<CanvasRenderer*>& canvasRenderer = network->getProcessorsByType<CanvasRenderer>(); std::map<QAction*, CanvasRenderer*> menuMap; for (size_t i = 0; i < canvasRenderer.size(); ++i) { QString canvasRendererName = QString::fromStdString(canvasRenderer.at(i)->getName()); QAction* action = new QAction(canvasRendererName, canvasRendererMenu); canvasRendererMenu->addAction(action); menuMap[action] = canvasRenderer.at(i); } addFrameMenu->addMenu(canvasRendererMenu); QAction* action = addFrameMenu->exec(QCursor::pos()); if (action == &snapshotAction) { recordAt(static_cast<int>(overviewView_->mapToScene(pos).x())); if(autoPreview_) renderPreviews(); } else if (action == ®eneratePreviews) { bool temp = autoPreview_; autoPreview_ = true; renderPreviews(); autoPreview_ = temp; } else if (action != 0){ canvasRenderer_ = menuMap[action]; const std::vector<Port*> port = canvasRenderer_->getInports(); if (port.size() == 1) { if(dynamic_cast<RenderPort*>(port.at(0)) != 0) renderPort_ = dynamic_cast<RenderPort*>(port.at(0)); } if(autoPreview_) renderPreviews(); } }
ImageRecord * ImageRecordListModel::recordFromIndex(const QModelIndex &index) { if(!index.isValid()) return 0; return recordAt(index.row()); }