From 0728e0b05c1e1bfe1dd700b6f1becdc0d28fe239 Mon Sep 17 00:00:00 2001 From: manongjohn Date: Fri, 15 Apr 2022 11:20:51 -0400 Subject: [PATCH] Fix xsheet/timeline starting with wrong orientation --- toonz/sources/toonz/tpanels.cpp | 56 +++++++++++++++++++++++++++------ toonz/sources/toonz/tpanels.h | 31 ++++++++++++++++++ 2 files changed, 78 insertions(+), 9 deletions(-) diff --git a/toonz/sources/toonz/tpanels.cpp b/toonz/sources/toonz/tpanels.cpp index 947532a2..d9fa277d 100644 --- a/toonz/sources/toonz/tpanels.cpp +++ b/toonz/sources/toonz/tpanels.cpp @@ -95,39 +95,77 @@ #include //============================================================================= -// XsheetViewer +// XsheetViewerFactory //----------------------------------------------------------------------------- -class XsheetViewerFactory final : public TPanelFactory { +class XsheetViewerFactory : public TPanelFactory { public: XsheetViewerFactory() : TPanelFactory("Xsheet") {} - void initialize(TPanel *panel) override { - panel->setWidget(new XsheetViewer(panel)); + + TPanel *createPanel(QWidget *parent) override { + XsheetViewerPanel *panel = new XsheetViewerPanel(parent); + panel->setObjectName(getPanelType()); + panel->reset(); panel->resize(500, 300); panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars()); connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(), SLOT(showTitleBar(bool))); + return panel; } + + void initialize(TPanel *panel) override {} } xsheetViewerFactory; //============================================================================= -// XsheetViewer - Timeline mode +// XsheetViewer +//----------------------------------------------------------------------------- + +XsheetViewerPanel::XsheetViewerPanel(QWidget *parent) : TPanel(parent) { + m_xsheetViewer = new XsheetViewer(this); + setWidget(m_xsheetViewer); +} + +void XsheetViewerPanel::reset() { + if (!m_xsheetViewer->orientation()->isVerticalTimeline()) + m_xsheetViewer->flipOrientation(); +} + +//============================================================================= +// TimelineViewerFactory //----------------------------------------------------------------------------- class TimelineViewerFactory final : public TPanelFactory { public: TimelineViewerFactory() : TPanelFactory("Timeline") {} - void initialize(TPanel *panel) override { - panel->setWidget(new XsheetViewer(panel)); - XsheetViewer *xsh = (XsheetViewer *)panel->widget(); - xsh->flipOrientation(); + + TPanel *createPanel(QWidget *parent) override { + TimelineViewerPanel *panel = new TimelineViewerPanel(parent); + panel->setObjectName(getPanelType()); + panel->reset(); panel->resize(500, 300); panel->getTitleBar()->showTitleBar(TApp::instance()->getShowTitleBars()); connect(TApp::instance(), SIGNAL(showTitleBars(bool)), panel->getTitleBar(), SLOT(showTitleBar(bool))); + return panel; } + + void initialize(TPanel *panel) override {} } timelineViewerFactory; +//============================================================================= +// TimelineViewer +//----------------------------------------------------------------------------- + +TimelineViewerPanel::TimelineViewerPanel(QWidget *parent) : TPanel(parent) { + m_timelineViewer = new XsheetViewer(this); + setWidget(m_timelineViewer); +} + +void TimelineViewerPanel::reset() { + if (m_timelineViewer->orientation()->isVerticalTimeline()) + m_timelineViewer->flipOrientation(); +} + //============================================================================= // SchematicSceneViewer //----------------------------------------------------------------------------- diff --git a/toonz/sources/toonz/tpanels.h b/toonz/sources/toonz/tpanels.h index f293a0fb..9643175f 100644 --- a/toonz/sources/toonz/tpanels.h +++ b/toonz/sources/toonz/tpanels.h @@ -32,6 +32,7 @@ class FxSettings; class VectorGuidedDrawingPane; class FxSelection; class StageObjectSelection; +class XsheetViewer; //========================================================= // PaletteViewerPanel @@ -338,4 +339,34 @@ public: VectorGuidedDrawingPanel(QWidget *parent); }; +//========================================================= +// XsheetViewerPanel +//--------------------------------------------------------- + +class XsheetViewerPanel final : public TPanel { + Q_OBJECT + + XsheetViewer *m_xsheetViewer; + +public: + XsheetViewerPanel(QWidget *parent = 0); + + void reset() override; +}; + +//========================================================= +// TimelineViewerPanel +//--------------------------------------------------------- + +class TimelineViewerPanel final : public TPanel { + Q_OBJECT + + XsheetViewer *m_timelineViewer; + +public: + TimelineViewerPanel(QWidget *parent = 0); + + void reset() override; +}; + #endif