use new class in old code

This commit is contained in:
RickyRister 2026-01-15 22:55:24 -08:00
parent 012fcbd771
commit b9393aaa2c
2 changed files with 4 additions and 35 deletions

View file

@ -18,6 +18,7 @@
#include "../interface/widgets/dialogs/dlg_load_deck.h"
#include "../interface/widgets/dialogs/dlg_load_deck_from_clipboard.h"
#include "../interface/widgets/dialogs/dlg_load_deck_from_website.h"
#include "../utility/visibility_change_listener.h"
#include "tab_supervisor.h"
#include <QAction>
@ -100,7 +101,9 @@ void AbstractTabDeckEditor::registerDockWidget(QMenu *_viewMenu, QDockWidget *wi
[aFloating](bool topLevel) { aFloating->setChecked(topLevel); });
// sync aVisible with dockWidget's visible state
widget->installEventFilter(new DockWidgetVisibilityFilter(widget, aVisible));
auto filter = new VisibilityChangeListener(widget);
connect(filter, &VisibilityChangeListener::visibilityChanged, aVisible,
[aVisible](bool visible) { aVisible->setChecked(visible); });
dockToActions.insert(widget, {menu, aVisible, aFloating});
}
@ -608,22 +611,3 @@ bool AbstractTabDeckEditor::closeRequest()
return false;
return close();
}
DockWidgetVisibilityFilter::DockWidgetVisibilityFilter(QDockWidget *dockWidget, QAction *aVisible)
: QObject(dockWidget), dockWidget(dockWidget), aVisible(aVisible)
{
}
bool DockWidgetVisibilityFilter::eventFilter(QObject *o, QEvent *e)
{
if (o == dockWidget && !e->spontaneous()) {
if (e->type() == QEvent::Show) {
aVisible->setChecked(true);
}
if (e->type() == QEvent::Hide) {
aVisible->setChecked(false);
}
}
return false;
}

View file

@ -307,19 +307,4 @@ protected:
QMap<QDockWidget *, DockActions> dockToActions;
};
/**
* This filter syncs the dock widget's visibility with the viewMenu visibility action's check state.
*/
class DockWidgetVisibilityFilter : public QObject
{
Q_OBJECT
QDockWidget *dockWidget;
QAction *aVisible;
public:
explicit DockWidgetVisibilityFilter(QDockWidget *dockWidget, QAction *aVisible);
bool eventFilter(QObject *o, QEvent *e) override;
};
#endif // TAB_GENERIC_DECK_EDITOR_H