VirtualBox

source: vbox/trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageExpert.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: 6.6 KB
Line 
1/* $Id: UIWizardExportAppPageExpert.h 103982 2024-03-21 11:43:53Z vboxsync $ */
2/** @file
3 * VBox Qt GUI - UIWizardExportAppPageExpert class declaration.
4 */
5
6/*
7 * Copyright (C) 2009-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_exportappliance_UIWizardExportAppPageExpert_h
29#define FEQT_INCLUDED_SRC_wizards_exportappliance_UIWizardExportAppPageExpert_h
30#ifndef RT_WITHOUT_PRAGMA_ONCE
31# pragma once
32#endif
33
34/* GUI includes: */
35#include "UINativeWizardPage.h"
36#include "UIWizardExportApp.h"
37
38/* COM includes: */
39#include "CAppliance.h"
40#include "CCloudClient.h"
41#include "CCloudProfile.h"
42#include "CVirtualSystemDescription.h"
43#include "CVirtualSystemDescriptionForm.h"
44
45/* Forward declarations: */
46class QAbstractButton;
47class QButtonGroup;
48class QCheckBox;
49class QGridLayout;
50class QGroupBox;
51class QLabel;
52class QListWidget;
53class QStackedWidget;
54class QIComboBox;
55class QIToolButton;
56class UIApplianceExportEditorWidget;
57class UIEmptyFilePathSelector;
58class UIFormEditorWidget;
59class UIToolBox;
60class UIWizardExportApp;
61
62/** UINativeWizardPage extension for expert page of the Export Appliance wizard,
63 * based on UIWizardExportAppVMs, UIWizardExportAppFormat & UIWizardExportAppSettings namespace functions. */
64class UIWizardExportAppPageExpert : public UINativeWizardPage
65{
66 Q_OBJECT;
67
68public:
69
70 /** Constructs expert page.
71 * @param selectedVMNames Brings the list of selected VM names. */
72 UIWizardExportAppPageExpert(const QStringList &selectedVMNames, bool fExportToOCIByDefault);
73
74protected:
75
76 /** Returns wizard this page belongs to. */
77 UIWizardExportApp *wizard() const;
78
79 /** Performs page initialization. */
80 virtual void initializePage() RT_OVERRIDE RT_FINAL;
81
82 /** Returns whether page is complete. */
83 virtual bool isComplete() const RT_OVERRIDE RT_FINAL;
84
85 /** Performs page validation. */
86 virtual bool validatePage() RT_OVERRIDE RT_FINAL;
87
88private slots:
89
90 /** Handles VM selector index change. */
91 void sltHandleVMItemSelectionChanged();
92
93 /** Handles format combo change. */
94 void sltHandleFormatComboChange();
95
96 /** Handles change in file-name selector. */
97 void sltHandleFileSelectorChange();
98
99 /** Handles change in MAC address export policy combo-box. */
100 void sltHandleMACAddressExportPolicyComboChange();
101
102 /** Handles change in manifest check-box. */
103 void sltHandleManifestCheckBoxChange();
104
105 /** Handles change in include ISOs check-box. */
106 void sltHandleIncludeISOsCheckBoxChange();
107
108 /** Handles change in profile combo-box. */
109 void sltHandleProfileComboChange();
110
111 /** Handles cloud export radio-button clicked. */
112 void sltHandleRadioButtonToggled(QAbstractButton *pButton, bool fToggled);
113
114 /** Handles profile tool-button click. */
115 void sltHandleProfileButtonClick();
116
117 /** Handles translation event. */
118 virtual void sltRetranslateUI() RT_OVERRIDE RT_FINAL;
119
120private:
121
122 /** Update local stuff. */
123 void updateLocalStuff();
124 /** Updates cloud stuff. */
125 void updateCloudStuff();
126
127 /** Holds the list of selected VM names. */
128 const QStringList m_selectedVMNames;
129 /** Holds whether default format should be Export to OCI. */
130 bool m_fExportToOCIByDefault;
131
132 /** Holds the default appliance name. */
133 QString m_strDefaultApplianceName;
134 /** Holds the file selector name. */
135 QString m_strFileSelectorName;
136 /** Holds the file selector ext. */
137 QString m_strFileSelectorExt;
138
139 /** Holds the Cloud Profile object reference. */
140 CCloudProfile m_comCloudProfile;
141
142
143 /** Holds the tool-box instance. */
144 UIToolBox *m_pToolBox;
145
146
147 /** Holds the VM selector instance. */
148 QListWidget *m_pVMSelector;
149
150
151 /** Holds the format layout. */
152 QGridLayout *m_pFormatLayout;
153 /** Holds the format combo-box label instance. */
154 QLabel *m_pFormatComboBoxLabel;
155 /** Holds the format combo-box instance. */
156 QIComboBox *m_pFormatComboBox;
157
158 /** Holds the settings widget 1 instance. */
159 QStackedWidget *m_pSettingsWidget1;
160
161 /** Holds the settings layout 1. */
162 QGridLayout *m_pSettingsLayout1;
163 /** Holds the file selector label instance. */
164 QLabel *m_pFileSelectorLabel;
165 /** Holds the file selector instance. */
166 UIEmptyFilePathSelector *m_pFileSelector;
167 /** Holds the MAC address policy combo-box label instance. */
168 QLabel *m_pMACComboBoxLabel;
169 /** Holds the MAC address policy check-box instance. */
170 QIComboBox *m_pMACComboBox;
171 /** Holds the additional label instance. */
172 QLabel *m_pAdditionalLabel;
173 /** Holds the manifest check-box instance. */
174 QCheckBox *m_pManifestCheckbox;
175 /** Holds the include ISOs check-box instance. */
176 QCheckBox *m_pIncludeISOsCheckbox;
177
178 /** Holds the settings layout 2. */
179 QGridLayout *m_pSettingsLayout2;
180 /** Holds the profile label instance. */
181 QLabel *m_pProfileLabel;
182 /** Holds the profile combo-box instance. */
183 QIComboBox *m_pProfileComboBox;
184 /** Holds the profile management tool-button instance. */
185 QIToolButton *m_pProfileToolButton;
186
187 /** Holds the export mode label instance. */
188 QLabel *m_pExportModeLabel;
189 /** Holds the export mode button group instance. */
190 QButtonGroup *m_pExportModeButtonGroup;
191 /** Holds the map of export mode button instances. */
192 QMap<CloudExportMode, QAbstractButton*> m_exportModeButtons;
193
194
195 /** Holds the settings widget 2 instance. */
196 QStackedWidget *m_pSettingsWidget2;
197
198 /** Holds the appliance widget reference. */
199 UIApplianceExportEditorWidget *m_pApplianceWidget;
200 /** Holds the Form Editor widget instance. */
201 UIFormEditorWidget *m_pFormEditor;
202
203 /** Holds whether cloud exporting is at launching stage. */
204 bool m_fLaunching;
205};
206
207#endif /* !FEQT_INCLUDED_SRC_wizards_exportappliance_UIWizardExportAppPageExpert_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