VirtualBox

Changeset 73326 in vbox


Ignore:
Timestamp:
Jul 23, 2018 2:20:24 PM (6 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9152: Export Appliance wizard: Virtual System Description and Expert pages, UIApplianceEditorWidget: Handle 6 new cloud related attributes inside UIApplianceEditorWidget.

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

Legend:

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

    r73320 r73326  
    364364            m_enmVSDType == KVirtualSystemDescriptionType_USBController ||
    365365            m_enmVSDType == KVirtualSystemDescriptionType_SoundCard ||
    366             m_enmVSDType == KVirtualSystemDescriptionType_NetworkAdapter)
     366            m_enmVSDType == KVirtualSystemDescriptionType_NetworkAdapter ||
     367            m_enmVSDType == KVirtualSystemDescriptionType_CloudOCIPublicIP)
    367368            enmFlags |= Qt::ItemIsUserCheckable;
    368369        /* Some items are editable */
     
    384385             m_enmVSDType == KVirtualSystemDescriptionType_SettingsFile ||
    385386             m_enmVSDType == KVirtualSystemDescriptionType_BaseFolder ||
    386              m_enmVSDType == KVirtualSystemDescriptionType_PrimaryGroup) &&
     387             m_enmVSDType == KVirtualSystemDescriptionType_PrimaryGroup ||
     388             m_enmVSDType == KVirtualSystemDescriptionType_CloudOCIInstanceShape ||
     389             m_enmVSDType == KVirtualSystemDescriptionType_CloudOCIDomain ||
     390             m_enmVSDType == KVirtualSystemDescriptionType_CloudOCIBootDiskSize ||
     391             m_enmVSDType == KVirtualSystemDescriptionType_CloudOCIBucket ||
     392             m_enmVSDType == KVirtualSystemDescriptionType_CloudOCIVCN) &&
    387393            m_checkState == Qt::Checked) /* Item has to be enabled */
    388394            enmFlags |= Qt::ItemIsEditable;
     
    403409                 m_enmVSDType == KVirtualSystemDescriptionType_USBController ||
    404410                 m_enmVSDType == KVirtualSystemDescriptionType_SoundCard ||
    405                  m_enmVSDType == KVirtualSystemDescriptionType_NetworkAdapter))
     411                 m_enmVSDType == KVirtualSystemDescriptionType_NetworkAdapter ||
     412                 m_enmVSDType == KVirtualSystemDescriptionType_CloudOCIPublicIP))
    406413            {
    407414                m_checkState = static_cast<Qt::CheckState>(value.toInt());
     
    466473                    case KVirtualSystemDescriptionType_BaseFolder:             value = UIApplianceEditorWidget::tr("Base Folder"); break;
    467474                    case KVirtualSystemDescriptionType_PrimaryGroup:           value = UIApplianceEditorWidget::tr("Primary Group"); break;
     475                    case KVirtualSystemDescriptionType_CloudOCIInstanceShape:
     476                    case KVirtualSystemDescriptionType_CloudOCIDomain:
     477                    case KVirtualSystemDescriptionType_CloudOCIBootDiskSize:
     478                    case KVirtualSystemDescriptionType_CloudOCIBucket:
     479                    case KVirtualSystemDescriptionType_CloudOCIVCN:
     480                    case KVirtualSystemDescriptionType_CloudOCIPublicIP:       value = UIApplianceEditorWidget::tr(m_pParent->nameHint(m_enmVSDType).toUtf8().constData()); break;
    468481                    default:                                                   value = UIApplianceEditorWidget::tr("Unknown Hardware Item"); break;
    469482                }
     
    533546                    case KVirtualSystemDescriptionType_BaseFolder:             value = vboxGlobal().icon(QFileIconProvider::Folder); break;
    534547                    case KVirtualSystemDescriptionType_PrimaryGroup:           value = UIIconPool::iconSet(":/vm_group_name_16px.png"); break;
     548                    case KVirtualSystemDescriptionType_CloudOCIInstanceShape:
     549                    case KVirtualSystemDescriptionType_CloudOCIDomain:
     550                    case KVirtualSystemDescriptionType_CloudOCIBootDiskSize:
     551                    case KVirtualSystemDescriptionType_CloudOCIBucket:
     552                    case KVirtualSystemDescriptionType_CloudOCIVCN:
     553                    case KVirtualSystemDescriptionType_CloudOCIPublicIP:       value = UIIconPool::iconSet(":/session_info_16px.png"); break;
    535554                    default: break;
    536555                }
     
    570589                 m_enmVSDType == KVirtualSystemDescriptionType_USBController ||
    571590                 m_enmVSDType == KVirtualSystemDescriptionType_SoundCard ||
    572                  m_enmVSDType == KVirtualSystemDescriptionType_NetworkAdapter))
     591                 m_enmVSDType == KVirtualSystemDescriptionType_NetworkAdapter ||
     592                 m_enmVSDType == KVirtualSystemDescriptionType_CloudOCIPublicIP))
    573593                value = m_checkState;
    574594            break;
     
    716736                break;
    717737            }
     738            case KVirtualSystemDescriptionType_CloudOCIInstanceShape:
     739            case KVirtualSystemDescriptionType_CloudOCIDomain:
     740            case KVirtualSystemDescriptionType_CloudOCIBootDiskSize:
     741            case KVirtualSystemDescriptionType_CloudOCIBucket:
     742            case KVirtualSystemDescriptionType_CloudOCIVCN:
     743            {
     744                const QVariant get = m_pParent->getHint(m_enmVSDType);
     745                switch (m_pParent->kindHint(m_enmVSDType))
     746                {
     747                    case ParameterKind_Double:
     748                    {
     749                        AbstractVSDParameterDouble value = get.value<AbstractVSDParameterDouble>();
     750                        QSpinBox *pSpinBox = new QSpinBox(pParent);
     751                        pSpinBox->setRange(value.minimum, value.maximum);
     752                        pSpinBox->setSuffix(QString(" %1").arg(VBoxGlobal::tr(value.unit.toUtf8().constData())));
     753                        pEditor = pSpinBox;
     754                        break;
     755                    }
     756                    case ParameterKind_String:
     757                    {
     758                        QLineEdit *pLineEdit = new QLineEdit(pParent);
     759                        pEditor = pLineEdit;
     760                        break;
     761                    }
     762                    case ParameterKind_Array:
     763                    {
     764                        AbstractVSDParameterArray value = get.value<AbstractVSDParameterArray>();
     765                        QComboBox *pComboBox = new QComboBox(pParent);
     766                        pComboBox->addItems(value.values);
     767                        pEditor = pComboBox;
     768                        break;
     769                    }
     770                    default:
     771                        break;
     772                }
     773                break;
     774            }
    718775            default: break;
    719776        }
     
    810867                pGroupCombo->setCurrentText(m_strConfigValue);
    811868                fDone = true;
     869            }
     870            break;
     871        }
     872        case KVirtualSystemDescriptionType_CloudOCIInstanceShape:
     873        case KVirtualSystemDescriptionType_CloudOCIDomain:
     874        case KVirtualSystemDescriptionType_CloudOCIBootDiskSize:
     875        case KVirtualSystemDescriptionType_CloudOCIBucket:
     876        case KVirtualSystemDescriptionType_CloudOCIVCN:
     877        {
     878            switch (m_pParent->kindHint(m_enmVSDType))
     879            {
     880                case ParameterKind_Double:
     881                {
     882                    if (QSpinBox *pSpinBox = qobject_cast<QSpinBox*>(pEditor))
     883                    {
     884                        pSpinBox->setValue(m_strConfigValue.toInt());
     885                        fDone = true;
     886                    }
     887                    break;
     888                }
     889                case ParameterKind_String:
     890                {
     891                    if (QLineEdit *pLineEdit = qobject_cast<QLineEdit*>(pEditor))
     892                    {
     893                        pLineEdit->setText(m_strConfigValue);
     894                        fDone = true;
     895                    }
     896                    break;
     897                }
     898                case ParameterKind_Array:
     899                {
     900                    if (QComboBox *pComboBox = qobject_cast<QComboBox*>(pEditor))
     901                    {
     902                        pComboBox->setCurrentText(m_strConfigValue);
     903                        fDone = true;
     904                    }
     905                    break;
     906                }
     907                default:
     908                    break;
    812909            }
    813910            break;
     
    9501047            break;
    9511048        }
     1049        case KVirtualSystemDescriptionType_CloudOCIInstanceShape:
     1050        case KVirtualSystemDescriptionType_CloudOCIDomain:
     1051        case KVirtualSystemDescriptionType_CloudOCIBootDiskSize:
     1052        case KVirtualSystemDescriptionType_CloudOCIBucket:
     1053        case KVirtualSystemDescriptionType_CloudOCIVCN:
     1054        {
     1055            switch (m_pParent->kindHint(m_enmVSDType))
     1056            {
     1057                case ParameterKind_Double:
     1058                {
     1059                    if (QSpinBox *pSpinBox = qobject_cast<QSpinBox*>(pEditor))
     1060                    {
     1061                        m_strConfigValue = QString::number(pSpinBox->value());
     1062                        fDone = true;
     1063                    }
     1064                    break;
     1065                }
     1066                case ParameterKind_String:
     1067                {
     1068                    if (QLineEdit *pLineEdit = qobject_cast<QLineEdit*>(pEditor))
     1069                    {
     1070                        m_strConfigValue = pLineEdit->text();
     1071                        fDone = true;
     1072                    }
     1073                    break;
     1074                }
     1075                case ParameterKind_Array:
     1076                {
     1077                    if (QComboBox *pComboBox = qobject_cast<QComboBox*>(pEditor))
     1078                    {
     1079                        m_strConfigValue = pComboBox->currentText();
     1080                        fDone = true;
     1081                    }
     1082                    break;
     1083                }
     1084                default:
     1085                    break;
     1086            }
     1087        }
    9521088        default: break;
    9531089    }
     
    12011337        }
    12021338    }
     1339}
     1340
     1341void UIApplianceModel::setVsdHints(const QList<AbstractVSDParameter> &hints)
     1342{
     1343    m_listVsdHints = hints;
     1344}
     1345
     1346QString UIApplianceModel::nameHint(KVirtualSystemDescriptionType enmType) const
     1347{
     1348    foreach (const AbstractVSDParameter &parameter, m_listVsdHints)
     1349        if (parameter.type == enmType)
     1350            return parameter.name;
     1351    return QString();
     1352}
     1353
     1354AbstractVSDParameterKind UIApplianceModel::kindHint(KVirtualSystemDescriptionType enmType) const
     1355{
     1356    foreach (const AbstractVSDParameter &parameter, m_listVsdHints)
     1357        if (parameter.type == enmType)
     1358            return parameter.kind;
     1359    return ParameterKind_Invalid;
     1360}
     1361
     1362QVariant UIApplianceModel::getHint(KVirtualSystemDescriptionType enmType) const
     1363{
     1364    foreach (const AbstractVSDParameter &parameter, m_listVsdHints)
     1365        if (parameter.type == enmType)
     1366            return parameter.get;
     1367    return QVariant();
    12031368}
    12041369
     
    14881653}
    14891654
     1655void UIApplianceEditorWidget::setVsdHints(const QList<AbstractVSDParameter> &hints)
     1656{
     1657    /* Save here as well: */
     1658    m_listVsdHints = hints;
     1659
     1660    /* Make sure model exists, it's being created in sub-classes: */
     1661    if (m_pModel)
     1662        m_pModel->setVsdHints(m_listVsdHints);
     1663}
     1664
    14901665void UIApplianceEditorWidget::restoreDefaults()
    14911666{
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceEditorWidget.h

    r73319 r73326  
    189189    void setVirtualSystemBaseFolder(const QString& path);
    190190
     191    /** Defines the list of VSD @a hints. */
     192    void setVsdHints(const QList<AbstractVSDParameter> &hints);
     193    /** Returns a name hint for certain VSD @a enmType. */
     194    QString nameHint(KVirtualSystemDescriptionType enmType) const;
     195    /** Returns a kind hint for certain VSD @a enmType. */
     196    AbstractVSDParameterKind kindHint(KVirtualSystemDescriptionType enmType) const;
     197    /** Returns a value hint for certain VSD @a enmType. */
     198    QVariant getHint(KVirtualSystemDescriptionType enmType) const;
     199
    191200private:
     201
     202    /** Holds the list of VSD hints. */
     203    QList<AbstractVSDParameter> m_listVsdHints;
    192204
    193205    /** Holds the root item reference. */
     
    273285    /** Constructs the Appliance Editor widget passing @a pParent to the base-class. */
    274286    UIApplianceEditorWidget(QWidget *pParent = 0);
     287
     288    /** Defines the list of VSD @a hints. */
     289    void setVsdHints(const QList<AbstractVSDParameter> &hints);
    275290
    276291    /** Returns whether the Appliance Editor has valid state. */
     
    300315    void setVirtualSystemBaseFolder(const QString& path);
    301316
     317    /** Holds the list of VSD hints. */
     318    QList<AbstractVSDParameter> m_listVsdHints;
     319
    302320    /** Holds the currently set appliance reference. */
    303321    CAppliance         *m_pAppliance;
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceExportEditorWidget.cpp

    r69500 r73326  
    8787
    8888    m_pModel = new UIApplianceModel(vsds, m_pTreeViewSettings);
     89    m_pModel->setVsdHints(m_listVsdHints);
    8990
    9091    ExportSortProxyModel *pProxy = new ExportSortProxyModel(this);
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic4.cpp

    r73319 r73326  
    242242                if (comMachine.isOk() && comVsd.isNotNull())
    243243                {
    244                     /* Now add some new fields the user may change: */
    245                     comVsd.AddDescription(KVirtualSystemDescriptionType_Product, "", "");
    246                     comVsd.AddDescription(KVirtualSystemDescriptionType_ProductUrl, "", "");
    247                     comVsd.AddDescription(KVirtualSystemDescriptionType_Vendor, "", "");
    248                     comVsd.AddDescription(KVirtualSystemDescriptionType_VendorUrl, "", "");
    249                     comVsd.AddDescription(KVirtualSystemDescriptionType_Version, "", "");
    250                     comVsd.AddDescription(KVirtualSystemDescriptionType_License, "", "");
     244                    if (fieldImp("format").toString() == "csp-1.0")
     245                    {
     246                        /* Populate Cloud Client parameters: */
     247                        populateCloudClientParameters();
     248                        /* Pass them as a list of hints to help editor with names/values: */
     249                        m_pApplianceWidget->setVsdHints(m_listCloudClientParameters);
     250                        /* Add corresponding Cloud Client fields with default values: */
     251                        foreach (const AbstractVSDParameter &parameter, m_listCloudClientParameters)
     252                        {
     253                            QString strValue;
     254                            switch (parameter.kind)
     255                            {
     256                                case ParameterKind_Bool:
     257                                    strValue = QString();
     258                                    break;
     259                                case ParameterKind_Double:
     260                                    strValue = QString::number(parameter.get.value<AbstractVSDParameterDouble>().minimum);
     261                                    break;
     262                                case ParameterKind_String:
     263                                    strValue = parameter.get.value<AbstractVSDParameterString>().value;
     264                                    break;
     265                                case ParameterKind_Array:
     266                                    strValue = parameter.get.value<AbstractVSDParameterArray>().values.value(0);
     267                                    break;
     268                                default:
     269                                    break;
     270                            }
     271                            comVsd.AddDescription(parameter.type, strValue, "");
     272                        }
     273                    }
     274                    else
     275                    {
     276                        /* Add some additional fields the user may change: */
     277                        comVsd.AddDescription(KVirtualSystemDescriptionType_Product, "", "");
     278                        comVsd.AddDescription(KVirtualSystemDescriptionType_ProductUrl, "", "");
     279                        comVsd.AddDescription(KVirtualSystemDescriptionType_Vendor, "", "");
     280                        comVsd.AddDescription(KVirtualSystemDescriptionType_VendorUrl, "", "");
     281                        comVsd.AddDescription(KVirtualSystemDescriptionType_Version, "", "");
     282                        comVsd.AddDescription(KVirtualSystemDescriptionType_License, "", "");
     283                    }
    251284                }
    252285                else
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageExpert.cpp

    r73325 r73326  
    604604    refreshManifestCheckBoxAccess();
    605605    refreshIncludeISOsCheckBoxAccess();
     606    refreshApplianceSettingsWidget();
    606607}
    607608
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