VirtualBox

Ignore:
Timestamp:
Apr 22, 2019 2:43:59 PM (6 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9434: Import Appliance wizard: Form Editor widget: Cache actual form values instead of acquiring them each time.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIFormEditorWidget.cpp

    r78247 r78249  
    201201    int  m_iGeneration;
    202202
     203    /** Holds cached bool value. */
     204    bool        m_fBool;
     205    /** Holds cached string value. */
     206    QString     m_strString;
     207    /** Holds cached choice value. */
     208    ChoiceData  m_choice;
     209
    203210    /** Holds the cell instances. */
    204211    QVector<UIFormEditorCell*>  m_cells;
     
    314321    , m_enmValueType(KFormValueType_Max)
    315322    , m_iGeneration(0)
     323    , m_fBool(false)
     324    , m_strString(QString())
     325    , m_choice(ChoiceData())
    316326{
    317327    prepare();
     
    341351{
    342352    AssertReturn(valueType() == KFormValueType_Boolean, false);
    343     CBooleanFormValue comValue(m_comValue);
    344     return comValue.GetSelected();
     353    return m_fBool;
    345354}
    346355
     
    371380{
    372381    AssertReturn(valueType() == KFormValueType_String, QString());
    373     CStringFormValue comValue(m_comValue);
    374     return comValue.GetString();
     382    return m_strString;
    375383}
    376384
     
    401409{
    402410    AssertReturn(valueType() == KFormValueType_Choice, ChoiceData());
    403     CChoiceFormValue comValue(m_comValue);
    404     return ChoiceData(comValue.GetValues(), comValue.GetSelectedIndex());
     411    return m_choice;
    405412}
    406413
     
    442449        {
    443450            CBooleanFormValue comValue(m_comValue);
    444             m_cells[UIFormEditorDataType_Value]->setText(comValue.GetSelected() ? "True" : "False");
     451            m_fBool = comValue.GetSelected();
     452            m_cells[UIFormEditorDataType_Value]->setText(m_fBool ? "True" : "False");
    445453            /// @todo check for errors
    446454            break;
     
    449457        {
    450458            CStringFormValue comValue(m_comValue);
    451             m_cells[UIFormEditorDataType_Value]->setText(comValue.GetString());
     459            m_strString = comValue.GetString();
     460            m_cells[UIFormEditorDataType_Value]->setText(m_strString);
    452461            /// @todo check for errors
    453462            break;
     
    457466            CChoiceFormValue comValue(m_comValue);
    458467            const QVector<QString> values = comValue.GetValues();
    459             m_cells[UIFormEditorDataType_Value]->setText(values.isEmpty() ? QString() : values.at(comValue.GetSelectedIndex()));
     468            const int iSelectedIndex = comValue.GetSelectedIndex();
     469            m_choice = ChoiceData(values, iSelectedIndex);
     470            m_cells[UIFormEditorDataType_Value]->setText(  !m_choice.choices().isEmpty()
     471                                                         ? m_choice.choices().at(m_choice.selectedChoice())
     472                                                         : QString());
    460473            /// @todo check for errors
    461474            break;
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