int Tiled::Internal::MapScene::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QGraphicsScene::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: setGridVisible((*reinterpret_cast< bool(*)>(_a[1]))); break; case 1: refreshScene(); break; case 2: repaintRegion((*reinterpret_cast< const QRegion(*)>(_a[1]))); break; case 3: currentLayerIndexChanged(); break; case 4: mapChanged(); break; case 5: tilesetChanged((*reinterpret_cast< Tileset*(*)>(_a[1]))); break; case 6: layerAdded((*reinterpret_cast< int(*)>(_a[1]))); break; case 7: layerRemoved((*reinterpret_cast< int(*)>(_a[1]))); break; case 8: layerChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 9: objectsAdded((*reinterpret_cast< const QList<MapObject*>(*)>(_a[1]))); break; case 10: objectsRemoved((*reinterpret_cast< const QList<MapObject*>(*)>(_a[1]))); break; case 11: objectsChanged((*reinterpret_cast< const QList<MapObject*>(*)>(_a[1]))); break; case 12: updateSelectedObjectItems(); break; default: ; } _id -= 13; } return _id; }
void LayerContainer::insertLayerRaw(Layer* layer, int index) { if ( layer->parentDocument() != parentDocument() ) parentDocument()->registerElement(layer); onInsertLayer(layer); if ( index < 0 || index >= layers_.size() ) layers_.append(layer); else layers_.insert(index, layer); connect(layer, &LayerContainer::layerAdded, this, &LayerContainer::layerAdded); connect(layer, &LayerContainer::layerRemoved, this, &LayerContainer::layerRemoved); emit layerAdded(layer, this, index); }
void medViewContainer::setView(medAbstractView *view) { if(d->view) { d->view->viewWidget()->hide(); this->removeInternView(); } if(view) { d->view = view; connect(d->view, SIGNAL(destroyed()), this, SLOT(removeInternView())); connect(d->view, SIGNAL(selectedRequest(bool)), this, SLOT(setSelected(bool))); if(medAbstractLayeredView* layeredView = dynamic_cast<medAbstractLayeredView*>(view)) { connect(layeredView, SIGNAL(currentLayerChanged()), this, SIGNAL(currentLayerChanged())); connect(layeredView, SIGNAL(currentLayerChanged()), this, SLOT(updateToolBar())); connect(layeredView, SIGNAL(layerAdded(uint)), this, SIGNAL(viewContentChanged())); connect(layeredView, SIGNAL(layerRemoved(uint)), this, SIGNAL(viewContentChanged())); } if (medAbstractImageView* imageView = dynamic_cast <medAbstractImageView*> (view)) { if (!d->userSplittable) imageView->fourViewsParameter()->hide(); } d->maximizedAction->setEnabled(true); d->defaultWidget->hide(); d->mainLayout->addWidget(d->view->viewWidget(), 2, 0, 1, 1); d->view->viewWidget()->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::MinimumExpanding); d->view->viewWidget()->show(); emit viewChanged(); } }
medVtkView::medVtkView(QObject* parent): medAbstractImageView(parent), d(new medVtkViewPrivate) { // setup initial internal state of the view d->currentView = NULL; d->interactorStyle2D = NULL; // construct render window // renWin d->renWin = vtkRenderWindow::New(); d->renWin->StereoCapableWindowOn(); d->renWin->SetStereoTypeToCrystalEyes(); // needed for imersive room if (qApp->arguments().contains("--stereo")) d->renWin->SetStereoRender(1); // construct views // view2d d->view2d = vtkImageView2D::New(); d->view2d->SetBackground(0.0, 0.0, 0.0); d->view2d->SetLeftButtonInteractionStyle(vtkInteractorStyleImageView2D::InteractionTypeZoom); d->view2d->SetMiddleButtonInteractionStyle(vtkInteractorStyleImageView2D::InteractionTypePan); d->view2d->SetKeyboardInteractionStyle (vtkInteractorStyleImageView2D::InteractionTypeSlice); d->view2d->SetViewOrientation(vtkImageView2D::VIEW_ORIENTATION_AXIAL); d->view2d->CursorFollowMouseOff(); d->view2d->ShowImageAxisOff(); d->view2d->ShowScalarBarOff(); d->view2d->ShowRulerWidgetOn(); d->interactorStyle2D = d->view2d->GetInteractorStyle(); // save interactorStyle // view3d. d->view3d = vtkImageView3D::New(); d->view3d->SetShowBoxWidget(0); d->view3d->SetCroppingModeToOff(); d->view3d->ShowScalarBarOff(); d->view3d->GetTextProperty()->SetColor(1.0, 1.0, 1.0 ); d->view3d->ShadeOn(); d->view3d->GetRenderer()->GetActiveCamera()->SetPosition(0, -1, 0); d->view3d->GetRenderer()->GetActiveCamera()->SetViewUp (0, 0, 1); d->view3d->GetRenderer()->GetActiveCamera()->SetFocalPoint(0, 0, 0); // TrackballCamera2 vtkInteractorStyleTrackballCamera2 *interactorStyle = vtkInteractorStyleTrackballCamera2::New(); d->view3d->SetInteractorStyle(interactorStyle); interactorStyle->Delete(); d->viewWidget = new QVTKWidget; // Event filter used to know if the view is selecetd or not d->viewWidget->installEventFilter(this); d->viewWidget->setFocusPolicy(Qt::ClickFocus ); d->viewWidget->SetRenderWindow(d->renWin); d->viewWidget->setCursor(QCursor(Qt::CrossCursor)); d->backend.reset(new medVtkViewBackend(d->view2d, d->view3d, d->renWin)); d->observer = medVtkViewObserver::New(); d->observer->setView(this); d->view2d->AddObserver(vtkImageView::CurrentPointChangedEvent, d->observer, 0); d->view2d->AddObserver(vtkImageView::WindowLevelChangedEvent, d->observer, 0); d->view2d->GetInteractorStyle()->AddObserver(vtkImageView2DCommand::CameraZoomEvent, d->observer, 0); d->view2d->GetInteractorStyle()->AddObserver(vtkImageView2DCommand::CameraPanEvent, d->observer, 0); d->view2d->AddObserver(vtkImageView2DCommand::CameraPanEvent, d->observer, 0); d->view2d->AddObserver(vtkImageView2DCommand::CameraZoomEvent,d->observer,0); d->view3d->GetInteractorStyle()->AddObserver(vtkCommand::InteractionEvent, d->observer, 0); d->rubberBandZoomParameter = new medBoolParameter("RubberBandZoom", this); connect(d->rubberBandZoomParameter, SIGNAL(valueChanged(bool)), this, SLOT(enableRubberBandZoom(bool))); // Disable rubberBandMode if we leave the application. QMainWindow * mainWindowApp = dynamic_cast<QMainWindow *> (qApp->property( "MainWindow" ).value<QObject *>()); if(mainWindowApp) connect(mainWindowApp, SIGNAL(mainWindowDeactivated()), this, SLOT(resetKeyboardInteractionModifier())); this->initialiseNavigators(); connect(this, SIGNAL(currentLayerChanged()), this, SLOT(changeCurrentLayer())); connect(this, SIGNAL(layerAdded(uint)), this, SLOT(buildMouseInteractionParamPool(uint))); // do this last, that way all previous calls to render will fail (which they should) d->view2d->SetRenderWindow (d->renWin); d->view2d->GetRenderWindow()->GetInteractor()->AddObserver(vtkCommand::KeyPressEvent,d->observer,0); d->view2d->GetRenderWindow()->GetInteractor()->AddObserver(vtkCommand::KeyReleaseEvent,d->observer,0); }