ui: toggling view visibility from the view menu

This commit is contained in:
Eberhard Graether
2015-09-11 18:03:44 +02:00
parent 6e835bd5f5
commit fb5316cb7f
2 changed files with 101 additions and 17 deletions
+31 -3
View File
@@ -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;