Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic2.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic2.cpp	(revision 78061)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic2.cpp	(revision 78062)
@@ -47,5 +47,4 @@
 /* COM includes: */
 #include "CCloudClient.h"
-#include "CCloudProvider.h"
 
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppDefs.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppDefs.h	(revision 78061)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppDefs.h	(revision 78062)
@@ -33,12 +33,3 @@
 Q_DECLARE_METATYPE(ImportAppliancePointer);
 
-/** Import source types. */
-enum ImportSourceType
-{
-    ImportSourceType_Invalid,
-    ImportSourceType_Local,
-    ImportSourceType_Cloud
-};
-Q_DECLARE_METATYPE(ImportSourceType);
-
 #endif /* !FEQT_INCLUDED_SRC_wizards_importappliance_UIWizardImportAppDefs_h */
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageBasic1.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageBasic1.cpp	(revision 78061)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageBasic1.cpp	(revision 78062)
@@ -27,23 +27,8 @@
 #include "VBoxGlobal.h"
 #include "UIEmptyFilePathSelector.h"
+#include "UIMessageCenter.h"
 #include "UIWizardImportApp.h"
 #include "UIWizardImportAppPageBasic1.h"
 #include "UIWizardImportAppPageBasic2.h"
-
-
-/*********************************************************************************************************************************
-*   Namespace ImportSourceTypeConverter implementation.                                                                          *
-*********************************************************************************************************************************/
-
-QString ImportSourceTypeConverter::toString(ImportSourceType enmType)
-{
-    switch (enmType)
-    {
-        case ImportSourceType_Local: return QApplication::translate("UIWizardImportApp", "Local File System");
-        case ImportSourceType_Cloud: return QApplication::translate("UIWizardImportApp", "Cloud Content Provider");
-        default: break;
-    }
-    return QString();
-}
 
 
@@ -58,4 +43,89 @@
     , m_pFileSelector(0)
 {
+}
+
+void UIWizardImportAppPage1::populateSources()
+{
+    AssertReturnVoid(m_pSourceComboBox->count() == 0);
+
+    /* Compose hardcoded sources list: */
+    QStringList sources;
+    sources << "local";
+    /* Add that list to combo: */
+    foreach (const QString &strShortName, sources)
+    {
+        /* Compose empty item, fill it's data: */
+        m_pSourceComboBox->addItem(QString());
+        m_pSourceComboBox->setItemData(m_pSourceComboBox->count() - 1, strShortName, SourceData_ShortName);
+    }
+
+    /* Initialize Cloud Provider Manager: */
+    CVirtualBox comVBox = vboxGlobal().virtualBox();
+    m_comCloudProviderManager = comVBox.GetCloudProviderManager();
+    /* Show error message if necessary: */
+    if (!comVBox.isOk())
+        msgCenter().cannotAcquireCloudProviderManager(comVBox);
+    else
+    {
+        /* Acquire existing providers: */
+        const QVector<CCloudProvider> providers = m_comCloudProviderManager.GetProviders();
+        /* Show error message if necessary: */
+        if (!m_comCloudProviderManager.isOk())
+            msgCenter().cannotAcquireCloudProviderManagerParameter(m_comCloudProviderManager);
+        else
+        {
+            /* Iterate through existing providers: */
+            foreach (const CCloudProvider &comProvider, providers)
+            {
+                /* Skip if we have nothing to populate (file missing?): */
+                if (comProvider.isNull())
+                    continue;
+
+                /* Compose empty item, fill it's data: */
+                m_pSourceComboBox->addItem(QString());
+                m_pSourceComboBox->setItemData(m_pSourceComboBox->count() - 1, comProvider.GetId(),        SourceData_ID);
+                m_pSourceComboBox->setItemData(m_pSourceComboBox->count() - 1, comProvider.GetName(),      SourceData_Name);
+                m_pSourceComboBox->setItemData(m_pSourceComboBox->count() - 1, comProvider.GetShortName(), SourceData_ShortName);
+                m_pSourceComboBox->setItemData(m_pSourceComboBox->count() - 1, true,                       SourceData_IsItCloudFormat);
+            }
+        }
+    }
+
+    /* Set default: */
+    setSource("local");
+}
+
+void UIWizardImportAppPage1::updatePageAppearance()
+{
+    /* Update page appearance according to chosen source: */
+    m_pStackedLayout->setCurrentIndex((int)isSourceCloudOne());
+}
+
+void UIWizardImportAppPage1::updateSourceComboToolTip()
+{
+    const int iCurrentIndex = m_pSourceComboBox->currentIndex();
+    const QString strCurrentToolTip = m_pSourceComboBox->itemData(iCurrentIndex, Qt::ToolTipRole).toString();
+    AssertMsg(!strCurrentToolTip.isEmpty(), ("Data not found!"));
+    m_pSourceComboBox->setToolTip(strCurrentToolTip);
+}
+
+void UIWizardImportAppPage1::setSource(const QString &strSource)
+{
+    const int iIndex = m_pSourceComboBox->findData(strSource, SourceData_ShortName);
+    AssertMsg(iIndex != -1, ("Data not found!"));
+    m_pSourceComboBox->setCurrentIndex(iIndex);
+}
+
+QString UIWizardImportAppPage1::source() const
+{
+    const int iIndex = m_pSourceComboBox->currentIndex();
+    return m_pSourceComboBox->itemData(iIndex, SourceData_ShortName).toString();
+}
+
+bool UIWizardImportAppPage1::isSourceCloudOne(int iIndex /* = -1 */) const
+{
+    if (iIndex == -1)
+        iIndex = m_pSourceComboBox->currentIndex();
+    return m_pSourceComboBox->itemData(iIndex, SourceData_IsItCloudFormat).toBool();
 }
 
