Overte C++ Documentation
DialogsManager.h
1 //
2 // DialogsManager.h
3 // interface/src/ui
4 //
5 // Created by Clement on 1/18/15.
6 // Copyright 2015 High Fidelity, Inc.
7 // Copyright 2020 Vircadia contributors.
8 //
9 // Distributed under the Apache License, Version 2.0.
10 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
11 //
12 
13 #ifndef hifi_DialogsManager_h
14 #define hifi_DialogsManager_h
15 
16 #include <QPointer>
17 
18 #include <DependencyManager.h>
19 
20 #include "HMDToolsDialog.h"
21 #include "TestingDialog.h"
22 
23 class LodToolsDialog;
24 class OctreeStatsDialog;
25 class ScriptEditorWindow;
26 class TestingDialog;
27 class DomainConnectionDialog;
28 
29 class DialogsManager : public QObject, public Dependency {
30  Q_OBJECT
31  SINGLETON_DEPENDENCY
32 
33 public:
34  QPointer<HMDToolsDialog> getHMDToolsDialog() const { return _hmdToolsDialog; }
35  QPointer<LodToolsDialog> getLodToolsDialog() const { return _lodToolsDialog; }
36  QPointer<OctreeStatsDialog> getOctreeStatsDialog() const { return _octreeStatsDialog; }
37  QPointer<TestingDialog> getTestingDialog() const { return _testingDialog; }
38  void emitAddressBarShown(bool visible) { emit addressBarShown(visible); }
39  void setAddressBarVisible(bool addressBarVisible);
40  void setMetaverseLoginState();
41  void setDomainLoginState();
42  bool getIsDomainLogin() { return _isDomainLogin; }
43  QString getDomainLoginDomain() { return _domainLoginDomain; }
44 
45 public slots:
46  void showAddressBar();
47  void hideAddressBar();
48  void showFeed();
49  void setDomainConnectionFailureVisibility(bool visible);
50  void toggleLoginDialog();
51  void showLoginDialog();
52  void hideLoginDialog();
53  void showDomainLoginDialog(const QString& domain = "");
54  void octreeStatsDetails();
55  void lodTools();
56  void hmdTools(bool showTools);
57  void showDomainConnectionDialog();
58  void toggleAddressBar();
59 
60  // Application Update
61  void showUpdateDialog();
62 
63 signals:
64  void addressBarShown(bool visible);
65  void setUseFeed(bool useFeed);
66 
67 private slots:
68  void hmdToolsClosed();
69 
70 private:
71  DialogsManager() {}
72 
73  template<typename T>
74  void maybeCreateDialog(QPointer<T>& member);
75 
76  QPointer<HMDToolsDialog> _hmdToolsDialog;
77  QPointer<LodToolsDialog> _lodToolsDialog;
78  QPointer<OctreeStatsDialog> _octreeStatsDialog;
79  QPointer<TestingDialog> _testingDialog;
80  QPointer<DomainConnectionDialog> _domainConnectionDialog;
81  bool _dialogCreatedWhileShown { false };
82  bool _addressBarVisible { false };
83 
84  void setDomainLogin(bool isDomainLogin, const QString& domain = "");
85  bool _isDomainLogin { false };
86  QString _domainLoginDomain;
87 };
88 
89 #endif // hifi_DialogsManager_h