[vbox-dev] [PATCH] Look for appliances etc. in home dir instead of Documents subdir

Alex Henrie alexhenrie24 at gmail.com
Sat Mar 21 00:58:34 GMT 2015


It's odd to assume that the user would keep appliances and other
virtualization-related files in their Documents directory. Most
often, the user is trying to import an appliance from their Downloads
directory or from another directory altogether. This patch causes the
file dialogs that previously defaulted to the Documents directory to
default to the home directory instead.

This patch is provided under the MIT license. It is the first patch
that I have submitted to VirtualBox, so please be sure to let me know
if I made any mistakes.

Index: src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 54856)
+++ src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(working copy)
@@ -3515,23 +3515,6 @@
     return MediumBackends(KDeviceType_Floppy);
 }
 
-/* static */
-QString VBoxGlobal::documentsPath()
-{
-    QString path = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation);
-    QDir dir(path);
-    if (dir.exists())
-        return QDir::cleanPath(dir.canonicalPath());
-    else
-    {
-        dir.setPath(QDir::homePath() + "/Documents");
-        if (dir.exists())
-            return QDir::cleanPath(dir.canonicalPath());
-        else
-            return QDir::homePath();
-    }
-}
-
 #ifdef VBOX_WITH_VIDEOHWACCEL
 /* static */
 bool VBoxGlobal::isAcceleration2DVideoAvailable()
Index: src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h
===================================================================
--- src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 54856)
+++ src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(working copy)
@@ -367,8 +367,6 @@
     static QList <QPair <QString, QString> > DVDBackends();
     static QList <QPair <QString, QString> > FloppyBackends();
 
-    static QString documentsPath();
-
 #ifdef VBOX_WITH_VIDEOHWACCEL
     static bool isAcceleration2DVideoAvailable();
 
Index: src/VBox/Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp
===================================================================
--- src/VBox/Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp	(revision 54856)
+++ src/VBox/Frontends/VirtualBox/src/widgets/UILineTextEdit.cpp	(working copy)
@@ -20,17 +20,18 @@
 #else  /* !VBOX_WITH_PRECOMPILED_HEADERS */
 
 /* VBox includes */
-# include "VBoxGlobal.h"
 # include "UILineTextEdit.h"
 # include "QIFileDialog.h"
 
 /* Qt includes */
 # include <QDialogButtonBox>
+# include <QDir>
 # include <QFile>
 # include <QLineEdit>
 # include <QPushButton>
 # include <QTextEdit>
 # include <QTextStream>
+# include <QVBoxLayout>
 
 #endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
 
@@ -83,7 +84,7 @@
 
 void UITextEditor::open()
 {
-    QString fileName = QIFileDialog::getOpenFileName(vboxGlobal().documentsPath(), tr("Text (*.txt);;All (*.*)"), this, tr("Select a file to open..."));
+    QString fileName = QIFileDialog::getOpenFileName(QDir::homePath(), tr("Text (*.txt);;All (*.*)"), this, tr("Select a file to open..."));
     if (!fileName.isEmpty())
     {
         QFile file(fileName);
Index: src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic3.cpp
===================================================================
--- src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic3.cpp	(revision 54856)
+++ src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic3.cpp	(working copy)
@@ -106,7 +106,7 @@
         strName = fieldImp("machineNames").toStringList()[0];
     strName += ".ova";
     if (storageType == Filesystem)
-        strName = QDir::toNativeSeparators(QString("%1/%2").arg(vboxGlobal().documentsPath()).arg(strName));
+        strName = QDir::toNativeSeparators(QString("%1/%2").arg(QDir::homePath()).arg(strName));
     m_pFileSelector->setPath(strName);
 }
 
Index: src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportApp.cpp
===================================================================
--- src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportApp.cpp	(revision 54856)
+++ src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportApp.cpp	(working copy)
@@ -21,6 +21,7 @@
 
 /* Global includes: */
 # include <QDialogButtonBox>
+# include <QDir>
 # include <QPushButton>
 # include <QTextStream>
 
@@ -29,7 +30,6 @@
 # include "UIWizardImportAppPageBasic1.h"
 # include "UIWizardImportAppPageBasic2.h"
 # include "UIWizardImportAppPageExpert.h"
-# include "VBoxGlobal.h"
 # include "QIDialog.h"
 # include "QIFileDialog.h"
 
@@ -99,7 +99,7 @@
     /* Save stuff: */
     void sltSave()
     {
-        QString fileName = QIFileDialog::getSaveFileName(vboxGlobal().documentsPath(), tr("Text (*.txt)"),
+        QString fileName = QIFileDialog::getSaveFileName(QDir::homePath(), tr("Text (*.txt)"),
                                                          this, tr("Save license to file..."));
         if (!fileName.isEmpty())
         {
Index: src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageBasic1.cpp
===================================================================
--- src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageBasic1.cpp	(revision 54856)
+++ src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageBasic1.cpp	(working copy)
@@ -20,6 +20,7 @@
 #else  /* !VBOX_WITH_PRECOMPILED_HEADERS */
 
 /* Global includes: */
+# include <QDir>
 # include <QFileInfo>
 # include <QVBoxLayout>
 
@@ -46,7 +47,7 @@
         m_pLabel = new QIRichTextLabel(this);
         m_pFileSelector = new VBoxEmptyFileSelector(this);
         {
-            m_pFileSelector->setHomeDir(vboxGlobal().documentsPath());
+            m_pFileSelector->setHomeDir(QDir::homePath());
             m_pFileSelector->setMode(VBoxFilePathSelectorWidget::Mode_File_Open);
             m_pFileSelector->setButtonPosition(VBoxEmptyFileSelector::RightPosition);
             m_pFileSelector->setEditable(true);
Index: src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageExpert.cpp
===================================================================
--- src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageExpert.cpp	(revision 54856)
+++ src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageExpert.cpp	(working copy)
@@ -20,6 +20,7 @@
 #else  /* !VBOX_WITH_PRECOMPILED_HEADERS */
 
 /* Global includes: */
+# include <QDir>
 # include <QFileInfo>
 # include <QVBoxLayout>
 # include <QGroupBox>
@@ -47,7 +48,7 @@
             {
                 m_pFileSelector = new VBoxEmptyFileSelector(m_pApplianceCnt);
                 {
-                    m_pFileSelector->setHomeDir(vboxGlobal().documentsPath());
+                    m_pFileSelector->setHomeDir(QDir::homePath());
                     m_pFileSelector->setMode(VBoxFilePathSelectorWidget::Mode_File_Open);
                     m_pFileSelector->setButtonPosition(VBoxEmptyFileSelector::RightPosition);
                     m_pFileSelector->setEditable(true);




More information about the vbox-dev mailing list