Changeset 102641 in vbox for trunk/src/VBox/Frontends
- Timestamp:
- Dec 19, 2023 2:13:43 PM (14 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitor.cpp
r102635 r102641 66 66 const int g_iMetricSetupCount = 1; 67 67 const int g_iDecimalCount = 2; 68 69 const int g_iBackgroundTint = 104; 68 70 69 71 … … 246 248 int m_iRightMarginCharWidth; 247 249 int m_iMaximumQueueSize; 250 QLabel *m_pMouseOverLabel; 248 251 }; 249 252 … … 327 330 , m_iRightMarginCharWidth(10) 328 331 , m_iMaximumQueueSize(iMaximumQueueSize) 329 { 332 , m_pMouseOverLabel(0) 333 { 334 QPalette tempPal = palette(); 335 tempPal.setColor(QPalette::Window, tempPal.color(QPalette::Window).lighter(g_iBackgroundTint)); 336 setPalette(tempPal); 337 setAutoFillBackground(true); 338 330 339 setToolTipDuration(-1); 331 340 m_axisFont = font(); … … 341 350 m_iMarginLeft = 3 * QFontMetricsF(m_axisFont).averageCharWidth(); 342 351 m_iMarginRight = m_iRightMarginCharWidth * QFontMetricsF(m_axisFont).averageCharWidth(); 343 m_iMarginTop = 0.3 * qApp->QApplication::style()->pixelMetric(QStyle::PM_LayoutTopMargin);352 m_iMarginTop = QFontMetrics(m_axisFont).height(); 344 353 m_iMarginBottom = QFontMetrics(m_axisFont).height(); 345 354 … … 349 358 m_iPieChartRadius = m_size.height() - (m_iMarginTop + m_iMarginBottom + 2 * m_iPieChartSpacing); 350 359 360 m_pMouseOverLabel = new QLabel(this); 361 m_pMouseOverLabel->hide(); 362 m_pMouseOverLabel->setFrameStyle(QFrame::Box); 363 m_pMouseOverLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); 364 m_pMouseOverLabel->setAutoFillBackground(true); 365 m_pMouseOverLabel->setMargin(0.1 * QStyle::PM_HeaderMargin); 351 366 retranslateUi(); 352 367 } … … 496 511 if (pEvent->type() == QEvent::Leave) 497 512 { 513 if (m_pMouseOverLabel) 514 m_pMouseOverLabel->setVisible(false); 498 515 m_iDataIndexUnderCursor = -1; 499 516 emit sigDataIndexUnderCursor(m_iDataIndexUnderCursor); … … 502 519 { 503 520 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); 521 // if (m_iDataIndexUnderCursor == -1) 522 // QToolTip::hideText(); 523 // else 524 // QToolTip::showText(pToolTipEvent->globalPos(), toolTipText(), this, m_lineChartRect); 525 if (m_pMouseOverLabel) 526 { 527 if (m_iDataIndexUnderCursor == -1) 528 m_pMouseOverLabel->setVisible(false); 529 else 530 { 531 m_pMouseOverLabel->setText(toolTipText()); 532 533 //m_pMouseOverLabel->resize(m_pMouseOverLabel->fontMetrics().size(Qt::TextSingleLine, m_pMouseOverLabel->text())); 534 m_pMouseOverLabel->move(QPoint(pToolTipEvent->pos().x(), pToolTipEvent->pos().y() - m_pMouseOverLabel->height())); 535 m_pMouseOverLabel->setVisible(true); 536 } 537 } 538 508 539 509 540 } … … 666 697 painter.setPen(mainAxisColor); 667 698 float fX = (width() - m_iMarginRight) - ((data->size() - m_iDataIndexUnderCursor - 1) * fBarWidth); 668 painter.drawLine(fX, 0, fX, height() - m_iMarginBottom);699 painter.drawLine(fX, m_iMarginTop, fX, height() - m_iMarginBottom); 669 700 } 670 701 } … … 790 821 if (m_iDataIndexUnderCursor == -1) 791 822 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(" / "); 823 824 if (!m_pMetric->data(0) || m_pMetric->data(0)->isEmpty()) 825 return QString(); 826 QString strToolTip; 827 if (m_pMetric->data(1) && !m_pMetric->data(1)->isEmpty()) 828 { 829 strToolTip = QString("<font color=\"%1\">%2</font> / <font color=\"%3\">%4</font>") 830 .arg(m_dataSeriesColor[0].name(QColor::HexRgb)).arg(YAxisValueLabel(m_pMetric->data(0)->at(m_iDataIndexUnderCursor))) 831 .arg(m_dataSeriesColor[1].name(QColor::HexRgb)).arg(YAxisValueLabel(m_pMetric->data(1)->at(m_iDataIndexUnderCursor))); 832 } 833 else 834 { 835 strToolTip = QString("<font color=\"%1\">%2</font>") 836 .arg(m_dataSeriesColor[0].name(QColor::HexRgb)).arg(YAxisValueLabel(m_pMetric->data(0)->at(m_iDataIndexUnderCursor))); 837 } 838 return strToolTip; 839 //m_dataSeriesColor[iDataIndex]); 840 // return pChart->dataSeriesColor(iDataIndex).name(QColor::HexRgb); 841 // QColor dataSeriesColor(int iDataSeriesIndex, int iDark = 0); 842 //QString strInfo = QString("<b>%1</b></b><br/> <font color=\"%2\">%3: %4</font><br/> <font color=\"%5\">%6: %7</font>") 843 844 // QStringList toolTipStrings; 845 // for (int k = 0; k < DATA_SERIES_SIZE; ++k) 846 // { 847 // const QQueue<quint64> *data = m_pMetric->data(k); 848 // if (data && data->size() > 0 && m_iDataIndexUnderCursor < data->size()) 849 // toolTipStrings << YAxisValueLabel(data->at(m_iDataIndexUnderCursor)); 850 // } 851 // return toolTipStrings.join(" / "); 852 //QString strInfo = QString("<b>%1</b></b><br/> <font color=\"%2\">%3: %4</font><br/> <font color=\"%5\">%6: %7</font>") 800 853 } 801 854 … … 1191 1244 1192 1245 QLabel *pLabel = new QLabel(this); 1193 pLabel->setAlignment(Qt::AlignLeft | Qt::AlignTop); 1246 1247 QPalette tempPal = pLabel->palette(); 1248 tempPal.setColor(QPalette::Window, tempPal.color(QPalette::Window).lighter(g_iBackgroundTint)); 1249 pLabel->setPalette(tempPal); 1250 pLabel->setAutoFillBackground(true); 1251 1252 pLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); 1194 1253 pChartLayout->addWidget(pLabel); 1195 1254 m_infoLabels.insert(strMetricName, pLabel);
Note:
See TracChangeset
for help on using the changeset viewer.