VirtualBox

Changeset 108687 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Mar 21, 2025 12:35:45 PM (4 weeks ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
168103
Message:

FE/Qt: bugref:10814: VBox Manager / Chooser-pane: Wipe out tool-button support.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser
Files:
7 edited

Legend:

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

    r108571 r108687  
    55
    66/*
    7  * Copyright (C) 2012-2024 Oracle and/or its affiliates.
     7 * Copyright (C) 2012-2025 Oracle and/or its affiliates.
    88 *
    99 * This file is part of VirtualBox base platform packages, as
     
    210210    AssertPtrReturnVoid(model());
    211211    model()->setCurrentMachineItem(uId);
    212 }
    213 
    214 void UIChooser::sltToolMenuRequested(const QPoint &position, UIVirtualMachineItem *pItem)
    215 {
    216     /* Translate scene coordinates to global one: */
    217     AssertPtrReturnVoid(view());
    218     emit sigToolMenuRequested(mapToGlobal(view()->mapFromScene(position)), pItem);
    219212}
    220213
     
    277270
    278271    /* Chooser-model connections: */
    279     connect(model(), &UIChooserModel::sigToolMenuRequested,
    280             this, &UIChooser::sltToolMenuRequested);
    281272    connect(model(), &UIChooserModel::sigSelectionChanged,
    282273            this, &UIChooser::sigSelectionChanged);
     
    327318
    328319    /* Chooser-model connections: */
    329     disconnect(model(), &UIChooserModel::sigToolMenuRequested,
    330                this, &UIChooser::sltToolMenuRequested);
    331320    disconnect(model(), &UIChooserModel::sigSelectionChanged,
    332321               this, &UIChooser::sigSelectionChanged);
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooser.h

    r108571 r108687  
    55
    66/*
    7  * Copyright (C) 2012-2024 Oracle and/or its affiliates.
     7 * Copyright (C) 2012-2025 Oracle and/or its affiliates.
    88 *
    99 * This file is part of VirtualBox base platform packages, as
     
    7171        /** Notifies listeners about cloud update state change. */
    7272        void sigCloudUpdateStateChanged();
    73     /** @} */
    74 
    75     /** @name Tool stuff.
    76       * @{ */
    77         /** Notifies listeners about tool popup-menu request for certain @a position and optionally machine @a pItem. */
    78         void sigToolMenuRequested(const QPoint &position, UIVirtualMachineItem *pItem);
    7973    /** @} */
    8074
     
    198192    /** @} */
    199193
    200 private slots:
    201 
    202     /** @name General stuff.
    203       * @{ */
    204         /** Handles signal about tool popup-menu request for certain @a position and optionally machine @a pItem. */
    205         void sltToolMenuRequested(const QPoint &position, UIVirtualMachineItem *pItem);
    206     /** @} */
    207 
    208194private:
    209195
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserHandlerMouse.cpp

    r108157 r108687  
    55
    66/*
    7  * Copyright (C) 2012-2024 Oracle and/or its affiliates.
     7 * Copyright (C) 2012-2025 Oracle and/or its affiliates.
    88 *
    99 * This file is part of VirtualBox base platform packages, as
     
    7979                /* Or a machine one? */
    8080                else if (UIChooserItemMachine *pMachineItem = qgraphicsitem_cast<UIChooserItemMachine*>(pItemUnderMouse))
    81                 {
    82                     const QPoint itemCursorPos = pMachineItem->mapFromScene(scenePos).toPoint();
    83                     if (   pMachineItem->isToolButtonArea(itemCursorPos)
    84                         && (   model()->firstSelectedItem() == pMachineItem
    85                             || pMachineItem->isHovered()))
    86                     {
    87                         model()->handleToolButtonClick(pMachineItem);
    88                         if (model()->firstSelectedItem() != pMachineItem)
    89                             pClickedItem = pMachineItem;
    90                     }
    91                     else
    92                         pClickedItem = pMachineItem;
    93                 }
     81                    pClickedItem = pMachineItem;
    9482                /* If we had clicked one of required item types: */
    9583                if (pClickedItem && !pClickedItem->isRoot())
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.cpp

    r108664 r108687  
    55
    66/*
    7  * Copyright (C) 2012-2024 Oracle and/or its affiliates.
     7 * Copyright (C) 2012-2025 Oracle and/or its affiliates.
    88 *
    99 * This file is part of VirtualBox base platform packages, as
     
    115115           && enmState != KMachineState_Aborted
    116116           && enmState != KMachineState_AbortedSaved;
    117 }
    118 
    119 bool UIChooserItemMachine::isToolButtonArea(const QPoint &position, int iMarginMultiplier /* = 1 */) const
    120 {
    121     const int iFullWidth = geometry().width();
    122     const int iFullHeight = geometry().height();
    123     const int iMarginHR = data(MachineItemData_MarginHR).toInt();
    124     const int iButtonMargin = data(MachineItemData_ButtonMargin).toInt();
    125     const int iToolPixmapX = iFullWidth - iMarginHR - 1 - m_toolPixmap.width() / m_toolPixmap.devicePixelRatio();
    126     const int iToolPixmapY = (iFullHeight - m_toolPixmap.height() / m_toolPixmap.devicePixelRatio()) / 2;
    127     QRect rect = QRect(iToolPixmapX,
    128                        iToolPixmapY,
    129                        m_toolPixmap.width() / m_toolPixmap.devicePixelRatio(),
    130                        m_toolPixmap.height() / m_toolPixmap.devicePixelRatio());
    131     rect.adjust(-iMarginMultiplier * iButtonMargin, -iMarginMultiplier * iButtonMargin,
    132                  iMarginMultiplier * iButtonMargin,  iMarginMultiplier * iButtonMargin);
    133     return rect.contains(position);
    134117}
    135118
     
    343326    const int iMajorSpacing = data(MachineItemData_MajorSpacing).toInt();
    344327    const int iMinorSpacing = data(MachineItemData_MinorSpacing).toInt();
    345     const int iButtonMargin = data(MachineItemData_ButtonMargin).toInt();
    346328
    347329    /* Calculating proposed width: */
     
    363345    int iMachineItemWidth = m_pixmapSize.width() +
    364346                            iMajorSpacing +
    365                             iMiddleColumnWidth +
    366                             iMajorSpacing +
    367                             m_toolPixmapSize.width() + 2 * iButtonMargin;
     347                            iMiddleColumnWidth;
    368348    iProposedWidth += iMachineItemWidth;
    369349
     
    377357    const int iMarginV = data(MachineItemData_MarginV).toInt();
    378358    const int iMachineItemTextSpacing = data(MachineItemData_TextSpacing).toInt();
    379     const int iButtonMargin = data(MachineItemData_ButtonMargin).toInt();
    380359
    381360    /* Calculating proposed height: */
     
    391370                              iBottomLineHeight;
    392371    QList<int> heights;
    393     heights << m_pixmapSize.height() << iMiddleColumnHeight << m_toolPixmapSize.height() + 2 * iButtonMargin;
     372    heights << m_pixmapSize.height() << iMiddleColumnHeight;
    394373    int iMaxHeight = 0;
    395374    foreach (int iHeight, heights)
     
    656635        case MachineItemData_MinorSpacing: return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 4;
    657636        case MachineItemData_TextSpacing:  return 0;
    658         case MachineItemData_ButtonMargin: return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 4;
    659637
    660638        /* Default: */
     
    747725    const int iMarginHR = data(MachineItemData_MarginHR).toInt();
    748726    const int iMajorSpacing = data(MachineItemData_MajorSpacing).toInt();
    749     const int iButtonMargin = data(MachineItemData_ButtonMargin).toInt();
    750727
    751728    /* Calculate new maximum width for the first row: */
     
    754731    iFirstRowMaximumWidth -= m_pixmapSize.width(); /* left pixmap width */
    755732    iFirstRowMaximumWidth -= iMajorSpacing; /* spacing between left pixmap and name(s) */
    756     if (   model()->firstSelectedItem() == this
    757         || isHovered())
    758     {
    759         iFirstRowMaximumWidth -= iMajorSpacing; /* spacing between name(s) and right pixmap */
    760         iFirstRowMaximumWidth -= m_toolPixmapSize.width() + 2 * iButtonMargin; /* right pixmap width */
    761     }
    762733    iFirstRowMaximumWidth -= iMarginHR; /* right margin */
    763734
     
    10971068{
    10981069    /* Prepare variables: */
    1099     // const int iFullWidth = rectangle.width();
    11001070    const int iFullHeight = rectangle.height();
    11011071    const int iMarginHL = data(MachineItemData_MarginHL).toInt();
    1102     // const int iMarginHR = data(MachineItemData_MarginHR).toInt();
    11031072    const int iMajorSpacing = data(MachineItemData_MajorSpacing).toInt();
    11041073    const int iMinorSpacing = data(MachineItemData_MinorSpacing).toInt();
    11051074    const int iMachineItemTextSpacing = data(MachineItemData_TextSpacing).toInt();
    1106     // const int iButtonMargin = data(MachineItemData_ButtonMargin).toInt();
    11071075
    11081076    /* Selected or hovered item foreground: */
     
    12431211        }
    12441212    }
    1245 
    1246 #if 0
    1247     /* Calculate indents: */
    1248     QGraphicsView *pView = model()->scene()->views().first();
    1249     const QPointF sceneCursorPosition = pView->mapToScene(pView->mapFromGlobal(QCursor::pos()));
    1250     const QPoint itemCursorPosition = mapFromScene(sceneCursorPosition).toPoint();
    1251     int iRightColumnIndent = iFullWidth - iMarginHR - 1 - m_toolPixmap.width() / m_toolPixmap.devicePixelRatio();
    1252 
    1253     /* Paint right column: */
    1254     if (   model()->firstSelectedItem() == this
    1255         || isHovered())
    1256     {
    1257         /* Prepare variables: */
    1258         const int iToolPixmapX = iRightColumnIndent;
    1259         const int iToolPixmapY = (iFullHeight - m_toolPixmap.height() / m_toolPixmap.devicePixelRatio()) / 2;
    1260         QRect toolButtonRectangle = QRect(iToolPixmapX,
    1261                                           iToolPixmapY,
    1262                                           m_toolPixmap.width() / m_toolPixmap.devicePixelRatio(),
    1263                                           m_toolPixmap.height() / m_toolPixmap.devicePixelRatio());
    1264         toolButtonRectangle.adjust(- iButtonMargin, -iButtonMargin, iButtonMargin, iButtonMargin);
    1265 
    1266         /* Paint tool button: */
    1267         if (   isHovered()
    1268             && isToolButtonArea(itemCursorPosition, 4))
    1269             paintFlatButton(/* Painter: */
    1270                             pPainter,
    1271                             /* Button rectangle: */
    1272                             toolButtonRectangle,
    1273                             /* Cursor position: */
    1274                             itemCursorPosition);
    1275 
    1276         /* Paint pixmap: */
    1277         paintPixmap(/* Painter: */
    1278                     pPainter,
    1279                     /* Point to paint in: */
    1280                     QPoint(iToolPixmapX, iToolPixmapY),
    1281                     /* Pixmap to paint: */
    1282                     m_toolPixmap);
    1283     }
    1284 #endif
    12851213}
    12861214
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemMachine.h

    r108147 r108687  
    55
    66/*
    7  * Copyright (C) 2012-2024 Oracle and/or its affiliates.
     7 * Copyright (C) 2012-2025 Oracle and/or its affiliates.
    88 *
    99 * This file is part of VirtualBox base platform packages, as
     
    7575        /** Returns whether VM is locked. */
    7676        bool isLockedMachine() const;
    77 
    78         /** Returns whether passed @a position belongs to tool button area. */
    79         bool isToolButtonArea(const QPoint &position, int iMarginMultiplier = 1) const;
    8077    /** @} */
    8178
     
    208205        MachineItemData_MinorSpacing,
    209206        MachineItemData_TextSpacing,
    210         MachineItemData_ButtonMargin,
    211207    };
    212208
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp

    r108572 r108687  
    55
    66/*
    7  * Copyright (C) 2012-2024 Oracle and/or its affiliates.
     7 * Copyright (C) 2012-2025 Oracle and/or its affiliates.
    88 *
    99 * This file is part of VirtualBox base platform packages, as
     
    117117{
    118118    return scene() ? scene()->itemAt(position, deviceTransform) : 0;
    119 }
    120 
    121 void UIChooserModel::handleToolButtonClick(UIChooserItem *pItem)
    122 {
    123     emit sigToolMenuRequested(pItem->mapToScene(QPointF(pItem->size().width(), 0)).toPoint(),
    124                               pItem->type() == UIChooserNodeType_Machine ? pItem->toMachineItem()->cache() : 0);
    125119}
    126120
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.h

    r108572 r108687  
    55
    66/*
    7  * Copyright (C) 2012-2024 Oracle and/or its affiliates.
     7 * Copyright (C) 2012-2025 Oracle and/or its affiliates.
    88 *
    99 * This file is part of VirtualBox base platform packages, as
     
    6464signals:
    6565
    66     /** @name Tool stuff.
    67       * @{ */
    68         /** Notifies listeners about tool popup-menu request for certain @a position and optionally machine @a pItem. */
    69         void sigToolMenuRequested(const QPoint &position, UIVirtualMachineItem *pItem);
    70     /** @} */
    71 
    7266    /** @name Selection stuff.
    7367      * @{ */
     
    118112        /** Returns item at @a position, taking into account possible @a deviceTransform. */
    119113        QGraphicsItem *itemAt(const QPointF &position, const QTransform &deviceTransform = QTransform()) const;
    120 
    121         /** Handles tool button click for certain @a pItem. */
    122         void handleToolButtonClick(UIChooserItem *pItem);
    123114    /** @} */
    124115
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette