Fix reopening config button when closing
This commit is contained in:
parent
fc207ebefc
commit
31aa0e1fbc
2 changed files with 34 additions and 1 deletions
|
@ -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();
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in a new issue