VirtualBox

Changeset 74923 in vbox for trunk


Ignore:
Timestamp:
Oct 18, 2018 3:14:57 PM (6 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9230: A possibility to import profiles.

Location:
trunk/src/VBox/Frontends/VirtualBox
Files:
8 edited
8 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileManager.cpp

    r74922 r74923  
    409409}
    410410
    411 void UICloudProfileManagerWidget::sltRefreshCloudProfiles()
    412 {
    413     /// @todo refresh cloud profiles!
    414 
    415     // Not implemented.
    416     AssertMsgFailed(("Not implemented!"));
     411void UICloudProfileManagerWidget::sltImportCloudProfiles()
     412{
     413    /* Get provider item: */
     414    UIItemCloudProvider *pProviderItem = static_cast<UIItemCloudProvider*>(m_pTreeWidget->currentItem());
     415    AssertMsgReturnVoid(pProviderItem, ("Current item must not be null!\n"));
     416
     417    /* Confirm cloud profile removal: */
     418    if (!msgCenter().confirmCloudProfilesImport(this))
     419        return;
     420
     421    /* Get VirtualBox for further activities: */
     422    const CVirtualBox comVBox = vboxGlobal().virtualBox();
     423
     424    /* Get CloudProviderManager for further activities: */
     425    CCloudProviderManager comCloudProviderManager = comVBox.GetCloudProviderManager();
     426    /* Show error message if necessary: */
     427    if (!comVBox.isOk())
     428        msgCenter().cannotAcquireCloudProviderManager(comVBox, this);
     429    else
     430    {
     431        /* Acquire provider ID: */
     432        const QUuid uId = pProviderItem->data(Column_Name, Data_ProviderID).toUuid();
     433
     434        /* Look for corresponding provider: */
     435        CCloudProvider comCloudProvider = comCloudProviderManager.GetProviderById(uId);
     436        /* Show error message if necessary: */
     437        if (!comCloudProviderManager.isOk())
     438            msgCenter().cannotFindCloudProvider(comCloudProviderManager, uId, this);
     439        else
     440        {
     441            /* Import profiles: */
     442            comCloudProvider.ImportProfiles();
     443
     444            /* Show error message if necessary: */
     445            if (!comCloudProvider.isOk())
     446                msgCenter().cannotImportCloudProfiles(comCloudProvider, this);
     447            else
     448                loadCloudStuff();
     449        }
     450    }
    417451}
    418452
     
    432466    m_pActionPool->action(UIActionIndexST_M_Cloud_S_Remove)->setEnabled(pItemProfile);
    433467    m_pActionPool->action(UIActionIndexST_M_Cloud_T_Details)->setEnabled(pItemProfile);
     468    m_pActionPool->action(UIActionIndexST_M_Cloud_S_Import)->setEnabled(!pItem || pItemProvider);
    434469
    435470    /* If there is an item => update details data: */
     
    465500    {
    466501        menu.addAction(m_pActionPool->action(UIActionIndexST_M_Cloud_S_Add));
    467 //        menu.addAction(m_pActionPool->action(UIActionIndexST_M_Cloud_S_Refresh));
     502        menu.addAction(m_pActionPool->action(UIActionIndexST_M_Cloud_S_Import));
    468503    }
    469504
     
    498533    connect(m_pActionPool->action(UIActionIndexST_M_Cloud_T_Details), &QAction::toggled,
    499534            this, &UICloudProfileManagerWidget::sltToggleCloudProfileDetailsVisibility);
    500     connect(m_pActionPool->action(UIActionIndexST_M_Cloud_S_Refresh), &QAction::triggered,
    501             this, &UICloudProfileManagerWidget::sltRefreshCloudProfiles);
     535    connect(m_pActionPool->action(UIActionIndexST_M_Cloud_S_Import), &QAction::triggered,
     536            this, &UICloudProfileManagerWidget::sltImportCloudProfiles);
    502537}
    503538
     
    542577        m_pToolBar->addAction(m_pActionPool->action(UIActionIndexST_M_Cloud_S_Remove));
    543578        m_pToolBar->addAction(m_pActionPool->action(UIActionIndexST_M_Cloud_T_Details));
    544 //        m_pToolBar->addSeparator();
    545 //        m_pToolBar->addAction(m_pActionPool->action(UIActionIndexST_M_Cloud_S_Refresh));
     579        m_pToolBar->addSeparator();
     580        m_pToolBar->addAction(m_pActionPool->action(UIActionIndexST_M_Cloud_S_Import));
    546581
    547582#ifdef VBOX_WS_MAC
  • trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileManager.h

    r74920 r74923  
    9595        /** Handles command to make cloud profile details @a fVisible. */
    9696        void sltToggleCloudProfileDetailsVisibility(bool fVisible);
    97         /** Handles command to refresh cloud profiles. */
    98         void sltRefreshCloudProfiles();
     97        /** Handles command to import cloud profiles. */
     98        void sltImportCloudProfiles();
    9999    /** @} */
    100100
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolSelector.cpp

    r74920 r74923  
    24932493
    24942494/** Simple action extension, used as 'Perform Refresh' action class. */
    2495 class UIActionMenuSelectorCloudPerformRefresh : public UIActionSimple
    2496 {
    2497     Q_OBJECT;
    2498 
    2499 public:
    2500 
    2501     /** Constructs action passing @a pParent to the base-class. */
    2502     UIActionMenuSelectorCloudPerformRefresh(UIActionPool *pParent)
     2495class UIActionMenuSelectorCloudPerformImport : public UIActionSimple
     2496{
     2497    Q_OBJECT;
     2498
     2499public:
     2500
     2501    /** Constructs action passing @a pParent to the base-class. */
     2502    UIActionMenuSelectorCloudPerformImport(UIActionPool *pParent)
    25032503        : UIActionSimple(pParent,
    2504                          ":/refresh_32px.png",          ":/refresh_16px.png",
    2505                          ":/refresh_disabled_32px.png", ":/refresh_disabled_16px.png")
    2506     {}
    2507 
    2508 protected:
    2509 
    2510     /** Returns shortcut extra-data ID. */
    2511     virtual QString shortcutExtraDataID() const /* override */
    2512     {
    2513         return QString("RefreshCloudProfiles");
    2514     }
    2515 
    2516     /** Returns default shortcut. */
    2517     virtual QKeySequence defaultShortcut(UIActionPoolType) const /* override */
    2518     {
    2519         return QKeySequence("Ctrl+Shift+F");
    2520     }
    2521 
    2522     /** Handles translation event. */
    2523     virtual void retranslateUi() /* override */
    2524     {
    2525         setIconText(QApplication::translate("UIActionPool", "Refresh"));
    2526         setName(QApplication::translate("UIActionPool", "Re&fresh Profiles..."));
     2504                         ":/cloud_profile_restore_32px.png",          ":/cloud_profile_restore_16px.png",
     2505                         ":/cloud_profile_restore_disabled_32px.png", ":/cloud_profile_restore_disabled_16px.png")
     2506    {}
     2507
     2508protected:
     2509
     2510    /** Returns shortcut extra-data ID. */
     2511    virtual QString shortcutExtraDataID() const /* override */
     2512    {
     2513        return QString("ImportCloudProfiles");
     2514    }
     2515
     2516    /** Returns default shortcut. */
     2517    virtual QKeySequence defaultShortcut(UIActionPoolType) const /* override */
     2518    {
     2519        return QKeySequence("Ctrl+Shift+I");
     2520    }
     2521
     2522    /** Handles translation event. */
     2523    virtual void retranslateUi() /* override */
     2524    {
     2525        setIconText(QApplication::translate("UIActionPool", "Import"));
     2526        setName(QApplication::translate("UIActionPool", "&Import Profiles..."));
    25272527        setShortcutScope(QApplication::translate("UIActionPool", "Cloud Profile Manager"));
    2528         setStatusTip(QApplication::translate("UIActionPool", "Refresh the list of cloud profiles"));
    2529         setToolTip(tr("Refresh Cloud Profiles (%1)").arg(shortcut().toString()));
     2528        setStatusTip(QApplication::translate("UIActionPool", "Import the list of cloud profiles from external files"));
     2529        setToolTip(tr("Import Cloud Profiles (%1)").arg(shortcut().toString()));
    25302530    }
    25312531};
     
    26532653    m_pool[UIActionIndexST_M_Cloud_S_Remove] = new UIActionMenuSelectorCloudPerformRemove(this);
    26542654    m_pool[UIActionIndexST_M_Cloud_T_Details] = new UIActionMenuSelectorCloudToggleProperties(this);
    2655     m_pool[UIActionIndexST_M_Cloud_S_Refresh] = new UIActionMenuSelectorCloudPerformRefresh(this);
     2655    m_pool[UIActionIndexST_M_Cloud_S_Import] = new UIActionMenuSelectorCloudPerformImport(this);
    26562656
    26572657    /* Prepare update-handlers for known menus: */
     
    28452845    fSeparator = addAction(pMenu, action(UIActionIndexST_M_Cloud_T_Details)) || fSeparator;
    28462846
    2847 //    /* Separator? */
    2848 //    if (fSeparator)
    2849 //    {
    2850 //        pMenu->addSeparator();
    2851 //        fSeparator = false;
    2852 //    }
    2853 
    2854 //    /* 'Refresh' action: */
    2855 //    fSeparator = addAction(pMenu, action(UIActionIndexST_M_Cloud_S_Refresh)) || fSeparator;;
     2847    /* Separator? */
     2848    if (fSeparator)
     2849    {
     2850        pMenu->addSeparator();
     2851        fSeparator = false;
     2852    }
     2853
     2854    /* 'Import' action: */
     2855    fSeparator = addAction(pMenu, action(UIActionIndexST_M_Cloud_S_Import)) || fSeparator;
    28562856}
    28572857
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolSelector.h

    r74920 r74923  
    143143    UIActionIndexST_M_Cloud_S_Remove,
    144144    UIActionIndexST_M_Cloud_T_Details,
    145     UIActionIndexST_M_Cloud_S_Refresh,
     145    UIActionIndexST_M_Cloud_S_Import,
    146146
    147147    /* Maximum index: */
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp

    r74922 r74923  
    16551655}
    16561656
     1657void UIMessageCenter::cannotImportCloudProfiles(const CCloudProvider &comProvider, QWidget *pParent /* = 0 */) const
     1658{
     1659    error(pParent, MessageType_Error,
     1660          tr("Failed to import cloud profiles."),
     1661          UIErrorString::formatErrorInfo(comProvider));
     1662}
     1663
    16571664void UIMessageCenter::cannotAcquireCloudProfileParameter(const CCloudProfile &comProfile, QWidget *pParent /* = 0 */) const
    16581665{
     
    16761683                          0 /* auto-confirm id */,
    16771684                          tr("Remove") /* ok button text */,
     1685                          QString() /* cancel button text */,
     1686                          false /* ok button by default? */);
     1687}
     1688
     1689bool UIMessageCenter::confirmCloudProfilesImport(QWidget *pParent /* = 0 */) const
     1690{
     1691    return questionBinary(pParent, MessageType_Question,
     1692                          tr("<p>Do you want to import cloud profiles from external files?</p>"
     1693                             "<p>VirtualBox cloud profiles will be overwritten and their data will be lost.</p>"),
     1694                          0 /* auto-confirm id */,
     1695                          tr("Import") /* ok button text */,
    16781696                          QString() /* cancel button text */,
    16791697                          false /* ok button by default? */);
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h

    r74922 r74923  
    367367    void cannotCreateCloudProfle(const CCloudProvider &comProvider, QWidget *pParent = 0) const;
    368368    void cannotSaveCloudProfiles(const CCloudProvider &comProvider, QWidget *pParent = 0) const;
     369    void cannotImportCloudProfiles(const CCloudProvider &comProvider, QWidget *pParent = 0) const;
    369370    void cannotAcquireCloudProfileParameter(const CCloudProfile &comProfile, QWidget *pParent = 0) const;
    370371    void cannotAssignCloudProfileParameter(const CCloudProfile &comProfile, QWidget *pParent = 0) const;
    371372    bool confirmCloudProfileRemoval(const QString &strName, QWidget *pParent = 0) const;
     373    bool confirmCloudProfilesImport(QWidget *pParent = 0) const;
    372374
    373375    /* API: Wizards warnings: */
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp

    r74920 r74923  
    17691769                                 << actionPool()->action(UIActionIndexST_M_Cloud_S_Remove)
    17701770                                 << actionPool()->action(UIActionIndexST_M_Cloud_T_Details)
    1771                                  << actionPool()->action(UIActionIndexST_M_Cloud_S_Refresh);
     1771                                 << actionPool()->action(UIActionIndexST_M_Cloud_S_Import);
    17721772}
    17731773
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp

    r74920 r74923  
    647647                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Cloud_S_Remove));
    648648                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Cloud_T_Details));
    649                     //m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Cloud_S_Refresh));
     649                    m_pToolBar->addSeparator();
     650                    m_pToolBar->addAction(actionPool()->action(UIActionIndexST_M_Cloud_S_Import));
    650651                    break;
    651652                }
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