12 #ifndef hifi_HMDToolsDialog_h
13 #define hifi_HMDToolsDialog_h
17 class HMDWindowWatcher;
20 class HMDToolsDialog :
public QDialog {
24 HMDToolsDialog(QWidget* parent);
27 QString getDebugDetails()
const;
28 QScreen* getHMDScreen()
const {
return _hmdScreen; }
29 QScreen* getLastApplicationScreen()
const {
return _previousScreen; }
30 bool hasHMDScreen()
const {
return _hmdScreenNumber >= -1; }
31 void watchWindow(QWindow* window);
37 void reject()
override;
38 void screenCountChanged();
41 virtual void closeEvent(QCloseEvent*)
override;
42 virtual void showEvent(QShowEvent* event)
override;
43 virtual void hideEvent(QHideEvent* event)
override;
46 void centerCursorOnWidget(QWidget* widget);
52 QScreen* _previousScreen{
nullptr };
53 QScreen* _hmdScreen{
nullptr };
54 int _hmdScreenNumber{ -1 };
55 QPushButton* _switchModeButton{
nullptr };
56 QLabel* _debugDetails{
nullptr };
58 QRect _previousDialogRect;
59 QScreen* _previousDialogScreen{
nullptr };
60 QString _hmdPluginName;
61 QString _defaultPluginName;
63 QHash<QWindow*, HMDWindowWatcher*> _windowWatchers;
64 friend class HMDWindowWatcher;
68 class HMDWindowWatcher :
public QObject {
72 HMDWindowWatcher(QWindow* window, HMDToolsDialog* hmdTools);
76 void windowScreenChanged(QScreen* screen);
77 void windowGeometryChanged(
int arg);
81 HMDToolsDialog* _hmdTools;
83 QScreen* _previousScreen;