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 AnimationsDialog;
24 class AttachmentsDialog;
25 class CachesSizeDialog;
26 class LodToolsDialog;
27 class OctreeStatsDialog;
28 class ScriptEditorWindow;
29 class TestingDialog;
30 class QMessageBox;
31 class DomainConnectionDialog;
32 
33 class DialogsManager : public QObject, public Dependency {
34  Q_OBJECT
35  SINGLETON_DEPENDENCY
36 
37 public:
38  QPointer<HMDToolsDialog> getHMDToolsDialog() const { return _hmdToolsDialog; }
39  QPointer<LodToolsDialog> getLodToolsDialog() const { return _lodToolsDialog; }
40  QPointer<OctreeStatsDialog> getOctreeStatsDialog() const { return _octreeStatsDialog; }
41  QPointer<TestingDialog> getTestingDialog() const { return _testingDialog; }
42  void emitAddressBarShown(bool visible) { emit addressBarShown(visible); }
43  void setAddressBarVisible(bool addressBarVisible);
44  void setMetaverseLoginState();
45  void setDomainLoginState();
46  bool getIsDomainLogin() { return _isDomainLogin; }
47  QString getDomainLoginDomain() { return _domainLoginDomain; }
48 
49 public slots:
50  void showAddressBar();
51  void hideAddressBar();
52  void showFeed();
53  void setDomainConnectionFailureVisibility(bool visible);
54  void toggleLoginDialog();
55  void showLoginDialog();
56  void hideLoginDialog();
57  void showDomainLoginDialog(const QString& domain = "");
58  void octreeStatsDetails();
59  void lodTools();
60  void hmdTools(bool showTools);
61  void showDomainConnectionDialog();
62  void toggleAddressBar();
63 
64  // Application Update
65  void showUpdateDialog();
66 
67 signals:
68  void addressBarShown(bool visible);
69  void setUseFeed(bool useFeed);
70 
71 private slots:
72  void hmdToolsClosed();
73 
74 private:
75  DialogsManager() {}
76 
77  template<typename T>
78  void maybeCreateDialog(QPointer<T>& member);
79 
80  QPointer<AnimationsDialog> _animationsDialog;
81  QPointer<AttachmentsDialog> _attachmentsDialog;
82  QPointer<CachesSizeDialog> _cachesSizeDialog;
83  QPointer<QMessageBox> _ircInfoBox;
84  QPointer<HMDToolsDialog> _hmdToolsDialog;
85  QPointer<LodToolsDialog> _lodToolsDialog;
86  QPointer<OctreeStatsDialog> _octreeStatsDialog;
87  QPointer<TestingDialog> _testingDialog;
88  QPointer<DomainConnectionDialog> _domainConnectionDialog;
89  bool _dialogCreatedWhileShown { false };
90  bool _addressBarVisible { false };
91 
92  void setDomainLogin(bool isDomainLogin, const QString& domain = "");
93  bool _isDomainLogin { false };
94  QString _domainLoginDomain;
95 };
96 
97 #endif // hifi_DialogsManager_h