@@ -102,6 +172,4 @@
                 m_pSourceLabel->setBuddy(m_pSourceComboBox);
                 m_pSourceComboBox->hide();
-                m_pSourceComboBox->addItem(QString(), QVariant::fromValue(ImportSourceType_Local));
-                m_pSourceComboBox->addItem(QString(), QVariant::fromValue(ImportSourceType_Cloud));
                 connect(m_pSourceComboBox, static_cast<void(QIComboBox::*)(int)>(&QIComboBox::activated),
                         this, &UIWizardImportAppPageBasic1::sltHandleSourceChange);
@@ -148,5 +216,5 @@
 
                 /* Add into layout: */
-                m_stackedLayoutIndexMap[ImportSourceType_Local] = m_pStackedLayout->addWidget(pLocalContainer);
+                m_pStackedLayout->addWidget(pLocalContainer);
             }
 
@@ -167,5 +235,5 @@
 
                 /* Add into layout: */
-                m_stackedLayoutIndexMap[ImportSourceType_Cloud] = m_pStackedLayout->addWidget(pCloudContainer);
+                m_pStackedLayout->addWidget(pCloudContainer);
             }
 
@@ -178,6 +246,13 @@
     }
 
+    /* Populate sources: */
+    populateSources();
+
     /* Setup connections: */
     connect(m_pFileSelector, &UIEmptyFilePathSelector::pathChanged, this, &UIWizardImportAppPageBasic1::completeChanged);
+
+    /* Register fields: */
+    registerField("source", this, "source");
+    registerField("isSourceCloudOne", this, "isSourceCloudOne");
 }
 
@@ -194,8 +269,15 @@
     /* Translate source label: */
     m_pSourceLabel->setText(tr("&Source:"));
+    /* Translate hardcoded values of Source combo-box: */
+    m_pSourceComboBox->setItemText(0, UIWizardImportApp::tr("Local File System"));
+    m_pSourceComboBox->setItemData(0, UIWizardImportApp::tr("Import from local file system."), Qt::ToolTipRole);
     /* Translate received values of Source combo-box.
      * We are enumerating starting from 0 for simplicity: */
     for (int i = 0; i < m_pSourceComboBox->count(); ++i)
-        m_pSourceComboBox->setItemText(i, ImportSourceTypeConverter::toString(m_pSourceComboBox->itemData(i).value<ImportSourceType>()));
+        if (isSourceCloudOne(i))
+        {
+            m_pSourceComboBox->setItemText(i, m_pSourceComboBox->itemData(i, SourceData_Name).toString());
+            m_pSourceComboBox->setItemData(i, UIWizardImportApp::tr("Import from cloud service provider."), Qt::ToolTipRole);
+        }
 
     /* Translate file selector: */
