Ejemplo n.º 1
0
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(&regeneratePreviews);

    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 == &regeneratePreviews) {
        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();
    }
}
Ejemplo n.º 2
0
ImageRecord * ImageRecordListModel::recordFromIndex(const QModelIndex &index)
{
	if(!index.isValid())
		return 0;
	return recordAt(index.row());
}