VirtualBox

source: vbox/trunk/src/VBox/Frontends/VirtualBox4/include/VBoxVMSettingsNetwork.h@ 10971

Last change on this file since 10971 was 10897, checked in by vboxsync, 16 years ago

VirtualBox4: Host interface networking for Darwin.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Revision Author Id
File size: 4.1 KB
Line 
1/** @file
2 *
3 * VBox frontends: Qt4 GUI ("VirtualBox"):
4 * VBoxVMSettingsNetwork class declaration
5 */
6
7/*
8 * Copyright (C) 2006-2008 Sun Microsystems, Inc.
9 *
10 * This file is part of VirtualBox Open Source Edition (OSE), as
11 * available from http://www.virtualbox.org. This file is free software;
12 * you can redistribute it and/or modify it under the terms of the GNU
13 * General Public License (GPL) as published by the Free Software
14 * Foundation, in version 2 as it comes in the "COPYING" file of the
15 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
16 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
17 *
18 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
19 * Clara, CA 95054 USA or visit http://www.sun.com if you need
20 * additional information or have any questions.
21 */
22
23#ifndef __VBoxVMSettingsNetwork_h__
24#define __VBoxVMSettingsNetwork_h__
25
26#include "VBoxSettingsPage.h"
27#include "VBoxVMSettingsNetwork.gen.h"
28#include "COMDefs.h"
29
30#if defined (Q_WS_WIN) || defined (Q_OS_MAC)
31class QTreeWidget;
32class QTreeWidgetItem;
33#endif
34
35/*
36 * QWidget sub-class which represents one tab-page per each network adapter.
37 * It has generated UI part.
38 */
39class VBoxVMSettingsNetwork : public QIWithRetranslateUI<QWidget>,
40 public Ui::VBoxVMSettingsNetwork
41{
42 Q_OBJECT;
43
44public:
45
46 VBoxVMSettingsNetwork();
47
48 void getFromAdapter (const CNetworkAdapter &aAdapter);
49 void putBackToAdapter();
50
51 QString pageTitle() const;
52
53 void setValidator (QIWidgetValidator *aValidator);
54
55 QWidget* setOrderAfter (QWidget *aAfter);
56
57 void setNetworksList (const QStringList &aList);
58
59#if defined (Q_WS_WIN) || defined (Q_OS_MAC)
60 void setInterfaceName (const QString &);
61 QString interfaceName() const;
62#endif
63
64protected:
65
66 void retranslateUi();
67
68private slots:
69
70 void adapterToggled (bool aOn);
71 void naTypeChanged (const QString &aString);
72 void genMACClicked();
73#ifdef Q_WS_X11
74 void tapSetupClicked();
75 void tapTerminateClicked();
76#endif
77
78private:
79
80 void prepareComboboxes();
81
82 void setTapEnabled (bool aEnabled);
83 void setTapVisible (bool aVisible);
84
85 CNetworkAdapter mAdapter;
86 QIWidgetValidator *mValidator;
87
88#if defined (Q_WS_WIN) || defined (Q_OS_MAC)
89 QString mInterfaceName;
90#endif
91};
92
93
94#if defined (Q_WS_WIN) || defined (Q_OS_MAC) || defined(__APPLE__) /// @todo fix stupid stupid moc.
95/*
96 * QGroupBox sub-class which represents network interface list.
97 */
98class VBoxNIList : public QIWithRetranslateUI<QWidget>
99{
100 Q_OBJECT;
101
102public:
103
104 VBoxNIList (QWidget *aParent);
105
106 bool isWrongInterface() const;
107 void setCurrentInterface (const QString &aName);
108
109signals:
110
111 void listChanged();
112 void currentInterfaceChanged (const QString &);
113
114private slots:
115
116 void onCurrentItemChanged (QTreeWidgetItem *aCurrent, QTreeWidgetItem *aPrev = 0);
117 void addHostInterface();
118 void delHostInterface();
119
120protected:
121
122 void retranslateUi();
123
124private:
125
126 void populateInterfacesList();
127
128 QILabelSeparator *mLbTitle;
129 QTreeWidget *mList;
130
131# if defined (Q_WS_WIN)
132 QAction *mAddAction;
133 QAction *mDelAction;
134# endif
135};
136#endif /* Q_WS_WIN || Q_OS_MAC */
137
138
139/*
140 * QWidget sub-class which represents network settings page itself.
141 */
142class VBoxVMSettingsNetworkPage : public VBoxSettingsPage
143{
144 Q_OBJECT;
145
146public:
147
148 VBoxVMSettingsNetworkPage();
149
150protected:
151
152 void getFrom (const CMachine &aMachine);
153 void putBackTo();
154
155 void setValidator (QIWidgetValidator *aVal);
156 bool revalidate (QString &aWarning, QString &aTitle);
157
158 void retranslateUi();
159
160private slots:
161
162 void updateNetworksList();
163#if defined (Q_WS_WIN) || defined (Q_OS_MAC) || defined (__APPLE__) /// @todo fix stupid stupid moc.
164 void onCurrentPageChanged (int);
165 void onCurrentInterfaceChanged (const QString &);
166#endif
167
168private:
169
170 void populateNetworksList();
171
172 /* Widgets */
173 QTabWidget *mTwAdapters;
174#if defined (Q_WS_WIN) || defined (Q_OS_MAC)
175 VBoxNIList *mNIList;
176#endif
177
178 /* Widget Validator*/
179 QIWidgetValidator *mValidator;
180
181 /* Lists */
182 QStringList mListNetworks;
183
184 /* Flags */
185 bool mLockNetworkListUpdate;
186};
187
188#endif // __VBoxVMSettingsNetwork_h__
189
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