@@ -203,4 +285,10 @@
     m_pFileSelector->setFileDialogTitle(UIWizardImportApp::tr("Please choose a virtual appliance file to import"));
     m_pFileSelector->setFileFilters(UIWizardImportApp::tr("Open Virtualization Format (%1)").arg("*.ova *.ovf"));
+
+    /* Update page appearance: */
+    updatePageAppearance();
+
+    /* Update tool-tips: */
+    updateSourceComboToolTip();
 }
 
@@ -238,6 +326,11 @@
 }
 
-void UIWizardImportAppPageBasic1::sltHandleSourceChange(int iIndex)
-{
-    m_pStackedLayout->setCurrentIndex(m_stackedLayoutIndexMap.value(m_pSourceComboBox->itemData(iIndex).value<ImportSourceType>()));
-}
+void UIWizardImportAppPageBasic1::sltHandleSourceChange()
+{
+    /* Update tool-tip: */
+    updateSourceComboToolTip();
+
+    /* Refresh required settings: */
+    updatePageAppearance();
+    emit completeChanged();
+}
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageBasic1.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageBasic1.h	(revision 78061)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageBasic1.h	(revision 78062)
@@ -26,4 +26,10 @@
 #include "UIWizardPage.h"
 
+/* COM includes: */
+#include "COMEnums.h"
+#include "CCloudProfile.h"
+#include "CCloudProvider.h"
+#include "CCloudProviderManager.h"
+
 /* Forward declarations: */
 class QLabel;
@@ -33,10 +39,12 @@
 class UIEmptyFilePathSelector;
 
-/** Source type converter namespace. */
-namespace ImportSourceTypeConverter
+/** Source combo data fields. */
+enum
 {
-    /** Converts QString <= ImportSourceType. */
-    QString toString(ImportSourceType enmType);
-}
+    SourceData_ID              = Qt::UserRole + 1,
+    SourceData_Name            = Qt::UserRole + 2,
+    SourceData_ShortName       = Qt::UserRole + 3,
+    SourceData_IsItCloudFormat = Qt::UserRole + 4
+};
 
 /** UIWizardPageBase extension for 1st page of the Import Appliance wizard. */
@@ -48,4 +56,30 @@
     UIWizardImportAppPage1();
 
+    /** Populates sources. */
+    void populateSources();
+
+    /** Updates page appearance. */
+    virtual void updatePageAppearance();
+
+    /** Updates source combo tool-tips. */
+    void updateSourceComboToolTip();
+
+    /** Defines @a strSource. */
+    void setSource(const QString &strSource);
+    /** Returns source. */
+    QString source() const;
+    /** Returns whether source under certain @a iIndex is cloud one. */
+    bool isSourceCloudOne(int iIndex = -1) const;
+
+    /** Holds whether default source should be Import from OCI. */
+    bool  m_fImportFromOCIByDefault;
+
+    /** Holds the Cloud Provider Manager reference. */
+    CCloudProviderManager  m_comCloudProviderManager;
+    /** Holds the Cloud Provider object reference. */
+    CCloudProvider         m_comCloudProvider;
+    /** Holds the Cloud Profile object reference. */
+    CCloudProfile          m_comCloudProfile;
+
     /** Holds the source type label instance. */
     QLabel     *m_pSourceLabel;
@@ -54,7 +88,5 @@
 
     /** Holds the stacked layout instance. */
-    QStackedLayout              *m_pStackedLayout;
-    /** Holds the stacked layout widget indexes map. */
-    QMap<ImportSourceType, int>  m_stackedLayoutIndexMap;
+    QStackedLayout *m_pStackedLayout;
 
     /** Holds the file selector instance. */
@@ -66,4 +98,6 @@
 {
     Q_OBJECT;
+    Q_PROPERTY(QString source READ source WRITE setSource);
+    Q_PROPERTY(bool isSourceCloudOne READ isSourceCloudOne);
 
 public:
@@ -88,6 +122,6 @@
 private slots:
 
-    /** Handles change of import source to one with specified @a iIndex. */
-    void sltHandleSourceChange(int iIndex);
+    /** Handles import source change. */
+    void sltHandleSourceChange();
 
 private:
