diff --git a/toonz/sources/toonz/pane.cpp b/toonz/sources/toonz/pane.cpp index 51a2a90d..959b5bac 100644 --- a/toonz/sources/toonz/pane.cpp +++ b/toonz/sources/toonz/pane.cpp @@ -48,7 +48,6 @@ TPanel::TPanel(QWidget *parent, Qt::WindowFlags flags, , m_panelType("") , m_isMaximizable(true) , m_isMaximized(false) - , m_isActive(true) , m_panelTitleBar(0) , m_multipleInstancesAllowed(true) { // setFeatures(QDockWidget::DockWidgetMovable | @@ -86,15 +85,6 @@ TPanel::~TPanel() { //----------------------------------------------------------------------------- -void TPanel::setActive(bool value) { - m_isActive = value; - if (m_panelTitleBar) { - m_panelTitleBar->setIsActive(m_isActive); - } -} - -//----------------------------------------------------------------------------- - void TPanel::paintEvent(QPaintEvent *e) { QPainter painter(this); @@ -430,7 +420,7 @@ void TPanelTitleBarButtonSet::select(TPanelTitleBarButton *button) { TPanelTitleBar::TPanelTitleBar(QWidget *parent, TDockWidget::Orientation orientation) - : QFrame(parent), m_isActive(true), m_closeButtonHighlighted(false) { + : QFrame(parent), m_closeButtonHighlighted(false) { setMouseTracking(true); setFocusPolicy(Qt::NoFocus); setCursor(Qt::ArrowCursor); @@ -438,13 +428,6 @@ TPanelTitleBar::TPanelTitleBar(QWidget *parent, //----------------------------------------------------------------------------- -void TPanelTitleBar::setIsActive(bool value) { - if (m_isActive == value) return; - m_isActive = value; -} - -//----------------------------------------------------------------------------- - QSize TPanelTitleBar::minimumSizeHint() const { return QSize(20, 18); } //----------------------------------------------------------------------------- diff --git a/toonz/sources/toonz/pane.h b/toonz/sources/toonz/pane.h index bdc5c601..969e62dc 100644 --- a/toonz/sources/toonz/pane.h +++ b/toonz/sources/toonz/pane.h @@ -135,7 +135,6 @@ signals: class TPanelTitleBar final : public QFrame { Q_OBJECT - bool m_isActive; bool m_closeButtonHighlighted; std::vector> m_buttons; @@ -149,9 +148,6 @@ public: QSize sizeHint() const override { return minimumSizeHint(); } QSize minimumSizeHint() const override; - void setIsActive(bool value); - bool isActive() { return m_isActive; } - // pos = widget position. n.b. if pos.x()<0 then origin is topright corner void add(const QPoint &pos, QWidget *widget); @@ -219,7 +215,6 @@ class TPanel : public TDockWidget { std::string m_panelType; bool m_isMaximizable; bool m_isMaximized; - bool m_isActive; bool m_multipleInstancesAllowed; TPanelTitleBar *m_panelTitleBar; @@ -243,9 +238,6 @@ public: QList getHiddenDockWidget() const { return m_hiddenDockWidgets; } QByteArray getSavedOldState() const { return m_currentRoomOldState; } - bool isActive() { return m_isActive; } - void setActive(bool value); - // void setTitleBarWidget(TPanelTitleBar *newTitleBar); // si riferisce a istanze multiple dei pannelli floating; default = true diff --git a/toonz/sources/toonz/tpanels.cpp b/toonz/sources/toonz/tpanels.cpp index 72b1ce82..547f6b99 100644 --- a/toonz/sources/toonz/tpanels.cpp +++ b/toonz/sources/toonz/tpanels.cpp @@ -428,7 +428,7 @@ public: //----------------------------------------------------------------------------- PaletteViewerPanel::PaletteViewerPanel(QWidget *parent) - : StyleShortcutSwitchablePanel(parent) { + : StyleShortcutSwitchablePanel(parent), m_isFrozen(false) { m_paletteHandle = new TPaletteHandle(); connect(m_paletteHandle, SIGNAL(colorStyleSwitched()), SLOT(onColorStyleSwitched())); @@ -470,19 +470,20 @@ int PaletteViewerPanel::getViewType() { return m_paletteViewer->getViewMode(); } void PaletteViewerPanel::reset() { m_paletteViewer->setPaletteHandle( TApp::instance()->getPaletteController()->getCurrentLevelPalette()); - m_isCurrentButton->setPressed(true); - setActive(true); + m_freezeButton->setPressed(false); + setFrozen(false); } //----------------------------------------------------------------------------- void PaletteViewerPanel::initializeTitleBar() { - m_isCurrentButton = new TPanelTitleBarButton( - getTitleBar(), svgToPixmap(getIconThemePath("actions/18/switch.svg"))); - getTitleBar()->add(QPoint(-54, 0), m_isCurrentButton); - m_isCurrentButton->setPressed(true); - connect(m_isCurrentButton, SIGNAL(toggled(bool)), - SLOT(onCurrentButtonToggled(bool))); + m_freezeButton = new TPanelTitleBarButton( + getTitleBar(), getIconThemePath("actions/20/pane_freeze.svg")); + m_freezeButton->setToolTip("Freeze"); + getTitleBar()->add(QPoint(-54, 0), m_freezeButton); + m_freezeButton->setPressed(m_isFrozen); + connect(m_freezeButton, SIGNAL(toggled(bool)), + SLOT(onFreezeButtonToggled(bool))); } //----------------------------------------------------------------------------- @@ -499,23 +500,23 @@ void PaletteViewerPanel::onPaletteSwitched() { //----------------------------------------------------------------------------- -void PaletteViewerPanel::onCurrentButtonToggled(bool isCurrent) { - if (isActive() == isCurrent) return; +void PaletteViewerPanel::onFreezeButtonToggled(bool frozen) { + if (isFrozen() == frozen) return; TApp *app = TApp::instance(); TPaletteHandle *ph = app->getPaletteController()->getCurrentLevelPalette(); // Se sono sulla palette del livello corrente e le palette e' vuota non // consento di bloccare il pannello. - if (isActive() && !ph->getPalette()) { - m_isCurrentButton->setPressed(true); - return; + if (!isFrozen() && !ph->getPalette()) { + m_freezeButton->setPressed(false); + return; } - setActive(isCurrent); - m_paletteViewer->enableSaveAction(isCurrent); + setFrozen(frozen); + m_paletteViewer->enableSaveAction(!frozen); // Cambio il livello corrente - if (isCurrent) { + if (!frozen) { std::set levels; TXsheet *xsheet = app->getCurrentXsheet()->getXsheet(); int row, column; @@ -558,14 +559,14 @@ void PaletteViewerPanel::onCurrentButtonToggled(bool isCurrent) { void PaletteViewerPanel::onSceneSwitched() { // Se e' il paletteHandle del livello corrente l'aggiornamento viene fatto // grazie all'aggiornamento del livello. - if (isActive()) return; + if (!isFrozen()) return; // Setto a zero la palette del "paletteHandle bloccato". m_paletteHandle->setPalette(0); // Sblocco il viewer nel caso in cui il e' bloccato. - if (!isActive()) { - setActive(true); - m_isCurrentButton->setPressed(true); + if (isFrozen()) { + setFrozen(false); + m_freezeButton->setPressed(false); m_paletteViewer->setPaletteHandle( TApp::instance()->getPaletteController()->getCurrentLevelPalette()); } diff --git a/toonz/sources/toonz/tpanels.h b/toonz/sources/toonz/tpanels.h index 8dad334b..a11be394 100644 --- a/toonz/sources/toonz/tpanels.h +++ b/toonz/sources/toonz/tpanels.h @@ -40,8 +40,8 @@ class PaletteViewerPanel final : public StyleShortcutSwitchablePanel { TPaletteHandle *m_paletteHandle; PaletteViewer *m_paletteViewer; - TPanelTitleBarButton *m_isCurrentButton; - bool m_isCurrent; + TPanelTitleBarButton* m_freezeButton; + bool m_isFrozen; public: PaletteViewerPanel(QWidget *parent); @@ -51,6 +51,9 @@ public: void reset() override; + bool isFrozen() { return m_isFrozen; } + void setFrozen(bool frozen) { m_isFrozen = frozen; } + protected: void initializeTitleBar(); bool isActivatableOnEnter() override { return true; } @@ -58,7 +61,7 @@ protected: protected slots: void onColorStyleSwitched(); void onPaletteSwitched(); - void onCurrentButtonToggled(bool isCurrent); + void onFreezeButtonToggled(bool isFrozen); void onSceneSwitched(); };