Index: /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UICustomFileSystemModel.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UICustomFileSystemModel.cpp	(revision 76300)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UICustomFileSystemModel.cpp	(revision 76301)
@@ -35,4 +35,181 @@
 const char* UICustomFileSystemModel::strUpDirectoryString = "..";
 
+
+/*********************************************************************************************************************************
+*   UIFileTableItem implementation.                                                                                              *
+*********************************************************************************************************************************/
+
+UIFileTableItem::UIFileTableItem(const QVector<QVariant> &data,
+                                 UIFileTableItem *parent, KFsObjType type)
+    : m_itemData(data)
+    , m_parentItem(parent)
+    , m_bIsOpened(false)
+    , m_isTargetADirectory(false)
+    , m_type(type)
+    , m_isDriveItem(false)
+{
+}
+
+UIFileTableItem::~UIFileTableItem()
+{
+    qDeleteAll(m_childItems);
+    m_childItems.clear();
+}
+
+void UIFileTableItem::appendChild(UIFileTableItem *item)
+{
+    if (!item)
+        return;
+    m_childItems.append(item);
+    m_childMap.insert(item->name(), item);
+}
+
+UIFileTableItem *UIFileTableItem::child(int row) const
+{
+    return m_childItems.value(row);
+}
+
+UIFileTableItem *UIFileTableItem::child(const QString &path) const
+{
+    if (!m_childMap.contains(path))
+        return 0;
+    return m_childMap.value(path);
+}
+
+int UIFileTableItem::childCount() const
+{
+    return m_childItems.count();
+}
+
+int UIFileTableItem::columnCount() const
+{
+    return m_itemData.count();
+}
+
+QVariant UIFileTableItem::data(int column) const
+{
+    return m_itemData.value(column);
+}
+
+QString UIFileTableItem::name() const
+{
+    if (m_itemData.isEmpty() || !m_itemData[0].canConvert(QMetaType::QString))
+        return QString();
+    return m_itemData[0].toString();
+}
+
+void UIFileTableItem::setData(const QVariant &data, int index)
+{
+    if (index >= m_itemData.length())
+        return;
+    m_itemData[index] = data;
+}
+
+UIFileTableItem *UIFileTableItem::parentItem()
+{
+    return m_parentItem;
+}
+
+int UIFileTableItem::row() const
+{
+    if (m_parentItem)
+        return m_parentItem->m_childItems.indexOf(const_cast<UIFileTableItem*>(this));
+    return 0;
+}
+
+bool UIFileTableItem::isDirectory() const
+{
+    return m_type == KFsObjType_Directory;
+}
+
+bool UIFileTableItem::isSymLink() const
+{
+    return m_type == KFsObjType_Symlink;
+}
+
+bool UIFileTableItem::isFile() const
+{
+    return m_type == KFsObjType_File;
+}
+
+void UIFileTableItem::clearChildren()
+{
+    qDeleteAll(m_childItems);
+    m_childItems.clear();
+    m_childMap.clear();
+}
+
+bool UIFileTableItem::isOpened() const
+{
+    return m_bIsOpened;
+}
+
+void UIFileTableItem::setIsOpened(bool flag)
+{
+    m_bIsOpened = flag;
+}
+
+const QString  &UIFileTableItem::path() const
+{
+    return m_strPath;
+}
+
+void UIFileTableItem::setPath(const QString &path)
+{
+    if (path.isNull() || path.isEmpty())
+        return;
+    m_strPath = path;
+    UIPathOperations::removeTrailingDelimiters(m_strPath);
+}
+
+bool UIFileTableItem::isUpDirectory() const
+{
+    if (!isDirectory())
+        return false;
+    if (data(0) == UICustomFileSystemModel::strUpDirectoryString)
+        return true;
+    return false;
+}
+
+KFsObjType UIFileTableItem::type() const
+{
+    return m_type;
+}
+
+const QString &UIFileTableItem::targetPath() const
+{
+    return m_strTargetPath;
+}
+
+void UIFileTableItem::setTargetPath(const QString &path)
+{
+    m_strTargetPath = path;
+}
+
+bool UIFileTableItem::isSymLinkToADirectory() const
+{
+    return m_isTargetADirectory;
+}
+
+void UIFileTableItem::setIsSymLinkToADirectory(bool flag)
+{
+    m_isTargetADirectory = flag;
+}
+
+bool UIFileTableItem::isSymLinkToAFile() const
+{
+    return isSymLink() && !m_isTargetADirectory;
+}
+
+void UIFileTableItem::setIsDriveItem(bool flag)
+{
+    m_isDriveItem = flag;
+}
+
+bool UIFileTableItem::isDriveItem() const
+{
+    return m_isDriveItem;
+}
+
 UICustomFileSystemProxyModel::UICustomFileSystemProxyModel(QObject *parent /* = 0 */)
     :QSortFilterProxyModel(parent)
