Index: /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileDetailsWidget.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileDetailsWidget.h	(revision 74879)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileDetailsWidget.h	(revision 74880)
@@ -20,4 +20,5 @@
 
 /* Qt includes: */
+#include <QUuid>
 #include <QWidget>
 
@@ -31,4 +32,32 @@
 class QIDialogButtonBox;
 
+
+/** Cloud Provider data structure. */
+struct UIDataCloudProvider
+{
+    /** Constructs data. */
+    UIDataCloudProvider()
+        : m_strName(QString())
+    {}
+
+    /** Returns whether the @a other passed data is equal to this one. */
+    bool equal(const UIDataCloudProvider &other) const
+    {
+        return true
+               && (m_uuid == other.m_uuid)
+               && (m_strName == other.m_strName)
+               ;
+    }
+
+    /** Returns whether the @a other passed data is equal to this one. */
+    bool operator==(const UIDataCloudProvider &other) const { return equal(other); }
+    /** Returns whether the @a other passed data is different from this one. */
+    bool operator!=(const UIDataCloudProvider &other) const { return !equal(other); }
+
+    /** Holds the provider ID. */
+    QUuid    m_uuid;
+    /** Holds the provider name. */
+    QString  m_strName;
+};
 
 /** Cloud Profile data structure. */
@@ -53,5 +82,5 @@
     bool operator!=(const UIDataCloudProfile &other) const { return !equal(other); }
 
-    /** Holds the snapshot name. */
+    /** Holds the profile name. */
     QString  m_strName;
 };
Index: /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileManager.cpp	(revision 74879)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileManager.cpp	(revision 74880)
@@ -40,4 +40,5 @@
 /* COM includes: */
 #include "CCloudProfile.h"
+#include "CCloudProvider.h"
 
 #endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
@@ -53,10 +54,10 @@
 
 
-/** Cloud Profile Manager tree-widget item. */
-class UIItemCloudProfile : public QITreeWidgetItem, public UIDataCloudProfile
+/** Cloud Profile Manager provider's tree-widget item. */
+class UIItemCloudProvider : public QITreeWidgetItem, public UIDataCloudProvider
 {
 public:
 
-    /** Updates item fields from data. */
+    /** Updates item fields from base-class data. */
     void updateFields();
 
@@ -65,4 +66,31 @@
 };
 
+/** Cloud Profile Manager profile's tree-widget item. */
+class UIItemCloudProfile : public QITreeWidgetItem, public UIDataCloudProfile
+{
+public:
+
+    /** Updates item fields from base-class data. */
+    void updateFields();
+
+    /** Returns item name. */
+    QString name() const { return m_strName; }
+};
+
+
+/*********************************************************************************************************************************
+*   Class UIItemCloudProvider implementation.                                                                                    *
+*********************************************************************************************************************************/
+
+void UIItemCloudProvider::updateFields()
+{
+    /* Update item fields: */
+    setText(Column_Name, m_strName);
+    /// @todo assign rest of field values!
+
+    /* Compose item tool-tip: */
+    /// @todo assign tool-tips!
+}
+
 
 /*********************************************************************************************************************************
@@ -72,5 +100,5 @@
 void UIItemCloudProfile::updateFields()
 {
-    /* Compose item fields: */
+    /* Update item fields: */
     setText(Column_Name, m_strName);
     /// @todo assign rest of field values!
@@ -176,4 +204,6 @@
 void UICloudProfileManagerWidget::sltRefreshCloudProfiles()
 {
+    /// @todo refresh cloud profiles!
+
     // Not implemented.
     AssertMsgFailed(("Not implemented!"));
@@ -254,6 +284,6 @@
     retranslateUi();
 
-    /* Load cloud profiles: */
-    loadCloudProfiles();
+    /* Load cloud stuff: */
+    loadCloudStuff();
 }
 
@@ -384,5 +414,5 @@
 }
 
-void UICloudProfileManagerWidget::loadCloudProfiles()
+void UICloudProfileManagerWidget::loadCloudStuff()
 {
     /* Clear tree first of all: */
@@ -392,4 +422,12 @@
 }
 
