VirtualBox

Changeset 43622 in vbox


Ignore:
Timestamp:
Oct 11, 2012 4:13:29 PM (12 years ago)
Author:
vboxsync
Message:

FE/Qt: Added Devices/Drag'n'Drop menu entry

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIActionPoolRuntime.cpp

    r42949 r43622  
    529529    {
    530530        menu()->setTitle(menuText(QApplication::translate("UIActionPool", "Shared &Clipboard")));
     531    }
     532};
     533
     534class MenuDragAndDropAction : public UIActionMenu
     535{
     536    Q_OBJECT;
     537
     538public:
     539
     540    MenuDragAndDropAction(QObject *pParent)
     541        : UIActionMenu(pParent, ":/vm_open_filemanager_16px.png", ":/vm_open_filemanager_disabled_16px.png")
     542    {
     543        retranslateUi();
     544    }
     545
     546protected:
     547
     548    void retranslateUi()
     549    {
     550        menu()->setTitle(menuText(QApplication::translate("UIActionPool", "Drag'n'Drop")));
    531551    }
    532552};
     
    930950        delete m_pool[UIActionIndexRuntime_Menu_SharedClipboard];
    931951    m_pool[UIActionIndexRuntime_Menu_SharedClipboard] = new MenuSharedClipboardAction(this);
     952    if (m_pool[UIActionIndexRuntime_Menu_DragAndDrop])
     953        delete m_pool[UIActionIndexRuntime_Menu_DragAndDrop];
     954    m_pool[UIActionIndexRuntime_Menu_DragAndDrop] = new MenuDragAndDropAction(this);
    932955    if (m_pool[UIActionIndexRuntime_Menu_NetworkAdapters])
    933956        delete m_pool[UIActionIndexRuntime_Menu_NetworkAdapters];
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIActionPoolRuntime.h

    r42949 r43622  
    5757    UIActionIndexRuntime_Menu_USBDevices,
    5858    UIActionIndexRuntime_Menu_SharedClipboard,
     59    UIActionIndexRuntime_Menu_DragAndDrop,
    5960    UIActionIndexRuntime_Menu_NetworkAdapters,
    6061    UIActionIndexRuntime_Simple_NetworkAdaptersDialog,
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp

    r43029 r43622  
    445445    , m_pRunningOrPausedActions(0)
    446446    , m_pSharedClipboardActions(0)
     447    , m_pDragAndDropActions(0)
    447448    , m_fIsWindowsCreated(false)
    448449    , m_fIsPreventAutoClose(false)
     
    493494        foreach (QAction *pAction, m_pSharedClipboardActions->actions())
    494495            pAction->setText(gpConverter->toString(pAction->data().value<KClipboardMode>()));
     496    }
     497    if (m_pDragAndDropActions)
     498    {
     499        foreach (QAction *pAction, m_pDragAndDropActions->actions())
     500            pAction->setText(gpConverter->toString(pAction->data().value<KDragAndDropMode>()));
    495501    }
    496502}
     
    605611    m_pRunningOrPausedActions->addAction(gActionPool->action(UIActionIndexRuntime_Menu_USBDevices));
    606612    m_pRunningOrPausedActions->addAction(gActionPool->action(UIActionIndexRuntime_Menu_SharedClipboard));
     613    m_pRunningOrPausedActions->addAction(gActionPool->action(UIActionIndexRuntime_Menu_DragAndDrop));
    607614    m_pRunningOrPausedActions->addAction(gActionPool->action(UIActionIndexRuntime_Menu_NetworkAdapters));
    608615    m_pRunningOrPausedActions->addAction(gActionPool->action(UIActionIndexRuntime_Simple_NetworkAdaptersDialog));
     
    656663    connect(gActionPool->action(UIActionIndexRuntime_Menu_SharedClipboard)->menu(), SIGNAL(aboutToShow()),
    657664            this, SLOT(sltPrepareSharedClipboardMenu()));
     665    connect(gActionPool->action(UIActionIndexRuntime_Menu_DragAndDrop)->menu(), SIGNAL(aboutToShow()),
     666            this, SLOT(sltPrepareDragAndDropMenu()));
    658667    connect(gActionPool->action(UIActionIndexRuntime_Simple_NetworkAdaptersDialog), SIGNAL(triggered()),
    659668            this, SLOT(sltOpenNetworkAdaptersDialog()));
     
    16181627}
    16191628
     1629void UIMachineLogic::sltPrepareDragAndDropMenu()
     1630{
     1631    /* Get and check the sender menu object: */
     1632    QMenu *pMenu = qobject_cast<QMenu*>(sender());
     1633    QMenu *pDragAndDropMenu = gActionPool->action(UIActionIndexRuntime_Menu_DragAndDrop)->menu();
     1634    AssertMsg(pMenu == pDragAndDropMenu, ("This slot should only be called on hovering Drag'n'drop menu!\n"));
     1635    Q_UNUSED(pDragAndDropMenu);
     1636
     1637    /* First run: */
     1638    if (!m_pDragAndDropActions)
     1639    {
     1640        m_pDragAndDropActions = new QActionGroup(this);
     1641        for (int i = KDragAndDropMode_Disabled; i < KDragAndDropMode_Max; ++i)
     1642        {
     1643            KDragAndDropMode mode = (KDragAndDropMode)i;
     1644            QAction *pAction = pMenu->addAction(gpConverter->toString(mode));
     1645            pAction->setData(QVariant::fromValue(mode));
     1646            pAction->setCheckable(true);
     1647            pAction->setChecked(session().GetMachine().GetDragAndDropMode() == mode);
     1648            m_pDragAndDropActions->addAction(pAction);
     1649        }
     1650        connect(m_pDragAndDropActions, SIGNAL(triggered(QAction*)),
     1651                this, SLOT(sltChangeDragAndDropType(QAction*)));
     1652    }
     1653    /* Subsequent runs: */
     1654    else
     1655        foreach (QAction *pAction, m_pDragAndDropActions->actions())
     1656            if (pAction->data().value<KDragAndDropMode>() == session().GetMachine().GetDragAndDropMode())
     1657                pAction->setChecked(true);
     1658}
     1659
     1660void UIMachineLogic::sltChangeDragAndDropType(QAction *pAction)
     1661{
     1662    /* Assign new mode (without save): */
     1663    KDragAndDropMode mode = pAction->data().value<KDragAndDropMode>();
     1664    session().GetMachine().SetDragAndDropMode(mode);
     1665}
     1666
    16201667void UIMachineLogic::sltSwitchVrde(bool fOn)
    16211668{
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h

    r43138 r43622  
    175175    void sltPrepareSharedClipboardMenu();
    176176    void sltChangeSharedClipboardType(QAction *pAction);
     177    void sltPrepareDragAndDropMenu();
     178    void sltChangeDragAndDropType(QAction *pAction);
    177179    void sltSwitchVrde(bool fOn);
    178180    void sltInstallGuestAdditions();
     
    209211    QActionGroup *m_pRunningOrPausedActions;
    210212    QActionGroup *m_pSharedClipboardActions;
     213    QActionGroup *m_pDragAndDropActions;
    211214
    212215    bool m_fIsWindowsCreated : 1;
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineMenuBar.cpp

    r42949 r43622  
    241241    pMenu->addMenu(gActionPool->action(UIActionIndexRuntime_Menu_USBDevices)->menu());
    242242    pMenu->addMenu(gActionPool->action(UIActionIndexRuntime_Menu_SharedClipboard)->menu());
     243    pMenu->addMenu(gActionPool->action(UIActionIndexRuntime_Menu_DragAndDrop)->menu());
    243244    pMenu->addAction(gActionPool->action(UIActionIndexRuntime_Simple_NetworkAdaptersDialog));
    244245    pMenu->addAction(gActionPool->action(UIActionIndexRuntime_Simple_SharedFoldersDialog));
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