VirtualBox

Changeset 108967 in vbox


Ignore:
Timestamp:
Apr 14, 2025 6:06:29 PM (6 days ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
168487
Message:

FE/Qt: bugref:10814: VBox Manager / Tools pane model: Support for horizontal layout; This still have to be handled on layout side.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/manager/tools
Files:
3 edited

Legend:

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

    r108966 r108967  
    125125{
    126126    /* Prepare model: */
    127     m_pToolsModel = new UIToolsModel(this, m_pActionPool);
     127    m_pToolsModel = new UIToolsModel(this, m_enmClass, m_pActionPool);
    128128    if (m_pToolsModel)
    129129        prepareView();
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.cpp

    r108770 r108967  
    363363*********************************************************************************************************************************/
    364364
    365 UIToolsModel::UIToolsModel(QObject *pParent, UIActionPool *pActionPool)
     365UIToolsModel::UIToolsModel(QObject *pParent, UIToolClass enmClass, UIActionPool *pActionPool)
    366366    : QObject(pParent)
     367    , m_enmClass(enmClass)
    367368    , m_pActionPool(pActionPool)
     369    , m_enmAlignment(m_enmClass == UIToolClass_Machine ? Qt::Horizontal : Qt::Vertical)
    368370    , m_pView(0)
    369371    , m_pScene(0)
     
    754756    /* Prepare variables: */
    755757    const int iMargin = data(ToolsModelData_Margin).toInt();
     758    const int iSpacing = data(ToolsModelData_Spacing).toInt();
    756759
    757760    /* Calculate maximum horizontal width: */
    758761    int iMinimumWidthHint = 0;
    759762    iMinimumWidthHint += 2 * iMargin;
    760     foreach (UIToolsItem *pItem, items())
    761         iMinimumWidthHint = qMax(iMinimumWidthHint, pItem->minimumWidthHint());
     763
     764    switch (m_enmAlignment)
     765    {
     766        case Qt::Vertical:
     767            foreach (UIToolsItem *pItem, items())
     768                iMinimumWidthHint = qMax(iMinimumWidthHint, pItem->minimumWidthHint());
     769            break;
     770        case Qt::Horizontal:
     771            foreach (UIToolsItem *pItem, items())
     772                if (pItem->isVisible())
     773                    iMinimumWidthHint += (pItem->minimumWidthHint() + iSpacing);
     774            iMinimumWidthHint -= iSpacing;
     775            break;
     776    }
    762777
    763778    /* Notify listeners: */
     
    774789    int iMinimumHeightHint = 0;
    775790    iMinimumHeightHint += 2 * iMargin;
    776     foreach (UIToolsItem *pItem, items())
    777         if (pItem->isVisible())
    778             iMinimumHeightHint += (pItem->minimumHeightHint() + iSpacing);
    779     iMinimumHeightHint -= iSpacing;
     791
     792    switch (m_enmAlignment)
     793    {
     794        case Qt::Vertical:
     795            foreach (UIToolsItem *pItem, items())
     796                if (pItem->isVisible())
     797                    iMinimumHeightHint += (pItem->minimumHeightHint() + iSpacing);
     798            iMinimumHeightHint -= iSpacing;
     799            break;
     800        case Qt::Horizontal:
     801            foreach (UIToolsItem *pItem, items())
     802                iMinimumHeightHint = qMax(iMinimumHeightHint, pItem->minimumHeightHint());
     803            break;
     804    }
    780805
    781806    /* Notify listeners: */
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.h

    r108691 r108967  
    8484
    8585    /** Constructs Tools-model passing @a pParent to the base-class.
     86      * @param  enmClass     Brings the tool class.
    8687      * @param  pActionPool  Brings the action-pool reference. */
    87     UIToolsModel(QObject *pParent, UIActionPool *pActionPool);
     88    UIToolsModel(QObject *pParent,
     89                 UIToolClass enmClass,
     90                 UIActionPool *pActionPool);
    8891    /** Destructs Tools-model. */
    8992    virtual ~UIToolsModel() RT_OVERRIDE;
     
    237240    /** @name General stuff.
    238241      * @{ */
     242        /** Holds the tool class. */
     243        UIToolClass  m_enmClass;
     244
    239245        /** Holds the action-pool reference. */
    240246        UIActionPool *m_pActionPool;
     247
     248        /** Holds the layout alignment. */
     249        Qt::Alignment  m_enmAlignment;
    241250
    242251        /** Holds the view reference. */
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