Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIPerformanceMonitor.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIPerformanceMonitor.cpp	(revision 80242)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIPerformanceMonitor.cpp	(revision 80243)
@@ -299,4 +299,5 @@
             QLinearGradient gradient(0, 0, 0, iChartHeight);
             gradient.setColorAt(1.0, Qt::green);
+            gradient.setColorAt(0.5, Qt::yellow);
             gradient.setColorAt(0.0, Qt::red);
             painter.setPen(QPen(gradient, 2.5));
@@ -335,14 +336,4 @@
                  m_pSubMetric->unit().compare("b/s", Qt::CaseInsensitive) == 0)
             strValue = uiCommon().formatSize(iValue);
-
-        // QString strCurentSec = QString::number(iTotalSeconds - i * iTotalSeconds / (float)(iXSubAxisCount + 1));
-        // int iTextWidth = fontMetrics.width(strCurentSec);
-        // if (i == 0)
-        // {
-        //     strCurentSec += " seconds";
-        //     painter.drawText(iTextX, height() - m_iMarginBottom + iFontHeight, strCurentSec);
-        // }
-        // else
-        //     painter.drawText(iTextX - 0.5 * iTextWidth, height() - m_iMarginBottom + iFontHeight, strCurentSec);
         painter.drawText(width() - 0.9 * m_iMarginRight, iTextY, strValue);
     }
@@ -357,18 +348,19 @@
         QPainterPath fillPath;
         fillPath.moveTo(center);
-
         fillPath.arcTo(m_pieChartRect, 90/*startAngle*/,
                        -1 * 360 /*sweepLength*/);
 
         /* First draw a white filled circle and that the arc for data: */
+        painter.setPen(Qt::NoPen);
+        painter.setBrush(QColor(255, 255, 255, 175));
+        painter.drawPath(fillPath);
+
+        /* Prepare the gradient for the pie chart: */
         QConicalGradient pieGradient;
         pieGradient.setCenter(m_pieChartRect.center());
         pieGradient.setAngle(90);
         pieGradient.setColorAt(0, Qt::red);
+        pieGradient.setColorAt(0.5, Qt::yellow);
         pieGradient.setColorAt(1, Qt::green);
-
-        painter.setPen(Qt::NoPen);
-        painter.setBrush(Qt::white);
-        painter.drawPath(fillPath);
 
         if (isEnabled())
@@ -466,5 +458,5 @@
 
 UIPerformanceMonitor::UIPerformanceMonitor(QWidget *pParent, const CMachine &machine, const CConsole &console, const UISession *pSession)
-    : QWidget(pParent)
+    : QIWithRetranslateUI<QWidget>(pParent)
     , m_fGuestAdditionsAvailable(false)
     , m_machine(machine)
@@ -485,8 +477,22 @@
     prepareObjects();
     enableDisableGuestAdditionDependedWidgets(m_fGuestAdditionsAvailable);
+    retranslateUi();
 }
 
 UIPerformanceMonitor::~UIPerformanceMonitor()
 {
+}
+
+void UIPerformanceMonitor::retranslateUi()
+{
+    m_strCPUInfoLabelTitle = QApplication::translate("UIVMInformationDialog", "CPU Load");
+    m_strRAMInfoLabelTitle = QApplication::translate("UIVMInformationDialog", "RAM Usage");
+    m_strRAMInfoLabelTotal = QApplication::translate("UIVMInformationDialog", "Total");
+    m_strRAMInfoLabelFree = QApplication::translate("UIVMInformationDialog", "Free");
+    m_strRAMInfoLabelUsed = QApplication::translate("UIVMInformationDialog", "Used");
+    m_strNetInfoLabelTitle = QApplication::translate("UIVMInformationDialog", "Network");
+    m_strNetInfoLabelReceived = QApplication::translate("UIVMInformationDialog", "Received");
+    m_strNetInfoLabelTransmitted = QApplication::translate("UIVMInformationDialog", "Trasmitted");
+    m_strNetInfoLabelMaximum = QApplication::translate("UIVMInformationDialog", "Maximum");
 }
 
@@ -531,4 +537,7 @@
         m_charts[m_strNetMetricName]->setUseGradientLineColor(false);
     }
