Changeset 66696 in vbox for trunk/src/VBox/Frontends/VirtualBox
- Timestamp:
- Apr 27, 2017 3:11:43 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 115089
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/hostnetwork
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/hostnetwork/UIHostNetworkManager.cpp
r66695 r66696 55 55 Column_IPv4, 56 56 Column_IPv6, 57 Column_DHCP, 57 58 Column_Max, 58 59 }; … … 88 89 setText(Column_IPv6, !m_interface.m_fIpv6Supported ? QString() : 89 90 QString("%1/%2").arg(m_interface.m_strInterfaceAddress6).arg(maskToCidr(m_interface.m_strInterfaceMaskLength6))); 91 setText(Column_DHCP, UIHostNetworkManager::tr("Enable", "DHCP Server")); 92 setCheckState(Column_DHCP, m_dhcpserver.m_fDhcpServerEnabled ? Qt::Checked : Qt::Unchecked); 90 93 91 94 /* Compose item tool-tip: */ … … 269 272 const QStringList fields = QStringList() 270 273 << tr("Name") 271 << tr("IPv4 address/mask") 272 << tr("IPv6 address/mask"); 274 << tr("IPv4 Address/Mask") 275 << tr("IPv6 Address/Mask") 276 << tr("DHCP Server"); 273 277 m_pTreeWidget->setHeaderLabels(fields); 274 278 } … … 533 537 const int iMinWidth1 = qMax(pItemView->sizeHintForColumn(Column_IPv4), pItemHeader->sectionSizeHint(Column_IPv4)); 534 538 const int iMinWidth2 = qMax(pItemView->sizeHintForColumn(Column_IPv6), pItemHeader->sectionSizeHint(Column_IPv6)); 539 const int iMinWidth3 = qMax(pItemView->sizeHintForColumn(Column_DHCP), pItemHeader->sectionSizeHint(Column_DHCP)); 535 540 /* Propose suitable width hints for non-important columns: */ 536 541 const int iWidth1 = iMinWidth1 < iTotal / Column_Max ? iMinWidth1 : iTotal / Column_Max; 537 542 const int iWidth2 = iMinWidth2 < iTotal / Column_Max ? iMinWidth2 : iTotal / Column_Max; 543 const int iWidth3 = iMinWidth3 < iTotal / Column_Max ? iMinWidth3 : iTotal / Column_Max; 538 544 /* Apply the proposal: */ 539 545 m_pTreeWidget->setColumnWidth(Column_IPv4, iWidth1); 540 546 m_pTreeWidget->setColumnWidth(Column_IPv6, iWidth2); 541 m_pTreeWidget->setColumnWidth(Column_Name, iTotal - iWidth1 - iWidth2); 547 m_pTreeWidget->setColumnWidth(Column_DHCP, iWidth3); 548 m_pTreeWidget->setColumnWidth(Column_Name, iTotal - iWidth1 - iWidth2 - iWidth3); 549 } 550 551 void UIHostNetworkManager::sltHandleItemChange(QTreeWidgetItem *pItem) 552 { 553 /* Get network item: */ 554 UIItemHostNetwork *pChangedItem = static_cast<UIItemHostNetwork*>(pItem); 555 AssertMsgReturnVoid(pChangedItem, ("Changed item must not be null!\n")); 556 557 /* Get item data: */ 558 UIDataHostNetwork data = *pChangedItem; 559 560 /* Make sure dhcp server status changed: */ 561 if ( ( data.m_dhcpserver.m_fDhcpServerEnabled 562 && pChangedItem->checkState(Column_DHCP) == Qt::Checked) 563 || ( !data.m_dhcpserver.m_fDhcpServerEnabled 564 && pChangedItem->checkState(Column_DHCP) == Qt::Unchecked)) 565 return; 566 567 /* Get VBox for further activities: */ 568 CVirtualBox comVBox = vboxGlobal().virtualBox(); 569 570 /* Find corresponding DHCP server (create if necessary): */ 571 CDHCPServer comServer = comVBox.FindDHCPServerByNetworkName(data.m_interface.m_strName); 572 if (!comVBox.isOk() || comServer.isNull()) 573 comServer = comVBox.CreateDHCPServer(data.m_interface.m_strName); 574 575 /* Show error message if necessary: */ 576 if (!comVBox.isOk() || comServer.isNull()) 577 msgCenter().cannotCreateDHCPServer(comVBox, data.m_interface.m_strName, this); 578 else 579 { 580 /* Save whether DHCP server is enabled: */ 581 if (comServer.isOk()) 582 comServer.SetEnabled(!data.m_dhcpserver.m_fDhcpServerEnabled); 583 584 /* Show error message if necessary: */ 585 if (!comServer.isOk()) 586 msgCenter().cannotSaveDHCPServerParameter(comServer, this); 587 { 588 /* Manually toggle the DHCP server status: */ 589 data.m_dhcpserver.m_fDhcpServerEnabled = !data.m_dhcpserver.m_fDhcpServerEnabled; 590 591 /* Update interface in the tree: */ 592 updateItemForNetworkHost(data, true, pChangedItem); 593 594 /* Adjust tree-widget: */ 595 sltAdjustTreeWidget(); 596 } 597 } 542 598 } 543 599 … … 747 803 connect(m_pTreeWidget, SIGNAL(customContextMenuRequested(const QPoint &)), 748 804 this, SLOT(sltHandleContextMenuRequest(const QPoint &))); 805 connect(m_pTreeWidget, SIGNAL(itemChanged(QTreeWidgetItem *, int)), 806 this, SLOT(sltHandleItemChange(QTreeWidgetItem *))); 749 807 /* Add tree-widget into layout: */ 750 808 QVBoxLayout *pMainLayout = qobject_cast<QVBoxLayout*>(centralWidget()->layout()); -
trunk/src/VBox/Frontends/VirtualBox/src/hostnetwork/UIHostNetworkManager.h
r66695 r66696 27 27 /* Forward declarations: */ 28 28 class CHostNetworkInterface; 29 class QTreeWidgetItem; 29 30 class QIDialogButtonBox; 30 31 class QITreeWidget; … … 83 84 void sltAdjustTreeWidget(); 84 85 86 /** Handles tree-widget @a pItem change. */ 87 void sltHandleItemChange(QTreeWidgetItem *pItem); 85 88 /** Handles tree-widget current item change. */ 86 89 void sltHandleCurrentItemChange();
Note:
See TracChangeset
for help on using the changeset viewer.