@@ -45,4 +222,8 @@
     m_fListDirectoriesOnTop = fListDirectoriesOnTop;
 }
+
+/*********************************************************************************************************************************
+*   UICustomFileSystemProxyModel implementation.                                                                                  *
+*********************************************************************************************************************************/
 
 bool UICustomFileSystemProxyModel::listDirectoriesOnTop() const
Index: /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UICustomFileSystemModel.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UICustomFileSystemModel.h	(revision 76300)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UICustomFileSystemModel.h	(revision 76301)
@@ -23,4 +23,7 @@
 #include <QSortFilterProxyModel>
 
+/* COM includes: */
+#include "COMEnums.h"
+
 /* GUI includes: */
 #include "QITableView.h"
@@ -38,4 +41,81 @@
     UICustomFileSystemModelColumn_Permissions,
     UICustomFileSystemModelColumn_Max
+};
+
+/** A UIFileTableItem instance is a tree node representing a file object (file, directory, etc). The tree contructed
+    by these instances is the data source for the UICustomFileSystemModel. */
+class UIFileTableItem
+{
+public:
+
+    /** @p data contains values to be shown in table view's colums. data[0] is assumed to be
+     *  the name of the file object which is the file name including extension or name of the
+     *  directory */
+    explicit UIFileTableItem(const QVector<QVariant> &data,
+                             UIFileTableItem *parentItem, KFsObjType type);
+    ~UIFileTableItem();
+
+    void appendChild(UIFileTableItem *child);
+
+    UIFileTableItem *child(int row) const;
+    /** Searches for the child by path and returns it if found. */
+    UIFileTableItem *child(const QString &path) const;
+    int childCount() const;
+    int columnCount() const;
+    QVariant data(int column) const;
+    void setData(const QVariant &data, int index);
+    int row() const;
+    UIFileTableItem *parentItem();
+
+    bool isDirectory() const;
+    bool isSymLink() const;
+    bool isFile() const;
+
+    bool isOpened() const;
+    void setIsOpened(bool flag);
+
+    const QString  &path() const;
+    void setPath(const QString &path);
+
+    /** Returns true if this is directory and name is ".." */
+    bool isUpDirectory() const;
+    void clearChildren();
+
+    KFsObjType  type() const;
+
+    const QString &targetPath() const;
+    void setTargetPath(const QString &path);
+
+    bool isSymLinkToADirectory() const;
+    void setIsSymLinkToADirectory(bool flag);
+
+    bool isSymLinkToAFile() const;
+
+    const QString &owner() const;
+    void setOwner(const QString &owner);
+
+    QString name() const;
+
+    void setIsDriveItem(bool flag);
+    bool isDriveItem() const;
+
+private:
+
+    QList<UIFileTableItem*>         m_childItems;
+    /** Used to find children by name */
+    QMap<QString, UIFileTableItem*> m_childMap;
+    /** It is required that m_itemData[0] is name (QString) of the file object */
+    QVector<QVariant>  m_itemData;
+    UIFileTableItem *m_parentItem;
+    bool             m_bIsOpened;
+    /** Full absolute path of the item. Without the trailing '/' */
+    QString          m_strPath;
+    /** If this is a symlink m_targetPath keeps the absolute path of the target */
+    QString          m_strTargetPath;
+    /** True if this is a symlink and the target is a directory */
+    bool             m_isTargetADirectory;
+    KFsObjType  m_type;
+    /** True if only this item represents a DOS style drive letter item */
+    bool             m_isDriveItem;
 };
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.cpp	(revision 76300)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerGuestTable.cpp	(revision 76301)
@@ -29,4 +29,5 @@
 # include "UIActionPool.h"
 # include "UIErrorString.h"
