VirtualBox

Changeset 68342 in vbox for trunk/src


Ignore:
Timestamp:
Aug 8, 2017 3:02:43 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
117466
Message:

FE/Qt: bugref:8900: Make sure at least one Machine tool (Details) is opened by default (when extra-data flag is empty) but still allow user to save them all closed.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp

    r68304 r68342  
    864864    switch (enmToolTypeMachine)
    865865    {
     866        case ToolTypeMachine_Invalid:   strResult = "None"; break;
    866867        case ToolTypeMachine_Details:   strResult = "Details"; break;
    867868        case ToolTypeMachine_Snapshots: strResult = "Snapshots"; break;
     
    881882     * to search through the keys using 'case-insensitive' rule: */
    882883    QStringList keys;    QList<ToolTypeMachine> values;
     884    keys << "None";      values << ToolTypeMachine_Invalid;
    883885    keys << "Details";   values << ToolTypeMachine_Details;
    884886    keys << "Snapshots"; values << ToolTypeMachine_Snapshots;
  • trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp

    r68315 r68342  
    26882688{
    26892689    /* Prepare result: */
    2690     QList<ToolTypeMachine> result;
     2690    QList<ToolTypeMachine> aLoadedOrder;
    26912691    /* Get machine tools order: */
    26922692    foreach (const QString &strValue, extraDataStringList(GUI_Toolbar_MachineTools_Order))
    26932693    {
    26942694        const ToolTypeMachine enmValue = gpConverter->fromInternalString<ToolTypeMachine>(strValue);
    2695         if (enmValue != ToolTypeMachine_Invalid && !result.contains(enmValue))
    2696             result << enmValue;
    2697     }
     2695        if (!aLoadedOrder.contains(enmValue))
     2696            aLoadedOrder << enmValue;
     2697    }
     2698
     2699    /* If the list is empty => add 'Details' at least: */
     2700    if (aLoadedOrder.isEmpty())
     2701        aLoadedOrder << ToolTypeMachine_Details;
     2702
    26982703    /* Return result: */
    2699     return result;
     2704    return aLoadedOrder;
    27002705}
    27012706
     
    27032708{
    27042709    /* Parse passed list: */
    2705     QStringList aSerializedOrder;
     2710    QStringList aSavedOrder;
    27062711    foreach (const ToolTypeMachine &enmToolType, aOrder)
    2707         aSerializedOrder << gpConverter->toInternalString(enmToolType);
     2712        aSavedOrder << gpConverter->toInternalString(enmToolType);
     2713
     2714    /* If the list is empty => add 'None' at least: */
     2715    if (aSavedOrder.isEmpty())
     2716        aSavedOrder << gpConverter->toInternalString(ToolTypeMachine_Invalid);
    27082717
    27092718    /* Re-cache corresponding extra-data: */
    2710     setExtraDataStringList(GUI_Toolbar_MachineTools_Order, aSerializedOrder);
     2719    setExtraDataStringList(GUI_Toolbar_MachineTools_Order, aSavedOrder);
    27112720}
    27122721
     
    27142723{
    27152724    /* Prepare result: */
    2716     QList<ToolTypeGlobal> result;
     2725    QList<ToolTypeGlobal> aLoadedOrder;
    27172726    /* Get global tools order: */
    27182727    foreach (const QString &strValue, extraDataStringList(GUI_Toolbar_GlobalTools_Order))
    27192728    {
    27202729        const ToolTypeGlobal enmValue = gpConverter->fromInternalString<ToolTypeGlobal>(strValue);
    2721         if (enmValue != ToolTypeGlobal_Invalid && !result.contains(enmValue))
    2722             result << enmValue;
    2723     }
     2730        if (enmValue != ToolTypeGlobal_Invalid && !aLoadedOrder.contains(enmValue))
     2731            aLoadedOrder << enmValue;
     2732    }
     2733
    27242734    /* Return result: */
    2725     return result;
     2735    return aLoadedOrder;
    27262736}
    27272737
     
    27292739{
    27302740    /* Parse passed list: */
    2731     QStringList aSerializedOrder;
     2741    QStringList aSavedOrder;
    27322742    foreach (const ToolTypeGlobal &enmToolType, aOrder)
    2733         aSerializedOrder << gpConverter->toInternalString(enmToolType);
     2743        aSavedOrder << gpConverter->toInternalString(enmToolType);
    27342744
    27352745    /* Re-cache corresponding extra-data: */
    2736     setExtraDataStringList(GUI_Toolbar_GlobalTools_Order, aSerializedOrder);
     2746    setExtraDataStringList(GUI_Toolbar_GlobalTools_Order, aSavedOrder);
    27372747}
    27382748
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp

    r68335 r68342  
    161161        mapActionsMachine[ToolTypeMachine_Snapshots] = actionPool()->action(UIActionIndexST_M_Tools_M_Machine_Snapshots);
    162162        for (int i = m_orderMachine.size() - 1; i >= 0; --i)
    163             mapActionsMachine.value(m_orderMachine.at(i))->trigger();
     163            if (m_orderMachine.at(i) != ToolTypeMachine_Invalid)
     164                mapActionsMachine.value(m_orderMachine.at(i))->trigger();
    164165        /* Make sure further action triggering cause tool type switch as well: */
    165166        actionPool()->action(UIActionIndexST_M_Tools_T_Machine)->setProperty("watch_child_activation", true);
     
    21332134        mapActionsGlobal[ToolTypeGlobal_HostNetwork] = actionPool()->action(UIActionIndexST_M_Tools_M_Global_HostNetworkManager);
    21342135        for (int i = m_orderGlobal.size() - 1; i >= 0; --i)
    2135             mapActionsGlobal.value(m_orderGlobal.at(i))->trigger();
     2136            if (m_orderGlobal.at(i) != ToolTypeGlobal_Invalid)
     2137                mapActionsGlobal.value(m_orderGlobal.at(i))->trigger();
    21362138        /* Make sure further action triggering cause tool type switch as well: */
    21372139        actionPool()->action(UIActionIndexST_M_Tools_T_Global)->setProperty("watch_child_activation", true);
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