Changeset 77366 in vbox
- Timestamp:
- Feb 19, 2019 4:00:39 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 128908
- Location:
- trunk/src/VBox/Frontends/VirtualBox
- Files:
-
- 11 edited
- 4 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/VirtualBox1.qrc
r77215 r77366 146 146 <file alias="extension_pack_uninstall_disabled_16px.png">images/extension_pack_uninstall_disabled_16px.png</file> 147 147 <file alias="extension_pack_warning_16px.png">images/extension_pack_warning_16px.png</file> 148 <file alias="favorite_24px.png">images/favorite_24px.png</file> 149 <file alias="favorite_pressed_24px.png">images/favorite_pressed_24px.png</file> 148 150 <file alias="fd_16px.png">images/fd_16px.png</file> 149 151 <file alias="fd_add_16px.png">images/fd_add_16px.png</file> -
trunk/src/VBox/Frontends/VirtualBox/VirtualBox1_x2.qrc
r77215 r77366 146 146 <file alias="extension_pack_uninstall_disabled_16px_x2.png">images/x2/extension_pack_uninstall_disabled_16px_x2.png</file> 147 147 <file alias="extension_pack_warning_16px_x2.png">images/x2/extension_pack_warning_16px_x2.png</file> 148 <file alias="favorite_24px_x2.png">images/x2/favorite_24px_x2.png</file> 149 <file alias="favorite_pressed_24px_x2.png">images/x2/favorite_pressed_24px_x2.png</file> 148 150 <file alias="fd_16px_x2.png">images/x2/fd_16px_x2.png</file> 149 151 <file alias="fd_add_16px_x2.png">images/x2/fd_add_16px_x2.png</file> -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserHandlerMouse.cpp
r77364 r77366 80 80 pClickedItem = pGlobalItem; 81 81 } 82 else 83 if ( pGlobalItem->isPinButtonArea(itemCursorPos) 84 && ( model()->currentItem() == pGlobalItem 85 || pGlobalItem->isHovered())) 86 model()->handlePinButtonClick(pGlobalItem); 82 87 else 83 88 pClickedItem = pGlobalItem; -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.cpp
r77346 r77366 291 291 } 292 292 293 void UIChooserItem::setFavorite(bool fFavorite) 294 { 295 m_fFavorite = fFavorite; 296 if (m_pParent) 297 m_pParent->toGroupItem()->updateFavorites(); 298 } 299 293 300 UIChooserItemGroup *UIChooserItem::toGroupItem() 294 301 { -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.h
r77346 r77366 118 118 /** Returns whether item is temporary. */ 119 119 bool isTemporary() const { return m_fTemporary; } 120 121 /** Defines whether item is @a fFavorite. */ 122 virtual void setFavorite(bool fFavorite); 120 123 121 124 /** Casts item to group one. */ -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.cpp
r77365 r77366 76 76 } 77 77 78 void UIChooserItemGlobal::setFavorite(bool fFavorite) 79 { 80 /* Call to base-class: */ 81 UIChooserItem::setFavorite(fFavorite); 82 83 /* Update pin-pixmap: */ 84 updatePinPixmap(); 85 } 86 78 87 bool UIChooserItemGlobal::isToolButtonArea(const QPoint &position, int iMarginMultiplier /* = 1 */) const 79 88 { … … 94 103 } 95 104 105 bool UIChooserItemGlobal::isPinButtonArea(const QPoint &position, int iMarginMultiplier /* = 1 */) const 106 { 107 const int iFullWidth = geometry().width(); 108 const int iFullHeight = geometry().height(); 109 const int iMargin = data(GlobalItemData_Margin).toInt(); 110 const int iSpacing = data(GlobalItemData_Spacing).toInt(); 111 const int iButtonMargin = data(GlobalItemData_ButtonMargin).toInt(); 112 const int iPinPixmapX = iFullWidth - iMargin - 1 113 - m_toolPixmap.width() / m_toolPixmap.devicePixelRatio() 114 - iSpacing 115 - m_pinPixmap.width() / m_pinPixmap.devicePixelRatio(); 116 const int iPinPixmapY = (iFullHeight - m_pinPixmap.height() / m_pinPixmap.devicePixelRatio()) / 2; 117 QRect rect = QRect(iPinPixmapX, 118 iPinPixmapY, 119 m_pinPixmap.width() / m_pinPixmap.devicePixelRatio(), 120 m_pinPixmap.height() / m_pinPixmap.devicePixelRatio()); 121 rect.adjust(-iMarginMultiplier * iButtonMargin, -iMarginMultiplier * iButtonMargin, 122 iMarginMultiplier * iButtonMargin, iMarginMultiplier * iButtonMargin); 123 return rect.contains(position); 124 } 125 96 126 void UIChooserItemGlobal::setHeightHint(int iHint) 97 127 { … … 295 325 m_iMinimumNameWidth + 296 326 iSpacing + 297 m_toolPixmapSize.width()); 327 m_toolPixmapSize.width() + 328 iSpacing + 329 m_pinPixmapSize.width()); 298 330 299 331 /* Return result: */ … … 312 344 int iContentHeight = qMax(m_pixmapSize.height(), m_visibleNameSize.height()); 313 345 iContentHeight = qMax(iContentHeight, m_toolPixmapSize.height()); 346 iContentHeight = qMax(iContentHeight, m_pinPixmapSize.height()); 314 347 315 348 /* If we have height hint: */ … … 454 487 /* Update tool-pixmap: */ 455 488 updateToolPixmap(); 489 /* Update pin-pixmap: */ 490 updatePinPixmap(); 456 491 } 457 492 … … 498 533 { 499 534 m_toolPixmap = toolPixmap; 535 update(); 536 } 537 } 538 539 void UIChooserItemGlobal::updatePinPixmap() 540 { 541 /* Determine icon metric: */ 542 const int iIconMetric = QApplication::style()->pixelMetric(QStyle::PM_LargeIconSize) * .75; 543 /* Create new tool-pixmap and tool-pixmap size: */ 544 const QIcon pinIcon = UIIconPool::iconSet(isFavorite() ? ":/favorite_pressed_24px.png" : ":/favorite_24px.png"); 545 AssertReturnVoid(!pinIcon.isNull()); 546 const QSize pinPixmapSize = QSize(iIconMetric, iIconMetric); 547 const QPixmap pinPixmap = pinIcon.pixmap(gpManager->windowHandle(), pinPixmapSize); 548 /* Update linked values: */ 549 if (m_pinPixmapSize != pinPixmapSize) 550 { 551 m_pinPixmapSize = pinPixmapSize; 552 updateGeometry(); 553 } 554 if (m_pinPixmap.toImage() != pinPixmap.toImage()) 555 { 556 m_pinPixmap = pinPixmap; 500 557 update(); 501 558 } … … 808 865 m_toolPixmap); 809 866 } 810 } 867 868 /* Calculate indents: */ 869 iRightColumnIndent = iRightColumnIndent - m_toolPixmap.width() / m_toolPixmap.devicePixelRatio() - iSpacing; 870 871 /* Paint right column: */ 872 if ( model()->currentItem() == this 873 || isHovered()) 874 { 875 /* Prepare variables: */ 876 const int iPinPixmapX = iRightColumnIndent; 877 const int iPinPixmapY = (iFullHeight - m_pinPixmap.height() / m_pinPixmap.devicePixelRatio()) / 2; 878 QRect pinButtonRectangle = QRect(iPinPixmapX, 879 iPinPixmapY, 880 m_pinPixmap.width() / m_pinPixmap.devicePixelRatio(), 881 m_pinPixmap.height() / m_pinPixmap.devicePixelRatio()); 882 pinButtonRectangle.adjust(- iButtonMargin, -iButtonMargin, iButtonMargin, iButtonMargin); 883 884 /* Paint pin button: */ 885 if ( isHovered() 886 && isPinButtonArea(itemCursorPosition, 4)) 887 paintFlatButton(/* Painter: */ 888 pPainter, 889 /* Button rectangle: */ 890 pinButtonRectangle, 891 /* Cursor position: */ 892 itemCursorPosition); 893 894 /* Paint pixmap: */ 895 paintPixmap(/* Painter: */ 896 pPainter, 897 /* Point to paint in: */ 898 QPoint(iPinPixmapX, iPinPixmapY), 899 /* Pixmap to paint: */ 900 m_pinPixmap); 901 } 902 } -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGlobal.h
r77364 r77366 51 51 /** @name Item stuff. 52 52 * @{ */ 53 /** Defines whether item is @a fFavorite. */ 54 virtual void setFavorite(bool fFavorite) /* override */; 55 53 56 /** Returns whether passed @a position belongs to tool button area. */ 54 57 bool isToolButtonArea(const QPoint &position, int iMarginMultiplier = 1) const; 58 /** Returns whether passed @a position belongs to pin button area. */ 59 bool isPinButtonArea(const QPoint &position, int iMarginMultiplier = 1) const; 55 60 /** @} */ 56 61 … … 213 218 /** Updates tool pixmap. */ 214 219 void updateToolPixmap(); 220 /** Updates pin pixmap. */ 221 void updatePinPixmap(); 215 222 /** Updates minimum name width. */ 216 223 void updateMinimumNameWidth(); … … 253 260 /** Holds item tool pixmap. */ 254 261 QPixmap m_toolPixmap; 262 /** Holds item pin pixmap. */ 263 QPixmap m_pinPixmap; 255 264 256 265 /** Holds item name. */ … … 271 280 /** Holds tool pixmap size. */ 272 281 QSize m_toolPixmapSize; 282 /** Holds pin pixmap size. */ 283 QSize m_pinPixmapSize; 273 284 /** Holds visible name size. */ 274 285 QSize m_visibleNameSize; -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp
r77346 r77366 312 312 } 313 313 314 void UIChooserItemGroup::updateFavorites() 315 { 316 /* Global items only for now, move items to corresponding layout: */ 317 foreach (UIChooserItem *pItem, items(UIChooserItemType_Global)) 318 if (pItem->isFavorite()) 319 { 320 for (int iIndex = 0; iIndex < m_pLayoutGlobal->count(); ++iIndex) 321 if (m_pLayoutGlobal->itemAt(iIndex) == pItem) 322 m_pLayoutFavorite->addItem(pItem); 323 } 324 else 325 { 326 for (int iIndex = 0; iIndex < m_pLayoutFavorite->count(); ++iIndex) 327 if (m_pLayoutFavorite->itemAt(iIndex) == pItem) 328 m_pLayoutGlobal->addItem(pItem); 329 } 330 331 /* Update/activate children layout: */ 332 m_pLayout->updateGeometry(); 333 m_pLayout->activate(); 334 335 /* Relayout model: */ 336 model()->updateLayout(); 337 } 338 314 339 void UIChooserItemGroup::retranslateUi() 315 340 { -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.h
r77346 r77366 102 102 /** Makes sure passed child @a pItem is visible. */ 103 103 virtual void makeSureItemIsVisible(UIChooserItem *pItem) /* override */; 104 /** @} */ 105 106 /** @name Children stuff. 107 * @{ */ 108 /** Updates positions of favorite items. */ 109 void updateFavorites(); 104 110 /** @} */ 105 111 -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp
r77347 r77366 162 162 case UIChooserItemType_Machine: 163 163 emit sigToolMenuRequested(UIToolClass_Machine, pItem->geometry().topRight().toPoint()); 164 break; 165 default: 166 break; 167 } 168 } 169 170 void UIChooserModel::handlePinButtonClick(UIChooserItem *pItem) 171 { 172 switch (pItem->type()) 173 { 174 case UIChooserItemType_Global: 175 pItem->setFavorite(!pItem->isFavorite()); 164 176 break; 165 177 default: -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.h
r77347 r77366 133 133 /** Handles tool button click for certain @a pItem. */ 134 134 void handleToolButtonClick(UIChooserItem *pItem); 135 /** Handles pin button click for certain @a pItem. */ 136 void handlePinButtonClick(UIChooserItem *pItem); 135 137 /** @} */ 136 138
Note:
See TracChangeset
for help on using the changeset viewer.