Changes palette active button to a pause button by shun-iwasawa (#191)

This commit is contained in:
Jeremy Bullock 2020-09-22 14:45:58 -06:00 committed by GitHub
parent a4f7ab9b6e
commit 6ca8901aec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 29 additions and 50 deletions

View file

@ -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); }
//-----------------------------------------------------------------------------

View file

@ -135,7 +135,6 @@ signals:
class TPanelTitleBar final : public QFrame {
Q_OBJECT
bool m_isActive;
bool m_closeButtonHighlighted;
std::vector<std::pair<QPoint, QWidget *>> 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<TPanel *> 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

View file

@ -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<TXshSimpleLevel *> 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());
}

View file

@ -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();
};