SchematicViewer::SchematicViewer(QWidget *parent) : QWidget(parent), m_fullSchematic(true), m_maximizedNode(false), m_sceneHandle(0) { m_viewer = new SchematicSceneViewer(this); m_stageScene = new StageSchematicScene(this); m_fxScene = new FxSchematicScene(this); m_commonToolbar = new QToolBar(m_viewer); m_stageToolbar = new QToolBar(m_viewer); m_fxToolbar = new QToolBar(m_viewer); m_swapToolbar = new QToolBar(m_viewer); m_commonToolbar->setObjectName("ToolBarWithoutBorder"); m_stageToolbar->setObjectName("ToolBarWithoutBorder"); m_fxToolbar->setObjectName("ToolBarWithoutBorder"); m_swapToolbar->setObjectName("ToolBarWithoutBorder"); createToolbars(); createActions(); // layout QVBoxLayout *mainLayout = new QVBoxLayout(); mainLayout->setMargin(1); mainLayout->setSpacing(0); { mainLayout->addWidget(m_viewer, 1); QFrame *bottomFrame = new QFrame(this); bottomFrame->setObjectName("SchematicBottomFrame"); QHBoxLayout *horizontalLayout = new QHBoxLayout(); horizontalLayout->setMargin(0); horizontalLayout->setSpacing(0); { horizontalLayout->addWidget(m_commonToolbar); horizontalLayout->addStretch(); horizontalLayout->addWidget(m_fxToolbar); horizontalLayout->addWidget(m_stageToolbar); horizontalLayout->addWidget(m_swapToolbar); } bottomFrame->setLayout(horizontalLayout); mainLayout->addWidget(bottomFrame, 0); } setLayout(mainLayout); connect(m_fxScene, SIGNAL(showPreview(TFxP)), this, SIGNAL(showPreview(TFxP))); connect(m_fxScene, SIGNAL(doCollapse(const QList<TFxP> &)), this, SIGNAL(doCollapse(const QList<TFxP> &))); connect(m_stageScene, SIGNAL(doCollapse(QList<TStageObjectId>)), this, SIGNAL(doCollapse(QList<TStageObjectId>))); connect(m_fxScene, SIGNAL(doExplodeChild(const QList<TFxP> &)), this, SIGNAL(doExplodeChild(const QList<TFxP> &))); connect(m_stageScene, SIGNAL(doExplodeChild(QList<TStageObjectId>)), this, SIGNAL(doExplodeChild(QList<TStageObjectId>))); connect(m_stageScene, SIGNAL(editObject()), this, SIGNAL(editObject())); connect(m_fxScene, SIGNAL(editObject()), this, SIGNAL(editObject())); m_viewer->setScene(m_stageScene); m_fxToolbar->hide(); setFocusProxy(m_viewer); }
StageSchematicScene::StageSchematicScene(QWidget *parent) : SchematicScene(parent), m_nextNodePos(0, 0), m_xshHandle(0), m_objHandle(0), m_colHandle(0), m_sceneHandle(0), m_frameHandle(0), m_gridDimension(eSmall), m_showLetterOnPortFlag(ShowLetterOnOutputPortOfStageNode!=0) { QPointF sceneCenter = sceneRect().center(); m_firstPos = TPointD(sceneCenter.x(), sceneCenter.y()); m_selection = new StageObjectSelection(); connect(m_selection, SIGNAL(doCollapse(QList<TStageObjectId>)), this, SLOT(onCollapse(QList<TStageObjectId>))); connect(m_selection, SIGNAL(doExplodeChild(QList<TStageObjectId>)), this, SIGNAL(doExplodeChild(QList<TStageObjectId>))); connect(this, SIGNAL(selectionChanged()), this, SLOT(onSelectionChanged())); m_highlightedLinks.clear(); }
void SchematicScenePanel::hideEvent(QHideEvent *e) { TApp *app = TApp::instance(); disconnect(m_schematicViewer, SIGNAL(showPreview(TFxP)), this, SLOT(onShowPreview(TFxP))); disconnect(m_schematicViewer, SIGNAL(doCollapse(const QList<TFxP> &)), this, SLOT(onCollapse(const QList<TFxP> &))); disconnect(m_schematicViewer, SIGNAL(doCollapse(QList<TStageObjectId>)), this, SLOT(onCollapse(QList<TStageObjectId>))); disconnect(m_schematicViewer, SIGNAL(doExplodeChild(const QList<TFxP> &)), this, SLOT(onExplodeChild(const QList<TFxP> &))); disconnect(m_schematicViewer, SIGNAL(doExplodeChild(QList<TStageObjectId>)), this, SLOT(onExplodeChild(QList<TStageObjectId>))); disconnect(m_schematicViewer, SIGNAL(editObject()), this, SLOT(onEditObject())); disconnect(app->getCurrentLevel(), SIGNAL(xshLevelChanged()), m_schematicViewer, SLOT(updateScenes())); disconnect(app->getCurrentObject(), SIGNAL(objectSwitched()), m_schematicViewer, SLOT(updateScenes())); disconnect(app->getCurrentXsheet(), SIGNAL(xsheetSwitched()), m_schematicViewer, SLOT(updateSchematic())); disconnect(app->getCurrentXsheet(), SIGNAL(xsheetChanged()), m_schematicViewer, SLOT(updateSchematic())); disconnect(app->getCurrentScene(), SIGNAL(sceneSwitched()), m_schematicViewer, SLOT(onSceneSwitched())); }
void SchematicScenePanel::showEvent(QShowEvent *e) { if (m_schematicViewer->isStageSchematicViewed()) setWindowTitle("Stage Schematic"); else setWindowTitle("Fx Schematic"); TApp *app = TApp::instance(); connect(m_schematicViewer, SIGNAL(showPreview(TFxP)), this, SLOT(onShowPreview(TFxP))); connect(m_schematicViewer, SIGNAL(doCollapse(const QList<TFxP> &)), this, SLOT(onCollapse(const QList<TFxP> &))); connect(m_schematicViewer, SIGNAL(doCollapse(QList<TStageObjectId>)), this, SLOT(onCollapse(QList<TStageObjectId>))); connect(m_schematicViewer, SIGNAL(doExplodeChild(const QList<TFxP> &)), this, SLOT(onExplodeChild(const QList<TFxP> &))); connect(m_schematicViewer, SIGNAL(doExplodeChild(QList<TStageObjectId>)), this, SLOT(onExplodeChild(QList<TStageObjectId>))); connect(m_schematicViewer, SIGNAL(editObject()), this, SLOT(onEditObject())); connect(app->getCurrentLevel(), SIGNAL(xshLevelChanged()), m_schematicViewer, SLOT(updateScenes())); connect(app->getCurrentObject(), SIGNAL(objectSwitched()), m_schematicViewer, SLOT(updateScenes())); connect(app->getCurrentXsheet(), SIGNAL(xsheetSwitched()), m_schematicViewer, SLOT(updateSchematic())); connect(app->getCurrentXsheet(), SIGNAL(xsheetChanged()), m_schematicViewer, SLOT(updateSchematic())); connect(app->getCurrentScene(), SIGNAL(sceneSwitched()), m_schematicViewer, SLOT(onSceneSwitched())); m_schematicViewer->updateSchematic(); }
void FxSelection::explodeChild() { if (!m_selectedFxs.isEmpty()) emit doExplodeChild(m_selectedFxs); }