VirtualBox

Changeset 82942 in vbox for trunk


Ignore:
Timestamp:
Jan 31, 2020 1:54:10 PM (5 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:9653: VirtualBox Manager: Rework UIVirtualMachineItem validation to make it possible to sub-class it.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/manager
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp

    r81261 r82942  
    16131613            UICommon::LaunchMode enmItemLaunchMode = enmLaunchMode;
    16141614            if (enmItemLaunchMode == UICommon::LaunchMode_Invalid)
    1615                 enmItemLaunchMode = UIVirtualMachineItem::isItemRunningHeadless(pItem) ? UICommon::LaunchMode_Separate :
    1616                                     qApp->keyboardModifiers() == Qt::ShiftModifier     ? UICommon::LaunchMode_Headless :
    1617                                                                                          UICommon::LaunchMode_Default;
     1615                enmItemLaunchMode = pItem->isItemRunningHeadless()
     1616                                  ? UICommon::LaunchMode_Separate
     1617                                  : qApp->keyboardModifiers() == Qt::ShiftModifier
     1618                                  ? UICommon::LaunchMode_Headless
     1619                                  : UICommon::LaunchMode_Default;
    16181620
    16191621            /* Launch current VM: */
     
    17441746    if (pItem && pItem->accessible())
    17451747    {
    1746         actionPool()->action(UIActionIndexST_M_Group_M_StartOrShow)->toActionPolymorphicMenu()->setState(UIVirtualMachineItem::isItemPoweredOff(pItem) ? 0 : 1);
    1747         actionPool()->action(UIActionIndexST_M_Machine_M_StartOrShow)->toActionPolymorphicMenu()->setState(UIVirtualMachineItem::isItemPoweredOff(pItem) ? 0 : 1);
     1748        actionPool()->action(UIActionIndexST_M_Group_M_StartOrShow)->toActionPolymorphicMenu()->setState(pItem->isItemPoweredOff() ? 0 : 1);
     1749        actionPool()->action(UIActionIndexST_M_Machine_M_StartOrShow)->toActionPolymorphicMenu()->setState(pItem->isItemPoweredOff() ? 0 : 1);
    17481750        /// @todo Hmm, fix it?
    17491751//        QToolButton *pButton = qobject_cast<QToolButton*>(m_pToolBar->widgetForAction(actionPool()->action(UIActionIndexST_M_Machine_M_StartOrShow)));
    17501752//        if (pButton)
    1751 //            pButton->setPopupMode(UIVirtualMachineItem::isItemPoweredOff(pItem) ? QToolButton::MenuButtonPopup : QToolButton::DelayedPopup);
     1753//            pButton->setPopupMode(pItem->isItemPoweredOff() ? QToolButton::MenuButtonPopup : QToolButton::DelayedPopup);
    17521754    }
    17531755    else
     
    17581760//        QToolButton *pButton = qobject_cast<QToolButton*>(m_pToolBar->widgetForAction(actionPool()->action(UIActionIndexST_M_Machine_M_StartOrShow)));
    17591761//        if (pButton)
    1760 //            pButton->setPopupMode(UIVirtualMachineItem::isItemPoweredOff(pItem) ? QToolButton::MenuButtonPopup : QToolButton::DelayedPopup);
     1762//            pButton->setPopupMode(pItem->isItemPoweredOff() ? QToolButton::MenuButtonPopup : QToolButton::DelayedPopup);
    17611763    }
    17621764
     
    17651767    foreach (UIVirtualMachineItem *pSelectedItem, items)
    17661768    {
    1767         if (UIVirtualMachineItem::isItemStarted(pSelectedItem))
     1769        if (pSelectedItem->isItemStarted())
    17681770        {
    17691771            pFirstStartedAction = pSelectedItem;
     
    17731775    /* Update the group Pause/Resume action appearance: */
    17741776    actionPool()->action(UIActionIndexST_M_Group_T_Pause)->blockSignals(true);
    1775     actionPool()->action(UIActionIndexST_M_Group_T_Pause)->setChecked(pFirstStartedAction && UIVirtualMachineItem::isItemPaused(pFirstStartedAction));
     1777    actionPool()->action(UIActionIndexST_M_Group_T_Pause)->setChecked(pFirstStartedAction && pFirstStartedAction->isItemPaused());
    17761778    actionPool()->action(UIActionIndexST_M_Group_T_Pause)->retranslateUi();
    17771779    actionPool()->action(UIActionIndexST_M_Group_T_Pause)->blockSignals(false);
    17781780    /* Update the machine Pause/Resume action appearance: */
    17791781    actionPool()->action(UIActionIndexST_M_Machine_T_Pause)->blockSignals(true);
    1780     actionPool()->action(UIActionIndexST_M_Machine_T_Pause)->setChecked(pFirstStartedAction && UIVirtualMachineItem::isItemPaused(pFirstStartedAction));
     1782    actionPool()->action(UIActionIndexST_M_Machine_T_Pause)->setChecked(pFirstStartedAction && pFirstStartedAction->isItemPaused());
    17811783    actionPool()->action(UIActionIndexST_M_Machine_T_Pause)->retranslateUi();
    17821784    actionPool()->action(UIActionIndexST_M_Machine_T_Pause)->blockSignals(false);
     
    18631865            return !isGroupSavingInProgress() &&
    18641866                   items.size() == 1 &&
    1865                    UIVirtualMachineItem::isItemEditable(pItem);
     1867                   pItem->isItemEditable();
    18661868        }
    18671869        case UIActionIndexST_M_Machine_S_ExportToOCI:
     
    19751977{
    19761978    foreach (UIVirtualMachineItem *pItem, items)
    1977         if (!UIVirtualMachineItem::isItemPoweredOff(pItem))
     1979        if (!pItem->isItemPoweredOff())
    19781980            return false;
    19791981    return true;
     
    19871989    {
    19881990        /* Skip non-running machines: */
    1989         if (!UIVirtualMachineItem::isItemRunning(pItem))
     1991        if (!pItem->isItemRunning())
    19901992            continue;
    19911993        /* Skip session failures: */
     
    20512053{
    20522054    foreach (UIVirtualMachineItem *pItem, items)
    2053         if (!pItem->accessible() || UIVirtualMachineItem::isItemEditable(pItem))
     2055        if (!pItem->accessible() || pItem->isItemEditable())
    20542056            return true;
    20552057    return false;
     
    20612063    foreach (UIVirtualMachineItem *pItem, items)
    20622064    {
    2063         if (UIVirtualMachineItem::isItemPoweredOff(pItem) && UIVirtualMachineItem::isItemEditable(pItem))
     2065        if (pItem->isItemPoweredOff() && pItem->isItemEditable())
    20642066            return true;
    20652067    }
     
    20722074    foreach (UIVirtualMachineItem *pItem, items)
    20732075    {
    2074         if (UIVirtualMachineItem::isItemStarted(pItem) && (pItem->canSwitchTo() || UIVirtualMachineItem::isItemRunningHeadless(pItem)))
     2076        if (pItem->isItemStarted() && (pItem->canSwitchTo() || pItem->isItemRunningHeadless()))
    20752077            return true;
    20762078    }
     
    20832085    foreach (UIVirtualMachineItem *pItem, items)
    20842086    {
    2085         if ((UIVirtualMachineItem::isItemPoweredOff(pItem) && UIVirtualMachineItem::isItemEditable(pItem)) ||
    2086             (UIVirtualMachineItem::isItemStarted(pItem) && (pItem->canSwitchTo() || UIVirtualMachineItem::isItemRunningHeadless(pItem))))
     2087        if ((pItem->isItemPoweredOff() && pItem->isItemEditable()) ||
     2088            (pItem->isItemStarted() && (pItem->canSwitchTo() || pItem->isItemRunningHeadless())))
    20872089            return true;
    20882090    }
     
    20942096{
    20952097    foreach (UIVirtualMachineItem *pItem, items)
    2096         if (UIVirtualMachineItem::isItemSaved(pItem) && UIVirtualMachineItem::isItemEditable(pItem))
     2098        if (pItem->isItemSaved() && pItem->isItemEditable())
    20972099            return true;
    20982100    return false;
     
    21032105{
    21042106    foreach (UIVirtualMachineItem *pItem, items)
    2105         if (UIVirtualMachineItem::isItemStarted(pItem))
     2107        if (pItem->isItemStarted())
    21062108            return true;
    21072109    return false;
     
    21122114{
    21132115    foreach (UIVirtualMachineItem *pItem, items)
    2114         if (UIVirtualMachineItem::isItemRunning(pItem))
     2116        if (pItem->isItemRunning())
    21152117            return true;
    21162118    return false;
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.cpp

    r82933 r82942  
    222222}
    223223
    224 /* static */
    225 bool UIVirtualMachineItem::isItemEditable(UIVirtualMachineItem *pItem)
    226 {
    227     return    pItem
    228            && pItem->accessible()
    229            && pItem->sessionState() == KSessionState_Unlocked;
    230 }
    231 
    232 /* static */
    233 bool UIVirtualMachineItem::isItemSaved(UIVirtualMachineItem *pItem)
    234 {
    235     return    pItem
    236            && pItem->accessible()
    237            && pItem->machineState() == KMachineState_Saved;
    238 }
    239 
    240 /* static */
    241 bool UIVirtualMachineItem::isItemPoweredOff(UIVirtualMachineItem *pItem)
    242 {
    243     return    pItem
    244            && pItem->accessible()
    245            && (   pItem->machineState() == KMachineState_PoweredOff
    246                || pItem->machineState() == KMachineState_Saved
    247                || pItem->machineState() == KMachineState_Teleported
    248                || pItem->machineState() == KMachineState_Aborted);
    249 }
    250 
    251 /* static */
    252 bool UIVirtualMachineItem::isItemStarted(UIVirtualMachineItem *pItem)
    253 {
    254     return    isItemRunning(pItem)
    255            || isItemPaused(pItem);
    256 }
    257 
    258 /* static */
    259 bool UIVirtualMachineItem::isItemRunning(UIVirtualMachineItem *pItem)
    260 {
    261     return    pItem
    262            && pItem->accessible()
    263            && (   pItem->machineState() == KMachineState_Running
    264                || pItem->machineState() == KMachineState_Teleporting
    265                || pItem->machineState() == KMachineState_LiveSnapshotting);
    266 }
    267 
    268 /* static */
    269 bool UIVirtualMachineItem::isItemRunningHeadless(UIVirtualMachineItem *pItem)
    270 {
    271     if (isItemRunning(pItem))
     224bool UIVirtualMachineItem::isItemEditable() const
     225{
     226    return    accessible()
     227           && sessionState() == KSessionState_Unlocked;
     228}
     229
     230bool UIVirtualMachineItem::isItemSaved() const
     231{
     232    return    accessible()
     233           && machineState() == KMachineState_Saved;
     234}
     235
     236bool UIVirtualMachineItem::isItemPoweredOff() const
     237{
     238    return    accessible()
     239           && (   machineState() == KMachineState_PoweredOff
     240               || machineState() == KMachineState_Saved
     241               || machineState() == KMachineState_Teleported
     242               || machineState() == KMachineState_Aborted);
     243}
     244
     245bool UIVirtualMachineItem::isItemStarted() const
     246{
     247    return    isItemRunning()
     248           || isItemPaused();
     249}
     250
     251bool UIVirtualMachineItem::isItemRunning() const
     252{
     253    return    accessible()
     254           && (   machineState() == KMachineState_Running
     255               || machineState() == KMachineState_Teleporting
     256               || machineState() == KMachineState_LiveSnapshotting);
     257}
     258
     259bool UIVirtualMachineItem::isItemRunningHeadless() const
     260{
     261    if (isItemRunning())
    272262    {
    273263        /* Open session to determine which frontend VM is started with: */
    274         CSession comSession = uiCommon().openExistingSession(pItem->id());
     264        CSession comSession = uiCommon().openExistingSession(id());
    275265        if (!comSession.isNull())
    276266        {
     
    286276}
    287277
    288 /* static */
    289 bool UIVirtualMachineItem::isItemPaused(UIVirtualMachineItem *pItem)
    290 {
    291     return    pItem
    292            && pItem->accessible()
    293            && (   pItem->machineState() == KMachineState_Paused
    294                || pItem->machineState() == KMachineState_TeleportingPausedVM);
    295 }
    296 
    297 /* static */
    298 bool UIVirtualMachineItem::isItemStuck(UIVirtualMachineItem *pItem)
    299 {
    300     return    pItem
    301            && pItem->accessible()
    302            && pItem->machineState() == KMachineState_Stuck;
     278bool UIVirtualMachineItem::isItemPaused() const
     279{
     280    return    accessible()
     281           && (   machineState() == KMachineState_Paused
     282               || machineState() == KMachineState_TeleportingPausedVM);
     283}
     284
     285bool UIVirtualMachineItem::isItemStuck() const
     286{
     287    return    accessible()
     288           && machineState() == KMachineState_Stuck;
    303289}
    304290
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.h

    r82933 r82942  
    141141      * @{ */
    142142        /** Returns whether passed machine @a pItem is editable. */
    143         static bool isItemEditable(UIVirtualMachineItem *pItem);
     143        bool isItemEditable() const;
    144144        /** Returns whether passed machine @a pItem is saved. */
    145         static bool isItemSaved(UIVirtualMachineItem *pItem);
     145        bool isItemSaved() const;
    146146        /** Returns whether passed machine @a pItem is powered off. */
    147         static bool isItemPoweredOff(UIVirtualMachineItem *pItem);
     147        bool isItemPoweredOff() const;
    148148        /** Returns whether passed machine @a pItem is started. */
    149         static bool isItemStarted(UIVirtualMachineItem *pItem);
     149        bool isItemStarted() const;
    150150        /** Returns whether passed machine @a pItem is running. */
    151         static bool isItemRunning(UIVirtualMachineItem *pItem);
     151        bool isItemRunning() const;
    152152        /** Returns whether passed machine @a pItem is running headless. */
    153         static bool isItemRunningHeadless(UIVirtualMachineItem *pItem);
     153        bool isItemRunningHeadless() const;
    154154        /** Returns whether passed machine @a pItem is paused. */
    155         static bool isItemPaused(UIVirtualMachineItem *pItem);
     155        bool isItemPaused() const;
    156156        /** Returns whether passed machine @a pItem is stuck. */
    157         static bool isItemStuck(UIVirtualMachineItem *pItem);
     157        bool isItemStuck() const;
    158158    /** @} */
    159159
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp

    r82917 r82942  
    322322        int iCountOfStartedMachineItems = 0;
    323323        foreach (UIChooserItem *pItem, items(UIChooserItemType_Machine))
    324             if (UIVirtualMachineItem::isItemStarted(pItem->node()->toMachineNode()->cache()))
     324            if (pItem->node()->toMachineNode()->cache()->isItemStarted())
    325325                ++iCountOfStartedMachineItems;
    326326        /* Template: */
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