Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIGuestControlFileManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIGuestControlFileManager.cpp	(revision 71466)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIGuestControlFileManager.cpp	(revision 71467)
@@ -22,4 +22,5 @@
 /* Qt includes: */
 # include <QAbstractItemModel>
+# include <QCheckBox>
 # include <QHBoxLayout>
 # include <QHeaderView>
@@ -97,4 +98,5 @@
 
     void sltCreateButtonClick();
+    void sltShowHidePassword(bool flag);
 
 private:
@@ -102,11 +104,8 @@
     QILineEdit   *m_pUserNameEdit;
     QILineEdit   *m_pPasswordEdit;
-
-    QILabel      *m_pUserNameLabel;
-    QILabel      *m_pPasswordLabel;
     QPushButton  *m_pCreateButton;
     QPushButton  *m_pCloseButton;
-
-    QHBoxLayout *m_pMainLayout;
+    QHBoxLayout  *m_pMainLayout;
+    QCheckBox    *m_pShowPasswordCheckBox;
 
 };
@@ -129,9 +128,8 @@
     , m_pUserNameEdit(0)
     , m_pPasswordEdit(0)
-    , m_pUserNameLabel(0)
-    , m_pPasswordLabel(0)
     , m_pCreateButton(0)
     , m_pCloseButton(0)
     , m_pMainLayout(0)
+    , m_pShowPasswordCheckBox(0)
 {
     prepareWidgets();
@@ -143,24 +141,27 @@
     if (!m_pMainLayout)
         return;
+
     m_pUserNameEdit = new QILineEdit;
     if (m_pUserNameEdit)
     {
-        m_pMainLayout->addWidget(m_pUserNameEdit);
-    }
-    m_pUserNameLabel = new QILabel;
-    if (m_pUserNameLabel)
-    {
-        m_pMainLayout->addWidget(m_pUserNameLabel);
-    }
+        m_pMainLayout->addWidget(m_pUserNameEdit, 2);
+        m_pUserNameEdit->setPlaceholderText("User Name");
+    }
+
     m_pPasswordEdit = new QILineEdit;
     if (m_pPasswordEdit)
     {
-        m_pMainLayout->addWidget(m_pPasswordEdit);
-    }
-
-    m_pPasswordLabel = new QILabel;
-    if (m_pPasswordLabel)
-    {
-        m_pMainLayout->addWidget(m_pPasswordLabel);
+        m_pMainLayout->addWidget(m_pPasswordEdit, 2);
+        m_pPasswordEdit->setPlaceholderText("Password");
+        m_pPasswordEdit->setEchoMode(QLineEdit::Password);
+    }
+
+    m_pShowPasswordCheckBox = new QCheckBox;
+    if (m_pShowPasswordCheckBox)
+    {
+        m_pShowPasswordCheckBox->setText("Show Password");
+        m_pMainLayout->addWidget(m_pShowPasswordCheckBox);
+        connect(m_pShowPasswordCheckBox, &QCheckBox::toggled,
+                this, &UIGuestSessionCreateWidget::sltShowHidePassword);
     }
 
@@ -178,5 +179,5 @@
         connect(m_pCloseButton, &QPushButton::clicked, this, &UIGuestSessionCreateWidget::sigCloseButtonClick);
     }
-
+    m_pMainLayout->insertStretch(-1, 1);
     retranslateUi();
 }
@@ -188,4 +189,14 @@
 }
 
