Changeset 100969 in vbox
- Timestamp:
- Aug 25, 2023 12:15:39 PM (14 months ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/settings
- Files:
-
- 4 edited
-
UISettingsDialog.cpp (modified) (3 diffs)
-
UISettingsDialog.h (modified) (1 diff)
-
UISettingsPageValidator.cpp (modified) (2 diffs)
-
UISettingsPageValidator.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.cpp
r100967 r100969 198 198 /* Retranslate all validators: */ 199 199 foreach (UISettingsPageValidator *pValidator, findChildren<UISettingsPageValidator*>()) 200 if (!pValidator->lastMessage().isEmpty()) 201 revalidate(pValidator); 200 pValidator->setTitlePrefix(m_pSelector->itemTextByPage(pValidator->page())); 202 201 revalidate(); 203 202 } … … 448 447 } 449 448 450 void UISettingsDialog::revalidate(UISettingsPageValidator *pValidator)451 {452 /* Perform page revalidation: */453 UISettingsPage *pSettingsPage = pValidator->page();454 QList<UIValidationMessage> messages;455 bool fIsValid = pSettingsPage->validate(messages);456 457 /* Remember revalidation result: */458 pValidator->setValid(fIsValid);459 460 /* Remember warning/error message: */461 if (messages.isEmpty())462 pValidator->setLastMessage(QString());463 else464 {465 /* Prepare title prefix: */466 // Its the only thing preventing us from moving this method to validator.467 const QString strTitlePrefix(m_pSelector->itemTextByPage(pSettingsPage));468 /* Prepare text: */469 QStringList text;470 foreach (const UIValidationMessage &message, messages)471 {472 /* Prepare title: */473 const QString strTitle(message.first.isNull() ? tr("<b>%1</b> page:").arg(strTitlePrefix) :474 tr("<b>%1: %2</b> page:").arg(strTitlePrefix, message.first));475 /* Prepare paragraph: */476 QStringList paragraph(message.second);477 paragraph.prepend(strTitle);478 /* Format text for iterated message: */479 text << paragraph.join("<br>");480 }481 /* Remember text: */482 pValidator->setLastMessage(text.join("<br><br>"));483 LogRelFlow(("Settings Dialog: Page validation FAILED: {%s}\n",484 pValidator->lastMessage().toUtf8().constData()));485 }486 }487 488 449 void UISettingsDialog::revalidate() 489 450 { … … 554 515 555 516 /* Perform page revalidation: */ 556 revalidate(pValidator);517 pValidator->revalidate(); 557 518 /* Perform inter-page recorrelation: */ 558 519 recorrelate(pSettingsPage); -
trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.h
r100961 r100969 159 159 void addPageHelpKeyword(int iPageType, const QString &strHelpKeyword); 160 160 161 /** Validates data correctness using certain @a pValidator. */162 void revalidate(UISettingsPageValidator *pValidator);163 161 /** Validates data correctness. */ 164 162 void revalidate(); -
trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsPageValidator.cpp
r100968 r100969 48 48 } 49 49 50 void UISettingsPageValidator::setTitlePrefix(const QString &strPrefix) 51 { 52 /* Assign new prefix: */ 53 m_strPrefix = strPrefix; 54 55 /* Revalidate if we had errors previously: */ 56 if (!lastMessage().isEmpty()) 57 revalidate(); 58 } 59 50 60 void UISettingsPageValidator::setLastMessage(const QString &strLastMessage) 51 61 { … … 65 75 emit sigValidityChanged(this); 66 76 } 77 78 void UISettingsPageValidator::revalidate() 79 { 80 /* Perform page revalidation: */ 81 QList<UIValidationMessage> messages; 82 setValid(m_pPage->validate(messages)); 83 84 /* Remember warning/error message: */ 85 if (messages.isEmpty()) 86 setLastMessage(QString()); 87 else 88 { 89 /* Prepare text: */ 90 QStringList text; 91 foreach (const UIValidationMessage &message, messages) 92 { 93 /* Prepare title: */ 94 const QString strTitle(message.first.isNull() ? tr("<b>%1</b> page:").arg(m_strPrefix) : 95 tr("<b>%1: %2</b> page:").arg(m_strPrefix, message.first)); 96 97 /* Prepare paragraph: */ 98 QStringList paragraph(message.second); 99 paragraph.prepend(strTitle); 100 101 /* Format text for iterated message: */ 102 text << paragraph.join("<br>"); 103 } 104 105 /* Remember text: */ 106 setLastMessage(text.join("<br><br>")); 107 LogRelFlow(("Settings Dialog: Page validation FAILED: {%s}\n", 108 lastMessage().toUtf8().constData())); 109 } 110 } -
trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsPageValidator.h
r100968 r100969 73 73 QString internalName() const; 74 74 75 /** Defines title @a strPrefix. */ 76 void setTitlePrefix(const QString &strPrefix); 77 75 78 /** Returns whether validator is valid. */ 76 79 bool isValid() const { return m_fIsValid; } … … 86 89 void invalidate(); 87 90 91 /** Revalidate validator. */ 92 void revalidate(); 93 88 94 private: 89 95 90 96 /** Holds the validated page. */ 91 97 UISettingsPage *m_pPage; 98 99 /** Holds the title prefix. */ 100 QString m_strPrefix; 92 101 93 102 /** Holds whether the page is valid. */
Note:
See TracChangeset
for help on using the changeset viewer.

