diff --git a/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.cpp b/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.cpp index ace229a36..0850fb82f 100644 --- a/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.cpp +++ b/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.cpp @@ -18,12 +18,6 @@ #include "terminalstripdrawer.h" #include -#include "../physicalterminal.h" -#include "../realterminal.h" -#include "../terminalstrip.h" -#include "../terminalstripbridge.h" -#include "trueterminalstrip.h" - namespace TerminalStripDrawer { /** diff --git a/sources/TerminalStrip/ui/ConfigPage/terminalstripprojectconfigpage.cpp b/sources/TerminalStrip/ui/ConfigPage/terminalstripprojectconfigpage.cpp index 985a3df8f..3709cbadf 100644 --- a/sources/TerminalStrip/ui/ConfigPage/terminalstripprojectconfigpage.cpp +++ b/sources/TerminalStrip/ui/ConfigPage/terminalstripprojectconfigpage.cpp @@ -44,6 +44,5 @@ void TerminalStripProjectConfigPage::initWidgets() auto v_layout = new QVBoxLayout { this }; v_layout->addWidget(m_layout_editor); - v_layout->addStretch(); setLayout(v_layout); } diff --git a/sources/TerminalStrip/ui/terminalstriplayouteditor.cpp b/sources/TerminalStrip/ui/terminalstriplayouteditor.cpp index b9a573006..bb7c313dd 100644 --- a/sources/TerminalStrip/ui/terminalstriplayouteditor.cpp +++ b/sources/TerminalStrip/ui/terminalstriplayouteditor.cpp @@ -23,15 +23,29 @@ TerminalStripLayoutEditor::TerminalStripLayoutEditor(QSharedPointersetupUi(this); + ui->m_graphics_view->setScene(new QGraphicsScene{ this }); + ui->m_graphics_view->scene()->addItem(&m_preview_strip_item); updateUi(); } TerminalStripLayoutEditor::~TerminalStripLayoutEditor() { - delete ui; + delete ui; +} + +void TerminalStripLayoutEditor::resizeEvent(QResizeEvent *event) +{ + QWidget::resizeEvent(event); + updatePreview(); +} + +void TerminalStripLayoutEditor::showEvent(QShowEvent *event) +{ + QWidget::showEvent(event); + updatePreview(); } void TerminalStripLayoutEditor::valueEdited() @@ -118,7 +132,8 @@ void TerminalStripLayoutEditor::valueEdited() break; } - + updateUi(); + m_preview_strip_item.update(); } void TerminalStripLayoutEditor::updateUi() @@ -193,7 +208,14 @@ void TerminalStripLayoutEditor::updateUi() ui->m_terminal_text_alignment_cb->setCurrentIndex(1); } else if (terminal_alignment &Qt::AlignRight) { ui->m_terminal_text_alignment_cb->setCurrentIndex(2); - } + } - m_ui_updating = false; + m_ui_updating = false; + updatePreview(); +} + +void TerminalStripLayoutEditor::updatePreview() +{ + ui->m_graphics_view->fitInView(m_preview_strip_item.boundingRect().adjusted(-5,-5,5,5), + Qt::KeepAspectRatio); } diff --git a/sources/TerminalStrip/ui/terminalstriplayouteditor.h b/sources/TerminalStrip/ui/terminalstriplayouteditor.h index 2d804ebc6..2761c3964 100644 --- a/sources/TerminalStrip/ui/terminalstriplayouteditor.h +++ b/sources/TerminalStrip/ui/terminalstriplayouteditor.h @@ -18,14 +18,44 @@ #ifndef TERMINALSTRIPLAYOUTEDITOR_H #define TERMINALSTRIPLAYOUTEDITOR_H +#include #include +#include "../GraphicsItem/demoterminalstrip.h" +#include "../GraphicsItem/terminalstripdrawer.h" + class TerminalStripLayoutPattern; namespace Ui { class TerminalStripLayoutEditor; } +class PreviewStripItem : public QGraphicsItem +{ + public: + PreviewStripItem (QSharedPointer layout) : + m_drawer {QSharedPointer{new TerminalStripDrawer::DemoTerminalStrip}, + layout} + {} + + QRectF boundingRect() const override { + return m_drawer.boundingRect(); + } + + protected: + void paint(QPainter *painter, + const QStyleOptionGraphicsItem *option, + QWidget *widget = nullptr) override + { + Q_UNUSED (option); Q_UNUSED (widget); + m_drawer.paint(painter); + } + + private: + TerminalStripDrawer::TerminalStripDrawer m_drawer; + +}; + /** * @brief The TerminalStripLayoutEditor class * Widget used to edit the layout of a terminal strip item @@ -39,16 +69,22 @@ class TerminalStripLayoutEditor : public QWidget QWidget *parent = nullptr); ~TerminalStripLayoutEditor(); + protected: + void resizeEvent(QResizeEvent *event) override; + void showEvent(QShowEvent *event) override; + private slots: void valueEdited(); - private: - void updateUi(); + private: + void updateUi(); + void updatePreview(); private: Ui::TerminalStripLayoutEditor *ui; QSharedPointer m_layout; bool m_ui_updating { false } ; + PreviewStripItem m_preview_strip_item {m_layout}; }; #endif // TERMINALSTRIPLAYOUTEDITOR_H diff --git a/sources/TerminalStrip/ui/terminalstriplayouteditor.ui b/sources/TerminalStrip/ui/terminalstriplayouteditor.ui index 17460797b..186d9bb95 100644 --- a/sources/TerminalStrip/ui/terminalstriplayouteditor.ui +++ b/sources/TerminalStrip/ui/terminalstriplayouteditor.ui @@ -7,17 +7,55 @@ 0 0 553 - 311 + 387 Form - - + + QLayout::SetMaximumSize + + + - Borne niveau 2 : + Espace : + + + + + + + 1000 + + + + + + + 1000 + + + + + + + 1000 + + + + + + + Borne niveau 1 : + + + + + + + 1000 @@ -28,8 +66,78 @@ - - + + + + 1000 + + + + + + + Borne niveau 0 : + + + + + + + Hauteur + + + + + + + Point de pont + + + + + + + 1000 + + + + + + + 1000 + + + + + + + 1000 + + + + + + + Qt::Horizontal + + + + + + + Qt::Horizontal + + + + + + + Largeur + + + + + 1000 @@ -147,41 +255,6 @@ - - - - 1000 - - - - - - - 1000 - - - - - - - Qt::Horizontal - - - - - - - 1000 - - - - - - - 1000 - - - @@ -189,34 +262,27 @@ - - + + 1000 - - - - Espace : - - - - - - - Borne niveau 0 : - - - - - + + 1000 + + + + Borne niveau 2 : + + + @@ -224,8 +290,8 @@ - - + + 1000 @@ -238,29 +304,15 @@ - - - - Borne niveau 1 : - - - - - - - Hauteur - - - - - + + 1000 - - + + 1000 @@ -273,6 +325,20 @@ + + + + 1000 + + + + + + + 1000 + + + @@ -280,43 +346,15 @@ - - + + 1000 - - - - Qt::Horizontal - - - - - - - Largeur - - - - - - - 1000 - - - - - - - 1000 - - - - - + + 1000 @@ -329,40 +367,8 @@ - - - - 1000 - - - - - - - 1000 - - - - - - - Point de pont - - - - - - - 1000 - - - - - - - 1000 - - + +