VirtualBox

Changeset 108210 in vbox for trunk/src


Ignore:
Timestamp:
Feb 13, 2025 4:55:05 PM (3 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
167530
Message:

FE/Qt: bugref:10814: VBox Manager / Tools pane: Wiping out unnecessary stuff from high-level interface; Moving that logic into model/view interconnections; There will be more.

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

Legend:

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

    r108208 r108210  
    129129
    130130    /* Prepare view: */
    131     m_pToolsView = new UIToolsView(this, isPopup());
     131    m_pToolsView = new UIToolsView(this, m_pToolsModel, isPopup());
    132132    if (m_pToolsView)
    133133    {
     
    148148    connect(m_pToolsModel, &UIToolsModel::sigSelectionChanged,
    149149            this, &UITools::sigSelectionChanged);
    150     connect(m_pToolsModel, &UIToolsModel::sigItemMinimumWidthHintChanged,
    151             m_pToolsView, &UIToolsView::sltMinimumWidthHintChanged);
    152     connect(m_pToolsModel, &UIToolsModel::sigItemMinimumHeightHintChanged,
    153             m_pToolsView, &UIToolsView::sltMinimumHeightHintChanged);
    154 
    155     /* View connections: */
    156     connect(m_pToolsView, &UIToolsView::sigResized,
    157             m_pToolsModel, &UIToolsModel::sltHandleViewResized);
    158150}
    159151
     
    170162    disconnect(m_pToolsModel, &UIToolsModel::sigSelectionChanged,
    171163               this, &UITools::sigSelectionChanged);
    172     disconnect(m_pToolsModel, &UIToolsModel::sigItemMinimumWidthHintChanged,
    173                m_pToolsView, &UIToolsView::sltMinimumWidthHintChanged);
    174     disconnect(m_pToolsModel, &UIToolsModel::sigItemMinimumHeightHintChanged,
    175                m_pToolsView, &UIToolsView::sltMinimumHeightHintChanged);
    176 
    177     /* View connections: */
    178     disconnect(m_pToolsView, &UIToolsView::sigResized,
    179                m_pToolsModel, &UIToolsModel::sltHandleViewResized);
    180164}
    181165
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UITools.h

    r108208 r108210  
    7979        bool isPopup() const { return m_fPopup; }
    8080
    81         /** Return the Tools-model instance. */
    82         UIToolsModel *model() const { return m_pToolsModel; }
    8381        /** Return the Tools-view instance. */
    8482        UIToolsView *view() const { return m_pToolsView; }
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.h

    r108200 r108210  
    157157
    158158public slots:
    159 
    160     /** @name General stuff.
    161       * @{ */
    162         /** Handles Tools-view resize. */
    163         void sltHandleViewResized() { updateLayout(); }
    164     /** @} */
    165159
    166160    /** @name Children stuff.
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsView.cpp

    r108209 r108210  
    7070
    7171        /* Return the number of children: */
    72         return view()->tools()->model()->items().size();
     72        return view()->model()->items().size();
    7373    }
    7474
     
    8282
    8383        /* Return the child with the passed iIndex: */
    84         return QAccessible::queryAccessibleInterface(view()->tools()->model()->items().at(iIndex));
     84        return QAccessible::queryAccessibleInterface(view()->model()->items().at(iIndex));
    8585    }
    8686
     
    9494
    9595        /* Return the index of passed model child: */
    96         return view()->tools()->model()->items().indexOf(qobject_cast<UIToolsItem*>(pChild->object()));
     96        return view()->model()->items().indexOf(qobject_cast<UIToolsItem*>(pChild->object()));
    9797    }
    9898
     
    115115
    116116
    117 UIToolsView::UIToolsView(UITools *pParent, bool fPopup)
     117UIToolsView::UIToolsView(QWidget *pParent, UIToolsModel *pModel, bool fPopup)
    118118    : QIGraphicsView(pParent)
    119     , m_pTools(pParent)
     119    , m_pModel(pModel)
    120120    , m_fPopup(fPopup)
    121121    , m_iMinimumWidthHint(0)
     
    123123{
    124124    prepare();
     125}
     126
     127UIToolsView::~UIToolsView()
     128{
     129    cleanup();
    125130}
    126131
     
    266271    connect(&translationEventListener(), &UITranslationEventListener::sigRetranslateUI,
    267272            this, &UIToolsView::sltRetranslateUI);
     273
     274    /* Model connections: */
     275    connect(model(), &UIToolsModel::sigItemMinimumWidthHintChanged,
     276            this, &UIToolsView::sltMinimumWidthHintChanged);
     277    connect(model(), &UIToolsModel::sigItemMinimumHeightHintChanged,
     278            this, &UIToolsView::sltMinimumHeightHintChanged);
     279}
     280
     281void UIToolsView::cleanupConnections()
     282{
     283    /* Model connections: */
     284    disconnect(model(), &UIToolsModel::sigItemMinimumWidthHintChanged,
     285               this, &UIToolsView::sltMinimumWidthHintChanged);
     286    disconnect(model(), &UIToolsModel::sigItemMinimumHeightHintChanged,
     287               this, &UIToolsView::sltMinimumHeightHintChanged);
     288}
     289
     290void UIToolsView::cleanup()
     291{
     292    /* Cleanup everything: */
     293    cleanupConnections();
    268294}
    269295
     
    272298    /* Call to base-class: */
    273299    QIGraphicsView::resizeEvent(pEvent);
    274     /* Notify listeners: */
    275     emit sigResized();
     300
     301    /* Update model's layout: */
     302    model()->updateLayout();
    276303}
    277304
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsView.h

    r108209 r108210  
    3636
    3737/* Forward declarations: */
    38 class UITools;
     38class UIToolsModel;
    3939
    4040/** QIGraphicsView extension used as VM Tools-pane view. */
     
    4343    Q_OBJECT;
    4444
    45 signals:
    46 
    47     /** Notifies listeners about resize. */
    48     void sigResized();
    49 
    5045public:
    5146
    5247    /** Constructs a Tools-view passing @a pParent to the base-class.
    53       * @param  pParent  Brings the Tools-container to embed into.
    54       * @param  fPopup   Brings whether tools represented as popup. */
    55     UIToolsView(UITools *pParent, bool fPopup);
     48      * @param  pModel  Brings the tools model reference.
     49      * @param  fPopup  Brings whether tools represented as popup. */
     50    UIToolsView(QWidget *pParent, UIToolsModel *pModel, bool fPopup);
     51    /** Destructs a Tools-view. */
     52    virtual ~UIToolsView();
    5653
    5754    /** @name General stuff.
    5855      * @{ */
    59         /** Returns the Tools reference. */
    60         UITools *tools() const { return m_pTools; }
     56        /** Returns the tools model reference. */
     57        UIToolsModel *model() const { return m_pModel; }
    6158    /** @} */
    6259
     
    9996        /** Prepares connections. */
    10097        void prepareConnections();
     98
     99        /** Cleanups connections. */
     100        void cleanupConnections();
     101        /** Cleanups all. */
     102        void cleanup();
    101103    /** @} */
    102104
     
    117119    /** @name General stuff.
    118120      * @{ */
    119         /** Holds the Tools-pane reference. */
    120         UITools *m_pTools;
     121        /** Holds the tools model reference. */
     122        UIToolsModel *m_pModel;
    121123
    122124        /** Holds whether tools represented as popup. */
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