VirtualBox

Changeset 76690 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Jan 7, 2019 7:58:10 PM (6 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9080: Handle added items better

Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UICustomFileSystemModel.cpp

    r76671 r76690  
    541541    if (!rootItem())
    542542        return QModelIndex();
     543    if (!rootItem()->child(0))
     544        return QModelIndex();
    543545    return createIndex(rootItem()->child(0)->row(), 0,
    544546                       rootItem()->child(0));
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UICustomFileSystemModel.h

    r76671 r76690  
    5050
    5151    /** @p strName contains file object name which is assumed to be unique among a parent object's children. */
    52     explicit UICustomFileSystemItem(const QString &strName, UICustomFileSystemItem *parentItem, KFsObjType type);
    53     ~UICustomFileSystemItem();
     52    UICustomFileSystemItem(const QString &strName, UICustomFileSystemItem *parentItem, KFsObjType type);
     53    virtual ~UICustomFileSystemItem();
    5454
    5555    void reset();
    56     UICustomFileSystemItem *child(int row) const;
     56    virtual UICustomFileSystemItem *child(int row) const;
    5757    /** Searches for the child by path and returns it if found. */
    5858    UICustomFileSystemItem *child(const QString &path) const;
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp

    r76671 r76690  
    27242724    if (pVisoCreator->execute(true, false))
    27252725    {
    2726         QStringList files = pVisoCreator->pathList();
     2726        QStringList files = pVisoCreator->entryList();
    27272727        if (files.empty() || files[0].isEmpty())
    27282728            return QUuid();
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoContentBrowser.cpp

    r76671 r76690  
    127127
    128128        UICustomFileSystemItem* pAddedItem = new UICustomFileSystemItem(fileInfo.fileName(), pParentItem,
    129                                                                        fileType(fileInfo));
     129                                                                        fileType(fileInfo));
    130130        pAddedItem->setData(strPath, UICustomFileSystemModelColumn_LocalPath);
    131131        pAddedItem->setData(UIPathOperations::mergePaths(pParentItem->path(), fileInfo.fileName()),
     
    137137            pAddedItem->setIsSymLinkToADirectory(QFileInfo(fileInfo.symLinkTarget()).isDir());
    138138        }
    139 
     139        m_entryList << createAnIsoEntry(pAddedItem);
    140140    }
    141141    if (m_pTableProxyModel)
     
    148148}
    149149
    150 QStringList UIVisoContentBrowser::pathList()
    151 {
    152     if (!rootItem())
    153         return QStringList();
    154 
    155     UICustomFileSystemItem *pRoot = rootItem()->child(0);
    156 
    157     if (!pRoot)
    158         return QStringList();
    159 
    160     QStringList pathList;
    161     for (int i = 0; i < pRoot->childCount(); ++i)
    162     {
    163         QString strEntry = QString("%1=%2").arg(pRoot->child(i)->data(UICustomFileSystemModelColumn_Path).toString()).
    164             arg(pRoot->child(i)->data(UICustomFileSystemModelColumn_LocalPath).toString());
    165         pathList << strEntry;
    166     }
    167     return pathList;
    168 }
    169 
     150QString UIVisoContentBrowser::createAnIsoEntry(UICustomFileSystemItem *pItem)
     151{
     152    QString strEntry;
     153    if (!pItem)
     154        return strEntry;
     155    if (pItem->data(UICustomFileSystemModelColumn_Path).toString().isEmpty() ||
     156        pItem->data(UICustomFileSystemModelColumn_LocalPath).toString().isEmpty())
     157        return strEntry;
     158    strEntry = QString("%1=%2").arg(pItem->data(UICustomFileSystemModelColumn_Path).toString()).
     159        arg(pItem->data(UICustomFileSystemModelColumn_LocalPath).toString());
     160    return strEntry;
     161}
     162
     163QStringList UIVisoContentBrowser::entryList()
     164{
     165    return m_entryList;
     166}
    170167
    171168void UIVisoContentBrowser::retranslateUi()
     
    240237    UICustomFileSystemItem* pAddedItem = new UICustomFileSystemItem(strNewDirectoryName, pParentItem,
    241238                                                                    KFsObjType_Directory);
     239    pAddedItem->setData(UIPathOperations::mergePaths(pParentItem->path(), strNewDirectoryName), UICustomFileSystemModelColumn_Path);
    242240
    243241    pAddedItem->setIsOpened(false);
     
    482480            UICustomFileSystemItem *newItem = new UICustomFileSystemItem(fileInfo.fileName(),
    483481                                                                         directoryItem,
    484                                                                          fileType(fileInfo));
     482                                                                       fileType(fileInfo));
    485483            newItem->setData(fileInfo.filePath(), UICustomFileSystemModelColumn_LocalPath);
    486484
     
    547545    }
    548546
     547    pItem->setData(UIPathOperations::mergePaths(pItem->parentItem()->path(), pItem->name()), UICustomFileSystemModelColumn_Path);
     548
     549
     550
    549551    if (m_pTableProxyModel)
    550552        m_pTableProxyModel->invalidate();
    551553}
    552554
     555void UIVisoContentBrowser::reset()
     556{
     557    m_entryList.clear();
     558}
    553559#include "UIVisoContentBrowser.moc"
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoContentBrowser.h

    r76671 r76690  
    3838
    3939/* Forward declarations: */
     40class UICustomFileSystemItem;
    4041class UICustomFileSystemModel;
    41 class UICustomFileSystemItem;
    4242class UICustomFileSystemProxyModel;
    4343class UIVisoContentTreeProxyModel;
     44class UICustomFileSystemItem;
    4445
    4546class SHARED_LIBRARY_STUFF UIVisoContentBrowser : public QIWithRetranslateUI<UIVisoBrowserBase>
     
    5354    /** Adds file objests from the host file system. @p pathList consists of list of paths to there objects. */
    5455    void addObjectsToViso(QStringList pathList);
    55     QStringList pathList();
     56    QStringList entryList();
    5657    virtual void showHideHiddenObjects(bool bShow) /* override */;
    5758
     
    8283    void                    prepareConnections();
    8384    void                    initializeModel();
    84     UICustomFileSystemItem* rootItem();
     85    UICustomFileSystemItem *rootItem();
    8586    QModelIndex             convertIndexToTableIndex(const QModelIndex &index);
    8687    QModelIndex             convertIndexToTreeIndex(const QModelIndex &index);
     
    8990    void                    updateStartItemName();
    9091    void                    renameFileObject(UICustomFileSystemItem *pItem);
     92    QString                 createAnIsoEntry(UICustomFileSystemItem *pItem);
     93    void                    reset();
    9194
    9295    UICustomFileSystemModel      *m_pModel;
     
    9598    QIToolButton                 *m_pNewDirectoryButton;
    9699    QString                       m_strVisoName;
     100    QStringList                   m_entryList;
    97101};
    98102
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.cpp

    r76671 r76690  
    5252}
    5353
    54 QStringList UIVisoCreator::pathList()
     54QStringList UIVisoCreator::entryList()
    5555{
    5656    if (!m_pVisoBrowser)
    5757        return QStringList();
    58     return m_pVisoBrowser->pathList();
     58    return m_pVisoBrowser->entryList();
    5959}
    6060
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.h

    r76676 r76690  
    5353    UIVisoCreator(QWidget *pParent = 0);
    5454    ~UIVisoCreator();
    55     QStringList pathList();
     55    QStringList entryList();
    5656
    5757#ifdef VBOX_WS_MAC
Note: See TracChangeset for help on using the changeset viewer.

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