VirtualBox

Changeset 78211 in vbox for trunk


Ignore:
Timestamp:
Apr 18, 2019 4:16:24 PM (6 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9434: Import Appliance wizard: Form Editor widget: Update table on generation value changes.

File:
1 edited

Legend:

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

    r78210 r78211  
    171171    void updateValueCells();
    172172
     173    /** Check whether generation value is changed. */
     174    bool isGenerationChanged() const;
     175
    173176protected:
    174177
     
    191194    KFormValueType  m_enmValueType;
    192195
     196    /** Holds current generation value. */
     197    int  m_iGeneration;
     198
    193199    /** Holds the cell instances. */
    194200    QVector<UIFormEditorCell*>  m_cells;
     
    237243    /** Return the parent table-view reference. */
    238244    QITableView *parentTable() const;
     245
     246    /** Updates row generation values. */
     247    void updateGeneration();
    239248
    240249    /** Holds the Form Editor row list. */
     
    281290    , m_comValue(comValue)
    282291    , m_enmValueType(KFormValueType_Max)
     292    , m_iGeneration(0)
    283293{
    284294    prepare();
     
    396406void UIFormEditorRow::updateValueCells()
    397407{
     408    m_iGeneration = m_comValue.GetGeneration();
     409    /// @todo check for errors
     410
    398411    switch (m_enmValueType)
    399412    {
     
    416429            CChoiceFormValue comValue(m_comValue);
    417430            const QVector<QString> values = comValue.GetValues();
    418             m_cells[UIFormEditorDataType_Value]->setText(values.at(comValue.GetSelectedIndex()));
     431            m_cells[UIFormEditorDataType_Value]->setText(values.isEmpty() ? QString() : values.at(comValue.GetSelectedIndex()));
    419432            /// @todo check for errors
    420433            break;
     
    423436            break;
    424437    }
     438}
     439
     440bool UIFormEditorRow::isGenerationChanged() const
     441{
     442    const int iGeneration = m_comValue.GetGeneration();
     443    /// @todo check for errors
     444    return m_iGeneration != iGeneration;
    425445}
    426446
     
    573593                        m_dataList[index.row()]->setBool(enmCheckState == Qt::Checked);
    574594                        emit dataChanged(index, index);
     595                        updateGeneration();
    575596                        return true;
    576597                    }
     
    595616                            m_dataList[index.row()]->setString(value.toString());
    596617                            emit dataChanged(index, index);
     618                            updateGeneration();
    597619                            return true;
    598620                        case KFormValueType_Choice:
    599621                            m_dataList[index.row()]->setChoice(value.value<ChoiceData>());
    600622                            emit dataChanged(index, index);
     623                            updateGeneration();
    601624                            return true;
    602625                        default:
     
    701724}
    702725
     726void UIFormEditorModel::updateGeneration()
     727{
     728    foreach (UIFormEditorRow *pRow, m_dataList)
     729        if (pRow->isGenerationChanged())
     730            pRow->updateValueCells();
     731}
     732
    703733
    704734/*********************************************************************************************************************************
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