Fix reopening config button when closing

This commit is contained in:
manongjohn 2023-03-10 08:14:02 -05:00
parent fc207ebefc
commit 31aa0e1fbc
2 changed files with 34 additions and 1 deletions

View file

@ -1923,9 +1923,15 @@ using namespace DVGui;
ColumnTransparencyPopup::ColumnTransparencyPopup(XsheetViewer *viewer,
QWidget *parent)
: QWidget(parent, Qt::Popup), m_viewer(viewer), m_lockBtn(nullptr) {
: QWidget(parent, Qt::Popup)
, m_viewer(viewer)
, m_lockBtn(nullptr)
, m_keepClosed(false) {
setFixedWidth(8 + 78 + 8 + 100 + 8 + 8 + 8 + 7);
m_keepClosedTimer = new QTimer(this);
m_keepClosedTimer->setSingleShot(true);
m_slider = new QSlider(Qt::Horizontal, this);
m_slider->setMinimum(1);
m_slider->setMaximum(100);
@ -2019,6 +2025,9 @@ m_value->setFont(font);*/
ret = ret && connect(m_lockBtn, SIGNAL(clicked(bool)), this,
SLOT(onLockButtonClicked(bool)));
ret = ret && connect(m_keepClosedTimer, SIGNAL(timeout()), this,
SLOT(resetKeepClosed()));
assert(ret);
}
@ -2106,6 +2115,16 @@ void ColumnTransparencyPopup::mouseReleaseEvent(QMouseEvent *e) {
// hide();
}
void ColumnTransparencyPopup::hideEvent(QHideEvent *e) {
m_keepClosedTimer->start(300);
m_keepClosed = true;
}
void ColumnTransparencyPopup::resetKeepClosed() {
if (m_keepClosedTimer) m_keepClosedTimer->stop();
m_keepClosed = false;
}
//------------------------------------------------------------------------------
SoundColumnPopup::SoundColumnPopup(QWidget *parent)
@ -2214,6 +2233,10 @@ void ColumnArea::openTransparencyPopup() {
TXshColumn *column = m_viewer->getXsheet()->getColumn(m_col);
if (!column || column->isEmpty()) return;
if (m_columnTransparencyPopup->getcolumn() == column &&
m_columnTransparencyPopup->isKeepClosed())
return;
if (!column->isCamstandVisible()) {
column->setCamstandVisible(true);
TApp::instance()->getCurrentScene()->notifySceneChanged();

View file

@ -222,13 +222,21 @@ class ColumnTransparencyPopup final : public QWidget {
XsheetViewer *m_viewer;
QPushButton *m_lockBtn;
QTimer *m_keepClosedTimer;
bool m_keepClosed;
public:
ColumnTransparencyPopup(XsheetViewer *viewer, QWidget *parent);
void setColumn(TXshColumn *column);
TXshColumn *getcolumn() { return m_column; }
bool isKeepClosed() { return m_keepClosed; }
void setKeepClosed(bool keepClosed) { m_keepClosed = keepClosed; }
protected:
// void mouseMoveEvent ( QMouseEvent * e );
void mouseReleaseEvent(QMouseEvent *e) override;
void hideEvent(QHideEvent *e) override;
protected slots:
void onSliderReleased();
@ -238,6 +246,8 @@ protected slots:
void onFilterColorChanged(int id);
void onLockButtonClicked(bool on);
void resetKeepClosed();
};
class SoundColumnPopup final : public QWidget {