VirtualBox

source: vbox/trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageExpert.h@ 103551

Last change on this file since 103551 was 98103, checked in by vboxsync, 23 months ago

Copyright year updates by scm.

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