/* Adds new network interface: */ void UIGlobalSettingsNetwork::sltAddInterface() { /* Prepare useful variables: */ CVirtualBox vbox = vboxGlobal().virtualBox(); CHost host = vboxGlobal().host(); /* Create new host-only interface: */ CHostNetworkInterface iface; CProgress progress = host.CreateHostOnlyNetworkInterface(iface); if (host.isOk()) { msgCenter().showModalProgressDialog(progress, tr("Networking"), ":/nw_32px.png", this, true, 0); if (progress.GetResultCode() == 0) { /* Create DHCP server: */ CDHCPServer dhcp = vbox.FindDHCPServerByNetworkName(iface.GetNetworkName()); if (dhcp.isNull()) { vbox.CreateDHCPServer(iface.GetNetworkName()); dhcp = vbox.FindDHCPServerByNetworkName(iface.GetNetworkName()); } AssertMsg(!dhcp.isNull(), ("DHCP server creation failed!\n")); /* Append cache with new item: */ appendCacheItem(iface); /* Append list with new item: */ appendListItem(m_cache.m_items.last(), true); } else msgCenter().cannotCreateHostInterface(progress, this); } else msgCenter().cannotCreateHostInterface(host, this); }
void UIHostNetworkManagerWidget::sltCreateHostNetwork() { /* Get host for further activities: */ CHost comHost = vboxGlobal().host(); /* Create interface: */ CHostNetworkInterface comInterface; CProgress progress = comHost.CreateHostOnlyNetworkInterface(comInterface); /* Show error message if necessary: */ if (!comHost.isOk() || progress.isNull()) msgCenter().cannotCreateHostNetworkInterface(comHost, this); else { /* Show interface creation progress: */ msgCenter().showModalProgressDialog(progress, UIHostNetworkManager::tr("Adding network..."), ":/progress_network_interface_90px.png", this, 0); /* Show error message if necessary: */ if (!progress.isOk() || progress.GetResultCode() != 0) msgCenter().cannotCreateHostNetworkInterface(progress, this); else { /* Get network name for further activities: */ const QString strNetworkName = comInterface.GetNetworkName(); /* Show error message if necessary: */ if (!comInterface.isOk()) msgCenter().cannotAcquireHostNetworkInterfaceParameter(comInterface, this); else { /* Get VBox for further activities: */ CVirtualBox comVBox = vboxGlobal().virtualBox(); /* Find corresponding DHCP server (create if necessary): */ CDHCPServer comServer = comVBox.FindDHCPServerByNetworkName(strNetworkName); if (!comVBox.isOk() || comServer.isNull()) comServer = comVBox.CreateDHCPServer(strNetworkName); /* Show error message if necessary: */ if (!comVBox.isOk() || comServer.isNull()) msgCenter().cannotCreateDHCPServer(comVBox, strNetworkName, this); } /* Add interface to the tree: */ UIDataHostNetwork data; loadHostNetwork(comInterface, data); createItemForNetworkHost(data, true); /* Adjust tree-widget: */ sltAdjustTreeWidget(); } } }