+# include "UICustomFileSystemModel.h"
 # include "UIFileManager.h"
 # include "UIFileManagerGuestTable.h"
Index: /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.cpp	(revision 76300)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.cpp	(revision 76301)
@@ -452,181 +452,4 @@
     , m_uSymlinkCount(0)
 {
-}
-
-
-/*********************************************************************************************************************************
-*   UIFileTableItem implementation.                                                                                              *
-*********************************************************************************************************************************/
-
-UIFileTableItem::UIFileTableItem(const QVector<QVariant> &data,
-                                 UIFileTableItem *parent, KFsObjType type)
-    : m_itemData(data)
-    , m_parentItem(parent)
-    , m_bIsOpened(false)
-    , m_isTargetADirectory(false)
-    , m_type(type)
-    , m_isDriveItem(false)
-{
-}
-
-UIFileTableItem::~UIFileTableItem()
-{
-    qDeleteAll(m_childItems);
-    m_childItems.clear();
-}
-
-void UIFileTableItem::appendChild(UIFileTableItem *item)
-{
-    if (!item)
-        return;
-    m_childItems.append(item);
-    m_childMap.insert(item->name(), item);
-}
-
-UIFileTableItem *UIFileTableItem::child(int row) const
-{
-    return m_childItems.value(row);
-}
-
-UIFileTableItem *UIFileTableItem::child(const QString &path) const
-{
-    if (!m_childMap.contains(path))
-        return 0;
-    return m_childMap.value(path);
-}
-
-int UIFileTableItem::childCount() const
-{
-    return m_childItems.count();
-}
-
-int UIFileTableItem::columnCount() const
-{
-    return m_itemData.count();
-}
-
-QVariant UIFileTableItem::data(int column) const
-{
-    return m_itemData.value(column);
-}
-
-QString UIFileTableItem::name() const
-{
-    if (m_itemData.isEmpty() || !m_itemData[0].canConvert(QMetaType::QString))
-        return QString();
-    return m_itemData[0].toString();
-}
-
-void UIFileTableItem::setData(const QVariant &data, int index)
-{
-    if (index >= m_itemData.length())
-        return;
-    m_itemData[index] = data;
-}
-
-UIFileTableItem *UIFileTableItem::parentItem()
-{
-    return m_parentItem;
-}
-
-int UIFileTableItem::row() const
-{
-    if (m_parentItem)
-        return m_parentItem->m_childItems.indexOf(const_cast<UIFileTableItem*>(this));
-    return 0;
-}
-
-bool UIFileTableItem::isDirectory() const
-{
-    return m_type == KFsObjType_Directory;
-}
-
-bool UIFileTableItem::isSymLink() const
-{
-    return m_type == KFsObjType_Symlink;
-}
-
-bool UIFileTableItem::isFile() const
-{
-    return m_type == KFsObjType_File;
-}
-
-void UIFileTableItem::clearChildren()
-{
-    qDeleteAll(m_childItems);
-    m_childItems.clear();
-    m_childMap.clear();
-}
-
-bool UIFileTableItem::isOpened() const
-{
-    return m_bIsOpened;
-}
-
-void UIFileTableItem::setIsOpened(bool flag)
-{
-    m_bIsOpened = flag;
-}
-
-const QString  &UIFileTableItem::path() const
-{
-    return m_strPath;
-}
-
-void UIFileTableItem::setPath(const QString &path)
-{
-    if (path.isNull() || path.isEmpty())
-        return;
-    m_strPath = path;
-    UIPathOperations::removeTrailingDelimiters(m_strPath);
-}
-
-bool UIFileTableItem::isUpDirectory() const
-{
-    if (!isDirectory())
-        return false;
-    if (data(0) == UICustomFileSystemModel::strUpDirectoryString)
-        return true;
-    return false;
-}
-
-KFsObjType UIFileTableItem::type() const
-{
-    return m_type;
-}
-
-const QString &UIFileTableItem::targetPath() const
-{
-    return m_strTargetPath;
-}
-
-void UIFileTableItem::setTargetPath(const QString &path)
-{
-    m_strTargetPath = path;
-}
-
-bool UIFileTableItem::isSymLinkToADirectory() const
-{
-    return m_isTargetADirectory;
-}
-
-void UIFileTableItem::setIsSymLinkToADirectory(bool flag)
-{
-    m_isTargetADirectory = flag;
-}
-
-bool UIFileTableItem::isSymLinkToAFile() const
-{
-    return isSymLink() && !m_isTargetADirectory;
-}
-
-void UIFileTableItem::setIsDriveItem(bool flag)
-{
-    m_isDriveItem = flag;
-}
-
-bool UIFileTableItem::isDriveItem() const
-{
-    return m_isDriveItem;
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.h	(revision 76300)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManagerTable.h	(revision 76301)
@@ -148,82 +148,4 @@
 
 };
