VirtualBox

Changeset 71172 in vbox


Ignore:
Timestamp:
Mar 2, 2018 10:28:13 AM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
121074
Message:

FE/Qt bugref:6699 Remove file tree from the dialog

Location:
trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/guestctrl
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/guestctrl/UIGuestControlFileManager.cpp

    r71169 r71172  
    3636# include "UIGuestControlFileManager.h"
    3737# include "UIGuestControlFileTable.h"
    38 # include "UIGuestControlFileTree.h"
    3938# include "UIGuestControlInterface.h"
    4039# include "UIVMInformationDialog.h"
     
    223222    , m_pVerticalSplitter(0)
    224223    , m_pLogOutput(0)
    225     , m_pGuestFileTree(0)
    226224    , m_pSessionCreateWidget(0)
    227225    , m_pGuestFileTable(0)
     
    291289
    292290
    293     //m_pGuestFileTree = new UIGuestControlFileTree;
    294     if (m_pGuestFileTree)
    295     {
    296         //m_pMainLayout->addWidget(m_pGuestFileTree, 1, 0, 4 /*rowSpan*/, 1 /*columnSpan*/);
    297 
    298         m_pGuestFileTree->setColumnCount(1);
    299 
    300         m_pGuestFileTree->header()->hide();
    301     }
    302     //
    303 
    304 
    305291    m_pVerticalSplitter->setStretchFactor(0, 9);
    306292    m_pVerticalSplitter->setStretchFactor(1, 4);
     
    321307                this, &UIGuestControlFileManager::sltCloseSession);
    322308    }
    323     if (m_pGuestFileTree)
    324     {
    325 
    326         connect(m_pGuestFileTree, &UIGuestControlFileTree::itemEntered,
    327                 this, &UIGuestControlFileManager::sltTreeItemEntered);
    328         connect(m_pGuestFileTree, &UIGuestControlFileTree::itemExpanded,
    329                 this, &UIGuestControlFileManager::sltTreeItemExpanded);
    330         connect(m_pGuestFileTree, &UIGuestControlFileTree::itemClicked,
    331                 this, &UIGuestControlFileManager::sltTreeItemClicked);
    332 
    333     }
    334 }
    335 
    336 void UIGuestControlFileManager::sltTreeItemEntered(QTreeWidgetItem * item, int column)
    337 {
    338 }
    339 
    340 void UIGuestControlFileManager::sltTreeItemExpanded(QTreeWidgetItem * item)
    341 {
    342     UIGuestControlFileTreeItem *treeItem = dynamic_cast<UIGuestControlFileTreeItem*>(item);
    343     if(!treeItem)
    344         return;
    345     openSubTree(treeItem);
    346     const QList<UIGuestControlFileTreeItem*> children = treeItem->children();
    347     for(int i = 0; i < children.size(); ++i)
    348         openSubTree(children[i]);
    349 }
    350 
    351 void UIGuestControlFileManager::openSubTree(UIGuestControlFileTreeItem*treeItem)
    352 {
    353     /* Continue only for not-yet-opened directories: */
    354     if((treeItem->isDirectory() && treeItem->isOpened())
    355        || !treeItem->isDirectory())
    356         return;
    357     readDirectory(treeItem->path(), treeItem, treeItem->depth(), m_iMaxRecursionDepth);
    358     if(m_pGuestFileTree)
    359         m_pGuestFileTree->update();
    360 }
    361 
    362 void UIGuestControlFileManager::sltTreeItemClicked(QTreeWidgetItem * item, int column)
    363 {
    364309}
    365310
     
    413358    if (m_comGuestSession.GetStatus() == KGuestSessionStatus_Started)
    414359    {
    415         //initFileTree();
    416360        initFileTable();
    417361    }
    418362    else
    419363    {
    420         m_pGuestFileTree->clear();
    421364        m_pLogOutput->appendPlainText("Session status has changed");
    422365    }
     
    432375}
    433376
    434 void UIGuestControlFileManager::initFileTree()
    435 {
    436     if (!m_comGuestSession.isOk() || m_comGuestSession.GetStatus() != KGuestSessionStatus_Started)
    437         return;
    438     if (!m_pGuestFileTree)
    439         return;
    440     m_pGuestFileTree->clear();
    441     QString rootPath("/");
    442 
    443 
    444 
    445     CGuestFsObjInfo fsObjectInfo = m_comGuestSession.FsObjQueryInfo(rootPath, false /*BOOL aFollowSymlinks*/);
    446     if (!fsObjectInfo.isOk())
    447     {
    448         m_pLogOutput->appendPlainText("Cannot get file object info");
    449         return;
    450     }
    451     const QStringList &strList = getFsObjInfoStringList<CGuestFsObjInfo>(fsObjectInfo);
    452 
    453     UIGuestControlFileTreeItem *rootItem = new UIGuestControlFileTreeItem(m_pGuestFileTree, 0, rootPath, strList);
    454     rootItem->setIsDirectory(true);
    455     rootItem->setIcon(0, QIcon(":/sf_32px.png"));
    456     rootItem->setIsOpened(false);
    457     rootItem->setExpanded(true);
    458 
    459     readDirectory(rootPath, rootItem, rootItem->depth(), m_iMaxRecursionDepth);
    460     if(m_pGuestFileTree)
    461         m_pGuestFileTree->update();
    462 }
    463 
    464 void UIGuestControlFileManager::readDirectory(const QString& strPath,
    465                                               UIGuestControlFileTreeItem* treeParent,
    466                                               const int &startDepth,
    467                                               int iMaxDepth)
    468 {
    469     if (!treeParent || treeParent->depth() - startDepth >= iMaxDepth || strPath.isEmpty())
    470         return;
    471     QVector<KDirectoryOpenFlag> flag;
    472     flag.push_back(KDirectoryOpenFlag_None);
    473     CGuestDirectory directory;
    474     directory = m_comGuestSession.DirectoryOpen(strPath, /*aFilter*/ "", flag);
    475     treeParent->setIsOpened(true);
    476     if (directory.isOk())
    477     {
    478         CFsObjInfo fsInfo = directory.Read();
    479         while (fsInfo.isOk())
    480         {
    481             if (fsInfo.GetName() != "."
    482                 && fsInfo.GetName() != "..")
    483             {
    484                 QString path(strPath);
    485                 if (path.at(path.length() -1 ) != '/')
    486                     path.append(QString("/").append(fsInfo.GetName()));
    487                 else
    488                     path.append(fsInfo.GetName());
    489                 UIGuestControlFileTreeItem *treeItem =
    490                     new UIGuestControlFileTreeItem(treeParent, treeParent->depth() + 1 /*depth */,
    491                                                    path, getFsObjInfoStringList<CFsObjInfo>(fsInfo));
    492                 if (fsInfo.GetType() == KFsObjType_Directory)
    493                 {
    494                     treeItem->setIsDirectory(true);
    495                     treeItem->setIcon(0, QIcon(":/sf_32px.png"));
    496                     treeItem->setIsOpened(false);
    497                     readDirectory(path, treeItem, startDepth, iMaxDepth);
    498                 }
    499                 else
    500                 {
    501                     treeItem->setIsDirectory(false);
    502                     treeItem->setIsOpened(false);
    503                     treeItem->setIcon(0, QIcon(":/vm_open_filemanager_16px"));
    504                     treeItem->setHidden(true);
    505                 }
    506             }
    507 
    508             fsInfo = directory.Read();
    509         }
    510         directory.Close();
    511     }
    512 }
     377
    513378
    514379bool UIGuestControlFileManager::createSession(const QString& strUserName, const QString& strPassword,
  • TabularUnified trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/guestctrl/UIGuestControlFileManager.h

    r71169 r71172  
    3636class QVBoxLayout;
    3737class QSplitter;
    38 class QTreeWidgetItem;
    3938class CGuestSessionStateChangedEvent;
    40 class QITreeView;
    4139class UIGuestFileTable;
    42 class UIGuestControlFileTree;
    43 class UIGuestControlFileTreeItem;
    4440class UIGuestSessionCreateWidget;
    4541
     
    6258    void sltGuestSessionStateChanged(const CGuestSessionStateChangedEvent &cEvent);
    6359
    64     void sltTreeItemEntered(QTreeWidgetItem *item, int column);
    65     void sltTreeItemExpanded(QTreeWidgetItem *item);
    66     void sltTreeItemClicked(QTreeWidgetItem *item, int column);
    67 
    6860private:
    6961
     
    8173                         CEventListener &comEventListener,
    8274                         CEventSource comEventSource);
    83     void initFileTree();
     75
    8476    void initFileTable();
    85     void openSubTree(UIGuestControlFileTreeItem *item);
    8677
    8778    template<typename T>
    8879    QStringList   getFsObjInfoStringList(const T &fsObjectInfo) const;
    8980
    90     void readDirectory(const QString& strPath,
    91                        UIGuestControlFileTreeItem* treeParent,
    92                        const int &startDepth,
    93                        int iMaxDepth);
    9481
    9582
     
    10289    QPlainTextEdit   *m_pLogOutput;
    10390
    104     UIGuestControlFileTree*     m_pGuestFileTree;
    10591    UIGuestSessionCreateWidget *m_pSessionCreateWidget;
    10692    UIGuestFileTable           *m_pGuestFileTable;
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette