Ejemplo n.º 1
0
void hrRender::setScene(hrScene *s)
{
    Q_ASSERT(s);

    scene = s;
    connect(scene, SIGNAL(sceneChanged()), this, SLOT(onSceneChanged()));
    connect(scene, SIGNAL(cursorChaged(int)), this, SLOT(onCursorChanged(int)));

    scene->setViewport(width()*devicePixelRatio(), height()*devicePixelRatio());
}
Ejemplo n.º 2
0
SceneDockWidget::SceneDockWidget(Controller* controller, QWidget *parent) :
    QDockWidget(parent),
    ui(new Ui::SceneDockWidget), controller(controller)
{
    ui->setupUi(this);

    materialPreviewScene = new QGraphicsScene(this);
    ui->materialPreview->setScene(materialPreviewScene);

    connect(controller, SIGNAL(sceneChanged()), this, SLOT(onSceneChanged()));
}
Ejemplo n.º 3
0
//------------------------------------------------------------------------------
void Entity::setParent(Entity * newParent)
{
    Scene * oldScene = getScene();

    // Update parent
    if (r_parent != nullptr && newParent == nullptr)
    {
        // Unparented
        r_parent->removeChild(this);
        r_parent = newParent;
    }
    else if (newParent != nullptr)
    {
        if (r_parent == nullptr)
        {
            // Parented for the first time
            r_parent = newParent;
            r_parent->addChild(this);
        }
        else
        {
            // Parent changed

            // Just swap ownership
            r_parent->removeChild(this);
            r_parent = newParent;
            r_parent->addChild(this);
        }
    }

    // Update scene
    r_scene = getScene();
    if (oldScene != r_scene)
    {
        onSceneChanged(oldScene, r_scene);
    }
}
Ejemplo n.º 4
0
void SchematicViewer::createActions()
{
	// Create all actions
	QAction *addPegbar = 0, *addSpline = 0, *addCamera = 0,
			*insertFx = 0, *addOutputFx = 0, *switchPort = 0;
	{
		// Fit schematic
		QIcon fitSchematicIcon = createQIconOnOffPNG("fit", false);
		m_fitSchematic = new QAction(fitSchematicIcon, tr("&Fit to Window"), m_commonToolbar);
		connect(m_fitSchematic, SIGNAL(triggered()), m_viewer, SLOT(fitScene()));

		// Center On
		QIcon centerOnIcon = createQIconOnOffPNG("centerselection", false);
		m_centerOn = new QAction(centerOnIcon, tr("&Focus on Current"), m_commonToolbar);
		connect(m_centerOn, SIGNAL(triggered()), m_viewer, SLOT(centerOnCurrent()));

		// Reorder schematic
		QIcon reorderIcon = createQIconOnOffPNG("reorder", false);
		m_reorder = new QAction(reorderIcon, tr("&Reorder Nodes"), m_commonToolbar);
		connect(m_reorder, SIGNAL(triggered()), m_viewer, SLOT(reorderScene()));

		//Normalize schematic schematic
		QIcon normalizeIcon = createQIconOnOffPNG("resetsize", false);
		m_normalize = new QAction(normalizeIcon, tr("&Reset Size"), m_commonToolbar);
		connect(m_normalize, SIGNAL(triggered()), m_viewer, SLOT(normalizeScene()));

		QIcon nodeSizeIcon = createQIconOnOffPNG(m_maximizedNode ? "minimizenodes" : "maximizenodes", false);
		m_nodeSize = new QAction(nodeSizeIcon, m_maximizedNode ? tr("&Minimize Nodes") : tr("&Maximize Nodes"), m_commonToolbar);
		connect(m_nodeSize, SIGNAL(triggered()), this, SLOT(changeNodeSize()));

		if (m_fullSchematic) {
			// AddPegbar
			addPegbar = new QAction(tr("&New Pegbar"), m_stageToolbar);
			QIcon addPegbarIcon = createQIconOnOffPNG("pegbar", false);
			addPegbar->setIcon(addPegbarIcon);
			connect(addPegbar, SIGNAL(triggered()), m_stageScene, SLOT(onPegbarAdded()));

			// AddCamera
			addCamera = new QAction(tr("&New Camera"), m_stageToolbar);
			QIcon addCameraIcon = createQIconOnOffPNG("camera", false);
			addCamera->setIcon(addCameraIcon);
			connect(addCamera, SIGNAL(triggered()), m_stageScene, SLOT(onCameraAdded()));

			// AddSpline
			addSpline = new QAction(tr("&New Motion Path"), m_stageToolbar);
			QIcon addSplineIcon = createQIconOnOffPNG("motionpath", false);
			addSpline->setIcon(addSplineIcon);
			connect(addSpline, SIGNAL(triggered()), m_stageScene, SLOT(onSplineAdded()));

			//Switch display of stage schematic's output port
			switchPort = new QAction(tr("&Swtich output port display mode"), m_stageToolbar);
			switchPort->setCheckable(true);
			switchPort->setChecked(m_stageScene->isShowLetterOnPortFlagEnabled());
			QIcon switchPortIcon = createQIconOnOffPNG("switchport");
			switchPort->setIcon(switchPortIcon);
			connect(switchPort, SIGNAL(toggled(bool)), m_stageScene, SLOT(onSwitchPortModeToggled(bool)));
			
			// InsertFx
			insertFx = CommandManager::instance()->getAction("MI_InsertFx");
			if (insertFx) {
				QIcon insertFxIcon = createQIconOnOffPNG("fx", false);
				insertFx->setIcon(insertFxIcon);
			}

			// AddOutputFx
			addOutputFx = CommandManager::instance()->getAction("MI_NewOutputFx");
			QIcon addOutputFxIcon = createQIconOnOffPNG("output", false);
			if (addOutputFx)
				addOutputFx->setIcon(addOutputFxIcon);

			// Swap fx/stage schematic
			QIcon changeSchematicIcon = createQIconOnOffPNG("swap", false);
			m_changeScene = CommandManager::instance()->getAction("A_FxSchematicToggle", true);
			if (m_changeScene) {
				m_changeScene->setIcon(changeSchematicIcon);
				connect(m_changeScene, SIGNAL(triggered()), this, SLOT(onSceneChanged()));
			} else
				m_changeScene = 0;
		}
	}

	// Add actions to toolbars (in reverse)

	m_commonToolbar->addSeparator();
	m_commonToolbar->addAction(m_nodeSize);
	m_commonToolbar->addAction(m_normalize);
	m_commonToolbar->addAction(m_reorder);
	m_commonToolbar->addAction(m_centerOn);
	m_commonToolbar->addAction(m_fitSchematic);

	if (m_fullSchematic) {
		m_stageToolbar->addSeparator();
		m_stageToolbar->addAction(switchPort);
		m_stageToolbar->addSeparator();
		m_stageToolbar->addAction(addSpline);
		m_stageToolbar->addAction(addCamera);
		m_stageToolbar->addAction(addPegbar);

		m_fxToolbar->addSeparator();
		m_fxToolbar->addAction(addOutputFx);
		m_fxToolbar->addAction(insertFx);

		if (m_changeScene)
			m_swapToolbar->addAction(m_changeScene);
	}
}
Ejemplo n.º 5
0
TApp::TApp()
    : m_currentScene(0)
    , m_currentXsheet(0)
    , m_currentFrame(0)
    , m_currentColumn(0)
    , m_currentLevel(0)
    , m_currentTool(0)
    , m_currentObject(0)
    , m_currentSelection(0)
    , m_currentOnionSkinMask(0)
    , m_currentFx(0)
    , m_mainWindow(0)
    , m_autosaveTimer(0)
    , m_autosaveSuspended(false)
    , m_isStarting(false)
    , m_isPenCloseToTablet(false) {
  m_currentScene         = new TSceneHandle();
  m_currentXsheet        = new TXsheetHandle();
  m_currentFrame         = new TFrameHandle();
  m_currentColumn        = new TColumnHandle();
  m_currentLevel         = new TXshLevelHandle();
  m_currentTool          = new ToolHandle();
  m_currentObject        = new TObjectHandle();
  m_currentOnionSkinMask = new TOnionSkinMaskHandle();
  m_currentFx            = new TFxHandle();
  m_currentSelection     = TSelectionHandle::getCurrent();

  m_paletteController = new PaletteController();

  bool ret = true;

  ret = ret && QObject::connect(m_currentXsheet, SIGNAL(xsheetChanged()), this,
                                SLOT(onXsheetChanged()));

  ret = ret && QObject::connect(m_currentXsheet, SIGNAL(xsheetSoundChanged()),
                                this, SLOT(onXsheetSoundChanged()));

  ret = ret && QObject::connect(m_currentScene, SIGNAL(sceneSwitched()), this,
                                SLOT(onSceneSwitched()));

  ret = ret && QObject::connect(m_currentScene, SIGNAL(sceneChanged()), this,
                                SLOT(onSceneChanged()));

  ret = ret && QObject::connect(m_currentXsheet, SIGNAL(xsheetSwitched()), this,
                                SLOT(onXsheetSwitched()));

  ret = ret && QObject::connect(m_currentFrame, SIGNAL(frameSwitched()), this,
                                SLOT(onFrameSwitched()));

  ret = ret && QObject::connect(m_currentFrame, SIGNAL(frameSwitched()), this,
                                SLOT(onImageChanged()));

  ret = ret && QObject::connect(m_currentFx, SIGNAL(fxSwitched()), this,
                                SLOT(onFxSwitched()));

  ret = ret && QObject::connect(m_currentColumn, SIGNAL(columnIndexSwitched()),
                                this, SLOT(onColumnIndexSwitched()));

  ret = ret && QObject::connect(m_currentColumn, SIGNAL(columnIndexSwitched()),
                                this, SLOT(onImageChanged()));

  ret = ret &&
        QObject::connect(m_currentLevel, SIGNAL(xshLevelSwitched(TXshLevel *)),
                         this, SLOT(onImageChanged()));

  ret = ret &&
        QObject::connect(m_currentLevel, SIGNAL(xshLevelSwitched(TXshLevel *)),
                         this, SLOT(onXshLevelSwitched(TXshLevel *)));

  ret = ret && QObject::connect(m_currentLevel, SIGNAL(xshLevelChanged()), this,
                                SLOT(onXshLevelChanged()));

  ret = ret && QObject::connect(m_currentObject, SIGNAL(objectSwitched()), this,
                                SLOT(onObjectSwitched()));

  ret = ret && QObject::connect(m_currentObject, SIGNAL(splineChanged()), this,
                                SLOT(onSplineChanged()));

  ret = ret && QObject::connect(m_paletteController->getCurrentLevelPalette(),
                                SIGNAL(paletteChanged()), this,
                                SLOT(onPaletteChanged()));

  ret = ret && QObject::connect(m_paletteController->getCurrentLevelPalette(),
                                SIGNAL(colorStyleSwitched()), this,
                                SLOT(onLevelColorStyleSwitched()));

  ret = ret && QObject::connect(m_paletteController->getCurrentLevelPalette(),
                                SIGNAL(colorStyleChangedOnMouseRelease()), this,
                                SLOT(onLevelColorStyleChanged()));

  ret = ret && QObject::connect(m_paletteController->getCurrentCleanupPalette(),
                                SIGNAL(paletteChanged()), m_currentScene,
                                SIGNAL(sceneChanged()));

  TMeasureManager::instance()->addCameraMeasures(getCurrentCameraSize);

  m_autosaveTimer = new QTimer(this);
  ret             = ret &&
        connect(m_autosaveTimer, SIGNAL(timeout()), this, SLOT(autosave()));

  Preferences *preferences = Preferences::instance();

  if (preferences->isRasterOptimizedMemory()) {
    if (!TBigMemoryManager::instance()->init(
            (int)(/*15*1024*/ TSystem::getFreeMemorySize(true) * .8)))
      DVGui::warning(tr("Error allocating memory: not enough memory."));
  }
  ret = ret &&
        connect(preferences, SIGNAL(stopAutoSave()), SLOT(onStopAutoSave()));
  ret = ret &&
        connect(preferences, SIGNAL(startAutoSave()), SLOT(onStartAutoSave()));
  ret = ret && connect(m_currentTool, SIGNAL(toolEditingFinished()),
                       SLOT(onToolEditingFinished()));

  if (preferences->isAutosaveEnabled())
    m_autosaveTimer->start(preferences->getAutosavePeriod() * 1000 * 60);

  UnitParameters::setCurrentDpiGetter(getCurrentDpi);
  assert(ret);
}