VirtualBox

Changeset 109201 in vbox


Ignore:
Timestamp:
May 8, 2025 10:12:37 AM (11 days ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
168777
Message:

FE\Qt: bugref:10887 Adding an action to media manager toolbar, context menu, and window menu for editing viso files.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp

    r107584 r109201  
    27912791        setStatusTip(QApplication::translate("UIActionPool", "Add existing disk image file"));
    27922792        setToolTip(  QApplication::translate("UIActionPool", "Add Disk Image File")
     2793                   + (shortcut().isEmpty() ? QString() : QString(" (%1)").arg(shortcut().toString())));
     2794    }
     2795};
     2796
     2797/** Simple action extension, used as 'EditCD' action class. */
     2798class UIActionMenuMediumSelectorEditCD  : public UIActionSimple
     2799{
     2800    Q_OBJECT;
     2801
     2802public:
     2803
     2804    /** Constructs action passing @a pParent to the base-class. */
     2805    UIActionMenuMediumSelectorEditCD(UIActionPool *pParent)
     2806        : UIActionSimple(pParent, ":/cd_modify_32px.png",  ":/cd_modify_16px.png",
     2807                         ":/cd_modify_disabled_32px.png", ":/cd_modify_disabled_16px.png")
     2808    {
     2809        setShortcutContext(Qt::WidgetWithChildrenShortcut);
     2810    }
     2811
     2812protected:
     2813
     2814    /** Returns shortcut extra-data ID. */
     2815    virtual QString shortcutExtraDataID() const RT_OVERRIDE
     2816    {
     2817        return QString("MediumSelectorEditCD");
     2818    }
     2819
     2820    /** Handles translation event. */
     2821    virtual void retranslateUi() RT_OVERRIDE
     2822    {
     2823        setName(QApplication::translate("UIActionPool", "&Edit..."));
     2824        setShortcutScope(QApplication::translate("UIActionPool", "Medium Selector"));
     2825        setStatusTip(QApplication::translate("UIActionPool", "Edit existing disk image file"));
     2826        setToolTip(  QApplication::translate("UIActionPool", "Edit Disk Image File")
    27932827                   + (shortcut().isEmpty() ? QString() : QString(" (%1)").arg(shortcut().toString())));
    27942828    }
     
    34153449    m_pool[UIActionIndex_M_MediumSelector_CreateCD] = new UIActionMenuMediumSelectorCreateCD(this);
    34163450    m_pool[UIActionIndex_M_MediumSelector_CreateFD] = new UIActionMenuMediumSelectorCreateFD(this);
     3451    m_pool[UIActionIndex_M_MediumSelector_EditCD] = new UIActionMenuMediumSelectorEditCD(this);
    34173452    m_pool[UIActionIndex_M_MediumSelector_Refresh] = new UIActionMenuMediumSelectorRefresh(this);
    34183453
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h

    r106709 r109201  
    177177    UIActionIndex_M_MediumSelector_CreateCD,
    178178    UIActionIndex_M_MediumSelector_CreateFD,
     179    UIActionIndex_M_MediumSelector_EditCD,
    179180    UIActionIndex_M_MediumSelector_Refresh,
    180181
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.cpp

    r109162 r109201  
    27562756        setStatusTip(QApplication::translate("UIActionPool", "Remove all inaccessible media"));
    27572757        setToolTip(  QApplication::translate("UIActionPool", "Remove Inaccessible Media")
     2758                   + (shortcut().isEmpty() ? QString() : QString(" (%1)").arg(shortcut().toString())));
     2759    }
     2760};
     2761
     2762/** Simple action extension, used as 'Perform Clear' action class. */
     2763class UIActionMenuManagerMediumPerformEdit : public UIActionSimple
     2764{
     2765    Q_OBJECT;
     2766
     2767public:
     2768
     2769    /** Constructs action passing @a pParent to the base-class. */
     2770    UIActionMenuManagerMediumPerformEdit(UIActionPool *pParent)
     2771        : UIActionSimple(pParent)
     2772    {
     2773        setShortcutContext(Qt::WidgetWithChildrenShortcut);
     2774        setIcon(1, UIIconPool::iconSetFull(":/cd_modify_32px.png",          ":/cd_modify_16px.png",
     2775                                           ":/cd_modify_disabled_32px.png", ":/cd_modify_disabled_16px.png"));
     2776
     2777    }
     2778
     2779protected:
     2780
     2781    /** Returns shortcut extra-data ID. */
     2782    virtual QString shortcutExtraDataID() const RT_OVERRIDE
     2783    {
     2784        return QString("Edit");
     2785    }
     2786
     2787    /** Handles translation event. */
     2788    virtual void retranslateUi() RT_OVERRIDE
     2789    {
     2790        setName(QApplication::translate("UIActionPool", "&Edit"));
     2791        setShortcutScope(QApplication::translate("UIActionPool", "Media Manager"));
     2792        setStatusTip(QApplication::translate("UIActionPool", "Edit selected media"));
     2793        setToolTip(  QApplication::translate("UIActionPool", "Edit Media")
    27582794                   + (shortcut().isEmpty() ? QString() : QString(" (%1)").arg(shortcut().toString())));
    27592795    }
     
    36623698    m_pool[UIActionIndexMN_M_Medium_S_Refresh] = new UIActionMenuManagerMediumPerformRefresh(this);
    36633699    m_pool[UIActionIndexMN_M_Medium_S_Clear] = new UIActionMenuManagerMediumPerformClear(this);
     3700    m_pool[UIActionIndexMN_M_Medium_S_Edit] = new UIActionMenuManagerMediumPerformEdit(this);
    36643701
    36653702    /* Network Manager actions: */
     
    43654402    }
    43664403
     4404    /* 'Edit' action: */
     4405    fSeparator = addAction(pMenu, action(UIActionIndexMN_M_Medium_S_Edit)) || fSeparator;
    43674406    /* 'Copy' action: */
    43684407    fSeparator = addAction(pMenu, action(UIActionIndexMN_M_Medium_S_Copy)) || fSeparator;
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolManager.h

    r109162 r109201  
    177177    UIActionIndexMN_M_Medium_S_Refresh,
    178178    UIActionIndexMN_M_Medium_S_Clear,
     179    UIActionIndexMN_M_Medium_S_Edit,
    179180
    180181    /* Network Manager actions: */
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxWidget.cpp

    r109162 r109201  
    640640            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Create));
    641641            m_pToolBar->addSeparator();
     642            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Edit));
    642643            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Copy));
    643644            m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Medium_S_Move));
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp

    r108928 r109201  
    634634
    635635    enableClearAction();
     636    enableEditAction();
    636637
    637638    /* Re-fetch currently chosen medium-item: */
     
    665666    if (pTreeWidget->itemAt(position))
    666667    {
     668        menu.addAction(m_pActionPool->action(UIActionIndexMN_M_Medium_S_Edit));
    667669        menu.addAction(m_pActionPool->action(UIActionIndexMN_M_Medium_S_Copy));
    668670        menu.addAction(m_pActionPool->action(UIActionIndexMN_M_Medium_S_Move));
     
    867869        m_pToolBar->addAction(m_pActionPool->action(UIActionIndexMN_M_Medium_S_Create));
    868870        m_pToolBar->addSeparator();
     871        m_pToolBar->addAction(m_pActionPool->action(UIActionIndexMN_M_Medium_S_Edit));
    869872        m_pToolBar->addAction(m_pActionPool->action(UIActionIndexMN_M_Medium_S_Copy));
    870873        m_pToolBar->addAction(m_pActionPool->action(UIActionIndexMN_M_Medium_S_Move));
     
    11341137    const bool fActionEnabledDetails = true;
    11351138    m_pActionPool->action(UIActionIndexMN_M_Medium_T_Details)->setEnabled(fActionEnabledDetails);
     1139    enableEditAction();
    11361140}
    11371141
     
    11431147        m_pActionPool->action(UIActionIndexMN_M_Medium_S_Add)->setState((int)enmCurrentMediumType);
    11441148        m_pActionPool->action(UIActionIndexMN_M_Medium_S_Create)->setState((int)enmCurrentMediumType);
     1149        m_pActionPool->action(UIActionIndexMN_M_Medium_S_Edit)->setState((int)enmCurrentMediumType);
    11451150        m_pActionPool->action(UIActionIndexMN_M_Medium_S_Copy)->setState((int)enmCurrentMediumType);
    11461151        m_pActionPool->action(UIActionIndexMN_M_Medium_S_Move)->setState((int)enmCurrentMediumType);
     
    13231328    updateTabIcons(pMediumItem, Action_Add);
    13241329
    1325     /* Toogle enable/disable of clear action: */
     1330    /* Toogle enable/disable of clear and edit actions: */
    13261331    enableClearAction();
     1332    enableEditAction();
    13271333
    13281334    /* Reperform the medium search (don't jump to the found element): */
     
    14141420    updateTabIcons(pMediumItem, Action_Edit);
    14151421
    1416     /* Toogle enable/disable of clear action: */
     1422    /* Toogle enable/disable of clear and edit actions: */
    14171423    enableClearAction();
     1424    enableEditAction();
    14181425
    14191426    /* Re-fetch medium-item if it is current one updated: */
     
    14551462    updateTabIcons(pMediumItem, Action_Remove);
    14561463
    1457     /* Toogle enable/disable of clear action: */
     1464    /* Toogle enable/disable of clear and edit actions: */
    14581465    enableClearAction();
     1466    enableEditAction();
    14591467
    14601468    /* Delete medium-item: */
     
    15741582        ((currentMediumType() == UIMediumDeviceType_Floppy) && m_fInaccessibleFD);
    15751583    m_pActionPool->action(UIActionIndexMN_M_Medium_S_Clear)->setEnabled(fEnable);
     1584}
     1585
     1586void UIMediumManagerWidget::enableEditAction()
     1587{
     1588    if (!m_pActionPool || !m_pActionPool->action(UIActionIndexMN_M_Medium_S_Edit))
     1589        return;
     1590
     1591    if (currentMediumType() != UIMediumDeviceType_DVD)
     1592    {
     1593        m_pActionPool->action(UIActionIndexMN_M_Medium_S_Edit)->setVisible(false);
     1594        return;
     1595    }
     1596    m_pActionPool->action(UIActionIndexMN_M_Medium_S_Edit)->setVisible(true);
     1597    m_pActionPool->action(UIActionIndexMN_M_Medium_S_Edit)->setEnabled(false);
     1598    if (currentMediumItem())
     1599    {
     1600        m_pActionPool->action(UIActionIndexMN_M_Medium_S_Edit)->setEnabled(currentMediumItem()->name().endsWith(".viso"));
     1601    }
    15761602}
    15771603
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h

    r106061 r109201  
    320320
    321321    void enableClearAction();
     322    void enableEditAction();
    322323    /** @} */
    323324
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/viso/UIVisoCreator.cpp

    r109137 r109201  
    993993        stream<< "--volume-id=" << UIVisoContentBrowser::sanitizePath(strVisoName) << "\n";
    994994        if (!strImportedISOPath.isEmpty())
    995             stream << "--import-iso=" << strImportedISOPath << "\n";
     995            stream << "--import-iso " << strImportedISOPath << "\n";
    996996        stream << VisoEntryList.join("\n");
    997997        if (!customOptions().isEmpty())
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette