ui: toggling view visibility from the view menu
This commit is contained in:
@@ -17,6 +17,22 @@
|
||||
class QDockWidget;
|
||||
class View;
|
||||
|
||||
class QtViewToggle
|
||||
: public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QtViewToggle(View* view, QWidget *parent = nullptr);
|
||||
|
||||
public slots:
|
||||
void toggledByAction();
|
||||
void toggledByUI();
|
||||
|
||||
private:
|
||||
View* m_view;
|
||||
};
|
||||
|
||||
class QtMainWindow: public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -66,9 +82,19 @@ public slots:
|
||||
void zoomOut();
|
||||
void switchColorScheme();
|
||||
|
||||
void toggleView(View* view, bool fromMenu);
|
||||
|
||||
void handleEscapeShortcut();
|
||||
|
||||
private:
|
||||
struct DockWidget
|
||||
{
|
||||
QDockWidget* widget;
|
||||
View* view;
|
||||
QAction* action;
|
||||
QtViewToggle* toggle;
|
||||
};
|
||||
|
||||
void setupEditMenu();
|
||||
void setupProjectMenu();
|
||||
void setupViewMenu();
|
||||
@@ -76,7 +102,11 @@ private:
|
||||
|
||||
void setupShortcuts();
|
||||
|
||||
QDockWidget* getDockWidgetForView(View* view) const;
|
||||
DockWidget* getDockWidgetForView(View* view);
|
||||
|
||||
std::vector<DockWidget> m_dockWidgets;
|
||||
QMenu* m_viewMenu;
|
||||
QAction* m_viewSeparator;
|
||||
|
||||
std::shared_ptr<QtApplicationSettingsScreen> m_applicationSettingsScreen;
|
||||
std::shared_ptr<QtStartScreen> m_startScreen;
|
||||
@@ -84,8 +114,6 @@ private:
|
||||
std::shared_ptr<QtAboutLicense> m_licenseWindow;
|
||||
std::shared_ptr<QtAbout> m_aboutWindow;
|
||||
|
||||
std::vector<std::pair<View*, QDockWidget*>> m_dockWidgets;
|
||||
|
||||
QShortcut* m_escapeShortcut;
|
||||
|
||||
bool m_startScreenWasVisible;
|
||||
|
||||
Reference in New Issue
Block a user