+    // if (m_charts.contains(m_strCPUMetricName) && m_charts[m_strCPUMetricName])
+    //     m_charts[m_strCPUMetricName]->setUseGradientLineColor(false);
+
     QWidget *bottomSpacerWidget = new QWidget(this);
     bottomSpacerWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
@@ -605,5 +614,5 @@
         ULONG aPctOther;
         m_machineDebugger.GetCPULoad(0x7fffffff, aPctExecuting, aPctHalted, aPctOther);
-        updateCPUGraphsAndMetric(aPctExecuting);
+        updateCPUGraphsAndMetric(aPctExecuting, aPctOther);
     }
 
@@ -703,8 +712,10 @@
 }
 
-void UIPerformanceMonitor::updateCPUGraphsAndMetric(ULONG iLoadPercentage)
-{
+void UIPerformanceMonitor::updateCPUGraphsAndMetric(ULONG iExecutingPercentage, ULONG iOtherPercentage)
+{
+    Q_UNUSED(iOtherPercentage);
     UISubMetric &CPUMetric = m_subMetrics[m_strCPUMetricName];
-    CPUMetric.addData(0, iLoadPercentage);
+    CPUMetric.addData(0, iExecutingPercentage);
+    //CPUMetric.addData(1, iOtherPercentage);
     CPUMetric.setMaximum(100);
     if (m_infoLabels.contains(m_strCPUMetricName) && m_infoLabels[m_strCPUMetricName])
@@ -712,7 +723,7 @@
         QString strInfo;
         if (m_infoLabels[m_strCPUMetricName]->isEnabled())
-            strInfo = QString("<b>%1</b><br/>%2%3").arg("CPU Load").arg(QString::number(iLoadPercentage)).arg("%");
+            strInfo = QString("<b>%1</b><br/>%2%3").arg(m_strCPUInfoLabelTitle).arg(QString::number(iExecutingPercentage)).arg("%");
         else
-            strInfo = QString("<b>%1</b><br/>%2%3").arg("CPU Load").arg("--").arg("%");
+            strInfo = QString("<b>%1</b><br/>%2%3").arg(m_strCPUInfoLabelTitle).arg("--").arg("%");
         m_infoLabels[m_strCPUMetricName]->setText(strInfo);
     }
@@ -730,9 +741,9 @@
         QString strInfo;
         if (m_infoLabels[m_strRAMMetricName]->isEnabled())
-            strInfo = QString("<b>%1</b><br/>%2: %3<br/>%4: %5<br/>%6: %7").arg("RAM Usage").arg("Total").arg(uiCommon().formatSize(_1K * iTotalRAM))
-                .arg("Free:").arg(uiCommon().formatSize(_1K * (iFreeRAM)))
-                .arg("Used:").arg(uiCommon().formatSize(_1K * (iTotalRAM - iFreeRAM)));
+            strInfo = QString("<b>%1</b><br/>%2: %3<br/>%4: %5<br/>%6: %7").arg(m_strRAMInfoLabelTitle).arg(m_strRAMInfoLabelTotal).arg(uiCommon().formatSize(_1K * iTotalRAM))
+                .arg(m_strRAMInfoLabelFree).arg(uiCommon().formatSize(_1K * (iFreeRAM)))
+                .arg(m_strRAMInfoLabelUsed).arg(uiCommon().formatSize(_1K * (iTotalRAM - iFreeRAM)));
         else
-            strInfo = QString("<b>%1</b><br/>%2: %3<br/>%4: %5<br/>%6: %7").arg("RAM Usage").arg("Total").arg("---").arg("Free").arg("---").arg("Used").arg("---");
+            strInfo = QString("<b>%1</b><br/>%2: %3<br/>%4: %5<br/>%6: %7").arg(m_strRAMInfoLabelTitle).arg(m_strRAMInfoLabelTotal).arg("---").arg(m_strRAMInfoLabelFree).arg("---").arg(m_strRAMInfoLabelUsed).arg("---");
         m_infoLabels[m_strRAMMetricName]->setText(strInfo);
     }
@@ -755,10 +766,10 @@
         QString strInfo;
         if (m_infoLabels[m_strNetMetricName]->isEnabled())
