Changeset 101606 in vbox
- Timestamp:
- Oct 26, 2023 2:09:03 PM (19 months ago)
- svn:sync-xref-src-repo-rev:
- 159690
- Location:
- trunk/src/VBox/Frontends/VirtualBox
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
r101595 r101606 1081 1081 src/settings/editors/UIStorageSettingsEditor.cpp \ 1082 1082 src/settings/editors/UIUSBFiltersEditor.cpp \ 1083 src/settings/machine/UIMachineSettingsSerial.cpp \1084 1083 src/widgets/UIAddDiskEncryptionPasswordDialog.cpp \ 1085 1084 src/widgets/UIFileTableNavigationWidget.cpp \ -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.cpp
r101604 r101606 105 105 106 106 107 /** Machine settings: Serial Port tab. */108 class UIMachineSettingsSerial : public UIEditor109 {110 Q_OBJECT;111 112 signals:113 114 /** Notifies about port changed. */115 void sigPortChanged();116 117 /** Notifies about path changed. */118 void sigPathChanged();119 120 /** Notifies about validity changed. */121 void sigValidityChanged();122 123 public:124 125 /** Constructs tab passing @a pParent to the base-class.126 * @param pParentPage Holds the parent page reference allowing to access some of API there. */127 UIMachineSettingsSerial(UIEditor *pParent, UIMachineSettingsSerialPage *pParentPage);128 129 /** Loads port data from @a portCache. */130 void getPortDataFromCache(const UISettingsCacheMachineSerialPort &portCache);131 /** Saves port data to @a portCache. */132 void putPortDataToCache(UISettingsCacheMachineSerialPort &portCache);133 134 /** Performs validation, updates @a messages list if something is wrong. */135 bool validate(QList<UIValidationMessage> &messages);136 137 /** Configures tab order according to passed @a pWidget. */138 QWidget *setOrderAfter(QWidget *pWidget);139 140 /** Returns tab title. */141 QString tabTitle() const;142 /** Returns whether port is enabled. */143 bool isPortEnabled() const;144 /** Returns IRQ. */145 QString irq() const;146 /** Returns IO address. */147 QString ioAddress() const;148 /** Returns path. */149 QString path() const;150 151 /** Performs tab polishing. */152 void polishTab();153 154 protected:155 156 /** Handles translation event. */157 void retranslateUi() {}158 159 private:160 161 /** Prepares all. */162 void prepare();163 /** Prepares widgets. */164 void prepareWidgets();165 /** Prepares connections. */166 void prepareConnections();167 168 /** Holds the parent page reference. */169 UIMachineSettingsSerialPage *m_pParentPage;170 171 /** Holds the port slot number. */172 int m_iSlot;173 174 /** Holds the serial settings editor instance. */175 UISerialSettingsEditor *m_pEditorSerialSettings;176 };177 178 179 /*********************************************************************************************************************************180 * Class UIMachineSettingsSerial implementation. *181 *********************************************************************************************************************************/182 183 UIMachineSettingsSerial::UIMachineSettingsSerial(UIEditor *pParent, UIMachineSettingsSerialPage *pParentPage)184 : UIEditor(pParent)185 , m_pParentPage(pParentPage)186 , m_iSlot(-1)187 , m_pEditorSerialSettings(0)188 {189 prepare();190 }191 192 void UIMachineSettingsSerial::getPortDataFromCache(const UISettingsCacheMachineSerialPort &portCache)193 {194 /* Get old data: */195 const UIDataSettingsMachineSerialPort &oldPortData = portCache.base();196 197 /* Load port number: */198 m_iSlot = oldPortData.m_iSlot;199 200 if (m_pEditorSerialSettings)201 {202 /* Load port data: */203 m_pEditorSerialSettings->setPortByIRQAndIOAddress(oldPortData.m_uIRQ, oldPortData.m_uIOAddress);204 m_pEditorSerialSettings->setIRQ(oldPortData.m_uIRQ);205 m_pEditorSerialSettings->setIOAddress(oldPortData.m_uIOAddress);206 m_pEditorSerialSettings->setHostMode(oldPortData.m_hostMode);207 m_pEditorSerialSettings->setServerEnabled(oldPortData.m_fServer);208 m_pEditorSerialSettings->setPath(oldPortData.m_strPath);209 // Should be done in th end to finalize availability:210 m_pEditorSerialSettings->setPortEnabled(oldPortData.m_fPortEnabled);211 }212 }213 214 void UIMachineSettingsSerial::putPortDataToCache(UISettingsCacheMachineSerialPort &portCache)215 {216 /* Prepare new data: */217 UIDataSettingsMachineSerialPort newPortData;218 219 /* Save port number: */220 newPortData.m_iSlot = m_iSlot;221 222 if (m_pEditorSerialSettings)223 {224 /* Save port data: */225 newPortData.m_fPortEnabled = m_pEditorSerialSettings->isPortEnabled();226 newPortData.m_uIRQ = m_pEditorSerialSettings->irq();227 newPortData.m_uIOAddress = m_pEditorSerialSettings->ioAddress();228 newPortData.m_fServer = m_pEditorSerialSettings->isServerEnabled();229 newPortData.m_hostMode = m_pEditorSerialSettings->hostMode();230 newPortData.m_strPath = m_pEditorSerialSettings->path();231 }232 233 /* Cache new data: */234 portCache.cacheCurrentData(newPortData);235 }236 237 bool UIMachineSettingsSerial::validate(QList<UIValidationMessage> &messages)238 {239 /* Pass by default: */240 bool fPass = true;241 242 /* Prepare message: */243 UIValidationMessage message;244 message.first = UITranslator::removeAccelMark(tabTitle());245 246 /* Validate enabled port only: */247 if ( m_pEditorSerialSettings248 && m_pEditorSerialSettings->isPortEnabled())249 {250 /* Check the port attribute emptiness & uniqueness: */251 const QString strIRQ = irq();252 const QString strIOAddress = ioAddress();253 const QPair<QString, QString> port = qMakePair(strIRQ, strIOAddress);254 255 if (strIRQ.isEmpty())256 {257 message.second << UIMachineSettingsSerial::tr("No IRQ is currently specified.");258 fPass = false;259 }260 if (strIOAddress.isEmpty())261 {262 message.second << UIMachineSettingsSerial::tr("No I/O port is currently specified.");263 fPass = false;264 }265 if ( !strIRQ.isEmpty()266 && !strIOAddress.isEmpty())267 {268 QVector<QPair<QString, QString> > ports;269 if (m_pParentPage)270 {271 ports = m_pParentPage->ports();272 ports.removeAt(m_iSlot);273 }274 if (ports.contains(port))275 {276 message.second << UIMachineSettingsSerial::tr("Two or more ports have the same settings.");277 fPass = false;278 }279 }280 281 const KPortMode enmMode = m_pEditorSerialSettings->hostMode();282 if (enmMode != KPortMode_Disconnected)283 {284 const QString strPath = m_pEditorSerialSettings->path();285 286 if (strPath.isEmpty())287 {288 message.second << UIMachineSettingsSerial::tr("No port path is currently specified.");289 fPass = false;290 }291 else292 {293 QVector<QString> paths;294 if (m_pParentPage)295 {296 paths = m_pParentPage->paths();297 paths.removeAt(m_iSlot);298 }299 if (paths.contains(strPath))300 {301 message.second << UIMachineSettingsSerial::tr("There are currently duplicate port paths specified.");302 fPass = false;303 }304 }305 }306 }307 308 /* Serialize message: */309 if (!message.second.isEmpty())310 messages << message;311 312 /* Return result: */313 return fPass;314 }315 316 QWidget *UIMachineSettingsSerial::setOrderAfter(QWidget *pWidget)317 {318 setTabOrder(pWidget, m_pEditorSerialSettings);319 return m_pEditorSerialSettings;320 }321 322 QString UIMachineSettingsSerial::tabTitle() const323 {324 return QString(tr("Port %1", "serial ports")).arg(QString("&%1").arg(m_iSlot + 1));325 }326 327 bool UIMachineSettingsSerial::isPortEnabled() const328 {329 return m_pEditorSerialSettings->isPortEnabled();330 }331 332 QString UIMachineSettingsSerial::irq() const333 {334 return QString::number(m_pEditorSerialSettings->irq());335 }336 337 QString UIMachineSettingsSerial::ioAddress() const338 {339 return QString::number(m_pEditorSerialSettings->ioAddress());340 }341 342 QString UIMachineSettingsSerial::path() const343 {344 return m_pEditorSerialSettings->path();345 }346 347 void UIMachineSettingsSerial::polishTab()348 {349 if ( m_pEditorSerialSettings350 && m_pParentPage)351 {352 /* Polish port page: */353 const bool fStd = m_pEditorSerialSettings->isPortStandardOne();354 const KPortMode enmMode = m_pEditorSerialSettings->hostMode();355 m_pEditorSerialSettings->setPortOptionsAvailable(m_pParentPage->isMachineOffline());356 m_pEditorSerialSettings->setIRQAndIOAddressOptionsAvailable(!fStd && m_pParentPage->isMachineOffline());357 m_pEditorSerialSettings->setHostModeOptionsAvailable(m_pParentPage->isMachineOffline());358 m_pEditorSerialSettings->setPipeOptionsAvailable( (enmMode == KPortMode_HostPipe || enmMode == KPortMode_TCP)359 && m_pParentPage->isMachineOffline());360 m_pEditorSerialSettings->setPathOptionsAvailable( enmMode != KPortMode_Disconnected361 && m_pParentPage->isMachineOffline());362 }363 }364 365 void UIMachineSettingsSerial::prepare()366 {367 /* Prepare everything: */368 prepareWidgets();369 prepareConnections();370 371 /* Apply language settings: */372 retranslateUi();373 }374 375 void UIMachineSettingsSerial::prepareWidgets()376 {377 /* Prepare main layout: */378 QVBoxLayout *pLayout = new QVBoxLayout(this);379 if (pLayout)380 {381 pLayout->setContentsMargins(0, 0, 0, 0);382 383 /* Prepare settings editor: */384 m_pEditorSerialSettings = new UISerialSettingsEditor(this);385 if (m_pEditorSerialSettings)386 {387 addEditor(m_pEditorSerialSettings);388 pLayout->addWidget(m_pEditorSerialSettings);389 }390 391 pLayout->addStretch();392 }393 }394 395 void UIMachineSettingsSerial::prepareConnections()396 {397 if (m_pEditorSerialSettings)398 {399 connect(m_pEditorSerialSettings, &UISerialSettingsEditor::sigPortAvailabilityChanged,400 this, &UIMachineSettingsSerial::sigPortChanged);401 connect(m_pEditorSerialSettings, &UISerialSettingsEditor::sigPortAvailabilityChanged,402 this, &UIMachineSettingsSerial::sigPathChanged);403 connect(m_pEditorSerialSettings, &UISerialSettingsEditor::sigStandardPortOptionChanged,404 this, &UIMachineSettingsSerial::sigValidityChanged);405 connect(m_pEditorSerialSettings, &UISerialSettingsEditor::sigPortIRQChanged,406 this, &UIMachineSettingsSerial::sigPortChanged);407 connect(m_pEditorSerialSettings, &UISerialSettingsEditor::sigPortIOAddressChanged,408 this, &UIMachineSettingsSerial::sigPortChanged);409 connect(m_pEditorSerialSettings, &UISerialSettingsEditor::sigModeChanged,410 this, &UIMachineSettingsSerial::sigValidityChanged);411 connect(m_pEditorSerialSettings, &UISerialSettingsEditor::sigPathChanged,412 this, &UIMachineSettingsSerial::sigPathChanged);413 }414 }415 416 417 107 /********************************************************************************************************************************* 418 108 * Class UIMachineSettingsSerialPage implementation. * … … 494 184 return; 495 185 496 /* Setup tab order: */ 497 AssertPtrReturnVoid(firstWidget()); 498 setTabOrder(firstWidget(), m_pTabWidget->focusProxy()); 499 QWidget *pLastFocusWidget = m_pTabWidget->focusProxy(); 500 501 /* For each port: */ 502 for (int iSlot = 0; iSlot < m_pTabWidget->count(); ++iSlot) 503 { 504 /* Get port page: */ 505 UIMachineSettingsSerial *pTabEditor = m_tabEditors.at(iSlot); 506 AssertPtrReturnVoid(pTabEditor); 507 508 /* Load old data from cache: */ 509 pTabEditor->getPortDataFromCache(m_pCache->child(iSlot)); 510 511 /* Setup tab order: */ 512 pLastFocusWidget = pTabEditor->setOrderAfter(pLastFocusWidget); 513 } 186 /* Load old data from cache: */ 187 for (int iSlot = 0; iSlot < m_pTabWidget->count(); ++iSlot) 188 getFromCache(iSlot, m_pCache->child(iSlot)); 514 189 515 190 /* Apply language settings: */ … … 533 208 UIDataSettingsMachineSerial newSerialData; 534 209 535 /* For each port: */ 536 for (int iSlot = 0; iSlot < m_pTabWidget->count(); ++iSlot) 537 { 538 /* Getting port page: */ 539 UIMachineSettingsSerial *pTabEditor = m_tabEditors.at(iSlot); 540 AssertPtrReturnVoid(pTabEditor); 541 542 /* Gather new data: */ 543 pTabEditor->putPortDataToCache(m_pCache->child(iSlot)); 544 } 210 /* Gather new data to cache: */ 211 for (int iSlot = 0; iSlot < m_pTabWidget->count(); ++iSlot) 212 putToCache(iSlot, m_pCache->child(iSlot)); 545 213 546 214 /* Cache new data: */ … … 571 239 /* Delegate validation to adapter tabs: */ 572 240 for (int iSlot = 0; iSlot < m_pTabWidget->count(); ++iSlot) 573 { 574 UIMachineSettingsSerial *pTabEditor = m_tabEditors.at(iSlot); 575 AssertPtrReturn(pTabEditor, false); 576 if (!pTabEditor->validate(messages)) 241 if (!validate(iSlot, messages)) 577 242 fValid = false; 578 }579 243 580 244 /* Return result: */ … … 589 253 590 254 for (int iSlot = 0; iSlot < m_pTabWidget->count(); ++iSlot) 591 { 592 UIMachineSettingsSerial *pTabEditor = m_tabEditors.at(iSlot); 593 AssertPtrReturnVoid(pTabEditor); 594 m_pTabWidget->setTabText(iSlot, pTabEditor->tabTitle()); 595 } 255 m_pTabWidget->setTabText(iSlot, tabTitle(iSlot)); 596 256 } 597 257 … … 610 270 m_pCache->childCount() > iSlot && 611 271 m_pCache->child(iSlot).base().m_fPortEnabled)); 612 UIMachineSettingsSerial *pTabEditor = m_tabEditors.at(iSlot); 613 AssertPtrReturnVoid(pTabEditor); 614 pTabEditor->polishTab(); 272 polishTab(iSlot); 615 273 } 616 274 } … … 681 339 682 340 /* Create port tab-editor: */ 683 UI MachineSettingsSerial *pEditor = new UIMachineSettingsSerial(pTab,this);341 UISerialSettingsEditor *pEditor = new UISerialSettingsEditor(this); 684 342 if (pEditor) 685 343 { … … 698 356 } 699 357 700 void UIMachineSettingsSerialPage::prepareConnections(UI MachineSettingsSerial*pTabEditor)358 void UIMachineSettingsSerialPage::prepareConnections(UISerialSettingsEditor *pTabEditor) 701 359 { 702 360 /* Tab connections: */ 703 connect(pTabEditor, &UI MachineSettingsSerial::sigPortChanged,361 connect(pTabEditor, &UISerialSettingsEditor::sigPortAvailabilityChanged, 704 362 this, &UIMachineSettingsSerialPage::sltHandlePortChange); 705 connect(pTabEditor, &UI MachineSettingsSerial::sigPathChanged,363 connect(pTabEditor, &UISerialSettingsEditor::sigPortAvailabilityChanged, 706 364 this, &UIMachineSettingsSerialPage::sltHandlePathChange); 707 connect(pTabEditor, &UI MachineSettingsSerial::sigValidityChanged,365 connect(pTabEditor, &UISerialSettingsEditor::sigStandardPortOptionChanged, 708 366 this, &UIMachineSettingsSerialPage::revalidate); 367 connect(pTabEditor, &UISerialSettingsEditor::sigPortIRQChanged, 368 this, &UIMachineSettingsSerialPage::sltHandlePortChange); 369 connect(pTabEditor, &UISerialSettingsEditor::sigPortIOAddressChanged, 370 this, &UIMachineSettingsSerialPage::sltHandlePortChange); 371 connect(pTabEditor, &UISerialSettingsEditor::sigModeChanged, 372 this, &UIMachineSettingsSerialPage::revalidate); 373 connect(pTabEditor, &UISerialSettingsEditor::sigPathChanged, 374 this, &UIMachineSettingsSerialPage::sltHandlePathChange); 709 375 } 710 376 … … 714 380 delete m_pCache; 715 381 m_pCache = 0; 382 } 383 384 void UIMachineSettingsSerialPage::polishTab(int iSlot) 385 { 386 /* Acquire tab-editor: */ 387 UISerialSettingsEditor *pTabEditor = m_tabEditors.at(iSlot); 388 AssertPtrReturnVoid(pTabEditor); 389 390 /* Polish port page: */ 391 const bool fStd = pTabEditor->isPortStandardOne(); 392 const KPortMode enmMode = pTabEditor->hostMode(); 393 pTabEditor->setPortOptionsAvailable(isMachineOffline()); 394 pTabEditor->setIRQAndIOAddressOptionsAvailable(!fStd && isMachineOffline()); 395 pTabEditor->setHostModeOptionsAvailable(isMachineOffline()); 396 pTabEditor->setPipeOptionsAvailable( (enmMode == KPortMode_HostPipe || enmMode == KPortMode_TCP) 397 && isMachineOffline()); 398 pTabEditor->setPathOptionsAvailable( enmMode != KPortMode_Disconnected 399 && isMachineOffline()); 400 } 401 402 void UIMachineSettingsSerialPage::getFromCache(int iSlot, const UISettingsCacheMachineSerialPort &portCache) 403 { 404 /* Acquire tab-editor: */ 405 UISerialSettingsEditor *pTabEditor = m_tabEditors.at(iSlot); 406 AssertPtrReturnVoid(pTabEditor); 407 408 /* Get old data: */ 409 const UIDataSettingsMachineSerialPort &oldPortData = portCache.base(); 410 411 /* Load port data: */ 412 pTabEditor->setPortByIRQAndIOAddress(oldPortData.m_uIRQ, oldPortData.m_uIOAddress); 413 pTabEditor->setIRQ(oldPortData.m_uIRQ); 414 pTabEditor->setIOAddress(oldPortData.m_uIOAddress); 415 pTabEditor->setHostMode(oldPortData.m_hostMode); 416 pTabEditor->setServerEnabled(oldPortData.m_fServer); 417 pTabEditor->setPath(oldPortData.m_strPath); 418 // Should be done in th end to finalize availability: 419 pTabEditor->setPortEnabled(oldPortData.m_fPortEnabled); 420 } 421 422 void UIMachineSettingsSerialPage::putToCache(int iSlot, UISettingsCacheMachineSerialPort &portCache) 423 { 424 /* Acquire tab-editor: */ 425 UISerialSettingsEditor *pTabEditor = m_tabEditors.at(iSlot); 426 AssertPtrReturnVoid(pTabEditor); 427 428 /* Prepare new data: */ 429 UIDataSettingsMachineSerialPort newPortData; 430 431 /* Save port number: */ 432 newPortData.m_iSlot = iSlot; 433 434 /* Save port data: */ 435 newPortData.m_fPortEnabled = pTabEditor->isPortEnabled(); 436 newPortData.m_uIRQ = pTabEditor->irq(); 437 newPortData.m_uIOAddress = pTabEditor->ioAddress(); 438 newPortData.m_fServer = pTabEditor->isServerEnabled(); 439 newPortData.m_hostMode = pTabEditor->hostMode(); 440 newPortData.m_strPath = pTabEditor->path(); 441 442 /* Cache new data: */ 443 portCache.cacheCurrentData(newPortData); 444 } 445 446 QString UIMachineSettingsSerialPage::irq(int iSlot) const 447 { 448 /* Acquire tab-editor: */ 449 UISerialSettingsEditor *pTabEditor = m_tabEditors.at(iSlot); 450 AssertPtrReturn(pTabEditor, QString()); 451 return QString::number(pTabEditor->irq()); 452 } 453 454 QString UIMachineSettingsSerialPage::ioAddress(int iSlot) const 455 { 456 /* Acquire tab-editor: */ 457 UISerialSettingsEditor *pTabEditor = m_tabEditors.at(iSlot); 458 AssertPtrReturn(pTabEditor, QString()); 459 return QString::number(pTabEditor->ioAddress()); 460 } 461 462 bool UIMachineSettingsSerialPage::validate(int iSlot, QList<UIValidationMessage> &messages) 463 { 464 /* Acquire tab-editor: */ 465 UISerialSettingsEditor *pTabEditor = m_tabEditors.at(iSlot); 466 AssertPtrReturn(pTabEditor, false); 467 468 /* Pass by default: */ 469 bool fPass = true; 470 471 /* Prepare message: */ 472 UIValidationMessage message; 473 message.first = UITranslator::removeAccelMark(tabTitle(iSlot)); 474 475 /* Validate enabled port only: */ 476 if (pTabEditor->isPortEnabled()) 477 { 478 /* Check the port attribute emptiness & uniqueness: */ 479 const QString strIRQ = irq(iSlot); 480 const QString strIOAddress = ioAddress(iSlot); 481 const QPair<QString, QString> port = qMakePair(strIRQ, strIOAddress); 482 483 if (strIRQ.isEmpty()) 484 { 485 message.second << tr("No IRQ is currently specified."); 486 fPass = false; 487 } 488 if (strIOAddress.isEmpty()) 489 { 490 message.second << tr("No I/O port is currently specified."); 491 fPass = false; 492 } 493 if ( !strIRQ.isEmpty() 494 && !strIOAddress.isEmpty()) 495 { 496 QVector<QPair<QString, QString> > currentPorts; 497 currentPorts = ports(); 498 currentPorts.removeAt(iSlot); 499 if (currentPorts.contains(port)) 500 { 501 message.second << tr("Two or more ports have the same settings."); 502 fPass = false; 503 } 504 } 505 506 const KPortMode enmMode = pTabEditor->hostMode(); 507 if (enmMode != KPortMode_Disconnected) 508 { 509 const QString strPath = pTabEditor->path(); 510 511 if (strPath.isEmpty()) 512 { 513 message.second << tr("No port path is currently specified."); 514 fPass = false; 515 } 516 else 517 { 518 QVector<QString> currentPaths; 519 currentPaths = paths(); 520 currentPaths.removeAt(iSlot); 521 if (currentPaths.contains(strPath)) 522 { 523 message.second << tr("There are currently duplicate port paths specified."); 524 fPass = false; 525 } 526 } 527 } 528 } 529 530 /* Serialize message: */ 531 if (!message.second.isEmpty()) 532 messages << message; 533 534 /* Return result: */ 535 return fPass; 716 536 } 717 537 … … 728 548 for (int iSlot = 0; iSlot < m_pTabWidget->count(); ++iSlot) 729 549 { 730 UI MachineSettingsSerial*pTabEditor = m_tabEditors.at(iSlot);550 UISerialSettingsEditor *pTabEditor = m_tabEditors.at(iSlot); 731 551 AssertPtrReturnVoid(pTabEditor); 732 m_ports[iSlot] = pTabEditor->isPortEnabled() ? qMakePair( pTabEditor->irq(), pTabEditor->ioAddress()) : qMakePair(QString(), QString());552 m_ports[iSlot] = pTabEditor->isPortEnabled() ? qMakePair(irq(iSlot), ioAddress(iSlot)) : qMakePair(QString(), QString()); 733 553 } 734 554 } … … 746 566 for (int iSlot = 0; iSlot < m_pTabWidget->count(); ++iSlot) 747 567 { 748 UI MachineSettingsSerial*pTabEditor = m_tabEditors.at(iSlot);568 UISerialSettingsEditor *pTabEditor = m_tabEditors.at(iSlot); 749 569 AssertPtrReturnVoid(pTabEditor); 750 570 m_paths[iSlot] = pTabEditor->isPortEnabled() ? pTabEditor->path() : QString(); 751 571 } 572 } 573 574 /* static */ 575 QString UIMachineSettingsSerialPage::tabTitle(int iSlot) 576 { 577 return QString(tr("Port %1", "serial ports")).arg(QString("&%1").arg(iSlot + 1)); 752 578 } 753 579 … … 858 684 return fSuccess; 859 685 } 860 861 # include "UIMachineSettingsSerial.moc" -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.h
r101604 r101606 37 37 /* Forward declarations: */ 38 38 class QITabWidget; 39 class UI MachineSettingsSerial;39 class UISerialSettingsEditor; 40 40 struct UIDataSettingsMachineSerial; 41 41 struct UIDataSettingsMachineSerialPort; … … 104 104 void prepareTab(); 105 105 /** Prepares connections. */ 106 void prepareConnections(UI MachineSettingsSerial*pTabEditor);106 void prepareConnections(UISerialSettingsEditor *pTabEditor); 107 107 /** Cleanups all. */ 108 108 void cleanup(); 109 110 /** Performs tab polishing for specified @a iSlot. */ 111 void polishTab(int iSlot); 112 113 /** Loads port data for specified @a iSlot from @a portCache to corresponding widgets. */ 114 void getFromCache(int iSlot, const UISettingsCacheMachineSerialPort &portCache); 115 /** Saves port data for specified @a iSlot from corresponding widgets to @a portCache. */ 116 void putToCache(int iSlot, UISettingsCacheMachineSerialPort &portCache); 117 118 /** Returns IRQ for specified @a iSlot. */ 119 QString irq(int iSlot) const; 120 /** Returns IO address for specified @a iSlot. */ 121 QString ioAddress(int iSlot) const; 122 123 /** Performs validation for specified @a iSlot, updates @a messages list if something is wrong. */ 124 bool validate(int iSlot, QList<UIValidationMessage> &messages); 109 125 110 126 /** Repopulates ports. */ … … 112 128 /** Repopulates paths. */ 113 129 void refreshPaths(); 130 131 /** Returns tab title for specified @a iSlot. */ 132 static QString tabTitle(int iSlot); 114 133 115 134 /** Saves existing data from cache. */ … … 130 149 131 150 /** Holds the list of tab-editors. */ 132 QList<UI MachineSettingsSerial*> m_tabEditors;151 QList<UISerialSettingsEditor*> m_tabEditors; 133 152 }; 134 153
Note:
See TracChangeset
for help on using the changeset viewer.