+void UIGuestSessionCreateWidget::sltShowHidePassword(bool flag)
+{
+    if (!m_pPasswordEdit)
+        return;
+    if (flag)
+        m_pPasswordEdit->setEchoMode(QLineEdit::Normal);
+    else
+        m_pPasswordEdit->setEchoMode(QLineEdit::Password);
+}
+
 void UIGuestSessionCreateWidget::retranslateUi()
 {
@@ -193,19 +204,13 @@
     {
         m_pUserNameEdit->setToolTip(UIVMInformationDialog::tr("User name to authenticate session creation"));
+        m_pUserNameEdit->setPlaceholderText(UIVMInformationDialog::tr("User Name"));
+
     }
     if (m_pPasswordEdit)
     {
         m_pPasswordEdit->setToolTip(UIVMInformationDialog::tr("Password to authenticate session creation"));
-    }
-    if (m_pUserNameLabel)
-    {
-        m_pUserNameLabel->setToolTip(UIVMInformationDialog::tr("User name to authenticate session creation"));
-        m_pUserNameLabel->setText(UIVMInformationDialog::tr("User name"));
-    }
-    if (m_pPasswordLabel)
-    {
-        m_pPasswordLabel->setToolTip(UIVMInformationDialog::tr("Password to authenticate session creation"));
-        m_pPasswordLabel->setText(UIVMInformationDialog::tr("Password"));
-    }
+        m_pPasswordEdit->setPlaceholderText(UIVMInformationDialog::tr("Password"));
+    }
+
     if (m_pCreateButton)
         m_pCreateButton->setText(UIVMInformationDialog::tr("Create Session"));
@@ -228,20 +233,24 @@
 void UIGuestSessionCreateWidget::switchSessionCreateMode()
 {
-    m_pUserNameEdit->setEnabled(true);
-    m_pPasswordEdit->setEnabled(true);
-    m_pUserNameLabel->setEnabled(true);
-    m_pPasswordLabel->setEnabled(true);
-    m_pCreateButton->setEnabled(true);
-    m_pCloseButton->setEnabled(false);
+    if (m_pUserNameEdit)
+        m_pUserNameEdit->setEnabled(true);
+    if (m_pPasswordEdit)
+        m_pPasswordEdit->setEnabled(true);
+    if (m_pCreateButton)
+        m_pCreateButton->setEnabled(true);
+    if (m_pCloseButton)
+        m_pCloseButton->setEnabled(false);
 }
 
 void UIGuestSessionCreateWidget::switchSessionCloseMode()
 {
-    m_pUserNameEdit->setEnabled(false);
-    m_pPasswordEdit->setEnabled(false);
-    m_pUserNameLabel->setEnabled(false);
-    m_pPasswordLabel->setEnabled(false);
-    m_pCreateButton->setEnabled(false);
-    m_pCloseButton->setEnabled(true);
+    if (m_pUserNameEdit)
+        m_pUserNameEdit->setEnabled(false);
+    if (m_pPasswordEdit)
+        m_pPasswordEdit->setEnabled(false);
+    if (m_pCreateButton)
+        m_pCreateButton->setEnabled(false);
+    if (m_pCloseButton)
+        m_pCloseButton->setEnabled(true);
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIGuestControlFileTable.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIGuestControlFileTable.cpp	(revision 71466)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIGuestControlFileTable.cpp	(revision 71467)
@@ -157,5 +157,5 @@
 const QChar UIPathOperations::delimiter = QChar('/');
 
-QString UIPathOperations::removeMultipleDelimiters(const QString &path)
+/* static */ QString UIPathOperations::removeMultipleDelimiters(const QString &path)
 {
     QString newPath(path);
@@ -167,5 +167,5 @@
 }
 
-QString UIPathOperations::removeTrailingDelimiters(const QString &path)
+/* static */ QString UIPathOperations::removeTrailingDelimiters(const QString &path)
 {
     if (path.isNull() || path.isEmpty())
@@ -178,5 +178,5 @@
 }
 
-QString UIPathOperations::addStartDelimiter(const QString &path)
+/* static */ QString UIPathOperations::addStartDelimiter(const QString &path)
 {
     if (path.isEmpty())
@@ -188,10 +188,10 @@
 }
 
-QString UIPathOperations::sanitize(const QString &path)
+/* static */ QString UIPathOperations::sanitize(const QString &path)
 {
     return addStartDelimiter(removeTrailingDelimiters(removeMultipleDelimiters(path)));
 }
 
-QString UIPathOperations::mergePaths(const QString &path, const QString &baseName)
+/* static */ QString UIPathOperations::mergePaths(const QString &path, const QString &baseName)
 {
     QString newBase(baseName);
@@ -208,5 +208,5 @@
 }
 
-QString UIPathOperations::getObjectName(const QString &path)
+/* static */ QString UIPathOperations::getObjectName(const QString &path)
 {
     if (path.length() <= 1)
@@ -222,5 +222,5 @@
 }
 
-QString UIPathOperations::getPathExceptObjectName(const QString &path)
+/* static */ QString UIPathOperations::getPathExceptObjectName(const QString &path)
 {
     if (path.length() <= 1)
@@ -234,5 +234,5 @@
 }
 
-QString UIPathOperations::constructNewItemPath(const QString &previousPath, const QString &newBaseName)
+/* static */ QString UIPathOperations::constructNewItemPath(const QString &previousPath, const QString &newBaseName)
 {
     if (previousPath.length() <= 1)
@@ -241,5 +241,5 @@
 }
 
-QStringList UIPathOperations::pathTrail(const QString &path)
+/* static */ QStringList UIPathOperations::pathTrail(const QString &path)
 {
     QList<QString> pathList = path.split(UIPathOperations::delimiter, QString::SkipEmptyParts);
@@ -944,5 +944,12 @@
         return;
     if (currentRoot != m_pModel->rootIndex())
-        changeLocation(currentRoot.parent());
+    {
+        QModelIndex parentIndex = currentRoot.parent();
+        if (parentIndex.isValid())
+        {
+            changeLocation(currentRoot.parent());
+            m_pView->selectRow(currentRoot.row());
+        }
+    }
 }
 
@@ -1255,4 +1262,9 @@
         sltDelete();
     }
