VirtualBox

Changeset 42949 in vbox


Ignore:
Timestamp:
Aug 23, 2012 12:51:31 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
80274
Message:

FE/Qt: 6328: Runtime UI: Shared Clipboard menu extension.

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

Legend:

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

    r42526 r42949  
    509509    {
    510510        menu()->setTitle(menuText(QApplication::translate("UIActionPool", "&USB Devices")));
     511    }
     512};
     513
     514class MenuSharedClipboardAction : public UIActionMenu
     515{
     516    Q_OBJECT;
     517
     518public:
     519
     520    MenuSharedClipboardAction(QObject *pParent)
     521        : UIActionMenu(pParent, ":/vm_open_filemanager_16px.png", ":/vm_open_filemanager_disabled_16px.png")
     522    {
     523        retranslateUi();
     524    }
     525
     526protected:
     527
     528    void retranslateUi()
     529    {
     530        menu()->setTitle(menuText(QApplication::translate("UIActionPool", "Shared &Clipboard")));
    511531    }
    512532};
     
    907927        delete m_pool[UIActionIndexRuntime_Menu_USBDevices];
    908928    m_pool[UIActionIndexRuntime_Menu_USBDevices] = new MenuUSBDevicesAction(this);
     929    if (m_pool[UIActionIndexRuntime_Menu_SharedClipboard])
     930        delete m_pool[UIActionIndexRuntime_Menu_SharedClipboard];
     931    m_pool[UIActionIndexRuntime_Menu_SharedClipboard] = new MenuSharedClipboardAction(this);
    909932    if (m_pool[UIActionIndexRuntime_Menu_NetworkAdapters])
    910933        delete m_pool[UIActionIndexRuntime_Menu_NetworkAdapters];
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIActionPoolRuntime.h

    r38477 r42949  
    5656    UIActionIndexRuntime_Menu_FloppyDevices,
    5757    UIActionIndexRuntime_Menu_USBDevices,
     58    UIActionIndexRuntime_Menu_SharedClipboard,
    5859    UIActionIndexRuntime_Menu_NetworkAdapters,
    5960    UIActionIndexRuntime_Simple_NetworkAdaptersDialog,
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp

    r42748 r42949  
    444444    , m_pRunningActions(0)
    445445    , m_pRunningOrPausedActions(0)
     446    , m_pSharedClipboardActions(0)
    446447    , m_fIsWindowsCreated(false)
    447448    , m_fIsPreventAutoClose(false)
     
    597598    m_pRunningOrPausedActions->addAction(gActionPool->action(UIActionIndexRuntime_Menu_FloppyDevices));
    598599    m_pRunningOrPausedActions->addAction(gActionPool->action(UIActionIndexRuntime_Menu_USBDevices));
     600    m_pRunningOrPausedActions->addAction(gActionPool->action(UIActionIndexRuntime_Menu_SharedClipboard));
    599601    m_pRunningOrPausedActions->addAction(gActionPool->action(UIActionIndexRuntime_Menu_NetworkAdapters));
    600602    m_pRunningOrPausedActions->addAction(gActionPool->action(UIActionIndexRuntime_Simple_NetworkAdaptersDialog));
     
    646648    connect(gActionPool->action(UIActionIndexRuntime_Menu_USBDevices)->menu(), SIGNAL(aboutToShow()),
    647649            this, SLOT(sltPrepareUSBMenu()));
     650    connect(gActionPool->action(UIActionIndexRuntime_Menu_SharedClipboard)->menu(), SIGNAL(aboutToShow()),
     651            this, SLOT(sltPrepareSharedClipboardMenu()));
    648652    connect(gActionPool->action(UIActionIndexRuntime_Simple_NetworkAdaptersDialog), SIGNAL(triggered()),
    649653            this, SLOT(sltOpenNetworkAdaptersDialog()));
     
    15701574}
    15711575
     1576void UIMachineLogic::sltPrepareSharedClipboardMenu()
     1577{
     1578    /* Get and check the sender menu object: */
     1579    QMenu *pMenu = qobject_cast<QMenu*>(sender());
     1580    QMenu *pSharedClipboardMenu = gActionPool->action(UIActionIndexRuntime_Menu_SharedClipboard)->menu();
     1581    AssertMsg(pMenu == pSharedClipboardMenu, ("This slot should only be called on hovering Shared Clipboard menu!\n"));
     1582    Q_UNUSED(pSharedClipboardMenu);
     1583
     1584    /* First run: */
     1585    if (!m_pSharedClipboardActions)
     1586    {
     1587        m_pSharedClipboardActions = new QActionGroup(this);
     1588        for (int i = KClipboardMode_Disabled; i < KClipboardMode_Max; ++i)
     1589        {
     1590            KClipboardMode mode = (KClipboardMode)i;
     1591            QAction *pAction = pMenu->addAction(gpConverter->toString(mode));
     1592            pAction->setData(QVariant::fromValue(mode));
     1593            pAction->setCheckable(true);
     1594            pAction->setChecked(session().GetMachine().GetClipboardMode() == mode);
     1595            m_pSharedClipboardActions->addAction(pAction);
     1596        }
     1597        connect(m_pSharedClipboardActions, SIGNAL(triggered(QAction*)),
     1598                this, SLOT(sltChangeSharedClipboardType(QAction*)));
     1599    }
     1600    /* Subsequent runs: */
     1601    else
     1602        foreach (QAction *pAction, m_pSharedClipboardActions->actions())
     1603            if (pAction->data().value<KClipboardMode>() == session().GetMachine().GetClipboardMode())
     1604                pAction->setChecked(true);
     1605}
     1606
     1607void UIMachineLogic::sltChangeSharedClipboardType(QAction *pAction)
     1608{
     1609    /* Assign new mode (without save): */
     1610    KClipboardMode mode = pAction->data().value<KClipboardMode>();
     1611    session().GetMachine().SetClipboardMode(mode);
     1612}
     1613
    15721614void UIMachineLogic::sltSwitchVrde(bool fOn)
    15731615{
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h

    r41587 r42949  
    170170    void sltPrepareUSBMenu();
    171171    void sltAttachUSBDevice();
     172    void sltPrepareSharedClipboardMenu();
     173    void sltChangeSharedClipboardType(QAction *pAction);
    172174    void sltSwitchVrde(bool fOn);
    173175    void sltInstallGuestAdditions();
     
    203205    QActionGroup *m_pRunningActions;
    204206    QActionGroup *m_pRunningOrPausedActions;
     207    QActionGroup *m_pSharedClipboardActions;
    205208
    206209    bool m_fIsWindowsCreated : 1;
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineMenuBar.cpp

    r42526 r42949  
    240240    pMenu->addMenu(gActionPool->action(UIActionIndexRuntime_Menu_FloppyDevices)->menu());
    241241    pMenu->addMenu(gActionPool->action(UIActionIndexRuntime_Menu_USBDevices)->menu());
     242    pMenu->addMenu(gActionPool->action(UIActionIndexRuntime_Menu_SharedClipboard)->menu());
    242243    pMenu->addAction(gActionPool->action(UIActionIndexRuntime_Simple_NetworkAdaptersDialog));
    243244    pMenu->addAction(gActionPool->action(UIActionIndexRuntime_Simple_SharedFoldersDialog));
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