-            strInfo = QString("<b>%1</b></b><br/><font color=\"#FF0000\">%2: %3</font><br/><font color=\"#0000FF\">%4: %5</font><br/>%6: %7").arg("Network")
-                .arg("Receive").arg(uiCommon().formatSize((quint64)iReceiveRate))
-                .arg("Transmit:").arg(uiCommon().formatSize((quint64)iTransmitRate))
-                .arg("Maximum:").arg(uiCommon().formatSize((quint64)iMaximum));
+            strInfo = QString("<b>%1</b></b><br/><font color=\"#FF0000\">%2: %3</font><br/><font color=\"#0000FF\">%4: %5</font><br/>%6: %7").arg(m_strNetInfoLabelTitle)
+                .arg(m_strNetInfoLabelReceived).arg(uiCommon().formatSize((quint64)iReceiveRate))
+                .arg(m_strNetInfoLabelTransmitted).arg(uiCommon().formatSize((quint64)iTransmitRate))
+                .arg(m_strNetInfoLabelMaximum).arg(uiCommon().formatSize((quint64)iMaximum));
         else
-            strInfo = QString("<b>%1</b><br/>%2: %3<br/>%4: %5<br/>%6: %7").arg("Network").arg("Receieve").arg("---").arg("Transmit").arg("---");
+            strInfo = QString("<b>%1</b><br/>%2: %3<br/>%4: %5<br/>%6: %7").arg(m_strNetInfoLabelTitle).arg(m_strNetInfoLabelReceived).arg("---").arg(m_strNetInfoLabelTransmitted).arg("---");
         m_infoLabels[m_strNetMetricName]->setText(strInfo);
     }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIPerformanceMonitor.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIPerformanceMonitor.h	(revision 80242)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIPerformanceMonitor.h	(revision 80243)
@@ -37,4 +37,5 @@
 
 /* GUI includes: */
+#include "QIWithRetranslateUI.h"
 #include "UIMainEventListener.h"
 
@@ -76,5 +77,8 @@
 };
 
-class UIPerformanceMonitor : public QWidget
+/** UIPerformanceMonitor class displays some high level performance metric of the guest system.
+  * The values are read in certain periods and cached in the GUI side. Currently we draw some line charts
+  * and pie charts (where applicable) alongside with some text. */
+class UIPerformanceMonitor : public QIWithRetranslateUI<QWidget>
 {
     Q_OBJECT;
@@ -87,4 +91,7 @@
     UIPerformanceMonitor(QWidget *pParent, const CMachine &machine, const CConsole &console, const UISession *pSession);
     ~UIPerformanceMonitor();
+
+protected:
+    void retranslateUi();
 
 private slots:
@@ -100,5 +107,5 @@
     bool guestAdditionsAvailable(int iMinimumMajorVersion);
     void enableDisableGuestAdditionDependedWidgets(bool fEnable);
-    void updateCPUGraphsAndMetric(ULONG iLoadPercentage);
+    void updateCPUGraphsAndMetric(ULONG iLoadPercentage, ULONG iOtherPercentage);
     void updateRAMGraphsAndMetric(quint64 iTotalRAM, quint64 iFreeRAM);
     void updateNewGraphsAndMetric(ULONG iReceiveRate, ULONG iTransmitRate);
@@ -124,8 +131,29 @@
     QMap<QString,QLabel*>  m_infoLabels;
 
-    QString m_strCPUMetricName;
-    QString m_strRAMMetricName;
-    QString m_strDiskMetricName;
-    QString m_strNetMetricName;
+    /** @name These metric names are used for map keys to identify metrics.
+      * @{ */
+        QString m_strCPUMetricName;
+        QString m_strRAMMetricName;
+        QString m_strDiskMetricName;
+        QString m_strNetMetricName;
+    /** @} */
+
+    /** @name These metric names are used for map keys to identify metrics.
+      * @{ */
+        /** CPU info label strings. */
+        QString m_strCPUInfoLabelTitle;
+        /** RAM usage info label strings. */
+        QString m_strRAMInfoLabelTitle;
+        QString m_strRAMInfoLabelTotal;
+        QString m_strRAMInfoLabelFree;
+        QString m_strRAMInfoLabelUsed;
+        /** Net traffic info label strings. */
+        QString m_strNetInfoLabelTitle;
+        QString m_strNetInfoLabelReceived;
+        QString m_strNetInfoLabelTransmitted;
+        QString m_strNetInfoLabelMaximum;
+    /** @} */
+
+
 };
 
