PreviewToolbar.cpp 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include "EditorCommon.h"
  9. #include <QLabel>
  10. #include <QResizeEvent>
  11. PreviewToolbar::PreviewToolbar(EditorWindow* parent)
  12. : QToolBar("Preview Toolbar", parent)
  13. , m_viewportSizeLabel(new QLabel(parent))
  14. , m_canvasScaleLabel(new QLabel(parent))
  15. {
  16. setObjectName("PreviewToolbar"); // needed to save state
  17. setFloatable(false);
  18. // Add the current viewport resolution label
  19. addSeparator();
  20. m_viewportSizeLabel->setToolTip(QString("The current size of the viewport"));
  21. addWidget(m_viewportSizeLabel);
  22. // Add the combo box to select a canvas size
  23. addSeparator();
  24. QLabel* canvasSizeLabel = new QLabel("Preview canvas size: ", parent);
  25. addWidget(canvasSizeLabel);
  26. m_canvasSizeToolbarSection.reset(new PreviewCanvasSizeToolbarSection(this, false));
  27. // Add the canvas scale label
  28. addSeparator();
  29. m_canvasScaleLabel->setToolTip(QString("The scale used to fit the canvas in the viewport"));
  30. addWidget(m_canvasScaleLabel);
  31. // Add a spacer widget to force the Edit button to be on the right of the toolbar area
  32. QWidget* spacer = new QWidget();
  33. spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
  34. addWidget(spacer);
  35. // Add the Edit button to the right of the toolbar
  36. m_editButton = new QPushButton("End Preview", parent);
  37. QObject::connect(m_editButton,
  38. &QPushButton::clicked,
  39. parent,
  40. &EditorWindow::ToggleEditorMode);
  41. // Enable Edit button only while in Preview mode
  42. QObject::connect(parent,
  43. &EditorWindow::EditorModeChanged,
  44. m_editButton,
  45. [=](UiEditorMode mode)
  46. {
  47. m_editButton->setEnabled(mode == UiEditorMode::Preview);
  48. });
  49. m_editButton->setEnabled(parent->GetEditorMode() == UiEditorMode::Preview);
  50. m_editButton->setToolTip(QString("Switch back to Edit mode"));
  51. // this uses the "primary button" style from the global style sheet
  52. m_editButton->setProperty("class", "Primary");
  53. m_editButton->setIcon(QIcon(":/Icons/PreviewStop.png"));
  54. addWidget(m_editButton);
  55. parent->addToolBar(this);
  56. }
  57. void PreviewToolbar::ViewportHasResized(QResizeEvent* ev)
  58. {
  59. m_viewportSizeLabel->setText(QString("Viewport size: %1 x %2").arg(QString::number(ev->size().width()),
  60. QString::number(ev->size().height())));
  61. }
  62. void PreviewToolbar::UpdatePreviewCanvasScale(float scale)
  63. {
  64. m_canvasScaleLabel->setText(QString("Canvas scale: %1%").arg(QString::number(scale * 100.0f)));
  65. }
  66. #include <moc_PreviewToolbar.cpp>