Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIUserNamePasswordEditor.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIUserNamePasswordEditor.cpp	(revision 90035)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIUserNamePasswordEditor.cpp	(revision 90037)
@@ -206,5 +206,4 @@
     , m_pPasswordLabel(0)
     , m_pPasswordRepeatLabel(0)
-    , m_fForceUnmark(false)
     , m_fShowPlaceholderText(true)
     , m_fLabelsVisible(true)
@@ -256,7 +255,8 @@
         if (m_pPasswordLineEdit->text() != m_pPasswordRepeatLineEdit->text())
             fPasswordOK = false;
+#if 0
         if (m_pPasswordLineEdit->text().isEmpty())
             fPasswordOK = false;
-
+#endif
         m_pPasswordLineEdit->mark(!fPasswordOK, m_strPasswordError);
         m_pPasswordRepeatLineEdit->mark(!fPasswordOK, m_strPasswordError);
@@ -270,11 +270,4 @@
     bool fPasswordField = isPasswordComplete();
     return fUserNameField && fPasswordField;
-}
-
-void UIUserNamePasswordEditor::setForceUnmark(bool fForceUnmark)
-{
-    m_fForceUnmark = fForceUnmark;
-    isUserNameComplete();
-    isPasswordComplete();
 }
 
@@ -355,5 +348,4 @@
     pLayout->addWidget(pLabel, iRow, 0, 1, 1);
 
-
     pLineEdit = new T;
     if (!pLineEdit)
@@ -363,5 +355,4 @@
     pLabel->setBuddy(pLineEdit);
     ++iRow;
-    connect(pLineEdit, &T::textChanged, this, &UIUserNamePasswordEditor::sltSomeTextChanged);
     return;
 }
@@ -385,4 +376,9 @@
     connect(m_pPasswordRepeatLineEdit, &UIPasswordLineEdit::sigTextVisibilityToggled,
             this, &UIUserNamePasswordEditor::sltHandlePasswordVisibility);
+    connect(m_pPasswordLineEdit, &UIPasswordLineEdit::textChanged,
+            this, &UIUserNamePasswordEditor::sltPasswordChanged);
+    connect(m_pUserNameLineEdit, &QILineEdit::textChanged,
+            this, &UIUserNamePasswordEditor::sltUserNameChanged);
+
     /* Cache the original back color of the line edit to restore it correctly: */
     if (m_pUserNameLineEdit)
@@ -400,10 +396,16 @@
 }
 
-void UIUserNamePasswordEditor::sltSomeTextChanged()
-{
-    /* Check text lines edits and mark them accordingly: */
-    isComplete();
-    emit sigSomeTextChanged();
-}
+void UIUserNamePasswordEditor::sltUserNameChanged()
+{
+    if (isUserNameComplete())
+        emit sigUserNameChanged(m_pUserNameLineEdit->text());
+}
+
+void UIUserNamePasswordEditor::sltPasswordChanged()
+{
+    if (isPasswordComplete())
+        emit sigPasswordChanged(m_pPasswordLineEdit->text());
+}
+
 
 #include "UIUserNamePasswordEditor.moc"
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIUserNamePasswordEditor.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIUserNamePasswordEditor.h	(revision 90035)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIUserNamePasswordEditor.h	(revision 90037)
@@ -42,6 +42,7 @@
 signals:
 
-    /** this is emitted whenever the content of one of the line edits is changed. */
-    void sigSomeTextChanged();
+    void sigUserNameChanged(const QString &strUserName);
+    void sigPasswordChanged(const QString &strPassword);
+
 
 public:
@@ -57,6 +58,4 @@
     /** Returns false if username or password fields are empty, or password fields do not match. */
     bool isComplete();
-    /** Sets m_fForceUnmark flag. see it for more info. */
-    void setForceUnmark(bool fForceUnmark);
 
     /** When fEnabled true place holder texts for the line edits are shown. */
@@ -71,5 +70,6 @@
 
     void sltHandlePasswordVisibility(bool fPasswordVisible);
-    void sltSomeTextChanged();
+    void sltUserNameChanged();
+    void sltPasswordChanged();
 
 private:
@@ -90,6 +90,5 @@
     QLabel *m_pPasswordRepeatLabel;
     QColor m_orginalLineEditBaseColor;
-    /** When true line edits are not marked even if they have to be. */
-    bool m_fForceUnmark;
+
     bool m_fShowPlaceholderText;
     bool m_fLabelsVisible;
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp	(revision 90035)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp	(revision 90037)
@@ -630,15 +630,4 @@
 }
 
-QString UIWizardNewVM::ISOFilePath() const
-{
-    // QString strPath = getStringFieldValue("ISOFilePath");
-    // if (strPath.isNull() || strPath.isEmpty())
-    //     return QString();
-    // QFileInfo isoFileInfo(strPath);
-    // if (isoFileInfo.exists() && isoFileInfo.isReadable())
-    //     return strPath;
-    return QString();
-}
-
 CMedium &UIWizardNewVM::virtualDisk()
 {
@@ -735,11 +724,41 @@
 }
 
+const QString &UIWizardNewVM::ISOFilePath() const
+{
+    return m_strISOFilePath;
+}
+
+void UIWizardNewVM::setISOFilePath(const QString &strISOFilePath)
+{
+    m_strISOFilePath = strISOFilePath;
+}
+
+const QString &UIWizardNewVM::userName() const
+{
+    return m_strUserName;
+}
+
+void UIWizardNewVM::setUserName(const QString &strUserName)
+{
+    m_strUserName = strUserName;
+}
+
+const QString &UIWizardNewVM::password() const
+{
+    return m_strPassword;
+}
+
+void UIWizardNewVM::setPassword(const QString &strPassword)
+{
+    m_strPassword = strPassword;
+}
+
 const UIUnattendedInstallData &UIWizardNewVM::unattendedInstallData() const
 {
-    // m_unattendedInstallData.m_strISOPath = getStringFieldValue("ISOFilePath");
+    m_unattendedInstallData.m_strISOPath = m_strISOFilePath;
     // m_unattendedInstallData.m_strUserName = getStringFieldValue("userName");
     // m_unattendedInstallData.m_strHostname = getStringFieldValue("hostname");
     // m_unattendedInstallData.m_strPassword = getStringFieldValue("password");
-    // m_unattendedInstallData.m_strDetectedOSTypeId = getStringFieldValue("detectedOSTypeId");
+    m_unattendedInstallData.m_strDetectedOSTypeId = m_strDetectedOSTypeId;
     // // m_unattendedInstallData.m_strDetectedOSVersion = getStringFieldValue("detectedOSVersion");
     // // m_unattendedInstallData.m_strDetectedOSFlavor = getStringFieldValue("detectedOSFlavor");
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h	(revision 90035)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h	(revision 90037)
@@ -111,4 +111,13 @@
     void setInstallGuestAdditions(bool fInstallGA);
 
+    const QString &ISOFilePath() const;
+    void setISOFilePath(const QString &strISOFilePath);
+
+    const QString &userName() const;
+    void setUserName(const QString &strUserName);
+
+    const QString &password() const;
+    void setPassword(const QString &strPassword);
+
 protected:
 
@@ -138,6 +147,4 @@
     QString getNextControllerName(KStorageBus type);
     void setFieldsFromDefaultUnttendedInstallData();
-    /* Returns ISO file path if a readable ISO file is selected. Returns an empty string otherwise. */
-    QString ISOFilePath() const;
 
     /** @name Variables
@@ -154,4 +161,7 @@
        mutable UIUnattendedInstallData m_unattendedInstallData;
     /** @} */
+
+    /** Path of the ISO file attached to the new vm. Possibly used for the unattended install. */
+    QString m_strISOFilePath;
 
     /** Path of the folder created by this wizard page. Used to remove previously created
@@ -174,4 +184,7 @@
     /** True if guest additions are to be installed during unattended install. */
     bool m_fInstallGuestAdditions;
+
+    QString m_strUserName;
+    QString m_strPassword;
 };
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePageBasic.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePageBasic.cpp	(revision 90035)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePageBasic.cpp	(revision 90037)
@@ -463,6 +463,10 @@
 {
     UIWizardNewVMNameOSTypePage::determineOSType(strPath, m_pWizard);
-    if (m_pWizard && !m_pWizard->detectedOSTypeId().isEmpty())
-        UIWizardNewVMNameOSTypePage::onNameChanged(m_pNameAndSystemEditor, m_pWizard->detectedOSTypeId());
+    if (m_pWizard)
+    {
+        if (!m_pWizard->detectedOSTypeId().isEmpty())
+            UIWizardNewVMNameOSTypePage::onNameChanged(m_pNameAndSystemEditor, m_pWizard->detectedOSTypeId());
+        m_pWizard->setISOFilePath(strPath);
+    }
     /* Update the global recent ISO path: */
     QFileInfo fileInfo(strPath);
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePageBasic.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePageBasic.h	(revision 90035)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePageBasic.h	(revision 90037)
@@ -53,26 +53,8 @@
     /** Return false if ISO path is not empty but points to an missing or unreadable file. */
     bool checkISOFile(UINameAndSystemEditor *pNameAndSystemEditor);
-//     /** @name Property getters/setters
-//       * @{ */
 
 //         QString guestOSFamiyId() const;
-
 //         const QString &detectedOSTypeId() const;
-
 //         bool skipUnattendedInstall() const;
-//     /** @} */
-
-
-//     /** Colors the widgets red if they cause isComplete to fail. */
-//     void retranslateWidgets();
-//     QString ISOFilePath() const;
-
-
-//
-
-// private:
-
-
-// };
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMUnattendedPageBasic.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMUnattendedPageBasic.cpp	(revision 90035)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMUnattendedPageBasic.cpp	(revision 90037)
@@ -85,9 +85,4 @@
 
 
-// void UIWizardNewVMUnattendedPage::setInstallGuestAdditions(bool fInstallGA)
-// {
-//     if (m_pGAInstallationISOContainer)
-//         m_pGAInstallationISOContainer->setChecked(fInstallGA);
-// }
 
 // QString UIWizardNewVMUnattendedPage::guestAdditionsISOPath() const
@@ -171,7 +166,7 @@
 void UIWizardNewVMUnattendedPageBasic::createConnections()
 {
-    if (m_pUserNamePasswordEditor)
-        connect(m_pUserNamePasswordEditor, &UIUserNamePasswordEditor::sigSomeTextChanged,
-                this, &UIWizardNewVMUnattendedPageBasic::completeChanged);
+    // if (m_pUserNamePasswordEditor)
+    //     connect(m_pUserNamePasswordEditor, &UIUserNamePasswordEditor::sigSomeTextChanged,
+    //             this, &UIWizardNewVMUnattendedPageBasic::completeChanged);
     if (m_pGAISOFilePathSelector)
         connect(m_pGAISOFilePathSelector, &UIFilePathSelector::pathChanged,
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMUnattendedPageBasic.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMUnattendedPageBasic.h	(revision 90035)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMUnattendedPageBasic.h	(revision 90037)
@@ -87,4 +87,6 @@
     void sltInstallGACheckBoxToggle(bool fChecked);
     void sltGAISOPathChanged(const QString &strPath);
+    // void sltPasswordChanged(const QString &strPassword);
+    // void sltUserNameChanged(const QString &strUserName);
 
 private:
