VirtualBox

Changeset 88881 in vbox


Ignore:
Timestamp:
May 5, 2021 4:02:32 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
144216
Message:

FE/Qt: bugref:9510. Tracking the data point under mouse cursor

Location:
trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitor.cpp

    r88754 r88881  
    101101protected:
    102102
     103    virtual void resizeEvent(QResizeEvent *pEvent) /* override */;
     104    virtual void mouseMoveEvent(QMouseEvent *pEvent) /* override */;
    103105    virtual void paintEvent(QPaintEvent *pEvent) /* override */;
    104106    virtual QSize minimumSizeHint() const /* override */;
     
    137139    int m_iPieChartRadius;
    138140    int m_iPieChartSpacing;
     141    float m_fPixelPerDataPoint;
     142    /** is set to -1 if mouse cursor is not over a data point*/
     143    int m_iDataIndexUnderCursor;
    139144    /** For some chart it is not possible to have a pie chart, Then We dont present the
    140145      * option to show it to user. see m_fIsPieChartAllowed. */
     
    167172    , m_size(QSize(50, 50))
    168173    , m_iOverlayAlpha(80)
     174    , m_fPixelPerDataPoint(0.f)
     175    , m_iDataIndexUnderCursor(-1)
    169176    , m_fIsPieChartAllowed(false)
    170177    , m_fShowPieChart(true)
     
    177184    m_axisFont.setPixelSize(14);
    178185    setContextMenuPolicy(Qt::CustomContextMenu);
     186    setMouseTracking(true);
    179187    connect(this, &UIChart::customContextMenuRequested,
    180188            this, &UIChart::sltCreateContextMenu);
     
    318326    m_strAreaChartToggleActionLabel = QApplication::translate("UIVMInformationDialog", "Draw Area Chart");
    319327    update();
     328}
     329
     330void UIChart::resizeEvent(QResizeEvent *pEvent)
     331{
     332    int iWidth = width() - m_iMarginLeft - m_iMarginRight;
     333    if (g_iMaximumQueueSize > 0)
     334        m_fPixelPerDataPoint = iWidth / (float)g_iMaximumQueueSize;
     335    QIWithRetranslateUI<QWidget>::resizeEvent(pEvent);
     336}
     337
     338void UIChart::mouseMoveEvent(QMouseEvent *pEvent)
     339{
     340    int iX = pEvent->x();
     341    m_iDataIndexUnderCursor = -1;
     342    if (iX > m_iMarginLeft && iX <= width() - m_iMarginRight)
     343        m_iDataIndexUnderCursor = (int)(g_iMaximumQueueSize -  (iX - m_iMarginLeft) / m_fPixelPerDataPoint);
     344    QIWithRetranslateUI<QWidget>::mouseMoveEvent(pEvent);
    320345}
    321346
     
    637662}
    638663
    639 
    640664/*********************************************************************************************************************************
    641665*   UIMetric implementation.                                                                                                     *
     
    722746        return 0;
    723747    return &m_data[iDataSeriesIndex];
     748}
     749
     750int UIMetric::dataSize(int iDataSeriesIndex) const
     751{
     752    if (iDataSeriesIndex >= DATA_SERIES_SIZE)
     753        return 0;
     754    return m_data[iDataSeriesIndex].size();
    724755}
    725756
     
    883914{
    884915    foreach (UIChart *pChart, m_charts)
    885         pChart->setXAxisLabel(QApplication::translate("UIVMInformationDialog", "Seconds"));
     916        pChart->setXAxisLabel(QApplication::translate("UIVMInformationDialog", "Sec."));
    886917
    887918    /* Translate the chart info labels: */
  • trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitor.h

    r88748 r88881  
    7171    void addData(int iDataSeriesIndex, quint64 fData);
    7272    const QQueue<quint64> *data(int iDataSeriesIndex) const;
     73
     74    /** # of the data point of the data series with index iDataSeriesIndex. */
     75    int dataSize(int iDataSeriesIndex) const;
    7376
    7477    void setDataSeriesName(int iDataSeriesIndex, const QString &strName);
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