- Timestamp:
- Jan 31, 2020 1:54:10 PM (5 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/manager
- Files:
-
- 4 edited
-
UIVirtualBoxManager.cpp (modified) (15 diffs)
-
UIVirtualMachineItem.cpp (modified) (2 diffs)
-
UIVirtualMachineItem.h (modified) (1 diff)
-
chooser/UIChooserItemGroup.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
r81261 r82942 1613 1613 UICommon::LaunchMode enmItemLaunchMode = enmLaunchMode; 1614 1614 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; 1618 1620 1619 1621 /* Launch current VM: */ … … 1744 1746 if (pItem && pItem->accessible()) 1745 1747 { 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); 1748 1750 /// @todo Hmm, fix it? 1749 1751 // QToolButton *pButton = qobject_cast<QToolButton*>(m_pToolBar->widgetForAction(actionPool()->action(UIActionIndexST_M_Machine_M_StartOrShow))); 1750 1752 // if (pButton) 1751 // pButton->setPopupMode( UIVirtualMachineItem::isItemPoweredOff(pItem) ? QToolButton::MenuButtonPopup : QToolButton::DelayedPopup);1753 // pButton->setPopupMode(pItem->isItemPoweredOff() ? QToolButton::MenuButtonPopup : QToolButton::DelayedPopup); 1752 1754 } 1753 1755 else … … 1758 1760 // QToolButton *pButton = qobject_cast<QToolButton*>(m_pToolBar->widgetForAction(actionPool()->action(UIActionIndexST_M_Machine_M_StartOrShow))); 1759 1761 // if (pButton) 1760 // pButton->setPopupMode( UIVirtualMachineItem::isItemPoweredOff(pItem) ? QToolButton::MenuButtonPopup : QToolButton::DelayedPopup);1762 // pButton->setPopupMode(pItem->isItemPoweredOff() ? QToolButton::MenuButtonPopup : QToolButton::DelayedPopup); 1761 1763 } 1762 1764 … … 1765 1767 foreach (UIVirtualMachineItem *pSelectedItem, items) 1766 1768 { 1767 if ( UIVirtualMachineItem::isItemStarted(pSelectedItem))1769 if (pSelectedItem->isItemStarted()) 1768 1770 { 1769 1771 pFirstStartedAction = pSelectedItem; … … 1773 1775 /* Update the group Pause/Resume action appearance: */ 1774 1776 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()); 1776 1778 actionPool()->action(UIActionIndexST_M_Group_T_Pause)->retranslateUi(); 1777 1779 actionPool()->action(UIActionIndexST_M_Group_T_Pause)->blockSignals(false); 1778 1780 /* Update the machine Pause/Resume action appearance: */ 1779 1781 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()); 1781 1783 actionPool()->action(UIActionIndexST_M_Machine_T_Pause)->retranslateUi(); 1782 1784 actionPool()->action(UIActionIndexST_M_Machine_T_Pause)->blockSignals(false); … … 1863 1865 return !isGroupSavingInProgress() && 1864 1866 items.size() == 1 && 1865 UIVirtualMachineItem::isItemEditable(pItem);1867 pItem->isItemEditable(); 1866 1868 } 1867 1869 case UIActionIndexST_M_Machine_S_ExportToOCI: … … 1975 1977 { 1976 1978 foreach (UIVirtualMachineItem *pItem, items) 1977 if (! UIVirtualMachineItem::isItemPoweredOff(pItem))1979 if (!pItem->isItemPoweredOff()) 1978 1980 return false; 1979 1981 return true; … … 1987 1989 { 1988 1990 /* Skip non-running machines: */ 1989 if (! UIVirtualMachineItem::isItemRunning(pItem))1991 if (!pItem->isItemRunning()) 1990 1992 continue; 1991 1993 /* Skip session failures: */ … … 2051 2053 { 2052 2054 foreach (UIVirtualMachineItem *pItem, items) 2053 if (!pItem->accessible() || UIVirtualMachineItem::isItemEditable(pItem))2055 if (!pItem->accessible() || pItem->isItemEditable()) 2054 2056 return true; 2055 2057 return false; … … 2061 2063 foreach (UIVirtualMachineItem *pItem, items) 2062 2064 { 2063 if ( UIVirtualMachineItem::isItemPoweredOff(pItem) && UIVirtualMachineItem::isItemEditable(pItem))2065 if (pItem->isItemPoweredOff() && pItem->isItemEditable()) 2064 2066 return true; 2065 2067 } … … 2072 2074 foreach (UIVirtualMachineItem *pItem, items) 2073 2075 { 2074 if ( UIVirtualMachineItem::isItemStarted(pItem) && (pItem->canSwitchTo() || UIVirtualMachineItem::isItemRunningHeadless(pItem)))2076 if (pItem->isItemStarted() && (pItem->canSwitchTo() || pItem->isItemRunningHeadless())) 2075 2077 return true; 2076 2078 } … … 2083 2085 foreach (UIVirtualMachineItem *pItem, items) 2084 2086 { 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()))) 2087 2089 return true; 2088 2090 } … … 2094 2096 { 2095 2097 foreach (UIVirtualMachineItem *pItem, items) 2096 if ( UIVirtualMachineItem::isItemSaved(pItem) && UIVirtualMachineItem::isItemEditable(pItem))2098 if (pItem->isItemSaved() && pItem->isItemEditable()) 2097 2099 return true; 2098 2100 return false; … … 2103 2105 { 2104 2106 foreach (UIVirtualMachineItem *pItem, items) 2105 if ( UIVirtualMachineItem::isItemStarted(pItem))2107 if (pItem->isItemStarted()) 2106 2108 return true; 2107 2109 return false; … … 2112 2114 { 2113 2115 foreach (UIVirtualMachineItem *pItem, items) 2114 if ( UIVirtualMachineItem::isItemRunning(pItem))2116 if (pItem->isItemRunning()) 2115 2117 return true; 2116 2118 return false; -
trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.cpp
r82933 r82942 222 222 } 223 223 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)) 224 bool UIVirtualMachineItem::isItemEditable() const 225 { 226 return accessible() 227 && sessionState() == KSessionState_Unlocked; 228 } 229 230 bool UIVirtualMachineItem::isItemSaved() const 231 { 232 return accessible() 233 && machineState() == KMachineState_Saved; 234 } 235 236 bool 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 245 bool UIVirtualMachineItem::isItemStarted() const 246 { 247 return isItemRunning() 248 || isItemPaused(); 249 } 250 251 bool UIVirtualMachineItem::isItemRunning() const 252 { 253 return accessible() 254 && ( machineState() == KMachineState_Running 255 || machineState() == KMachineState_Teleporting 256 || machineState() == KMachineState_LiveSnapshotting); 257 } 258 259 bool UIVirtualMachineItem::isItemRunningHeadless() const 260 { 261 if (isItemRunning()) 272 262 { 273 263 /* Open session to determine which frontend VM is started with: */ 274 CSession comSession = uiCommon().openExistingSession( pItem->id());264 CSession comSession = uiCommon().openExistingSession(id()); 275 265 if (!comSession.isNull()) 276 266 { … … 286 276 } 287 277 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; 278 bool UIVirtualMachineItem::isItemPaused() const 279 { 280 return accessible() 281 && ( machineState() == KMachineState_Paused 282 || machineState() == KMachineState_TeleportingPausedVM); 283 } 284 285 bool UIVirtualMachineItem::isItemStuck() const 286 { 287 return accessible() 288 && machineState() == KMachineState_Stuck; 303 289 } 304 290 -
trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualMachineItem.h
r82933 r82942 141 141 * @{ */ 142 142 /** Returns whether passed machine @a pItem is editable. */ 143 static bool isItemEditable(UIVirtualMachineItem *pItem);143 bool isItemEditable() const; 144 144 /** Returns whether passed machine @a pItem is saved. */ 145 static bool isItemSaved(UIVirtualMachineItem *pItem);145 bool isItemSaved() const; 146 146 /** Returns whether passed machine @a pItem is powered off. */ 147 static bool isItemPoweredOff(UIVirtualMachineItem *pItem);147 bool isItemPoweredOff() const; 148 148 /** Returns whether passed machine @a pItem is started. */ 149 static bool isItemStarted(UIVirtualMachineItem *pItem);149 bool isItemStarted() const; 150 150 /** Returns whether passed machine @a pItem is running. */ 151 static bool isItemRunning(UIVirtualMachineItem *pItem);151 bool isItemRunning() const; 152 152 /** Returns whether passed machine @a pItem is running headless. */ 153 static bool isItemRunningHeadless(UIVirtualMachineItem *pItem);153 bool isItemRunningHeadless() const; 154 154 /** Returns whether passed machine @a pItem is paused. */ 155 static bool isItemPaused(UIVirtualMachineItem *pItem);155 bool isItemPaused() const; 156 156 /** Returns whether passed machine @a pItem is stuck. */ 157 static bool isItemStuck(UIVirtualMachineItem *pItem);157 bool isItemStuck() const; 158 158 /** @} */ 159 159 -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp
r82917 r82942 322 322 int iCountOfStartedMachineItems = 0; 323 323 foreach (UIChooserItem *pItem, items(UIChooserItemType_Machine)) 324 if ( UIVirtualMachineItem::isItemStarted(pItem->node()->toMachineNode()->cache()))324 if (pItem->node()->toMachineNode()->cache()->isItemStarted()) 325 325 ++iCountOfStartedMachineItems; 326 326 /* Template: */
Note:
See TracChangeset
for help on using the changeset viewer.

