VirtualBox

Changeset 47833 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Aug 19, 2013 8:08:42 AM (11 years ago)
Author:
vboxsync
Message:

pr6905. Fixed the wrong disk's renaming when VM's name is changed by the user.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceEditorWidget.cpp

    r44528 r47833  
    2626#include <QSpinBox>
    2727#include <QComboBox>
     28#include <QDir>
    2829
    2930/* GUI includes: */
     
    621622                /* Query all items with the type HardDiskImage and which
    622623                 * are child's of this item. */
    623                 QModelIndexList list = pModel->match(c0Index, HardwareItem::TypeRole, KVirtualSystemDescriptionType_HardDiskImage, -1, Qt::MatchExactly | Qt::MatchWrap | Qt::MatchRecursive);
     624                QModelIndexList list = pModel->match(c0Index,
     625                                                     HardwareItem::TypeRole,
     626                                                     KVirtualSystemDescriptionType_HardDiskImage,
     627                                                     -1,
     628                                                     Qt::MatchExactly | Qt::MatchWrap | Qt::MatchRecursive);
    624629                for (int i = 0; i < list.count(); ++i)
    625630                {
     
    630635                        /* Replace any occurrence of the old VM name with
    631636                         * the new VM name. */
    632                         pModel->setData(hdIndex, hdIndex.data(Qt::EditRole).toString().replace(m_strConfigValue, e->text()), Qt::EditRole);
     637                    {
     638                        QStringList splittedOriginalPath = hdIndex.data(Qt::EditRole).toString().split(QDir::separator());
     639                        QStringList splittedNewPath;
     640
     641                        foreach (QString a, splittedOriginalPath)
     642                        {
     643                            (a.compare(m_strConfigValue) == 0) ? splittedNewPath << e->text() : splittedNewPath << a;
     644                        }
     645
     646                        QString newPath = splittedNewPath.join(QDir::separator());
     647
     648                        pModel->setData(hdIndex,
     649                                        newPath,
     650                                        Qt::EditRole);
     651                    }
    633652                }
    634653                m_strConfigValue = e->text();
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