VR-Engage  2.2
Loading...
Searching...
No Matches
helpMenuItems.h
Go to the documentation of this file.
1/******************************************************************************
2** Copyright (c) 2025 MAK Technologies
3** All rights reserved.
4******************************************************************************/
5
6//! \file helpMenuItems.h
7//! \brief Defines specialized menu items for the VR-Engage help system
8//!
9//! This file contains a collection of menu item classes used in the VR-Engage
10//! help system. These include about boxes, help viewers, documentation links,
11//! and other support resources accessible from the application's help menu.
12//! These classes customize the base VR-Vantage help items for VR-Engage's
13//! specific documentation and branding.
14
15#pragma once
16
18
19#include <vrvCoreQt/DtMenuItem.h>
20#include <vrvCoreQt/DtHelpItems.h>
21#include <vrvCoreQt/DtAboutBox.h>
22#include <QtCore/QProcess>
23
24namespace makVrv
25{
26class DtMenuItem;
27class DtDe;
28} // namespace makVrv
29
30//! \brief Customized About dialog menu item for VR-Engage
31//!
32//! DtVreAboutItem overrides the standard VR-Vantage about item to customize
33//! the version label in the about box. It changes the label from "Version:" to
34//! "Built on:" to better reflect that VR-Engage is built on top of the VR-Vantage
35//! platform.
36//!
37//! This class is used in the Help menu to display information about the VR-Engage
38//! application, including version, build date, and copyright information.
39class PLAYERSTATION_DLL DtVreAboutItem : public makVrv::DtAboutItem
40{
41public:
42 //! \brief Constructor
43 //! \param de Reference to the display engine
44 //!
45 //! Creates a new about item associated with the specified display engine.
46 DtVreAboutItem(makVrv::DtDe& de);
47
48 //! \brief Virtual destructor
49 //!
50 //! Ensures proper cleanup of derived about item classes.
51 virtual ~DtVreAboutItem() override;
52
53protected:
54 //! \brief Handles activation of the about menu item
55 //!
56 //! Override to change text from "Version: " to "Built on: "
57 //! This makes more sense given that we're building VR-Engage on top of VR-Vantage.
58 //! Called when the user selects the About item from the Help menu.
59 virtual void on_triggered() override;
60};
61
62//! \brief Customized About dialog box for VR-Engage
63//!
64//! DtVreAboutBox provides a customized version of the VR-Vantage about box
65//! with VR-Engage specific branding, version information, and appearance.
66//! It displays information about the application including version, copyright,
67//! build date, and credits.
68class PLAYERSTATION_DLL DtVreAboutBox : public makVrv::DtAboutBox
69{
70 Q_OBJECT
71
72public:
73 //! \brief Constructor
74 //! \param igApp Reference to the VR-Vantage application
75 //! \param parent Parent widget (default: null)
76 //! \param f Window flags (default: 0)
77 //!
78 //! Creates a new about box dialog with VR-Engage branding and information.
79 DtVreAboutBox(makVrv::DtVrvApplication& igApp, QWidget* parent = nullptr, Qt::WindowFlags f = 0);
80
81 //! \brief Virtual destructor
82 //!
83 //! Ensures proper cleanup of dialog resources.
84 virtual ~DtVreAboutBox() override;
85
86protected:
87 //! \brief Path to the about box background image
88 //!
89 //! Static file path to the custom background image used in the VR-Engage about box.
90 static DtFilename theAboutBoxImage;
91};
92
93
94//! \brief Menu item for launching online help
95//!
96//! DtVreHelpItem provides a menu item for accessing the VR-Engage online help system.
97//! When triggered, it launches Qt Assistant with the VR-Engage help collection.
98//! This class handles launching the help viewer, tracking its process, and handling
99//! any errors that may occur during the help system operation.
100class PLAYERSTATION_DLL DtVreHelpItem : public makVrv::DtMenuItem
101{
102 Q_OBJECT
103public:
104 //! \brief Constructor
105 //! \param de Reference to the display engine
106 //!
107 //! Creates a new help menu item associated with the specified display engine.
108 DtVreHelpItem(makVrv::DtDe& de);
109
110 //! \brief Virtual destructor
111 //!
112 //! Ensures proper cleanup of resources and terminates any running help processes.
113 virtual ~DtVreHelpItem() override;
114
115 //! \brief Creates an action for this menu item
116 //! \param de Reference to the display engine
117 //! \param parent Parent widget that will own the action
118 //! \return Pointer to the created action
119 //!
120 //! Builds and returns a QAction that represents this menu item in the UI.
121 //! The action includes the appropriate icon, text, and connection to the
122 //! menu item's functionality.
123 virtual QAction* createAction(makVrv::DtDe&, QWidget* parent) override;
124
125protected slots:
126 //! \brief Handles errors from the help process
127 //! \param error The process error that occurred
128 //!
129 //! Called when an error occurs in the Qt Assistant process.
130 //! Displays an appropriate error message to the user.
131 void displayError(QProcess::ProcessError error);
132
133 //! \brief Handles help viewer termination
134 //!
135 //! Called when the Qt Assistant process closes or crashes.
136 //! Cleans up resources associated with the help viewer.
137 virtual void deleteAssistant();
138
139protected:
140 //! \brief Handles menu item activation
141 //!
142 //! Called when the user selects the help menu item. Launches the
143 //! Qt Assistant with the VR-Engage help collection.
144 virtual void on_triggered() override;
145
146 //! \brief Action representing this menu item
147 QAction* myAction;
148
149 //! \brief Reference to the display engine
150 makVrv::DtDe& myDe;
151};
152
153//! \brief Menu item for accessing controls mapping documentation
154//!
155//! DtVreControlsMappingMenuItem provides a menu item for accessing documentation
156//! about control mappings in VR-Engage. When triggered, it opens a web link to
157//! the controls mapping documentation, which shows how input devices (keyboard,
158//! mouse, controllers) are mapped to actions in the application.
159class PLAYERSTATION_DLL DtVreControlsMappingMenuItem : public makVrv::DtWebLinkMenuItem
160{
161 Q_OBJECT
162public:
163 //! \brief Constructor
164 //! \param de Reference to the display engine
165 //!
166 //! Creates a new controls mapping menu item associated with the specified display engine.
168
169 //! \brief Virtual destructor
170 //!
171 //! Ensures proper cleanup of resources.
173
174 //! \brief Creates an action for this menu item
175 //! \param de Reference to the display engine
176 //! \param parent Parent widget that will own the action
177 //! \return Pointer to the created action
178 //!
179 //! Builds and returns a QAction that represents this menu item in the UI.
180 //! The action includes the appropriate icon, text, and connection to the
181 //! menu item's functionality.
182 virtual QAction* createAction(makVrv::DtDe&, QWidget* parent) override;
183
184protected:
185 //! \brief Handles menu item activation
186 //!
187 //! Called when the user selects the controls mapping menu item.
188 //! Opens the controls mapping documentation in the default web browser.
189 virtual void on_triggered() override;
190
191 //! \brief Action representing this menu item
192 QAction* myAction;
193
194 //! \brief Reference to the display engine
195 makVrv::DtDe& myDe;
196};
197
198//! \brief Menu item for accessing the VR-Engage website
199//!
200//! DtVreVersionWebSiteMenuItem provides a menu item for accessing the official
201//! VR-Engage product website. When triggered, it opens the website in the default
202//! web browser, providing access to additional product information, downloads,
203//! and support resources.
204class PLAYERSTATION_DLL DtVreVersionWebSiteMenuItem : public makVrv::DtWebLinkMenuItem
205{
206 Q_OBJECT
207public:
208 //! \brief Constructor
209 //! \param de Reference to the display engine
210 //!
211 //! Creates a new website menu item associated with the specified display engine.
213
214 //! \brief Virtual destructor
215 //!
216 //! Ensures proper cleanup of resources.
218
219 //! \brief Creates an action for this menu item
220 //! \param de Reference to the display engine
221 //! \param parent Parent widget that will own the action
222 //! \return Pointer to the created action
223 //!
224 //! Builds and returns a QAction that represents this menu item in the UI.
225 //! The action includes the appropriate icon, text, and connection to the
226 //! menu item's functionality.
227 virtual QAction* createAction(makVrv::DtDe&, QWidget* parent) override;
228};
229
230//! \brief Menu item for accessing release notes
231//!
232//! DtVreReleaseNotesMenuItem provides a menu item for accessing the VR-Engage
233//! release notes. When triggered, it opens the release notes document in the
234//! default web browser, providing information about new features, bug fixes,
235//! and other changes in the current version of the application.
236class PLAYERSTATION_DLL DtVreReleaseNotesMenuItem : public makVrv::DtWebLinkMenuItem
237{
238 Q_OBJECT
239public:
240 //! \brief Constructor
241 //! \param de Reference to the display engine
242 //!
243 //! Creates a new release notes menu item associated with the specified display engine.
245
246 //! \brief Virtual destructor
247 //!
248 //! Ensures proper cleanup of resources.
249 virtual ~DtVreReleaseNotesMenuItem() override;
250
251 //! \brief Creates an action for this menu item
252 //! \param de Reference to the display engine
253 //! \param parent Parent widget that will own the action
254 //! \return Pointer to the created action
255 //!
256 //! Builds and returns a QAction that represents this menu item in the UI.
257 //! The action includes the appropriate icon, text, and connection to the
258 //! menu item's functionality.
259 virtual QAction* createAction(makVrv::DtDe&, QWidget* parent) override;
260};
261
262//! \brief Menu item for accessing first experience guide
263//!
264//! DtVreFirstExperienceMenuItem provides a menu item for accessing the "First Experience"
265//! guide for VR-Engage. When triggered, it opens the first experience guide document
266//! in the default web browser, providing new users with a step-by-step introduction
267//! to the basic features and workflow of the application.
268class PLAYERSTATION_DLL DtVreFirstExperienceMenuItem : public makVrv::DtWebLinkMenuItem
269{
270 Q_OBJECT
271public:
272 //! \brief Constructor
273 //! \param de Reference to the display engine
274 //!
275 //! Creates a new first experience guide menu item associated with the specified display engine.
277
278 //! \brief Virtual destructor
279 //!
280 //! Ensures proper cleanup of resources.
282
283 //! \brief Creates an action for this menu item
284 //! \param de Reference to the display engine
285 //! \param parent Parent widget that will own the action
286 //! \return Pointer to the created action
287 //!
288 //! Builds and returns a QAction that represents this menu item in the UI.
289 //! The action includes the appropriate icon, text, and connection to the
290 //! menu item's functionality.
291 virtual QAction* createAction(makVrv::DtDe&, QWidget* parent) override;
292};
293
294//! \brief Menu item for accessing the VR-Engage User's Guide
295//!
296//! DtVreUsersGuideMenuItem provides a menu item for accessing the comprehensive
297//! User's Guide for VR-Engage. When triggered, it opens the User's Guide document
298//! in the default web browser. The User's Guide contains detailed documentation
299//! on all features, workflows, and components of the application.
300class PLAYERSTATION_DLL DtVreUsersGuideMenuItem : public makVrv::DtWebLinkMenuItem
301{
302 Q_OBJECT
303public:
304 //! \brief Constructor
305 //! \param de Reference to the display engine
306 //!
307 //! Creates a new User's Guide menu item associated with the specified display engine.
309
310 //! \brief Virtual destructor
311 //!
312 //! Ensures proper cleanup of resources.
313 virtual ~DtVreUsersGuideMenuItem() override;
314
315 //! \brief Creates an action for this menu item
316 //! \param de Reference to the display engine
317 //! \param parent Parent widget that will own the action
318 //! \return Pointer to the created action
319 //!
320 //! Builds and returns a QAction that represents this menu item in the UI.
321 //! The action includes the appropriate icon, text, and connection to the
322 //! menu item's functionality.
323 virtual QAction* createAction(makVrv::DtDe&, QWidget* parent) override;
324};
325
326//! \brief Menu item for displaying information about loaded plugins
327//!
328//! DtVrePluginsMenuItem provides a menu item for displaying information about
329//! loaded plugins in the VR-Engage application. When triggered, it shows a dialog
330//! listing all active plugins, their versions, and other relevant information.
331//! This is useful for debugging and verifying which plugins are currently active.
332class PLAYERSTATION_DLL DtVrePluginsMenuItem : public makVrv::DtMenuItem
333{
334 Q_OBJECT
335public:
336 //! \brief Constructor
337 //! \param de Reference to the display engine
338 //!
339 //! Creates a new plugins menu item associated with the specified display engine.
340 DtVrePluginsMenuItem(makVrv::DtDe& de);
341
342 //! \brief Virtual destructor
343 //!
344 //! Ensures proper cleanup of resources.
345 virtual ~DtVrePluginsMenuItem() override;
346
347 //! \brief Creates an action for this menu item
348 //! \param de Reference to the display engine
349 //! \param parent Parent widget that will own the action
350 //! \return Pointer to the created action
351 //!
352 //! Builds and returns a QAction that represents this menu item in the UI.
353 //! The action includes the appropriate icon, text, and connection to the
354 //! menu item's functionality.
355 virtual QAction* createAction(makVrv::DtDe&, QWidget* parent) override;
356
357protected:
358 //! \brief Handles menu item activation
359 //!
360 //! Called when the user selects the plugins menu item. Shows a dialog
361 //! displaying information about all loaded plugins in the application.
362 virtual void on_triggered() override;
363
364protected:
365 //! \brief Reference to the display engine
366 makVrv::DtDe& myDe;
367};
static DtFilename theAboutBoxImage
Path to the about box background image.
Definition helpMenuItems.h:90
DtVreAboutBox(makVrv::DtVrvApplication &igApp, QWidget *parent=nullptr, Qt::WindowFlags f=0)
Constructor.
virtual ~DtVreAboutBox() override
Virtual destructor.
virtual void on_triggered() override
Handles activation of the about menu item.
virtual ~DtVreAboutItem() override
Virtual destructor.
DtVreAboutItem(makVrv::DtDe &de)
Constructor.
virtual ~DtVreControlsMappingMenuItem() override
Virtual destructor.
DtVreControlsMappingMenuItem(makVrv::DtDe &de)
Constructor.
virtual void on_triggered() override
Handles menu item activation.
virtual QAction * createAction(makVrv::DtDe &, QWidget *parent) override
Creates an action for this menu item.
QAction * myAction
Action representing this menu item.
Definition helpMenuItems.h:192
makVrv::DtDe & myDe
Reference to the display engine.
Definition helpMenuItems.h:195
DtVreFirstExperienceMenuItem(makVrv::DtDe &de)
Constructor.
virtual ~DtVreFirstExperienceMenuItem() override
Virtual destructor.
virtual QAction * createAction(makVrv::DtDe &, QWidget *parent) override
Creates an action for this menu item.
DtVreHelpItem(makVrv::DtDe &de)
Constructor.
void displayError(QProcess::ProcessError error)
Handles errors from the help process.
virtual void on_triggered() override
Handles menu item activation.
virtual QAction * createAction(makVrv::DtDe &, QWidget *parent) override
Creates an action for this menu item.
virtual void deleteAssistant()
Handles help viewer termination.
QAction * myAction
Action representing this menu item.
Definition helpMenuItems.h:147
makVrv::DtDe & myDe
Reference to the display engine.
Definition helpMenuItems.h:150
virtual ~DtVreHelpItem() override
Virtual destructor.
DtVrePluginsMenuItem(makVrv::DtDe &de)
Constructor.
virtual QAction * createAction(makVrv::DtDe &, QWidget *parent) override
Creates an action for this menu item.
virtual ~DtVrePluginsMenuItem() override
Virtual destructor.
virtual void on_triggered() override
Handles menu item activation.
makVrv::DtDe & myDe
Reference to the display engine.
Definition helpMenuItems.h:366
virtual ~DtVreReleaseNotesMenuItem() override
Virtual destructor.
DtVreReleaseNotesMenuItem(makVrv::DtDe &de)
Constructor.
virtual QAction * createAction(makVrv::DtDe &, QWidget *parent) override
Creates an action for this menu item.
virtual ~DtVreUsersGuideMenuItem() override
Virtual destructor.
virtual QAction * createAction(makVrv::DtDe &, QWidget *parent) override
Creates an action for this menu item.
DtVreUsersGuideMenuItem(makVrv::DtDe &de)
Constructor.
virtual QAction * createAction(makVrv::DtDe &, QWidget *parent) override
Creates an action for this menu item.
DtVreVersionWebSiteMenuItem(makVrv::DtDe &de)
Constructor.
virtual ~DtVreVersionWebSiteMenuItem() override
Virtual destructor.
Defines export macros for the VR-Engage Player Station library.
#define PLAYERSTATION_DLL
Definition export.h:24
Definition appLauncherComponent.h:28
makVrv::DtDe * de()
Gets the display element pointer used by the plugin.