Index: /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 75221)
+++ /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 75222)
@@ -764,4 +764,5 @@
 	src/extensions/QIFileDialog.h \
 	src/extensions/QIFlowLayout.h \
+	src/extensions/QIInputDialog.h \
 	src/extensions/QILabel.h \
 	src/extensions/QILabelSeparator.h \
@@ -1051,4 +1052,5 @@
 	src/extensions/QIFileDialog.h \
 	src/extensions/QIFlowLayout.h \
+	src/extensions/QIInputDialog.h \
 	src/extensions/QILabel.h \
 	src/extensions/QILabelSeparator.h \
@@ -1464,4 +1466,5 @@
 	src/extensions/QIFileDialog.cpp \
 	src/extensions/QIFlowLayout.cpp \
+	src/extensions/QIInputDialog.cpp \
 	src/extensions/QILabel.cpp \
 	src/extensions/QILabelSeparator.cpp \
@@ -1803,4 +1806,5 @@
 	src/extensions/QIFileDialog.cpp \
 	src/extensions/QIFlowLayout.cpp \
+	src/extensions/QIInputDialog.cpp \
 	src/extensions/QILabel.cpp \
 	src/extensions/QILabelSeparator.cpp \
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIInputDialog.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIInputDialog.cpp	(revision 75222)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIInputDialog.cpp	(revision 75222)
@@ -0,0 +1,126 @@
+/* $Id$ */
+/** @file
+ * VBox Qt GUI - Qt extensions: QIInputDialog class implementation.
+ */
+
+/*
+ * Copyright (C) 2008-2018 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+
+#ifdef VBOX_WITH_PRECOMPILED_HEADERS
+# include <precomp.h>
+#else  /* !VBOX_WITH_PRECOMPILED_HEADERS */
+
+/* Qt includes: */
+#include <QLabel>
+#include <QLineEdit>
+#include <QPushButton>
+#include <QVBoxLayout>
+
+/* GUI includes: */
+# include "QIDialogButtonBox.h"
+# include "QIInputDialog.h"
+
+#endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
+
+
+QIInputDialog::QIInputDialog(QWidget *pParent /* = 0 */, Qt::WindowFlags enmFlags /* = 0 */)
+    : QDialog(pParent, enmFlags)
+    , m_fDefaultLabelTextRedefined(false)
+    , m_pLabel(0)
+    , m_pTextValueEditor(0)
+    , m_pButtonBox(0)
+{
+    /* Prepare: */
+    prepare();
+}
+
+QString QIInputDialog::labelText() const
+{
+    return m_pLabel ? m_pLabel->text() : QString();
+}
+
+void QIInputDialog::resetLabelText()
+{
+    m_fDefaultLabelTextRedefined = false;
+    retranslateUi();
+}
+
+void QIInputDialog::setLabelText(const QString &strText)
+{
+    m_fDefaultLabelTextRedefined = true;
+    if (m_pLabel)
+        m_pLabel->setText(strText);
+}
+
+QString QIInputDialog::textValue() const
+{
+    return m_pTextValueEditor ? m_pTextValueEditor->text() : QString();
+}
+
+void QIInputDialog::setTextValue(const QString &strText)
+{
+    if (m_pTextValueEditor)
+        m_pTextValueEditor->setText(strText);
+}
+
+void QIInputDialog::retranslateUi()
+{
+    if (m_pLabel && !m_fDefaultLabelTextRedefined)
+        m_pLabel->setText(tr("Name:"));
+}
+
+void QIInputDialog::sltTextChanged()
+{
+    if (m_pButtonBox)
+        m_pButtonBox->button(QDialogButtonBox::Ok)->setEnabled(!textValue().isEmpty());
+}
+
+void QIInputDialog::prepare()
+{
+    /* Do not count that window as important for application,
+     * it will NOT be taken into account when other
+     * top-level windows will be closed: */
+    setAttribute(Qt::WA_QuitOnClose, false);
+
+    /* Create main layout: */
+    QVBoxLayout *pMainLayout = new QVBoxLayout(this);
+    if (pMainLayout)
+    {
+        /* Create label: */
+        m_pLabel = new QLabel(this);
+        if (m_pLabel)
+            pMainLayout->addWidget(m_pLabel);
+
+        /* Create text value editor: */
+        m_pTextValueEditor = new QLineEdit(this);
+        if (m_pTextValueEditor)
+        {
+            connect(m_pTextValueEditor, &QLineEdit::textChanged, this, &QIInputDialog::sltTextChanged);
+            pMainLayout->addWidget(m_pTextValueEditor);
+        }
+
+        /* Create button-box: */
+        m_pButtonBox = new QIDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this);
+        if (m_pButtonBox)
+        {
+            connect(m_pButtonBox, &QIDialogButtonBox::accepted, this, &QIInputDialog::accept);
+            connect(m_pButtonBox, &QIDialogButtonBox::rejected, this, &QIInputDialog::reject);
+            pMainLayout->addWidget(m_pButtonBox);
+        }
+    }
+
+    /* Apply language settings: */
+    retranslateUi();
+
+    /* Initialize editors: */
+    sltTextChanged();
+}
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIInputDialog.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIInputDialog.h	(revision 75222)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIInputDialog.h	(revision 75222)
@@ -0,0 +1,86 @@
+/* $Id$ */
+/** @file
+ * VBox Qt GUI - Qt extensions: QIInputDialog class declaration.
+ */
+
+/*
+ * Copyright (C) 2008-2018 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+
+#ifndef ___QIInputDialog_h___
+#define ___QIInputDialog_h___
+
+/* Qt includes: */
+#include <QDialog>
+#include <QPointer>
+
+/* GUI includes: */
+#include "QIWithRetranslateUI.h"
+#include "UILibraryDefs.h"
+
+/* Forward declarations: */
+class QLabel;
+class QLineEdit;
+class QIDialogButtonBox;
+
+/** QDialog extension providing the GUI with
+  * the advanced input dialog capabilities. */
+class SHARED_LIBRARY_STUFF QIInputDialog : public QDialog
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructs the dialog passing @a pParent and @a enmFlags to the base-class. */
+    QIInputDialog(QWidget *pParent = 0, Qt::WindowFlags enmFlags = 0);
+
+    /** Returns label text. */
+    QString labelText() const;
+    /** Undefines label text. */
+    void resetLabelText();
+    /** Defines label @a strText. */
+    void setLabelText(const QString &strText);
+
+    /** Returns text value. */
+    QString textValue() const;
+    /** Defines @a strText value. */
+    void setTextValue(const QString &strText);
+
+protected:
+
+    /** Handles translation event. */
+    virtual void retranslateUi() /* override */;
+
+private slots:
+
+    /** Handles text value change. */
+    void sltTextChanged();
+
+private:
+
+    /** Prepared all. */
+    void prepare();
+
+    /** Holds whether label text redefined. */
+    bool  m_fDefaultLabelTextRedefined;
+
+    /** Holds the label instance. */
+    QLabel            *m_pLabel;
+    /** Holds the text value editor instance. */
+    QLineEdit         *m_pTextValueEditor;
+    /** Holds the button-box instance. */
+    QIDialogButtonBox *m_pButtonBox;
+};
+
+/** Safe pointer to the QIInputDialog class. */
+typedef QPointer<QIInputDialog> QISafePointerInputDialog;
+
+#endif /* !___QIInputDialog_h___ */
