VirtualBox

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


Ignore:
Timestamp:
Dec 15, 2023 9:01:37 AM (14 months ago)
Author:
vboxsync
Message:

FE/Qt: bugref:10501. Draw tooltips to show the value under cursor.

File:
1 edited

Legend:

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

    r102598 r102607  
    3535#include <QScrollArea>
    3636#include <QStyle>
     37#include <QToolTip>
    3738#include <QXmlStreamReader>
    3839#include <QTimer>
     
    206207    /** @} */
    207208    int maxDataSize() const;
     209    QString toolTipText() const;
    208210
    209211    UIMetric *m_pMetric;
     
    326328    , m_iMaximumQueueSize(iMaximumQueueSize)
    327329{
     330    setToolTipDuration(-1);
    328331    m_axisFont = font();
    329332    m_axisFont.setPixelSize(14);
     
    496499        emit sigDataIndexUnderCursor(m_iDataIndexUnderCursor);
    497500    }
     501    else if (pEvent->type() == QEvent::ToolTip)
     502    {
     503        QHelpEvent *pToolTipEvent = static_cast<QHelpEvent *>(pEvent);
     504        if (m_iDataIndexUnderCursor == -1)
     505            QToolTip::hideText();
     506        else
     507            QToolTip::showText(pToolTipEvent->globalPos(), toolTipText(), this, m_lineChartRect);
     508
     509    }
    498510    return QIWithRetranslateUI<QWidget>::event(pEvent);
    499511}
     
    513525    int iDataSize = maxDataSize();
    514526    m_iDataIndexUnderCursor = -1;
     527
    515528    if (iDataSize > 0 && m_lineChartRect.contains(eventPosition))
    516529    {
     
    678691{
    679692    if (m_pMetric->unit().compare("%", Qt::CaseInsensitive) == 0)
    680         return QString::number(iValue);
     693        return QString::number(iValue).append("%");
    681694    if (m_pMetric->unit().compare("kb", Qt::CaseInsensitive) == 0)
    682695        return UITranslator::formatSize(_1K * (quint64)iValue, g_iDecimalCount);
     
    771784    }
    772785    return iSize;
     786}
     787
     788QString UIChart::toolTipText() const
     789{
     790    if (m_iDataIndexUnderCursor == -1)
     791        return QString();
     792    QStringList toolTipStrings;
     793    for (int k = 0; k < DATA_SERIES_SIZE; ++k)
     794    {
     795        const QQueue<quint64> *data = m_pMetric->data(k);
     796        if (data && data->size() > 0 && m_iDataIndexUnderCursor < data->size())
     797            toolTipStrings << YAxisValueLabel(data->at(m_iDataIndexUnderCursor));
     798    }
     799    return toolTipStrings.join(" / ");
    773800}
    774801
Note: See TracChangeset for help on using the changeset viewer.

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