-
-/** A UIFileTableItem instance is a tree node representing a file object (file, directory, etc). The tree contructed
-    by these instances is the data source for the UICustomFileSystemModel. */
-class UIFileTableItem
-{
-public:
-
-    /** @p data contains values to be shown in table view's colums. data[0] is assumed to be
-     *  the name of the file object which is the file name including extension or name of the
-     *  directory */
-    explicit UIFileTableItem(const QVector<QVariant> &data,
-                             UIFileTableItem *parentItem, KFsObjType type);
-    ~UIFileTableItem();
-
-    void appendChild(UIFileTableItem *child);
-
-    UIFileTableItem *child(int row) const;
-    /** Searches for the child by path and returns it if found. */
-    UIFileTableItem *child(const QString &path) const;
-    int childCount() const;
-    int columnCount() const;
-    QVariant data(int column) const;
-    void setData(const QVariant &data, int index);
-    int row() const;
-    UIFileTableItem *parentItem();
-
-    bool isDirectory() const;
-    bool isSymLink() const;
-    bool isFile() const;
-
-    bool isOpened() const;
-    void setIsOpened(bool flag);
-
-    const QString  &path() const;
-    void setPath(const QString &path);
-
-    /** Returns true if this is directory and name is ".." */
-    bool isUpDirectory() const;
-    void clearChildren();
-
-    KFsObjType  type() const;
-
-    const QString &targetPath() const;
-    void setTargetPath(const QString &path);
-
-    bool isSymLinkToADirectory() const;
-    void setIsSymLinkToADirectory(bool flag);
-
-    bool isSymLinkToAFile() const;
-
-    const QString &owner() const;
-    void setOwner(const QString &owner);
-
-    QString name() const;
-
-    void setIsDriveItem(bool flag);
-    bool isDriveItem() const;
-
-private:
-
-    QList<UIFileTableItem*>         m_childItems;
-    /** Used to find children by name */
-    QMap<QString, UIFileTableItem*> m_childMap;
-    /** It is required that m_itemData[0] is name (QString) of the file object */
-    QVector<QVariant>  m_itemData;
-    UIFileTableItem *m_parentItem;
-    bool             m_bIsOpened;
-    /** Full absolute path of the item. Without the trailing '/' */
-    QString          m_strPath;
-    /** If this is a symlink m_targetPath keeps the absolute path of the target */
-    QString          m_strTargetPath;
-    /** True if this is a symlink and the target is a directory */
-    bool             m_isTargetADirectory;
-    KFsObjType  m_type;
-    /** True if only this item represents a DOS style drive letter item */
-    bool             m_isDriveItem;
-};
-
 
 /** This class serves a base class for file table. Currently a guest version
