VirtualBox

Ignore:
Timestamp:
Sep 30, 2020 11:19:51 AM (4 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9653: Wizards stuff: Rework all the cloud related wizards such as export, import, create and add to have no cloud profile properties table, it takes a lot of vertical space and never actually required for a simple user.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/wizards
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/addcloudvm/UIWizardAddCloudVMPageBasic1.cpp

    r84464 r86343  
    5151    , m_pAccountComboBox(0)
    5252    , m_pAccountToolButton(0)
    53     , m_pAccountPropertyTable(0)
    5453    , m_pAccountInstanceLabel(0)
    5554    , m_pAccountInstanceList(0)
     
    175174}
    176175
    177 void UIWizardAddCloudVMPage1::populateAccountProperties()
    178 {
    179     /* Block signals while updating: */
    180     m_pAccountPropertyTable->blockSignals(true);
    181 
    182     /* Clear table initially: */
    183     m_pAccountPropertyTable->clear();
    184     m_pAccountPropertyTable->setRowCount(0);
    185     m_pAccountPropertyTable->setColumnCount(0);
     176void UIWizardAddCloudVMPage1::populateAccount()
     177{
    186178    /* Clear Cloud Profile: */
    187179    m_comCloudProfile = CCloudProfile();
     
    190182    if (m_comCloudProvider.isNotNull() && !profileName().isNull())
    191183    {
    192         /* Main API request sequence, can be interrupted after any step: */
    193         do
    194         {
    195             /* Acquire Cloud Profile: */
    196             m_comCloudProfile = m_comCloudProvider.GetProfileByName(profileName());
    197             if (!m_comCloudProvider.isOk())
    198             {
    199                 msgCenter().cannotFindCloudProfile(m_comCloudProvider, profileName());
    200                 break;
    201             }
    202 
    203             /* Acquire profile properties: */
    204             QVector<QString> keys;
    205             QVector<QString> values;
    206             values = m_comCloudProfile.GetProperties(QString(), keys);
    207             if (!m_comCloudProfile.isOk())
    208             {
    209                 msgCenter().cannotAcquireCloudProfileParameter(m_comCloudProfile);
    210                 break;
    211             }
    212 
    213             /* Configure table: */
    214             m_pAccountPropertyTable->setRowCount(keys.size());
    215             m_pAccountPropertyTable->setColumnCount(2);
    216 
    217             /* Push acquired keys/values to data fields: */
    218             for (int i = 0; i < m_pAccountPropertyTable->rowCount(); ++i)
    219             {
    220                 /* Create key item: */
    221                 QTableWidgetItem *pItemK = new QTableWidgetItem(keys.at(i));
    222                 if (pItemK)
    223                 {
    224                     /* Non-editable for sure, but non-selectable? */
    225                     pItemK->setFlags(pItemK->flags() & ~Qt::ItemIsEditable);
    226                     pItemK->setFlags(pItemK->flags() & ~Qt::ItemIsSelectable);
    227 
    228                     /* Use non-translated description as tool-tip: */
    229                     const QString strToolTip = m_comCloudProvider.GetPropertyDescription(keys.at(i));
    230                     /* Show error message if necessary: */
    231                     if (!m_comCloudProfile.isOk())
    232                         msgCenter().cannotAcquireCloudProfileParameter(m_comCloudProfile);
    233                     else
    234                         pItemK->setData(Qt::UserRole, strToolTip);
    235 
    236                     /* Insert into table: */
    237                     m_pAccountPropertyTable->setItem(i, 0, pItemK);
    238                 }
    239 
    240                 /* Create value item: */
    241                 QTableWidgetItem *pItemV = new QTableWidgetItem(values.at(i));
    242                 if (pItemV)
    243                 {
    244                     /* Non-editable for sure, but non-selectable? */
    245                     pItemV->setFlags(pItemV->flags() & ~Qt::ItemIsEditable);
    246                     pItemV->setFlags(pItemV->flags() & ~Qt::ItemIsSelectable);
    247 
    248                     /* Use the value as tool-tip, there can be quite long values: */
    249                     const QString strToolTip = values.at(i);
    250                     pItemV->setToolTip(strToolTip);
    251 
    252                     /* Insert into table: */
    253                     m_pAccountPropertyTable->setItem(i, 1, pItemV);
    254                 }
    255             }
    256 
    257             /* Update table tool-tips: */
    258             updateAccountPropertyTableToolTips();
    259 
    260             /* Adjust the table: */
    261             adjustAccountPropertyTable();
    262         }
    263         while (0);
    264     }
    265 
    266     /* Unblock signals after update: */
    267     m_pAccountPropertyTable->blockSignals(false);
     184        /* Acquire Cloud Profile: */
     185        m_comCloudProfile = m_comCloudProvider.GetProfileByName(profileName());
     186        /* Show error message if necessary: */
     187        if (!m_comCloudProvider.isOk())
     188            msgCenter().cannotFindCloudProfile(m_comCloudProvider, profileName());
     189    }
    268190}
    269191
     
    355277        m_pSourceComboBox->setToolTip(strCurrentToolTip);
    356278    }
    357 }
    358 
    359 void UIWizardAddCloudVMPage1::updateAccountPropertyTableToolTips()
    360 {
    361     /* Iterate through all the key items: */
    362     for (int i = 0; i < m_pAccountPropertyTable->rowCount(); ++i)
    363     {
    364         /* Acquire current key item: */
    365         QTableWidgetItem *pItemK = m_pAccountPropertyTable->item(i, 0);
    366         if (pItemK)
    367         {
    368             const QString strToolTip = pItemK->data(Qt::UserRole).toString();
    369             pItemK->setToolTip(QApplication::translate("UIWizardAddCloudVMPageBasic1", strToolTip.toUtf8().constData()));
    370         }
    371     }
    372 }
    373 
    374 void UIWizardAddCloudVMPage1::adjustAccountPropertyTable()
    375 {
    376     /* Disable last column stretching temporary: */
    377     m_pAccountPropertyTable->horizontalHeader()->setStretchLastSection(false);
    378 
    379     /* Resize both columns to contents: */
    380     m_pAccountPropertyTable->resizeColumnsToContents();
    381     /* Then acquire full available width: */
    382     const int iFullWidth = m_pAccountPropertyTable->viewport()->width();
    383     /* First column should not be less than it's minimum size, last gets the rest: */
    384     const int iMinimumWidth0 = qMin(m_pAccountPropertyTable->horizontalHeader()->sectionSize(0), iFullWidth / 2);
    385     m_pAccountPropertyTable->horizontalHeader()->resizeSection(0, iMinimumWidth0);
    386 
    387     /* Enable last column stretching again: */
    388     m_pAccountPropertyTable->horizontalHeader()->setStretchLastSection(true);
    389279}
    390280
     
    537427            }
    538428
    539             /* Create profile property table: */
    540             m_pAccountPropertyTable = new QTableWidget(this);
    541             if (m_pAccountPropertyTable)
    542             {
    543                 const QFontMetrics fm(m_pAccountPropertyTable->font());
    544                 const int iFontWidth = fm.width('x');
    545                 const int iTotalWidth = 50 * iFontWidth;
    546                 const int iFontHeight = fm.height();
    547                 const int iTotalHeight = 4 * iFontHeight;
    548                 m_pAccountPropertyTable->setMinimumSize(QSize(iTotalWidth, iTotalHeight));
    549                 //m_pAccountPropertyTable->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
    550                 m_pAccountPropertyTable->setAlternatingRowColors(true);
    551                 m_pAccountPropertyTable->horizontalHeader()->setVisible(false);
    552                 m_pAccountPropertyTable->verticalHeader()->setVisible(false);
    553                 m_pAccountPropertyTable->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
    554 
    555                 /* Add into layout: */
    556                 m_pCloudContainerLayout->addWidget(m_pAccountPropertyTable, 1, 1);
    557             }
    558 
    559429            /* Create account instance label: */
    560430            m_pAccountInstanceLabel = new QLabel(this);
     
    562432            {
    563433                /* Add into layout: */
    564                 m_pCloudContainerLayout->addWidget(m_pAccountInstanceLabel, 2, 0, Qt::AlignRight);
     434                m_pCloudContainerLayout->addWidget(m_pAccountInstanceLabel, 1, 0, Qt::AlignRight);
    565435            }
    566436            /* Create profile instances table: */
     
    580450
    581451                /* Add into layout: */
    582                 m_pCloudContainerLayout->addWidget(m_pAccountInstanceList, 2, 1, 2, 1);
     452                m_pCloudContainerLayout->addWidget(m_pAccountInstanceList, 1, 1, 2, 1);
    583453            }
    584454
     
    607477}
    608478
    609 bool UIWizardAddCloudVMPageBasic1::event(QEvent *pEvent)
    610 {
    611     /* Handle known event types: */
    612     switch (pEvent->type())
    613     {
    614         case QEvent::Show:
    615         case QEvent::Resize:
    616         {
    617             /* Adjust profile property table: */
    618             adjustAccountPropertyTable();
    619             break;
    620         }
    621         default:
    622             break;
    623     }
    624 
    625     /* Call to base-class: */
    626     return UIWizardPage::event(pEvent);
    627 }
    628 
    629479void UIWizardAddCloudVMPageBasic1::retranslateUi()
    630480{
     
    669519    /* Update tool-tips: */
    670520    updateSourceComboToolTip();
    671     updateAccountPropertyTableToolTips();
    672521}
    673522
     
    730579    /* Refresh required settings: */
    731580    populateAccounts();
    732     populateAccountProperties();
     581    populateAccount();
    733582    populateAccountInstances();
    734583    emit completeChanged();
     
    738587{
    739588    /* Refresh required settings: */
    740     populateAccountProperties();
     589    populateAccount();
    741590    populateAccountInstances();
    742591    emit completeChanged();
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/addcloudvm/UIWizardAddCloudVMPageBasic1.h

    r83857 r86343  
    6767    /** Populates accounts. */
    6868    void populateAccounts();
    69     /** Populates account properties. */
    70     void populateAccountProperties();
     69    /** Populates account. */
     70    void populateAccount();
    7171    /** Populates account instances. */
    7272    void populateAccountInstances();
     
    7474    /** Updates source combo tool-tips. */
    7575    void updateSourceComboToolTip();
    76     /** Updates account property table tool-tips. */
    77     void updateAccountPropertyTableToolTips();
    78     /** Adjusts account property table. */
    79     void adjustAccountPropertyTable();
    8076
    8177    /** Defines @a strSource. */
     
    121117    /** Holds the account management tool-button instance. */
    122118    QIToolButton *m_pAccountToolButton;
    123     /** Holds the account property table instance. */
    124     QTableWidget *m_pAccountPropertyTable;
    125119    /** Holds the account instance label instance. */
    126120    QLabel       *m_pAccountInstanceLabel;
     
    146140    /** Allows access wizard from base part. */
    147141    virtual UIWizard *wizardImp() const /* override */ { return UIWizardPage::wizard(); }
    148 
    149     /** Handle any Qt @a pEvent. */
    150     virtual bool event(QEvent *pEvent) /* override */;
    151142
    152143    /** Handles translation event. */
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/addcloudvm/UIWizardAddCloudVMPageExpert.cpp

    r83857 r86343  
    9292                    }
    9393
    94                     /* Create profile property table: */
    95                     m_pAccountPropertyTable = new QTableWidget(m_pCntSource);
    96                     if (m_pAccountPropertyTable)
    97                     {
    98                         const QFontMetrics fm(m_pAccountPropertyTable->font());
    99                         const int iFontWidth = fm.width('x');
    100                         const int iTotalWidth = 50 * iFontWidth;
    101                         const int iFontHeight = fm.height();
    102                         const int iTotalHeight = 4 * iFontHeight;
    103                         m_pAccountPropertyTable->setMinimumSize(QSize(iTotalWidth, iTotalHeight));
    104                         //m_pAccountPropertyTable->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
    105                         m_pAccountPropertyTable->setAlternatingRowColors(true);
    106                         m_pAccountPropertyTable->horizontalHeader()->setVisible(false);
    107                         m_pAccountPropertyTable->verticalHeader()->setVisible(false);
    108                         m_pAccountPropertyTable->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
    109 
    110                         /* Add into layout: */
    111                         m_pCloudContainerLayout->addWidget(m_pAccountPropertyTable, 1, 0);
    112                     }
    113 
    11494                    /* Create profile instances table: */
    11595                    m_pAccountInstanceList = new QListWidget(m_pCntSource);
     
    127107
    128108                        /* Add into layout: */
    129                         m_pCloudContainerLayout->addWidget(m_pAccountInstanceList, 2, 0);
     109                        m_pCloudContainerLayout->addWidget(m_pAccountInstanceList, 1, 0);
    130110                    }
    131111
     
    159139}
    160140
    161 bool UIWizardAddCloudVMPageExpert::event(QEvent *pEvent)
    162 {
    163     /* Handle known event types: */
    164     switch (pEvent->type())
    165     {
    166         case QEvent::Show:
    167         case QEvent::Resize:
    168         {
    169             /* Adjust profile property table: */
    170             adjustAccountPropertyTable();
    171             break;
    172         }
    173         default:
    174             break;
    175     }
    176 
    177     /* Call to base-class: */
    178     return UIWizardPage::event(pEvent);
    179 }
    180 
    181141void UIWizardAddCloudVMPageExpert::retranslateUi()
    182142{
     
    194154    /* Update tool-tips: */
    195155    updateSourceComboToolTip();
    196     updateAccountPropertyTableToolTips();
    197156}
    198157
     
    255214    /* Refresh required settings: */
    256215    populateAccounts();
    257     populateAccountProperties();
     216    populateAccount();
    258217    populateAccountInstances();
    259218    emit completeChanged();
     
    263222{
    264223    /* Refresh required settings: */
    265     populateAccountProperties();
     224    populateAccount();
    266225    populateAccountInstances();
    267226    emit completeChanged();
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/addcloudvm/UIWizardAddCloudVMPageExpert.h

    r83857 r86343  
    4747    virtual UIWizard *wizardImp() const /* override */ { return UIWizardPage::wizard(); }
    4848
    49     /** Handle any Qt @a pEvent. */
    50     virtual bool event(QEvent *pEvent) /* override */;
    51 
    5249    /** Handles translation event. */
    5350    virtual void retranslateUi() /* override */;
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic2.cpp

    r82968 r86343  
    6868    , m_pAccountComboBox(0)
    6969    , m_pAccountToolButton(0)
    70     , m_pAccountPropertyTable(0)
    7170{
    7271}
     
    226225}
    227226
    228 void UIWizardExportAppPage2::populateAccountProperties()
    229 {
    230     /* Clear table initially: */
    231     m_pAccountPropertyTable->clear();
    232     m_pAccountPropertyTable->setRowCount(0);
    233     m_pAccountPropertyTable->setColumnCount(0);
     227void UIWizardExportAppPage2::populateAccount()
     228{
    234229    /* Clear Cloud Profile: */
    235230    m_comCloudProfile = CCloudProfile();
     
    243238        if (!m_comCloudProvider.isOk())
    244239            msgCenter().cannotFindCloudProfile(m_comCloudProvider, profileName());
    245         else
    246         {
    247             /* Acquire properties: */
    248             QVector<QString> keys;
    249             QVector<QString> values;
    250             values = m_comCloudProfile.GetProperties(QString(), keys);
    251             /* Show error message if necessary: */
    252             if (!m_comCloudProfile.isOk())
    253                 msgCenter().cannotAcquireCloudProfileParameter(m_comCloudProfile);
    254             else
    255             {
    256                 /* Configure table: */
    257                 m_pAccountPropertyTable->setRowCount(keys.size());
    258                 m_pAccountPropertyTable->setColumnCount(2);
    259 
    260                 /* Push acquired keys/values to data fields: */
    261                 for (int i = 0; i < m_pAccountPropertyTable->rowCount(); ++i)
    262                 {
    263                     /* Create key item: */
    264                     QTableWidgetItem *pItemK = new QTableWidgetItem(keys.at(i));
    265                     if (pItemK)
    266                     {
    267                         /* Non-editable for sure, but non-selectable? */
    268                         pItemK->setFlags(pItemK->flags() & ~Qt::ItemIsEditable);
    269                         pItemK->setFlags(pItemK->flags() & ~Qt::ItemIsSelectable);
    270 
    271                         /* Use non-translated description as tool-tip: */
    272                         const QString strToolTip = m_comCloudProvider.GetPropertyDescription(keys.at(i));
    273                         /* Show error message if necessary: */
    274                         if (!m_comCloudProfile.isOk())
    275                             msgCenter().cannotAcquireCloudProfileParameter(m_comCloudProfile);
    276                         else
    277                             pItemK->setData(Qt::UserRole, strToolTip);
    278 
    279                         /* Insert into table: */
    280                         m_pAccountPropertyTable->setItem(i, 0, pItemK);
    281                     }
    282 
    283                     /* Create value item: */
    284                     QTableWidgetItem *pItemV = new QTableWidgetItem(values.at(i));
    285                     if (pItemV)
    286                     {
    287                         /* Non-editable for sure, but non-selectable? */
    288                         pItemV->setFlags(pItemV->flags() & ~Qt::ItemIsEditable);
    289                         pItemV->setFlags(pItemV->flags() & ~Qt::ItemIsSelectable);
    290 
    291                         /* Use the value as tool-tip, there can be quite long values: */
    292                         const QString strToolTip = values.at(i);
    293                         pItemV->setToolTip(strToolTip);
    294 
    295                         /* Insert into table: */
    296                         m_pAccountPropertyTable->setItem(i, 1, pItemV);
    297                     }
    298                 }
    299 
    300                 /* Update table tool-tips: */
    301                 updateAccountPropertyTableToolTips();
    302 
    303                 /* Adjust the table: */
    304                 adjustAccountPropertyTable();
    305             }
    306         }
    307240    }
    308241}
     
    529462    AssertMsg(!strCurrentToolTip.isEmpty(), ("Data not found!"));
    530463    m_pMACComboBox->setToolTip(strCurrentToolTip);
    531 }
    532 
    533 void UIWizardExportAppPage2::updateAccountPropertyTableToolTips()
    534 {
    535     /* Iterate through all the key items: */
    536     for (int i = 0; i < m_pAccountPropertyTable->rowCount(); ++i)
    537     {
    538         /* Acquire current key item: */
    539         QTableWidgetItem *pItemK = m_pAccountPropertyTable->item(i, 0);
    540         if (pItemK)
    541         {
    542             const QString strToolTip = pItemK->data(Qt::UserRole).toString();
    543             pItemK->setToolTip(QApplication::translate("UIWizardExportAppPageBasic2", strToolTip.toUtf8().constData()));
    544         }
    545     }
    546 }
    547 
    548 void UIWizardExportAppPage2::adjustAccountPropertyTable()
    549 {
    550     /* Disable last column stretching temporary: */
    551     m_pAccountPropertyTable->horizontalHeader()->setStretchLastSection(false);
    552 
    553     /* Resize both columns to contents: */
    554     m_pAccountPropertyTable->resizeColumnsToContents();
    555     /* Then acquire full available width: */
    556     const int iFullWidth = m_pAccountPropertyTable->viewport()->width();
    557     /* First column should not be less than it's minimum size, last gets the rest: */
    558     const int iMinimumWidth0 = qMin(m_pAccountPropertyTable->horizontalHeader()->sectionSize(0), iFullWidth / 2);
    559     m_pAccountPropertyTable->horizontalHeader()->resizeSection(0, iMinimumWidth0);
    560 
    561     /* Enable last column stretching again: */
    562     m_pAccountPropertyTable->horizontalHeader()->setStretchLastSection(true);
    563464}
    564465
     
    903804                        m_pSettingsLayout2->addLayout(pSubLayout, 0, 1);
    904805                    }
    905                     /* Create profile property table: */
    906                     m_pAccountPropertyTable = new QTableWidget;
    907                     if (m_pAccountPropertyTable)
    908                     {
    909                         const QFontMetrics fm(m_pAccountPropertyTable->font());
    910                         const int iFontWidth = fm.width('x');
    911                         const int iTotalWidth = 50 * iFontWidth;
    912                         const int iFontHeight = fm.height();
    913                         const int iTotalHeight = 4 * iFontHeight;
    914                         m_pAccountPropertyTable->setMinimumSize(QSize(iTotalWidth, iTotalHeight));
    915 //                        m_pAccountPropertyTable->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
    916                         m_pAccountPropertyTable->setAlternatingRowColors(true);
    917                         m_pAccountPropertyTable->horizontalHeader()->setVisible(false);
    918                         m_pAccountPropertyTable->verticalHeader()->setVisible(false);
    919                         m_pAccountPropertyTable->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
    920 
    921                         /* Add into layout: */
    922                         m_pSettingsLayout2->addWidget(m_pAccountPropertyTable, 1, 1);
    923                     }
    924806
    925807                    /* Create account label: */
     
    930812
    931813                        /* Add into layout: */
    932                         m_pSettingsLayout2->addWidget(m_pMachineLabel, 2, 0);
     814                        m_pSettingsLayout2->addWidget(m_pMachineLabel, 1, 0);
    933815                    }
    934816                    /* Create Export Then Ask button: */
     
    937819                    {
    938820                        /* Add into layout: */
    939                         m_pSettingsLayout2->addWidget(m_pRadioExportThenAsk, 2, 1);
     821                        m_pSettingsLayout2->addWidget(m_pRadioExportThenAsk, 1, 1);
    940822                    }
    941823                    /* Create Ask Then Export button: */
     
    944826                    {
    945827                        /* Add into layout: */
    946                         m_pSettingsLayout2->addWidget(m_pRadioAskThenExport, 3, 1);
     828                        m_pSettingsLayout2->addWidget(m_pRadioAskThenExport, 2, 1);
    947829                    }
    948830                    /* Create Do Not Ask button: */
     
    951833                    {
    952834                        /* Add into layout: */
    953                         m_pSettingsLayout2->addWidget(m_pRadioDoNotAsk, 4, 1);
     835                        m_pSettingsLayout2->addWidget(m_pRadioDoNotAsk, 3, 1);
    954836                    }
    955837                }
     
    970852    /* Populate accounts: */
    971853    populateAccounts();
    972     /* Populate account properties: */
    973     populateAccountProperties();
     854    /* Populate account: */
     855    populateAccount();
    974856
    975857    /* Setup connections: */
     
    1001883    registerField("vsdExportForm", this, "vsdExportForm");
    1002884    registerField("cloudExportMode", this, "cloudExportMode");
    1003 }
    1004 
    1005 bool UIWizardExportAppPageBasic2::event(QEvent *pEvent)
    1006 {
    1007     /* Handle known event types: */
    1008     switch (pEvent->type())
    1009     {
    1010         case QEvent::Show:
    1011         case QEvent::Resize:
    1012         {
    1013             /* Adjust profile property table: */
    1014             adjustAccountPropertyTable();
    1015             break;
    1016         }
    1017         default:
    1018             break;
    1019     }
    1020 
    1021     /* Call to base-class: */
    1022     return UIWizardPage::event(pEvent);
    1023885}
    1024886
     
    1134996    updateFormatComboToolTip();
    1135997    updateMACAddressExportPolicyComboToolTip();
    1136     updateAccountPropertyTableToolTips();
    1137998}
    1138999
     
    12011062        m_pLabelSettings->setText(UIWizardExportApp::
    12021063                                  tr("<p>Please choose one of cloud service accounts you have registered to export virtual "
    1203                                      "machines to. Make sure profile settings reflected in the underlying table are valid. "
    1204                                      "They will be used to establish network connection required to upload your virtual machine "
    1205                                      "files to a remote cloud facility.</p>"));
     1064                                     "machines to. It will be used to establish network connection required to upload your "
     1065                                     "virtual machine files to a remote cloud facility.</p>"));
    12061066        m_pAccountComboBox->setFocus();
    12071067    }
     
    12271087    refreshIncludeISOsCheckBoxAccess();
    12281088    populateAccounts();
    1229     populateAccountProperties();
     1089    populateAccount();
    12301090    emit completeChanged();
    12311091}
     
    12501110{
    12511111    /* Refresh required settings: */
    1252     populateAccountProperties();
     1112    populateAccount();
    12531113}
    12541114
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageBasic2.h

    r82968 r86343  
    103103    /** Populates accounts. */
    104104    void populateAccounts();
    105     /** Populates account properties. */
    106     void populateAccountProperties();
     105    /** Populates account. */
     106    void populateAccount();
    107107    /** Populates form properties. */
    108108    void populateFormProperties();
     
    126126    /** Updates MAC address export policy combo tool-tips. */
    127127    void updateMACAddressExportPolicyComboToolTip();
    128     /** Updates account property table tool-tips. */
    129     void updateAccountPropertyTableToolTips();
    130     /** Adjusts account property table. */
    131     void adjustAccountPropertyTable();
    132128
    133129    /** Defines @a strFormat. */
     
    241237    /** Holds the account management tool-button instance. */
    242238    QIToolButton *m_pAccountToolButton;
    243     /** Holds the account property table instance. */
    244     QTableWidget *m_pAccountPropertyTable;
    245239
    246240    /** Holds the machine label instance. */
     
    279273protected:
    280274
    281     /** Handle any Qt @a pEvent. */
    282     virtual bool event(QEvent *pEvent) /* override */;
    283 
    284275    /** Allows access wizard from base part. */
    285276    UIWizard *wizardImp() const { return UIWizardPage::wizard(); }
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageExpert.cpp

    r82968 r86343  
    351351                                m_pSettingsLayout2->addLayout(pSubLayout, 0, 1);
    352352                            }
    353                             /* Create account property table: */
    354                             m_pAccountPropertyTable = new QTableWidget;
    355                             if (m_pAccountPropertyTable)
    356                             {
    357                                 const QFontMetrics fm(m_pAccountPropertyTable->font());
    358                                 const int iFontWidth = fm.width('x');
    359                                 const int iTotalWidth = 50 * iFontWidth;
    360                                 const int iFontHeight = fm.height();
    361                                 const int iTotalHeight = 8 * iFontHeight;
    362                                 m_pAccountPropertyTable->setMinimumSize(QSize(iTotalWidth, iTotalHeight));
    363                                 m_pAccountPropertyTable->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
    364                                 m_pAccountPropertyTable->setAlternatingRowColors(true);
    365                                 m_pAccountPropertyTable->horizontalHeader()->setVisible(false);
    366                                 m_pAccountPropertyTable->verticalHeader()->setVisible(false);
    367                                 m_pAccountPropertyTable->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
    368 
    369                                 /* Add into layout: */
    370                                 m_pSettingsLayout2->addWidget(m_pAccountPropertyTable, 1, 1);
    371                             }
    372353
    373354                            /* Create account label: */
     
    378359
    379360                                /* Add into layout: */
    380                                 m_pSettingsLayout2->addWidget(m_pMachineLabel, 2, 0);
     361                                m_pSettingsLayout2->addWidget(m_pMachineLabel, 1, 0);
    381362                            }
    382363                            /* Create Export Then Ask button: */
     
    385366                            {
    386367                                /* Add into layout: */
    387                                 m_pSettingsLayout2->addWidget(m_pRadioExportThenAsk, 2, 1);
     368                                m_pSettingsLayout2->addWidget(m_pRadioExportThenAsk, 1, 1);
    388369                            }
    389370                            /* Create Ask Then Export button: */
     
    392373                            {
    393374                                /* Add into layout: */
    394                                 m_pSettingsLayout2->addWidget(m_pRadioAskThenExport, 3, 1);
     375                                m_pSettingsLayout2->addWidget(m_pRadioAskThenExport, 2, 1);
    395376                            }
    396377                            /* Create Do Not Ask button: */
     
    399380                            {
    400381                                /* Add into layout: */
    401                                 m_pSettingsLayout2->addWidget(m_pRadioDoNotAsk, 4, 1);
     382                                m_pSettingsLayout2->addWidget(m_pRadioDoNotAsk, 3, 1);
    402383                            }
    403384                        }
     
    459440    registerField("cloudExportMode", this, "cloudExportMode");
    460441    registerField("applianceWidget", this, "applianceWidget");
    461 }
    462 
    463 bool UIWizardExportAppPageExpert::event(QEvent *pEvent)
    464 {
    465     /* Handle known event types: */
    466     switch (pEvent->type())
    467     {
    468         case QEvent::Show:
    469         case QEvent::Resize:
    470         {
    471             /* Adjust profile property table: */
    472             adjustAccountPropertyTable();
    473             break;
    474         }
    475         default:
    476             break;
    477     }
    478 
    479     /* Call to base-class: */
    480     return UIWizardPage::event(pEvent);
    481442}
    482443
     
    702663    refreshIncludeISOsCheckBoxAccess();
    703664    populateAccounts();
    704     populateAccountProperties();
     665    populateAccount();
    705666    populateFormProperties();
    706667
     
    735696{
    736697    /* Refresh required settings: */
    737     populateAccountProperties();
     698    populateAccount();
    738699    populateFormProperties();
    739700
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportAppPageExpert.h

    r82968 r86343  
    6161protected:
    6262
    63     /** Handle any Qt @a pEvent. */
    64     virtual bool event(QEvent *pEvent) /* override */;
    65 
    6663    /** Allows access wizard from base part. */
    6764    UIWizard *wizardImp() const { return UIWizardPage::wizard(); }
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageBasic1.cpp

    r82968 r86343  
    5959    , m_pAccountComboBox(0)
    6060    , m_pAccountToolButton(0)
    61     , m_pAccountPropertyTable(0)
    6261    , m_pAccountInstanceLabel(0)
    6362    , m_pAccountInstanceList(0)
     
    197196}
    198197
    199 void UIWizardImportAppPage1::populateAccountProperties()
    200 {
    201     /* Block signals while updating: */
    202     m_pAccountPropertyTable->blockSignals(true);
    203 
    204     /* Clear table initially: */
    205     m_pAccountPropertyTable->clear();
    206     m_pAccountPropertyTable->setRowCount(0);
    207     m_pAccountPropertyTable->setColumnCount(0);
     198void UIWizardImportAppPage1::populateAccount()
     199{
    208200    /* Clear Cloud Profile: */
    209201    m_comCloudProfile = CCloudProfile();
     
    212204    if (m_comCloudProvider.isNotNull() && !profileName().isNull())
    213205    {
    214         /* Main API request sequence, can be interrupted after any step: */
    215         do
    216         {
    217             /* Acquire Cloud Profile: */
    218             m_comCloudProfile = m_comCloudProvider.GetProfileByName(profileName());
    219             if (!m_comCloudProvider.isOk())
    220             {
    221                 msgCenter().cannotFindCloudProfile(m_comCloudProvider, profileName());
    222                 break;
    223             }
    224 
    225             /* Acquire profile properties: */
    226             QVector<QString> keys;
    227             QVector<QString> values;
    228             values = m_comCloudProfile.GetProperties(QString(), keys);
    229             if (!m_comCloudProfile.isOk())
    230             {
    231                 msgCenter().cannotAcquireCloudProfileParameter(m_comCloudProfile);
    232                 break;
    233             }
    234 
    235             /* Configure table: */
    236             m_pAccountPropertyTable->setRowCount(keys.size());
    237             m_pAccountPropertyTable->setColumnCount(2);
    238 
    239             /* Push acquired keys/values to data fields: */
    240             for (int i = 0; i < m_pAccountPropertyTable->rowCount(); ++i)
    241             {
    242                 /* Create key item: */
    243                 QTableWidgetItem *pItemK = new QTableWidgetItem(keys.at(i));
    244                 if (pItemK)
    245                 {
    246                     /* Non-editable for sure, but non-selectable? */
    247                     pItemK->setFlags(pItemK->flags() & ~Qt::ItemIsEditable);
    248                     pItemK->setFlags(pItemK->flags() & ~Qt::ItemIsSelectable);
    249 
    250                     /* Use non-translated description as tool-tip: */
    251                     const QString strToolTip = m_comCloudProvider.GetPropertyDescription(keys.at(i));
    252                     /* Show error message if necessary: */
    253                     if (!m_comCloudProfile.isOk())
    254                         msgCenter().cannotAcquireCloudProfileParameter(m_comCloudProfile);
    255                     else
    256                         pItemK->setData(Qt::UserRole, strToolTip);
    257 
    258                     /* Insert into table: */
    259                     m_pAccountPropertyTable->setItem(i, 0, pItemK);
    260                 }
    261 
    262                 /* Create value item: */
    263                 QTableWidgetItem *pItemV = new QTableWidgetItem(values.at(i));
    264                 if (pItemV)
    265                 {
    266                     /* Non-editable for sure, but non-selectable? */
    267                     pItemV->setFlags(pItemV->flags() & ~Qt::ItemIsEditable);
    268                     pItemV->setFlags(pItemV->flags() & ~Qt::ItemIsSelectable);
    269 
    270                     /* Use the value as tool-tip, there can be quite long values: */
    271                     const QString strToolTip = values.at(i);
    272                     pItemV->setToolTip(strToolTip);
    273 
    274                     /* Insert into table: */
    275                     m_pAccountPropertyTable->setItem(i, 1, pItemV);
    276                 }
    277             }
    278 
    279             /* Update table tool-tips: */
    280             updateAccountPropertyTableToolTips();
    281 
    282             /* Adjust the table: */
    283             adjustAccountPropertyTable();
    284         }
    285         while (0);
    286     }
    287 
    288     /* Unblock signals after update: */
    289     m_pAccountPropertyTable->blockSignals(false);
     206        /* Acquire Cloud Profile: */
     207        m_comCloudProfile = m_comCloudProvider.GetProfileByName(profileName());
     208        /* Show error message if necessary: */
     209        if (!m_comCloudProvider.isOk())
     210            msgCenter().cannotFindCloudProfile(m_comCloudProvider, profileName());
     211    }
    290212}
    291213
     
    455377    AssertMsg(!strCurrentToolTip.isEmpty(), ("Data not found!"));
    456378    m_pSourceComboBox->setToolTip(strCurrentToolTip);
    457 }
    458 
    459 void UIWizardImportAppPage1::updateAccountPropertyTableToolTips()
    460 {
    461     /* Iterate through all the key items: */
    462     for (int i = 0; i < m_pAccountPropertyTable->rowCount(); ++i)
    463     {
    464         /* Acquire current key item: */
    465         QTableWidgetItem *pItemK = m_pAccountPropertyTable->item(i, 0);
    466         if (pItemK)
    467         {
    468             const QString strToolTip = pItemK->data(Qt::UserRole).toString();
    469             pItemK->setToolTip(QApplication::translate("UIWizardImportAppPageBasic1", strToolTip.toUtf8().constData()));
    470         }
    471     }
    472 }
    473 
    474 void UIWizardImportAppPage1::adjustAccountPropertyTable()
    475 {
    476     /* Disable last column stretching temporary: */
    477     m_pAccountPropertyTable->horizontalHeader()->setStretchLastSection(false);
    478 
    479     /* Resize both columns to contents: */
    480     m_pAccountPropertyTable->resizeColumnsToContents();
    481     /* Then acquire full available width: */
    482     const int iFullWidth = m_pAccountPropertyTable->viewport()->width();
    483     /* First column should not be less than it's minimum size, last gets the rest: */
    484     const int iMinimumWidth0 = qMin(m_pAccountPropertyTable->horizontalHeader()->sectionSize(0), iFullWidth / 2);
    485     m_pAccountPropertyTable->horizontalHeader()->resizeSection(0, iMinimumWidth0);
    486 
    487     /* Enable last column stretching again: */
    488     m_pAccountPropertyTable->horizontalHeader()->setStretchLastSection(true);
    489379}
    490380
     
    698588                    }
    699589
    700                     /* Create profile property table: */
    701                     m_pAccountPropertyTable = new QTableWidget;
    702                     if (m_pAccountPropertyTable)
    703                     {
    704                         const QFontMetrics fm(m_pAccountPropertyTable->font());
    705                         const int iFontWidth = fm.width('x');
    706                         const int iTotalWidth = 50 * iFontWidth;
    707                         const int iFontHeight = fm.height();
    708                         const int iTotalHeight = 4 * iFontHeight;
    709                         m_pAccountPropertyTable->setMinimumSize(QSize(iTotalWidth, iTotalHeight));
    710 //                        m_pAccountPropertyTable->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
    711                         m_pAccountPropertyTable->setAlternatingRowColors(true);
    712                         m_pAccountPropertyTable->horizontalHeader()->setVisible(false);
    713                         m_pAccountPropertyTable->verticalHeader()->setVisible(false);
    714                         m_pAccountPropertyTable->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
    715 
    716                         /* Add into layout: */
    717                         m_pCloudContainerLayout->addWidget(m_pAccountPropertyTable, 1, 1);
    718                     }
    719 
    720590                    /* Create account instance label: */
    721591                    m_pAccountInstanceLabel = new QLabel;
     
    723593                    {
    724594                        /* Add into layout: */
    725                         m_pCloudContainerLayout->addWidget(m_pAccountInstanceLabel, 2, 0, Qt::AlignRight);
     595                        m_pCloudContainerLayout->addWidget(m_pAccountInstanceLabel, 1, 0, Qt::AlignRight);
    726596                    }
    727597
     
    741611
    742612                        /* Add into layout: */
    743                         m_pCloudContainerLayout->addWidget(m_pAccountInstanceList, 2, 1, 2, 1);
     613                        m_pCloudContainerLayout->addWidget(m_pAccountInstanceList, 1, 1, 2, 1);
    744614                    }
    745615                }
     
    761631    /* Populate accounts: */
    762632    populateAccounts();
    763     /* Populate account properties: */
    764     populateAccountProperties();
     633    /* Populate account: */
     634    populateAccount();
    765635    /* Populate account instances: */
    766636    populateAccountInstances();
     
    790660}
    791661
    792 bool UIWizardImportAppPageBasic1::event(QEvent *pEvent)
    793 {
    794     /* Handle known event types: */
    795     switch (pEvent->type())
    796     {
    797         case QEvent::Show:
    798         case QEvent::Resize:
    799         {
    800             /* Adjust profile property table: */
    801             adjustAccountPropertyTable();
    802             break;
    803         }
    804         default:
    805             break;
    806     }
    807 
    808     /* Call to base-class: */
    809     return UIWizardPage::event(pEvent);
    810 }
    811 
    812662void UIWizardImportAppPageBasic1::retranslateUi()
    813663{
     
    862712    /* Update tool-tips: */
    863713    updateSourceComboToolTip();
    864     updateAccountPropertyTableToolTips();
    865714}
    866715
     
    955804    updatePageAppearance();
    956805    populateAccounts();
    957     populateAccountProperties();
     806    populateAccount();
    958807    populateAccountInstances();
    959808    emit completeChanged();
     
    963812{
    964813    /* Refresh required settings: */
    965     populateAccountProperties();
     814    populateAccount();
    966815    populateAccountInstances();
    967816    emit completeChanged();
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageBasic1.h

    r82968 r86343  
    7272    /** Populates accounts. */
    7373    void populateAccounts();
    74     /** Populates account properties. */
    75     void populateAccountProperties();
     74    /** Populates account. */
     75    void populateAccount();
    7676    /** Populates account instances. */
    7777    void populateAccountInstances();
     
    8484    /** Updates source combo tool-tips. */
    8585    void updateSourceComboToolTip();
    86     /** Updates account property table tool-tips. */
    87     void updateAccountPropertyTableToolTips();
    88     /** Adjusts account property table. */
    89     void adjustAccountPropertyTable();
    9086
    9187    /** Defines @a strSource. */
     
    150146    /** Holds the account management tool-button instance. */
    151147    QIToolButton *m_pAccountToolButton;
    152     /** Holds the account property table instance. */
    153     QTableWidget *m_pAccountPropertyTable;
    154148    /** Holds the account instance label instance. */
    155149    QLabel       *m_pAccountInstanceLabel;
     
    176170protected:
    177171
    178     /** Handle any Qt @a pEvent. */
    179     virtual bool event(QEvent *pEvent) /* override */;
    180 
    181172    /** Handles translation event. */
    182173    virtual void retranslateUi() /* override */;
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageExpert.cpp

    r82968 r86343  
    138138                            }
    139139
    140                             /* Create profile property table: */
    141                             m_pAccountPropertyTable = new QTableWidget(pCloudContainer);
    142                             if (m_pAccountPropertyTable)
    143                             {
    144                                 const QFontMetrics fm(m_pAccountPropertyTable->font());
    145                                 const int iFontWidth = fm.width('x');
    146                                 const int iTotalWidth = 50 * iFontWidth;
    147                                 const int iFontHeight = fm.height();
    148                                 const int iTotalHeight = 4 * iFontHeight;
    149                                 m_pAccountPropertyTable->setMinimumSize(QSize(iTotalWidth, iTotalHeight));
    150 //                                m_pAccountPropertyTable->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
    151                                 m_pAccountPropertyTable->setAlternatingRowColors(true);
    152                                 m_pAccountPropertyTable->horizontalHeader()->setVisible(false);
    153                                 m_pAccountPropertyTable->verticalHeader()->setVisible(false);
    154                                 m_pAccountPropertyTable->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
    155 
    156                                 /* Add into layout: */
    157                                 m_pCloudContainerLayout->addWidget(m_pAccountPropertyTable, 1, 0);
    158                             }
    159 
    160140                            /* Create profile instances table: */
    161141                            m_pAccountInstanceList = new QListWidget(pCloudContainer);
     
    172152
    173153                                /* Add into layout: */
    174                                 m_pCloudContainerLayout->addWidget(m_pAccountInstanceList, 2, 0);
     154                                m_pCloudContainerLayout->addWidget(m_pAccountInstanceList, 1, 0);
    175155                            }
    176156                        }
     
    252232    /* Populate accounts: */
    253233    populateAccounts();
    254     /* Populate account properties: */
    255     populateAccountProperties();
     234    /* Populate account: */
     235    populateAccount();
    256236    /* Populate account instances: */
    257237    populateAccountInstances();
     
    287267}
    288268
    289 bool UIWizardImportAppPageExpert::event(QEvent *pEvent)
    290 {
    291     /* Handle known event types: */
    292     switch (pEvent->type())
    293     {
    294         case QEvent::Show:
    295         case QEvent::Resize:
    296         {
    297             /* Adjust profile property table: */
    298             adjustAccountPropertyTable();
    299             break;
    300         }
    301         default:
    302             break;
    303     }
    304 
    305     /* Call to base-class: */
    306     return UIWizardPage::event(pEvent);
    307 }
    308 
    309269void UIWizardImportAppPageExpert::retranslateUi()
    310270{
     
    337297    /* Update tool-tips: */
    338298    updateSourceComboToolTip();
    339     updateAccountPropertyTableToolTips();
    340299}
    341300
     
    433392    updatePageAppearance();
    434393    populateAccounts();
    435     populateAccountProperties();
     394    populateAccount();
    436395    populateAccountInstances();
    437396    populateFormProperties();
     
    456415{
    457416    /* Refresh required settings: */
    458     populateAccountProperties();
     417    populateAccount();
    459418    populateAccountInstances();
    460419    populateFormProperties();
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageExpert.h

    r82968 r86343  
    5454    virtual QVariant fieldImp(const QString &strFieldName) const /* override */ { return UIWizardPage::field(strFieldName); }
    5555
    56     /** Handle any Qt @a pEvent. */
    57     virtual bool event(QEvent *pEvent) /* override */;
    58 
    5956    /** Handles translation event. */
    6057    virtual void retranslateUi() /* override */;
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVMPageBasic1.cpp

    r84464 r86343  
    5151    , m_pAccountComboBox(0)
    5252    , m_pAccountToolButton(0)
    53     , m_pAccountPropertyTable(0)
    5453    , m_pSourceImageLabel(0)
    5554    , m_pSourceTabBar(0)
     
    176175}
    177176
    178 void UIWizardNewCloudVMPage1::populateAccountProperties()
    179 {
    180     /* Block signals while updating: */
    181     m_pAccountPropertyTable->blockSignals(true);
    182 
    183     /* Clear table initially: */
    184     m_pAccountPropertyTable->clear();
    185     m_pAccountPropertyTable->setRowCount(0);
    186     m_pAccountPropertyTable->setColumnCount(0);
     177void UIWizardNewCloudVMPage1::populateAccount()
     178{
    187179    /* Clear Cloud Profile: */
    188180    m_comCloudProfile = CCloudProfile();
     
    191183    if (m_comCloudProvider.isNotNull() && !profileName().isNull())
    192184    {
    193         /* Main API request sequence, can be interrupted after any step: */
    194         do
    195         {
    196             /* Acquire Cloud Profile: */
    197             m_comCloudProfile = m_comCloudProvider.GetProfileByName(profileName());
    198             if (!m_comCloudProvider.isOk())
    199             {
    200                 msgCenter().cannotFindCloudProfile(m_comCloudProvider, profileName());
    201                 break;
    202             }
    203 
    204             /* Acquire profile properties: */
    205             QVector<QString> keys;
    206             QVector<QString> values;
    207             values = m_comCloudProfile.GetProperties(QString(), keys);
    208             if (!m_comCloudProfile.isOk())
    209             {
    210                 msgCenter().cannotAcquireCloudProfileParameter(m_comCloudProfile);
    211                 break;
    212             }
    213 
    214             /* Configure table: */
    215             m_pAccountPropertyTable->setRowCount(keys.size());
    216             m_pAccountPropertyTable->setColumnCount(2);
    217 
    218             /* Push acquired keys/values to data fields: */
    219             for (int i = 0; i < m_pAccountPropertyTable->rowCount(); ++i)
    220             {
    221                 /* Create key item: */
    222                 QTableWidgetItem *pItemK = new QTableWidgetItem(keys.at(i));
    223                 if (pItemK)
    224                 {
    225                     /* Non-editable for sure, but non-selectable? */
    226                     pItemK->setFlags(pItemK->flags() & ~Qt::ItemIsEditable);
    227                     pItemK->setFlags(pItemK->flags() & ~Qt::ItemIsSelectable);
    228 
    229                     /* Use non-translated description as tool-tip: */
    230                     const QString strToolTip = m_comCloudProvider.GetPropertyDescription(keys.at(i));
    231                     /* Show error message if necessary: */
    232                     if (!m_comCloudProfile.isOk())
    233                         msgCenter().cannotAcquireCloudProfileParameter(m_comCloudProfile);
    234                     else
    235                         pItemK->setData(Qt::UserRole, strToolTip);
    236 
    237                     /* Insert into table: */
    238                     m_pAccountPropertyTable->setItem(i, 0, pItemK);
    239                 }
    240 
    241                 /* Create value item: */
    242                 QTableWidgetItem *pItemV = new QTableWidgetItem(values.at(i));
    243                 if (pItemV)
    244                 {
    245                     /* Non-editable for sure, but non-selectable? */
    246                     pItemV->setFlags(pItemV->flags() & ~Qt::ItemIsEditable);
    247                     pItemV->setFlags(pItemV->flags() & ~Qt::ItemIsSelectable);
    248 
    249                     /* Use the value as tool-tip, there can be quite long values: */
    250                     const QString strToolTip = values.at(i);
    251                     pItemV->setToolTip(strToolTip);
    252 
    253                     /* Insert into table: */
    254                     m_pAccountPropertyTable->setItem(i, 1, pItemV);
    255                 }
    256             }
    257 
    258             /* Update table tool-tips: */
    259             updateAccountPropertyTableToolTips();
    260 
    261             /* Adjust the table: */
    262             adjustAccountPropertyTable();
    263         }
    264         while (0);
    265     }
    266 
    267     /* Unblock signals after update: */
    268     m_pAccountPropertyTable->blockSignals(false);
     185        /* Acquire Cloud Profile: */
     186        m_comCloudProfile = m_comCloudProvider.GetProfileByName(profileName());
     187        /* Show error message if necessary: */
     188        if (!m_comCloudProvider.isOk())
     189            msgCenter().cannotFindCloudProfile(m_comCloudProvider, profileName());
     190    }
    269191}
    270192
     
    450372}
    451373
    452 void UIWizardNewCloudVMPage1::updateAccountPropertyTableToolTips()
    453 {
    454     /* Iterate through all the key items: */
    455     for (int i = 0; i < m_pAccountPropertyTable->rowCount(); ++i)
    456     {
    457         /* Acquire current key item: */
    458         QTableWidgetItem *pItemK = m_pAccountPropertyTable->item(i, 0);
    459         if (pItemK)
    460         {
    461             const QString strToolTip = pItemK->data(Qt::UserRole).toString();
    462             pItemK->setToolTip(QApplication::translate("UIWizardNewCloudVMPageBasic1", strToolTip.toUtf8().constData()));
    463         }
    464     }
    465 }
    466 
    467 void UIWizardNewCloudVMPage1::adjustAccountPropertyTable()
    468 {
    469     /* Disable last column stretching temporary: */
    470     m_pAccountPropertyTable->horizontalHeader()->setStretchLastSection(false);
    471 
    472     /* Resize both columns to contents: */
    473     m_pAccountPropertyTable->resizeColumnsToContents();
    474     /* Then acquire full available width: */
    475     const int iFullWidth = m_pAccountPropertyTable->viewport()->width();
    476     /* First column should not be less than it's minimum size, last gets the rest: */
    477     const int iMinimumWidth0 = qMin(m_pAccountPropertyTable->horizontalHeader()->sectionSize(0), iFullWidth / 2);
    478     m_pAccountPropertyTable->horizontalHeader()->resizeSection(0, iMinimumWidth0);
    479 
    480     /* Enable last column stretching again: */
    481     m_pAccountPropertyTable->horizontalHeader()->setStretchLastSection(true);
    482 }
    483 
    484374void UIWizardNewCloudVMPage1::setLocation(const QString &strLocation)
    485375{
     
    651541            }
    652542
    653             /* Create account property table: */
    654             m_pAccountPropertyTable = new QTableWidget(this);
    655             if (m_pAccountPropertyTable)
    656             {
    657                 const QFontMetrics fm(m_pAccountPropertyTable->font());
    658                 const int iFontWidth = fm.width('x');
    659                 const int iTotalWidth = 50 * iFontWidth;
    660                 const int iFontHeight = fm.height();
    661                 const int iTotalHeight = 4 * iFontHeight;
    662                 m_pAccountPropertyTable->setMinimumSize(QSize(iTotalWidth, iTotalHeight));
    663                 //m_pAccountPropertyTable->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
    664                 m_pAccountPropertyTable->setAlternatingRowColors(true);
    665                 m_pAccountPropertyTable->horizontalHeader()->setVisible(false);
    666                 m_pAccountPropertyTable->verticalHeader()->setVisible(false);
    667                 m_pAccountPropertyTable->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
    668 
    669                 /* Add into layout: */
    670                 m_pOptionsLayout->addWidget(m_pAccountPropertyTable, 1, 1);
    671             }
    672 
    673543            /* Create source image label: */
    674544            m_pSourceImageLabel = new QLabel(this);
     
    676546            {
    677547                /* Add into layout: */
    678                 m_pOptionsLayout->addWidget(m_pSourceImageLabel, 2, 0, Qt::AlignRight);
     548                m_pOptionsLayout->addWidget(m_pSourceImageLabel, 1, 0, Qt::AlignRight);
    679549            }
    680550            /* Create source image layout: */
     
    717587
    718588                /* Add into layout: */
    719                 m_pOptionsLayout->addLayout(pSourceImageLayout, 2, 1, 2, 1);
     589                m_pOptionsLayout->addLayout(pSourceImageLayout, 1, 1, 2, 1);
    720590            }
    721591
     
    743613}
    744614
    745 bool UIWizardNewCloudVMPageBasic1::event(QEvent *pEvent)
    746 {
    747     /* Handle known event types: */
    748     switch (pEvent->type())
    749     {
    750         case QEvent::Show:
    751         case QEvent::Resize:
    752         {
    753             /* Adjust profile property table: */
    754             adjustAccountPropertyTable();
    755             break;
    756         }
    757         default:
    758             break;
    759     }
    760 
    761     /* Call to base-class: */
    762     return UIWizardPage::event(pEvent);
    763 }
    764 
    765615void UIWizardNewCloudVMPageBasic1::retranslateUi()
    766616{
     
    809659    /* Update tool-tips: */
    810660    updateLocationComboToolTip();
    811     updateAccountPropertyTableToolTips();
    812661}
    813662
     
    866715    /* Refresh required settings: */
    867716    populateAccounts();
    868     populateAccountProperties();
     717    populateAccount();
    869718    populateSourceImages();
    870719    emit completeChanged();
     
    874723{
    875724    /* Refresh required settings: */
    876     populateAccountProperties();
     725    populateAccount();
    877726    populateSourceImages();
    878727    emit completeChanged();
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVMPageBasic1.h

    r84289 r86343  
    7070    /** Populates accounts. */
    7171    void populateAccounts();
    72     /** Populates account properties. */
    73     void populateAccountProperties();
     72    /** Populates account. */
     73    void populateAccount();
    7474    /** Populates source images. */
    7575    void populateSourceImages();
     
    7979    /** Updates location combo tool-tips. */
    8080    void updateLocationComboToolTip();
    81     /** Updates account property table tool-tips. */
    82     void updateAccountPropertyTableToolTips();
    83     /** Adjusts account property table. */
    84     void adjustAccountPropertyTable();
    8581
    8682    /** Defines @a strLocation. */
     
    132128    /** Holds the account management tool-button instance. */
    133129    QIToolButton *m_pAccountToolButton;
    134     /** Holds the account property table instance. */
    135     QTableWidget *m_pAccountPropertyTable;
    136130    /** Holds the source image label instance. */
    137131    QLabel       *m_pSourceImageLabel;
     
    158152    /** Allows access wizard from base part. */
    159153    virtual UIWizard *wizardImp() const /* override */ { return UIWizardPage::wizard(); }
    160 
    161     /** Handle any Qt @a pEvent. */
    162     virtual bool event(QEvent *pEvent) /* override */;
    163154
    164155    /** Handles translation event. */
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVMPageExpert.cpp

    r84289 r86343  
    9595                    pLocationLayout->addLayout(pAccountLayout);
    9696                }
    97 
    98                 /* Create account property table: */
    99                 m_pAccountPropertyTable = new QTableWidget(m_pCntLocation);
    100                 if (m_pAccountPropertyTable)
    101                 {
    102                     const QFontMetrics fm(m_pAccountPropertyTable->font());
    103                     const int iFontWidth = fm.width('x');
    104                     const int iTotalWidth = 50 * iFontWidth;
    105                     const int iFontHeight = fm.height();
    106                     const int iTotalHeight = 4 * iFontHeight;
    107                     m_pAccountPropertyTable->setMinimumSize(QSize(iTotalWidth, iTotalHeight));
    108                     //m_pAccountPropertyTable->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
    109                     m_pAccountPropertyTable->setAlternatingRowColors(true);
    110                     m_pAccountPropertyTable->horizontalHeader()->setVisible(false);
    111                     m_pAccountPropertyTable->verticalHeader()->setVisible(false);
    112                     m_pAccountPropertyTable->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
    113 
    114                     /* Add into layout: */
    115                     pLocationLayout->addWidget(m_pAccountPropertyTable);
    116                 }
    11797            }
    11898
     
    217197}
    218198
    219 bool UIWizardNewCloudVMPageExpert::event(QEvent *pEvent)
    220 {
    221     /* Handle known event types: */
    222     switch (pEvent->type())
    223     {
    224         case QEvent::Show:
    225         case QEvent::Resize:
    226         {
    227             /* Adjust profile property table: */
    228             adjustAccountPropertyTable();
    229             break;
    230         }
    231         default:
    232             break;
    233     }
    234 
    235     /* Call to base-class: */
    236     return UIWizardPage::event(pEvent);
    237 }
    238 
    239199void UIWizardNewCloudVMPageExpert::retranslateUi()
    240200{
     
    262222    /* Update tool-tips: */
    263223    updateLocationComboToolTip();
    264     updateAccountPropertyTableToolTips();
    265224}
    266225
     
    353312    /* Refresh required settings: */
    354313    populateAccounts();
    355     populateAccountProperties();
     314    populateAccount();
    356315    populateSourceImages();
    357316    populateFormProperties();
     
    363322{
    364323    /* Refresh required settings: */
    365     populateAccountProperties();
     324    populateAccount();
    366325    populateSourceImages();
    367326    populateFormProperties();
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVMPageExpert.h

    r84289 r86343  
    4848    virtual UIWizard *wizardImp() const /* override */ { return UIWizardPage::wizard(); }
    4949
    50     /** Handle any Qt @a pEvent. */
    51     virtual bool event(QEvent *pEvent) /* override */;
    52 
    5350    /** Handles translation event. */
    5451    virtual void retranslateUi() /* override */;
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