Changeset 55415 in vbox for trunk/src/VBox/Frontends/VirtualBox
- Timestamp:
- Apr 24, 2015 7:27:41 AM (10 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/globals
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp
r55343 r55415 120 120 } 121 121 122 UIActionPolymorphicMenu* UIAction::toActionPolymorphicMenu() 123 { 124 return qobject_cast<UIActionPolymorphicMenu*>(this); 125 } 126 122 127 void UIAction::setName(const QString &strName) 123 128 { … … 313 318 if (!icon.isNull()) 314 319 setIcon(icon); 320 } 321 322 323 UIActionPolymorphicMenu::UIActionPolymorphicMenu(UIActionPool *pParent, 324 const QString &strIcon, const QString &strIconDisabled) 325 : UIAction(pParent, UIActionType_PolymorphicMenu) 326 , m_pMenu(0) 327 , m_iState(0) 328 { 329 if (!strIcon.isNull()) 330 setIcon(UIIconPool::iconSet(strIcon, strIconDisabled)); 331 prepare(); 332 } 333 334 UIActionPolymorphicMenu::UIActionPolymorphicMenu(UIActionPool *pParent, 335 const QString &strIconNormal, const QString &strIconSmall, 336 const QString &strIconNormalDisabled, const QString &strIconSmallDisabled) 337 : UIAction(pParent, UIActionType_PolymorphicMenu) 338 , m_pMenu(0) 339 , m_iState(0) 340 { 341 if (!strIconNormal.isNull()) 342 setIcon(UIIconPool::iconSetFull(strIconNormal, strIconSmall, strIconNormalDisabled, strIconSmallDisabled)); 343 prepare(); 344 } 345 346 UIActionPolymorphicMenu::UIActionPolymorphicMenu(UIActionPool *pParent, 347 const QIcon &icon) 348 : UIAction(pParent, UIActionType_PolymorphicMenu) 349 , m_pMenu(0) 350 , m_iState(0) 351 { 352 if (!icon.isNull()) 353 setIcon(icon); 354 prepare(); 355 } 356 357 UIActionPolymorphicMenu::~UIActionPolymorphicMenu() 358 { 359 /* Hide menu: */ 360 hideMenu(); 361 /* Delete menu: */ 362 delete m_pMenu; 363 m_pMenu = 0; 364 } 365 366 void UIActionPolymorphicMenu::setShowToolTip(bool fShowToolTip) 367 { 368 qobject_cast<UIMenu*>(menu())->setShowToolTip(fShowToolTip); 369 } 370 371 void UIActionPolymorphicMenu::showMenu() 372 { 373 /* Show menu if necessary: */ 374 if (!menu()) 375 setMenu(m_pMenu); 376 } 377 378 void UIActionPolymorphicMenu::hideMenu() 379 { 380 /* Hide menu if necessary: */ 381 if (menu()) 382 setMenu(0); 383 } 384 385 void UIActionPolymorphicMenu::prepare() 386 { 387 /* Create menu: */ 388 m_pMenu = new UIMenu; 389 AssertPtrReturnVoid(m_pMenu); 390 { 391 /* Prepare menu: */ 392 connect(m_pMenu, SIGNAL(aboutToShow()), 393 parent(), SLOT(sltHandleMenuPrepare())); 394 /* Show menu: */ 395 showMenu(); 396 } 397 } 398 399 void UIActionPolymorphicMenu::updateText() 400 { 401 setText(nameInMenu()); 315 402 } 316 403 -
trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h
r55401 r55415 29 29 /* Forward declarations: */ 30 30 class UIActionPolymorphic; 31 class UIActionPolymorphicMenu; 31 32 class UIActionPool; 32 33 class UIActionPoolRuntime; … … 47 48 UIActionType_Simple, 48 49 UIActionType_Toggle, 49 UIActionType_Polymorphic 50 UIActionType_Polymorphic, 51 UIActionType_PolymorphicMenu 50 52 }; 51 53 … … 155 157 /** Casts action to polymorphic-action. */ 156 158 UIActionPolymorphic* toActionPolymorphic(); 159 /** Casts action to polymorphic-menu-action. */ 160 UIActionPolymorphicMenu* toActionPolymorphicMenu(); 157 161 158 162 /** Returns current action name. */ … … 312 316 private: 313 317 318 /** Holds current action state. */ 319 int m_iState; 320 }; 321 322 323 /** Abstract UIAction extension for 'Polymorphic Menu' action type. */ 324 class UIActionPolymorphicMenu : public UIAction 325 { 326 Q_OBJECT; 327 328 public: 329 330 /** Returns current action state. */ 331 int state() const { return m_iState; } 332 /** Defines current action state. */ 333 void setState(int iState) { m_iState = iState; retranslateUi(); } 334 335 protected: 336 337 /** Constructor, taking normal icon name and name for disabled analog. */ 338 UIActionPolymorphicMenu(UIActionPool *pParent, 339 const QString &strIcon = QString(), const QString &strIconDis = QString()); 340 /** Constructor, taking normal, small icon names and names for disabled analogs. */ 341 UIActionPolymorphicMenu(UIActionPool *pParent, 342 const QString &strIconNormal, const QString &strIconSmall, 343 const QString &strIconNormalDisabled, const QString &strIconSmallDisabled); 344 /** Constructor, taking copy of existing icon. */ 345 UIActionPolymorphicMenu(UIActionPool *pParent, 346 const QIcon &icon); 347 348 /** Destructor. */ 349 ~UIActionPolymorphicMenu(); 350 351 /** Defines whether tool-tip should be shown. */ 352 void setShowToolTip(bool fShowToolTip); 353 354 /** Show menu. */ 355 void showMenu(); 356 /** Hide menu. */ 357 void hideMenu(); 358 359 private: 360 361 /** Prepare routine. */ 362 void prepare(); 363 364 /** Updates action text accordingly. */ 365 virtual void updateText(); 366 367 private: 368 369 /** Holds the menu instance. */ 370 UIMenu *m_pMenu; 314 371 /** Holds current action state. */ 315 372 int m_iState;
Note:
See TracChangeset
for help on using the changeset viewer.