+void UICloudProfileManagerWidget::loadCloudProvider(const CCloudProvider &comProvider, UIDataCloudProvider &data)
+{
+    Q_UNUSED(comProvider);
+    Q_UNUSED(data);
+
+    /// @todo load cloud profile!
+}
+
 void UICloudProfileManagerWidget::loadCloudProfile(const CCloudProfile &comProfile, UIDataCloudProfile &data)
 {
@@ -400,15 +438,33 @@
 }
 
-void UICloudProfileManagerWidget::createItemForCloudProfile(const UIDataCloudProfile &data, bool fChooseItem)
-{
-    /* Create new item: */
-    UIItemCloudProfile *pItem = new UIItemCloudProfile;
+void UICloudProfileManagerWidget::createItemForCloudProvider(const UIDataCloudProvider &data, bool fChooseItem)
+{
+    /* Create new provider item: */
+    UIItemCloudProvider *pItem = new UIItemCloudProvider;
     if (pItem)
     {
         /* Configure item: */
-        pItem->UIDataCloudProfile::operator=(data);
+        pItem->UIDataCloudProvider::operator=(data);
         pItem->updateFields();
         /* Add item to the tree: */
         m_pTreeWidget->addTopLevelItem(pItem);
+        /* And choose it as current if necessary: */
+        if (fChooseItem)
+            m_pTreeWidget->setCurrentItem(pItem);
+    }
+}
+
+void UICloudProfileManagerWidget::createItemForCloudProfile(QTreeWidgetItem *pParent, const UIDataCloudProfile &data, bool fChooseItem)
+{
+    /* Create new profile item: */
+    UIItemCloudProfile *pItem = new UIItemCloudProfile;
+    if (pItem)
+    {
+        /* Configure item: */
+        pItem->setFlags(pItem->flags() | Qt::ItemIsEditable);
+        pItem->UIDataCloudProfile::operator=(data);
+        pItem->updateFields();
+        /* Add item to the parent: */
+        pParent->addChild(pItem);
         /* And choose it as current if necessary: */
         if (fChooseItem)
Index: /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileManager.h	(revision 74879)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileManager.h	(revision 74880)
@@ -30,7 +30,10 @@
 class UICloudProfileDetailsWidget;
 class UIItemCloudProfile;
+class UIItemCloudProvider;
 class UIToolBar;
 struct UIDataCloudProfile;
+struct UIDataCloudProvider;
 class CCloudProfile;
+class CCloudProvider;
 
 
@@ -137,8 +140,10 @@
     /** @name Loading stuff.
       * @{ */
-        /** Loads cloud profiles. */
-        void loadCloudProfiles();
-        /** Loads host @a comInterface data to passed @a data container. */
-        void loadCloudProfile(const CCloudProfile &comInterface, UIDataCloudProfile &data);
+        /** Loads cloud stuff. */
+        void loadCloudStuff();
+        /** Loads cloud @a comProvider data to passed @a data container. */
+        void loadCloudProvider(const CCloudProvider &comProvider, UIDataCloudProvider &data);
+        /** Loads cloud @a comProfile data to passed @a data container. */
+        void loadCloudProfile(const CCloudProfile &comProfile, UIDataCloudProfile &data);
     /** @} */
 
@@ -146,5 +151,8 @@
       * @{ */
         /** Creates a new tree-widget item on the basis of passed @a data, @a fChooseItem if requested. */
-        void createItemForCloudProfile(const UIDataCloudProfile &data, bool fChooseItem);
+        void createItemForCloudProvider(const UIDataCloudProvider &data, bool fChooseItem);
+
+        /** Creates a new tree-widget item as a child of certain @a pParent, on the basis of passed @a data, @a fChooseItem if requested. */
+        void createItemForCloudProfile(QTreeWidgetItem *pParent, const UIDataCloudProfile &data, bool fChooseItem);
         /** Updates the passed tree-widget item on the basis of passed @a data, @a fChooseItem if requested. */
         void updateItemForCloudProfile(const UIDataCloudProfile &data, bool fChooseItem, UIItemCloudProfile *pItem);
