VirtualBox

Changeset 42616 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Aug 6, 2012 12:12:48 PM (13 years ago)
Author:
vboxsync
Message:

FE/Qt: 6234: Support for VM groups: Creating new VM in currently selected group (or parent of currently selected machine).

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp

    r42563 r42616  
    3838#include "UIDownloaderExtensionPack.h"
    3939#include "UIIconPool.h"
    40 #include "UIWizardNewVM.h"
    4140#include "UIWizardCloneVM.h"
    4241#include "UIWizardExportApp.h"
     
    319318{
    320319    close();
    321 }
    322 
    323 void UISelectorWindow::sltShowCreateMachineWizard()
    324 {
    325     UIWizardNewVM wizard(this);
    326     wizard.exec();
    327320}
    328321
     
    13161309    /* 'Group' menu connections: */
    13171310    connect(m_pGroupMenu, SIGNAL(aboutToShow()), this, SLOT(sltMachineMenuAboutToShow()));
    1318     connect(m_pActionGroupNewWizard, SIGNAL(triggered()), this, SLOT(sltShowCreateMachineWizard()));
    13191311    connect(m_pActionGroupAddDialog, SIGNAL(triggered()), this, SLOT(sltShowAddMachineDialog()));
    13201312    connect(m_pActionGroupStartOrShow, SIGNAL(triggered()), this, SLOT(sltPerformStartOrShowAction()));
     
    13281320    /* 'Machine' menu connections: */
    13291321    connect(m_pMachineMenu, SIGNAL(aboutToShow()), this, SLOT(sltMachineMenuAboutToShow()));
    1330     connect(m_pActionMachineNewWizard, SIGNAL(triggered()), this, SLOT(sltShowCreateMachineWizard()));
    13311322    connect(m_pActionMachineAddDialog, SIGNAL(triggered()), this, SLOT(sltShowAddMachineDialog()));
    13321323    connect(m_pActionMachineSettingsDialog, SIGNAL(triggered()), this, SLOT(sltShowMachineSettingsDialog()));
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.h

    r42563 r42616  
    8484
    8585    /* Handlers: Machine-menu slots: */
    86     void sltShowCreateMachineWizard();
    8786    void sltShowAddMachineDialog(const QString &strFileName = QString());
    8887    void sltShowMachineSettingsDialog(const QString &strCategory = QString(),
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp

    r42587 r42616  
    3737#include "UIGChooserHandlerMouse.h"
    3838#include "UIGChooserHandlerKeyboard.h"
     39#include "UIWizardNewVM.h"
     40#include "UISelectorWindow.h"
    3941
    4042/* COM includes: */
     
    5153    , m_pMouseHandler(0)
    5254    , m_pKeyboardHandler(0)
    53     , m_pContextMenuRoot(0)
    5455    , m_pContextMenuGroup(0)
    5556    , m_pContextMenuMachine(0)
     
    716717}
    717718
     719void UIGChooserModel::sltCreateNewMachine()
     720{
     721    UIGChooserItem *pGroup = 0;
     722    if (singleGroupSelected())
     723        pGroup = selectionList().first();
     724    else if (!selectionList().isEmpty())
     725        pGroup = selectionList().first()->parentItem();
     726    if (pGroup)
     727    {
     728        UIWizardNewVM wizard(&vboxGlobal().selectorWnd(), fullName(pGroup));
     729        wizard.exec();
     730    }
     731    else
     732    {
     733        UIWizardNewVM wizard(&vboxGlobal().selectorWnd());
     734        wizard.exec();
     735    }
     736}
     737
    718738void UIGChooserModel::sltActionHovered(QAction *pAction)
    719739{
     
    804824void UIGChooserModel::prepareContextMenu()
    805825{
    806     /* Context menu for empty group: */
    807     m_pContextMenuRoot = new QMenu;
    808     m_pContextMenuRoot->addAction(gActionPool->action(UIActionIndexSelector_Simple_Group_NewWizard));
    809     m_pContextMenuRoot->addAction(gActionPool->action(UIActionIndexSelector_Simple_Group_AddDialog));
    810 
    811826    /* Context menu for group: */
    812827    m_pContextMenuGroup = new QMenu;
     
    851866    m_pContextMenuMachine->addAction(gActionPool->action(UIActionIndexSelector_Simple_Common_SortParent));
    852867
    853     connect(m_pContextMenuRoot, SIGNAL(hovered(QAction*)), this, SLOT(sltActionHovered(QAction*)));
    854868    connect(m_pContextMenuGroup, SIGNAL(hovered(QAction*)), this, SLOT(sltActionHovered(QAction*)));
    855869    connect(m_pContextMenuMachine, SIGNAL(hovered(QAction*)), this, SLOT(sltActionHovered(QAction*)));
    856870
     871    connect(gActionPool->action(UIActionIndexSelector_Simple_Group_NewWizard), SIGNAL(triggered()),
     872            this, SLOT(sltCreateNewMachine()));
     873    connect(gActionPool->action(UIActionIndexSelector_Simple_Machine_NewWizard), SIGNAL(triggered()),
     874            this, SLOT(sltCreateNewMachine()));
    857875    connect(gActionPool->action(UIActionIndexSelector_Simple_Group_RenameDialog), SIGNAL(triggered()),
    858876            this, SLOT(sltStartEditingSelectedGroup()));
     
    907925void UIGChooserModel::cleanupContextMenu()
    908926{
    909     delete m_pContextMenuRoot;
    910     m_pContextMenuRoot = 0;
    911927    delete m_pContextMenuGroup;
    912928    m_pContextMenuGroup = 0;
     
    14131429                            return true;
    14141430                        }
    1415                         /* Is this root-group item? */
    1416                         else if (!pGroupItem->parentItem())
    1417                         {
    1418                             /* Root context menu in that cases: */
    1419                             popupContextMenu(UIGraphicsSelectorContextMenuType_Root, pEvent->screenPos());
    1420                             return true;
    1421                         }
     1431                        return false;
    14221432                    }
    14231433                    case UIGChooserItemType_Machine:
     
    14311441                }
    14321442            }
    1433             /* Root context menu for all the other cases: */
    1434             popupContextMenu(UIGraphicsSelectorContextMenuType_Root, pEvent->screenPos());
    14351443            return true;
    14361444        }
     
    14631471                }
    14641472            }
    1465             /* Root context menu for all the other cases: */
    1466             popupContextMenu(UIGraphicsSelectorContextMenuType_Root, pEvent->screenPos());
    14671473            return true;
    14681474        }
     
    14791485    switch (type)
    14801486    {
    1481         /* For empty group? */
    1482         case UIGraphicsSelectorContextMenuType_Root:
    1483         {
    1484             m_pContextMenuRoot->exec(point);
    1485             break;
    1486         }
    14871487        /* For group? */
    14881488        case UIGraphicsSelectorContextMenuType_Group:
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.h

    r42563 r42616  
    5151enum UIGraphicsSelectorContextMenuType
    5252{
    53     UIGraphicsSelectorContextMenuType_Root,
    5453    UIGraphicsSelectorContextMenuType_Group,
    5554    UIGraphicsSelectorContextMenuType_Machine
     
    166165    void sltStartEditingSelectedGroup();
    167166
     167    /* Handler: Create new machine stuff: */
     168    void sltCreateNewMachine();
     169
    168170    /* Handler: Context menu hovering: */
    169171    void sltActionHovered(QAction *pAction);
     
    281283    QPointer<QDrag> m_pCurrentDragObject;
    282284    QPointer<UIGChooserItem> m_pFocusItem;
    283     QMenu *m_pContextMenuRoot;
    284285    QMenu *m_pContextMenuGroup;
    285286    QMenu *m_pContextMenuMachine;
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp

    r42551 r42616  
    3333#include "CStorageController.h"
    3434
    35 UIWizardNewVM::UIWizardNewVM(QWidget *pParent)
     35UIWizardNewVM::UIWizardNewVM(QWidget *pParent, const QString &strGroup /* = QString() */)
    3636    : UIWizard(pParent, UIWizardType_NewVM)
     37    , m_strGroup(strGroup)
    3738    , m_iIDECount(0)
    3839    , m_iSATACount(0)
     
    6263    if (m_machine.isNull())
    6364    {
    64         m_machine = vbox.CreateMachine(QString(), field("name").toString(), QVector<QString>() /**< @todo group support */, strTypeId, QString(), false);
     65        QVector<QString> groups;
     66        if (!m_strGroup.isEmpty())
     67            groups << m_strGroup;
     68        m_machine = vbox.CreateMachine(QString(), field("name").toString(), groups, strTypeId, QString(), false);
    6569        if (!vbox.isOk())
    6670        {
     
    273277        case UIWizardMode_Basic:
    274278        {
    275             setPage(Page1, new UIWizardNewVMPageBasic1);
     279            setPage(Page1, new UIWizardNewVMPageBasic1(m_strGroup));
    276280            setPage(Page2, new UIWizardNewVMPageBasic2);
    277281            setPage(Page3, new UIWizardNewVMPageBasic3);
     
    280284        case UIWizardMode_Expert:
    281285        {
    282             setPage(PageExpert, new UIWizardNewVMPageExpert);
     286            setPage(PageExpert, new UIWizardNewVMPageExpert(m_strGroup));
    283287            break;
    284288        }
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h

    r41587 r42616  
    4949
    5050    /* Constructor: */
    51     UIWizardNewVM(QWidget *pParent);
     51    UIWizardNewVM(QWidget *pParent, const QString &strGroup = QString());
    5252
    5353protected:
     
    7373    /* Variables: */
    7474    CMachine m_machine;
     75    QString m_strGroup;
    7576    int m_iIDECount;
    7677    int m_iSATACount;
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic1.cpp

    r42129 r42616  
    140140};
    141141
    142 UIWizardNewVMPage1::UIWizardNewVMPage1()
     142UIWizardNewVMPage1::UIWizardNewVMPage1(const QString &strGroup)
     143    : m_strGroup(strGroup)
    143144{
    144145}
     
    183184    QString strDefaultMachinesFolder = vbox.GetSystemProperties().GetDefaultMachineFolder();
    184185    /* Compose machine filename: */
    185     QString strMachineFilename = vbox.ComposeMachineFilename(m_pNameAndSystemEditor->name(), QString::null /**< @todo group support */, strDefaultMachinesFolder);
     186    QString strMachineFilename = vbox.ComposeMachineFilename(m_pNameAndSystemEditor->name(), m_strGroup, strDefaultMachinesFolder);
    186187    /* Compose machine folder/basename: */
    187188    QFileInfo fileInfo(strMachineFilename);
     
    224225}
    225226
    226 UIWizardNewVMPageBasic1::UIWizardNewVMPageBasic1()
     227UIWizardNewVMPageBasic1::UIWizardNewVMPageBasic1(const QString &strGroup)
     228    : UIWizardNewVMPage1(strGroup)
    227229{
    228230    /* Create widgets: */
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic1.h

    r41389 r42616  
    3333
    3434    /* Constructor: */
    35     UIWizardNewVMPage1();
     35    UIWizardNewVMPage1(const QString &strGroup);
    3636
    3737    /* Handlers: */
     
    5858    /* Widgets: */
    5959    UINameAndSystemEditor *m_pNameAndSystemEditor;
     60
     61    /* Variables: */
     62    QString m_strGroup;
    6063};
    6164
     
    7073
    7174    /* Constructor: */
    72     UIWizardNewVMPageBasic1();
     75    UIWizardNewVMPageBasic1(const QString &strGroup);
    7376
    7477protected:
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.cpp

    r41615 r42616  
    3838#include "QIToolButton.h"
    3939
    40 UIWizardNewVMPageExpert::UIWizardNewVMPageExpert()
     40UIWizardNewVMPageExpert::UIWizardNewVMPageExpert(const QString &strGroup)
     41    : UIWizardNewVMPage1(strGroup)
    4142{
    4243    /* Create widgets: */
  • trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.h

    r41415 r42616  
    4444
    4545    /* Constructor: */
    46     UIWizardNewVMPageExpert();
     46    UIWizardNewVMPageExpert(const QString &strGroup);
    4747
    4848protected:
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