FormEditorWidget::FormEditorWidget(FormEditorView *view) : QWidget(), m_formEditorView(view) { setStyleSheet(QLatin1String(Utils::FileReader::fetchQrc(":/qmldesigner/formeditorstylesheet.css"))); QVBoxLayout *fillLayout = new QVBoxLayout(this); fillLayout->setMargin(0); fillLayout->setSpacing(0); setLayout(fillLayout); QList<QAction*> upperActions; m_toolActionGroup = new QActionGroup(this); QActionGroup *layoutActionGroup = new QActionGroup(this); layoutActionGroup->setExclusive(true); m_noSnappingAction = layoutActionGroup->addAction(tr("No snapping (T).")); m_noSnappingAction->setShortcut(Qt::Key_W); m_noSnappingAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_noSnappingAction->setCheckable(true); m_noSnappingAction->setChecked(true); m_noSnappingAction->setIcon(QPixmap(":/icon/layout/no_snapping.png")); m_snappingAndAnchoringAction = layoutActionGroup->addAction(tr("Snap to parent or sibling items and generate anchors (W).")); m_snappingAndAnchoringAction->setShortcut(Qt::Key_W); m_snappingAndAnchoringAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_snappingAndAnchoringAction->setCheckable(true); m_snappingAndAnchoringAction->setChecked(true); m_snappingAndAnchoringAction->setIcon(QPixmap(":/icon/layout/snapping_and_anchoring.png")); m_snappingAction = layoutActionGroup->addAction(tr("Snap to parent or sibling items but do not generate anchors (E).")); m_snappingAction->setShortcut(Qt::Key_E); m_snappingAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_snappingAction->setCheckable(true); m_snappingAction->setChecked(true); m_snappingAction->setIcon(QPixmap(":/icon/layout/snapping.png")); addActions(layoutActionGroup->actions()); upperActions.append(layoutActionGroup->actions()); QAction *separatorAction = new QAction(this); separatorAction->setSeparator(true); addAction(separatorAction); upperActions.append(separatorAction); m_showBoundingRectAction = new QAction(tr("Show bounding rectangles and stripes for empty items (A)."), this); m_showBoundingRectAction->setShortcut(Qt::Key_A); m_showBoundingRectAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_showBoundingRectAction->setCheckable(true); m_showBoundingRectAction->setChecked(true); m_showBoundingRectAction->setIcon(QPixmap(":/icon/layout/boundingrect.png")); addAction(m_showBoundingRectAction.data()); upperActions.append(m_showBoundingRectAction.data()); m_selectOnlyContentItemsAction = new QAction(tr("Only select items with content (S)."), this); m_selectOnlyContentItemsAction->setShortcut(Qt::Key_S); m_selectOnlyContentItemsAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_selectOnlyContentItemsAction->setCheckable(true); m_selectOnlyContentItemsAction->setChecked(false); m_selectOnlyContentItemsAction->setIcon(QPixmap(":/icon/selection/selectonlycontentitems.png")); addAction(m_selectOnlyContentItemsAction.data()); upperActions.append(m_selectOnlyContentItemsAction.data()); m_rootWidthAction = new LineEditAction(tr("Width"), this); connect(m_rootWidthAction.data(), SIGNAL(textChanged(QString)), this, SLOT(changeRootItemWidth(QString))); addAction(m_rootWidthAction.data()); upperActions.append(m_rootWidthAction.data()); m_rootHeightAction = new LineEditAction(tr("Height"), this); connect(m_rootHeightAction.data(), SIGNAL(textChanged(QString)), this, SLOT(changeRootItemHeight(QString))); addAction(m_rootHeightAction.data()); upperActions.append(m_rootHeightAction.data()); m_toolBox = new ToolBox(this); fillLayout->addWidget(m_toolBox.data()); m_toolBox->setLeftSideActions(upperActions); m_zoomAction = new ZoomAction(m_toolActionGroup.data()); connect(m_zoomAction.data(), SIGNAL(zoomLevelChanged(double)), SLOT(setZoomLevel(double))); addAction(m_zoomAction.data()); upperActions.append(m_zoomAction.data()); m_toolBox->addRightSideAction(m_zoomAction.data()); m_resetAction = new QAction(tr("Reset view (R)."), this); m_resetAction->setShortcut(Qt::Key_R); m_resetAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_resetAction->setIcon(QPixmap(":/icon/reset.png")); connect(m_resetAction.data(), SIGNAL(triggered(bool)), this, SLOT(resetNodeInstanceView())); addAction(m_resetAction.data()); upperActions.append(m_resetAction.data()); m_toolBox->addRightSideAction(m_resetAction.data()); m_graphicsView = new FormEditorGraphicsView(this); fillLayout->addWidget(m_graphicsView.data()); m_graphicsView.data()->setStyleSheet(QLatin1String(Utils::FileReader::fetchQrc(":/qmldesigner/scrollbar.css"))); }
FormEditorWidget::FormEditorWidget(FormEditorView *view) : QWidget(), m_formEditorView(view) { QFile file(":/qmldesigner/formeditorstylesheet.css"); file.open(QFile::ReadOnly); QString styleSheet = QLatin1String(file.readAll()); setStyleSheet(styleSheet); QVBoxLayout *fillLayout = new QVBoxLayout(this); fillLayout->setMargin(0); fillLayout->setSpacing(0); setLayout(fillLayout); QList<QAction*> upperActions; m_toolActionGroup = new QActionGroup(this); m_transformToolAction = m_toolActionGroup->addAction("Transform Tool (Press Key Q)"); m_transformToolAction->setShortcut(Qt::Key_Q); m_transformToolAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_transformToolAction->setCheckable(true); m_transformToolAction->setChecked(true); m_transformToolAction->setIcon(QPixmap(":/icon/tool/transform.png")); connect(m_transformToolAction.data(), SIGNAL(triggered(bool)), SLOT(changeTransformTool(bool))); m_anchorToolAction = m_toolActionGroup->addAction("Anchor Tool (Press Key W)"); m_anchorToolAction->setShortcut(Qt::Key_W); m_anchorToolAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_anchorToolAction->setCheckable(true); m_anchorToolAction->setIcon(QPixmap(":/icon/tool/anchor.png")); connect(m_anchorToolAction.data(), SIGNAL(triggered(bool)), SLOT(changeAnchorTool(bool))); // addActions(m_toolActionGroup->actions()); // upperActions.append(m_toolActionGroup->actions()); QActionGroup *layoutActionGroup = new QActionGroup(this); layoutActionGroup->setExclusive(false); m_snappingAction = layoutActionGroup->addAction(tr("Snap to guides (E)")); m_snappingAction->setShortcut(Qt::Key_E); m_snappingAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_snappingAction->setCheckable(true); m_snappingAction->setChecked(true); m_snappingAction->setIcon(QPixmap(":/icon/layout/snapping.png")); m_snappingAndAnchoringAction = layoutActionGroup->addAction("Toogle Snapping And Anchoring (Press Key R)"); m_snappingAndAnchoringAction->setShortcut(Qt::Key_R); m_snappingAndAnchoringAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_snappingAndAnchoringAction->setCheckable(true); m_snappingAndAnchoringAction->setChecked(false); m_snappingAndAnchoringAction->setEnabled(false); m_snappingAndAnchoringAction->setVisible(false); m_snappingAndAnchoringAction->setIcon(QPixmap(":/icon/layout/snapping_and_anchoring.png")); addActions(layoutActionGroup->actions()); upperActions.append(layoutActionGroup->actions()); QAction *separatorAction = new QAction(this); separatorAction->setSeparator(true); addAction(separatorAction); upperActions.append(separatorAction); m_showBoundingRectAction = new QAction(tr("Show bounding rectangles (A)"), this); m_showBoundingRectAction->setShortcut(Qt::Key_A); m_showBoundingRectAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_showBoundingRectAction->setCheckable(true); m_showBoundingRectAction->setChecked(true); m_showBoundingRectAction->setIcon(QPixmap(":/icon/layout/boundingrect.png")); addAction(m_showBoundingRectAction.data()); upperActions.append(m_showBoundingRectAction.data()); m_selectOnlyContentItemsAction = new QAction(tr("Only select items with content (S)"), this); m_selectOnlyContentItemsAction->setShortcut(Qt::Key_S); m_selectOnlyContentItemsAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_selectOnlyContentItemsAction->setCheckable(true); m_selectOnlyContentItemsAction->setChecked(false); m_selectOnlyContentItemsAction->setIcon(QPixmap(":/icon/selection/selectonlycontentitems.png")); addAction(m_selectOnlyContentItemsAction.data()); upperActions.append(m_selectOnlyContentItemsAction.data()); m_rootWidthAction = new LineEditAction("width", this); connect(m_rootWidthAction.data(), SIGNAL(textChanged(QString)), this, SLOT(changeRootItemWidth(QString))); addAction(m_rootWidthAction.data()); upperActions.append(m_rootWidthAction.data()); m_rootHeightAction = new LineEditAction("height", this); connect(m_rootHeightAction.data(), SIGNAL(textChanged(QString)), this, SLOT(changeRootItemHeight(QString))); addAction(m_rootHeightAction.data()); upperActions.append(m_rootHeightAction.data()); m_snappingAndAnchoringAction = layoutActionGroup->addAction("Toogle Snapping And Anchoring (Press Key R)"); m_toolBox = new ToolBox(this); fillLayout->addWidget(m_toolBox.data()); m_toolBox->setLeftSideActions(upperActions); m_graphicsView = new FormEditorGraphicsView(this); fillLayout->addWidget(m_graphicsView.data()); { QFile file(":/qmldesigner/scrollbar.css"); file.open(QFile::ReadOnly); m_graphicsView.data()->setStyleSheet(file.readAll()); } QList<QAction*> lowerActions; m_zoomAction = new ZoomAction(m_toolActionGroup.data()); connect(m_zoomAction.data(), SIGNAL(zoomLevelChanged(double)), SLOT(setZoomLevel(double))); addAction(m_zoomAction.data()); upperActions.append(m_zoomAction.data()); m_toolBox->addRightSideAction(m_zoomAction.data()); }