+    else if (pEvent->key() == Qt::Key_Backspace)
+    {
+        sltGoUp();
+    }
+
     QWidget::keyPressEvent(pEvent);
 }
@@ -1344,5 +1356,5 @@
 }
 
-QString UIGuestControlFileTable::fileTypeString(FileObjectType type)
+/* static */ QString UIGuestControlFileTable::fileTypeString(FileObjectType type)
 {
     QString strType("Unknown");
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIGuestControlInterface.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIGuestControlInterface.cpp	(revision 71466)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIGuestControlInterface.cpp	(revision 71467)
@@ -73,5 +73,5 @@
         break;
 
-QString UIGuestControlInterface::getFsObjTypeString(KFsObjType type)
+/* static */ QString UIGuestControlInterface::getFsObjTypeString(KFsObjType type)
 {
     QString strType;
@@ -664,5 +664,5 @@
 }
 
-bool UIGuestControlInterface::isGuestAdditionsAvailable(const CGuest &guest)
+/* static */ bool UIGuestControlInterface::isGuestAdditionsAvailable(const CGuest &guest)
 {
     if (!guest.isOk())
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIGuestFileTable.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIGuestFileTable.cpp	(revision 71466)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIGuestFileTable.cpp	(revision 71467)
@@ -259,5 +259,5 @@
 }
 
-FileObjectType UIGuestFileTable::fileType(const CFsObjInfo &fsInfo)
+/* static */ FileObjectType UIGuestFileTable::fileType(const CFsObjInfo &fsInfo)
 {
     if (fsInfo.isNull() || !fsInfo.isOk())
@@ -273,5 +273,5 @@
 }
 
-FileObjectType UIGuestFileTable::fileType(const CGuestFsObjInfo &fsInfo)
+/* static */ FileObjectType UIGuestFileTable::fileType(const CGuestFsObjInfo &fsInfo)
 {
     if (fsInfo.isNull() || !fsInfo.isOk())
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIHostFileTable.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIHostFileTable.cpp	(revision 71466)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/guestctrl/UIHostFileTable.cpp	(revision 71467)
@@ -168,5 +168,5 @@
 }
 
-FileObjectType UIHostFileTable::fileType(const QFileInfo &fsInfo)
+/* static */ FileObjectType UIHostFileTable::fileType(const QFileInfo &fsInfo)
 {
     if (!fsInfo.exists())
