VirtualBox

Changeset 84378 in vbox for trunk


Ignore:
Timestamp:
May 19, 2020 6:23:26 PM (5 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9653: VirtualBox Manager: Chooser pane: Finally we can save local, provider and profile group items to be able to collisions on restoring their definitions; This should help us to distinguish local groups from provider and profiles with similar names.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserAbstractModel.cpp

    r84376 r84378  
    328328        case NodeDef_MachinePrefix:        return "m";
    329329        /* Group nodes: */
    330         case NodeDef_GroupPrefix:          return "g";
     330        case NodeDef_GroupPrefixLocal:     return "g";
     331        case NodeDef_GroupPrefixProvider:  return "p";
     332        case NodeDef_GroupPrefixProfile:   return "a";
    331333        case NodeDef_GroupOptionOpened:    return "o";
    332334    }
     
    717719
    718720    /* Prepare required group definition reg-exp: */
    719     const QString strNodePrefix = definitionOption(NodeDef_GroupPrefix);
     721    const QString strNodePrefixLocal = definitionOption(NodeDef_GroupPrefixLocal);
     722    const QString strNodePrefixProvider = definitionOption(NodeDef_GroupPrefixProvider);
     723    const QString strNodePrefixProfile = definitionOption(NodeDef_GroupPrefixProfile);
    720724    const QString strNodeOptionOpened = definitionOption(NodeDef_GroupOptionOpened);
    721     const QString strDefinitionTemplate = QString("%1(\\S)*=%2").arg(strNodePrefix, strName);
     725    const QString strDefinitionTemplate = QString("[%1%2%3](\\S)*=%4").arg(strNodePrefixLocal,
     726                                                                           strNodePrefixProvider,
     727                                                                           strNodePrefixProfile,
     728                                                                           strName);
    722729    const QRegExp definitionRegExp(strDefinitionTemplate);
    723730    /* For each the group definition: */
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserAbstractModel.h

    r84376 r84378  
    7272        NodeDef_GlobalValueDefault,
    7373        NodeDef_MachinePrefix,
    74         NodeDef_GroupPrefix,
     74        NodeDef_GroupPrefixLocal,
     75        NodeDef_GroupPrefixProvider,
     76        NodeDef_GroupPrefixProfile,
    7577        NodeDef_GroupOptionOpened,
    7678    };
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp

    r84377 r84378  
    221221    const QString strItemType = strDefinition.section('=', 0, 0);
    222222    const QString strItemDescriptor = strDefinition.section('=', 1, -1);
    223     /* Its a group-item definition? */
    224     if (strItemType == definitionOption(NodeDef_GroupPrefix))
     223    /* Its a local group-item definition? */
     224    if (strItemType == definitionOption(NodeDef_GroupPrefixLocal))
    225225    {
    226226        /* Search for group-item with passed descriptor (name): */
    227227        pItem = root()->searchForItem(strItemDescriptor,
    228228                                      UIChooserItemSearchFlag_LocalGroup |
     229                                      UIChooserItemSearchFlag_ExactId);
     230    }
     231    /* Its a provider group-item definition? */
     232    else if (strItemType == definitionOption(NodeDef_GroupPrefixProvider))
     233    {
     234        /* Search for group-item with passed descriptor (name): */
     235        pItem = root()->searchForItem(strItemDescriptor,
    229236                                      UIChooserItemSearchFlag_CloudProvider |
     237                                      UIChooserItemSearchFlag_ExactId);
     238    }
     239    /* Its a profile group-item definition? */
     240    else if (strItemType == definitionOption(NodeDef_GroupPrefixProfile))
     241    {
     242        /* Search for group-item with passed descriptor (name): */
     243        pItem = root()->searchForItem(strItemDescriptor,
    230244                                      UIChooserItemSearchFlag_CloudProfile |
    231245                                      UIChooserItemSearchFlag_ExactId);
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserNodeGroup.cpp

    r84376 r84378  
    108108QString UIChooserNodeGroup::definition(bool fFull /* = false */) const
    109109{
    110     const QString strNodePrefix = UIChooserAbstractModel::definitionOption(UIChooserAbstractModel::NodeDef_GroupPrefix);
     110    QString strNodePrefix;
     111    switch (groupType())
     112    {
     113        case UIChooserNodeGroupType_Local:
     114            strNodePrefix = UIChooserAbstractModel::definitionOption(UIChooserAbstractModel::NodeDef_GroupPrefixLocal);
     115            break;
     116        case UIChooserNodeGroupType_Provider:
     117            strNodePrefix = UIChooserAbstractModel::definitionOption(UIChooserAbstractModel::NodeDef_GroupPrefixProvider);
     118            break;
     119        case UIChooserNodeGroupType_Profile:
     120            strNodePrefix = UIChooserAbstractModel::definitionOption(UIChooserAbstractModel::NodeDef_GroupPrefixProfile);
     121            break;
     122    }
    111123    const QString strNodeOptionOpened = UIChooserAbstractModel::definitionOption(UIChooserAbstractModel::NodeDef_GroupOptionOpened);
    112124    return   fFull
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