VirtualBox

source: vbox/trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMExpertPage.h@ 104158

Last change on this file since 104158 was 103982, checked in by vboxsync, 10 months ago

FE/Qt: bugref:10624. Replacing override and final keywords with RT_OVERRIDE and RT_FINAL defines.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.7 KB
Line 
1/* $Id: UIWizardNewVMExpertPage.h 103982 2024-03-21 11:43:53Z vboxsync $ */
2/** @file
3 * VBox Qt GUI - UIWizardNewVMExpertPage class declaration.
4 */
5
6/*
7 * Copyright (C) 2006-2023 Oracle and/or its affiliates.
8 *
9 * This file is part of VirtualBox base platform packages, as
10 * available from https://www.virtualbox.org.
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation, in version 3 of the
15 * License.
16 *
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, see <https://www.gnu.org/licenses>.
24 *
25 * SPDX-License-Identifier: GPL-3.0-only
26 */
27
28#ifndef FEQT_INCLUDED_SRC_wizards_newvm_UIWizardNewVMExpertPage_h
29#define FEQT_INCLUDED_SRC_wizards_newvm_UIWizardNewVMExpertPage_h
30#ifndef RT_WITHOUT_PRAGMA_ONCE
31# pragma once
32#endif
33
34/* Qt includes: */
35#include <QSet>
36
37/* GUI includes: */
38#include "UINativeWizardPage.h"
39
40/* Forward declarations: */
41class QButtonGroup;
42class QCheckBox;
43class QGridLayout;
44class QGroupBox;
45class QRadioButton;
46class QIToolButton;
47class UIActionPool;
48class UIAdditionalUnattendedOptions;
49class UIDiskFormatsComboBox;
50class UIDiskVariantWidget;
51class UIMediumSizeAndPathGroupBox;
52class UIGAInstallationGroupBox;
53class UIMediaComboBox;
54class UINameAndSystemEditor;
55class UINewVMHardwareContainer;
56class UIToolBox;
57class UIUserNamePasswordGroupBox;
58
59/** Expert page of the New Virtual Machine wizard. */
60class UIWizardNewVMExpertPage : public UINativeWizardPage
61{
62 Q_OBJECT;
63
64public:
65
66 UIWizardNewVMExpertPage(UIActionPool *pActionPool);
67 void setISOFilePath(const QString &strISOFilePath);
68
69private slots:
70
71 void sltNameChanged(const QString &strNewName);
72 void sltPathChanged(const QString &strNewPath);
73 void sltOsTypeChanged();
74 void sltMediaComboBoxIndexChanged();
75 void sltGetWithFileOpenDialog();
76 void sltISOPathChanged(const QString &strPath);
77 void sltGAISOPathChanged(const QString &strPath);
78 void sltOSFamilyTypeChanged(const QString &strGuestOSFamilyType);
79 void sltInstallGACheckBoxToggle(bool fEnabled);
80 void sltSkipUnattendedCheckBoxChecked(bool fSkip);
81 void sltMediumFormatChanged();
82 void sltMediumSizeChanged(qulonglong uSize);
83 void sltMediumPathChanged(const QString &strPath);
84 void sltMediumVariantChanged(qulonglong uVariant);
85 void sltSelectedDiskSourceChanged();
86 void sltMediumLocationButtonClicked();
87 void sltMemorySizeChanged(int iValue);
88 void sltCPUCountChanged(int iCount);
89 void sltEFIEnabledChanged(bool fEnabled);
90 void sltPasswordChanged(const QString &strPassword);
91 void sltUserNameChanged(const QString &strUserName);
92 void sltHostnameDomainNameChanged(const QString &strHostnameDomainName, bool fIsComplete);
93 void sltProductKeyChanged(const QString &strProductKey);
94 void sltStartHeadlessChanged(bool fStartHeadless);
95 void sltSelectedEditionChanged(ulong uEditionIndex);
96 /** Translation stuff. */
97 virtual void sltRetranslateUI() RT_OVERRIDE RT_FINAL;
98
99private:
100
101 enum ExpertToolboxItems
102 {
103 ExpertToolboxItems_NameAndOSType,
104 ExpertToolboxItems_Unattended,
105 ExpertToolboxItems_Hardware,
106 ExpertToolboxItems_Disk
107 };
108
109 /** Prepare stuff. */
110 void createConnections();
111 void initializePage() RT_OVERRIDE;
112 void initializeWidgets();
113 /** Set the values of the widget if they depend on OS
114 * type like recommended RAM size. The widgets whose values are
115 * are explicitly modified are exempt from this. */
116 void setOSTypeDependedValues();
117 void cleanupPage();
118
119 /** Validation stuff. */
120 bool isComplete() const RT_OVERRIDE;
121 bool validatePage() RT_OVERRIDE;
122
123 bool isProductKeyWidgetEnabled() const;
124 void disableEnableUnattendedRelatedWidgets(bool fEnabled);
125 void markWidgets() const;
126 QWidget *createUnattendedWidgets();
127 QWidget *createNewDiskWidgets();
128 QWidget *createDiskWidgets();
129 QWidget *createNameOSTypeWidgets();
130 void updateVirtualMediumPathFromMachinePathName();
131 void updateDiskWidgetsAfterMediumFormatChange();
132 void updateHostnameDomainNameFromMachineName();
133 void setEnableNewDiskWidgets(bool fEnable);
134 void setSkipCheckBoxEnable();
135 bool isUnattendedEnabled() const;
136 bool isUnattendedInstallSupported() const;
137 void setEnableDiskSelectionWidgets(bool fEnabled);
138
139 /** @name Variables
140 * @{ */
141 UIToolBox *m_pToolBox;
142 QGroupBox *m_pDiskFormatVariantGroupBox;
143 UIDiskVariantWidget *m_pDiskVariantWidget;
144 UIDiskFormatsComboBox *m_pFormatComboBox;
145 UIMediumSizeAndPathGroupBox *m_pSizeAndLocationGroup;
146 UINameAndSystemEditor *m_pNameAndSystemEditor;
147 QCheckBox *m_pSkipUnattendedCheckBox;
148 QGridLayout *m_pNameAndSystemLayout;
149 UINewVMHardwareContainer *m_pHardwareWidgetContainer;
150 UIAdditionalUnattendedOptions *m_pAdditionalOptionsContainer;
151 UIGAInstallationGroupBox *m_pGAInstallationISOContainer;
152 UIUserNamePasswordGroupBox *m_pUserNamePasswordGroupBox;
153 QButtonGroup *m_pDiskSourceButtonGroup;
154 QRadioButton *m_pDiskEmpty;
155 QRadioButton *m_pDiskNew;
156 QRadioButton *m_pDiskExisting;
157 UIMediaComboBox *m_pDiskSelector;
158 QIToolButton *m_pDiskSelectionButton;
159 QSet<QString> m_userModifiedParameters;
160 bool m_fRecommendedNoDisk;
161 qulonglong m_uMediumSizeMin;
162 qulonglong m_uMediumSizeMax;
163 UIActionPool *m_pActionPool;
164 /** @} */
165};
166
167#endif /* !FEQT_INCLUDED_SRC_wizards_newvm_UIWizardNewVMExpertPage_h */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette