Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp	(revision 92491)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp	(revision 92492)
@@ -83,4 +83,5 @@
 /* VISO Creator: */
 const char *UIExtraDataDefs::GUI_VISOCreator_RecentFolder   = "GUI/VISOCreator/RecentFolder";
+const char *UIExtraDataDefs::GUI_VISOCreator_DialogGeometry   = "GUI/VISOCreator/DialogGeometry";
 
 /* VirtualBox Manager: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h	(revision 92491)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h	(revision 92492)
@@ -157,4 +157,5 @@
         /** Holds recent folder for VISO creation content. */
         SHARED_LIBRARY_STUFF extern const char *GUI_VISOCreator_RecentFolder;
+        SHARED_LIBRARY_STUFF extern const char *GUI_VISOCreator_DialogGeometry;
     /** @} */
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 92491)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 92492)
@@ -1908,5 +1908,5 @@
            << GUI_Input_SelectorShortcuts << GUI_Input_MachineShortcuts
            << GUI_RecentFolderHD << GUI_RecentFolderCD << GUI_RecentFolderFD
-           << GUI_VISOCreator_RecentFolder
+           << GUI_VISOCreator_RecentFolder << GUI_VISOCreator_DialogGeometry
            << GUI_RecentListHD << GUI_RecentListCD << GUI_RecentListFD
            << GUI_RestrictedNetworkAttachmentTypes
@@ -2720,4 +2720,23 @@
 }
 
+QRect UIExtraDataManager::visoCreatorDialogGeometry(QWidget *pWidget, QWidget *pParentWidget, const QRect &defaultGeometry)
+{
+    return dialogGeometry(GUI_VISOCreator_DialogGeometry, pWidget, pParentWidget, defaultGeometry);
+}
+
+void UIExtraDataManager::setVisoCreatorDialogGeometry(const QRect &geometry, bool fMaximized)
+{
+    setDialogGeometry(GUI_VISOCreator_DialogGeometry, geometry, fMaximized);
+}
+
+bool UIExtraDataManager::visoCreatorDialogShouldBeMaximized()
+{
+    /* Get corresponding extra-data: */
+    const QStringList data = extraDataStringList(GUI_VISOCreator_DialogGeometry);
+
+    /* Make sure 5th item has required value: */
+    return data.size() == 5 && data[4] == GUI_Geometry_State_Max;
+}
+
 QRect UIExtraDataManager::selectorWindowGeometry(QWidget *pWidget)
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 92491)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 92492)
@@ -335,4 +335,10 @@
         /** Defines recent folder for VISO creation content as @a strValue. */
         void setVISOCreatorRecentFolder(const QString &strValue);
+        /** Returns viso creator geometry using @a pWidget as the hint. */
+        QRect visoCreatorDialogGeometry(QWidget *pWidget, QWidget *pParentWidget, const QRect &defaultGeometry);
+        /** Set viso creator geometry. */
+        void setVisoCreatorDialogGeometry(const QRect &geometry, bool fMaximized);
+        /** Returns whether viso creator dialog should be maximized. */
+        bool visoCreatorDialogShouldBeMaximized();
     /** @} */
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoContentBrowser.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoContentBrowser.cpp	(revision 92491)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoContentBrowser.cpp	(revision 92492)
@@ -23,4 +23,5 @@
 #include <QHeaderView>
 #include <QMimeData>
+#include <QTableView>
 #include <QTreeView>
 
@@ -29,5 +30,4 @@
 #include "UIPathOperations.h"
 #include "UIVisoContentBrowser.h"
-#include "QITableView.h"
 
 /*********************************************************************************************************************************
@@ -36,5 +36,5 @@
 
 /** An QTableView extension mainly used to handle dropeed file objects from the host browser. */
-class UIVisoContentTableView : public QITableView
+class UIVisoContentTableView : public QTableView
 {
     Q_OBJECT;
@@ -77,5 +77,5 @@
 *********************************************************************************************************************************/
 UIVisoContentTableView::UIVisoContentTableView(QWidget *pParent /* = 0 */)
-    :QITableView(pParent)
+    :QTableView(pParent)
 {
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.cpp	(revision 92491)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.cpp	(revision 92492)
@@ -29,4 +29,5 @@
 #include "UIIconPool.h"
 #include "UIMessageCenter.h"
+#include "UIModalWindowManager.h"
 #include "QIToolBar.h"
 #include "UIVisoHostBrowser.h"
@@ -509,9 +510,10 @@
 *********************************************************************************************************************************/
 UIVisoCreatorDialog::UIVisoCreatorDialog(UIActionPool *pActionPool, QWidget *pParent, const QString& strMachineName /* = QString() */)
-    : QIWithRetranslateUI<QIMainDialog>(pParent)
+    : QIWithRetranslateUI<QIWithRestorableGeometry<QIMainDialog> >(pParent)
     , m_strMachineName(strMachineName)
     , m_pVisoCreatorWidget(0)
     , m_pButtonBox(0)
     , m_pActionPool(pActionPool)
+    , m_iGeometrySaveTimerId(-1)
 {
     /* Make sure that the base class does not close this dialog upon pressing escape.
@@ -520,4 +522,5 @@
     prepareWidgets();
     prepareConnections();
+    loadSettings();
 }
 
@@ -613,4 +616,25 @@
 }
 
+bool UIVisoCreatorDialog::event(QEvent *pEvent)
+{
+    if (pEvent->type() == QEvent::Resize || pEvent->type() == QEvent::Move)
+    {
+        if (m_iGeometrySaveTimerId != -1)
+            killTimer(m_iGeometrySaveTimerId);
+        m_iGeometrySaveTimerId = startTimer(300);
+    }
+    else if (pEvent->type() == QEvent::Timer)
+    {
+        QTimerEvent *pTimerEvent = static_cast<QTimerEvent*>(pEvent);
+        if (pTimerEvent->timerId() == m_iGeometrySaveTimerId)
+        {
+            killTimer(m_iGeometrySaveTimerId);
+            m_iGeometrySaveTimerId = -1;
+            saveDialogGeometry();
+        }
+    }
+    return QIWithRetranslateUI<QIWithRestorableGeometry<QIMainDialog> >::event(pEvent);
+}
+
 void UIVisoCreatorDialog::sltSetCancelButtonShortCut(QKeySequence keySequence)
 {
@@ -618,2 +642,26 @@
         m_pButtonBox->button(QDialogButtonBox::Cancel)->setShortcut(keySequence);
 }
+
+void UIVisoCreatorDialog::loadSettings()
+{
+    const QRect availableGeo = gpDesktop->availableGeometry(this);
+    int iDefaultWidth = availableGeo.width() / 2;
+    int iDefaultHeight = availableGeo.height() * 3 / 4;
+    QRect defaultGeo(0, 0, iDefaultWidth, iDefaultHeight);
+
+    QWidget *pParent = windowManager().realParentWindow(parentWidget() ? parentWidget() : windowManager().mainWindowShown());
+    /* Load geometry from extradata: */
+    const QRect geo = gEDataManager->visoCreatorDialogGeometry(this, pParent, defaultGeo);
+    LogRel2(("GUI: UISoftKeyboard: Restoring geometry to: Origin=%dx%d, Size=%dx%d\n",
+             geo.x(), geo.y(), geo.width(), geo.height()));
+
+    restoreGeometry(geo);
+}
+
+void UIVisoCreatorDialog::saveDialogGeometry()
+{
+    const QRect geo = currentGeometry();
+    LogRel2(("GUI: UIMediumSelector: Saving geometry as: Origin=%dx%d, Size=%dx%d\n",
+             geo.x(), geo.y(), geo.width(), geo.height()));
+    gEDataManager->setVisoCreatorDialogGeometry(geo, isCurrentlyMaximized());
+}
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.h	(revision 92491)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.h	(revision 92492)
@@ -27,4 +27,5 @@
 /* GUI includes: */
 #include "QIMainDialog.h"
+#include "QIWithRestorableGeometry.h"
 #include "QIWithRetranslateUI.h"
 
@@ -174,5 +175,5 @@
 
 
-class SHARED_LIBRARY_STUFF UIVisoCreatorDialog : public QIWithRetranslateUI<QIMainDialog>
+class SHARED_LIBRARY_STUFF UIVisoCreatorDialog : public QIWithRetranslateUI<QIWithRestorableGeometry<QIMainDialog> >
 {
     Q_OBJECT;
@@ -188,4 +189,8 @@
     void    setCurrentPath(const QString &strPath);
 
+protected:
+
+    virtual bool event(QEvent *pEvent) final override;
+
 private slots:
 
@@ -196,4 +201,6 @@
     void prepareConnections();
     virtual void retranslateUi() final override;
+    void loadSettings();
+    void saveDialogGeometry();
 
     QString m_strMachineName;
@@ -201,4 +208,5 @@
     QIDialogButtonBox    *m_pButtonBox;
     QPointer<UIActionPool> m_pActionPool;
+    int                   m_iGeometrySaveTimerId;
 };
 #endif /* !FEQT_INCLUDED_SRC_medium_viso_UIVisoCreator_h */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.cpp	(revision 92491)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.cpp	(revision 92492)
@@ -22,7 +22,7 @@
 #include <QTextEdit>
 #include <QTreeView>
+#include <QTableView>
 
 /* GUI includes: */
-#include "QITableView.h"
 #include "UIVisoHostBrowser.h"
 
@@ -150,5 +150,5 @@
     }
 
-    m_pTableView = new QITableView;
+    m_pTableView = new QTableView;
     if (m_pTableView)
     {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.h	(revision 92491)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoHostBrowser.h	(revision 92492)
@@ -27,5 +27,5 @@
 /* Forward declarations: */
 class QItemSelection;
-class QITableView;
+class QTableView;
 class UIVisoHostBrowserModel;
 
@@ -72,5 +72,5 @@
     UIVisoHostBrowserModel *m_pTreeModel;
     UIVisoHostBrowserModel *m_pTableModel;
-    QITableView            *m_pTableView;
+    QTableView            *m_pTableView;
 };
 
