Index: trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityToolWidget.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityToolWidget.cpp	(revision 104448)
+++ trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityToolWidget.cpp	(revision 104449)
@@ -63,4 +63,6 @@
     , m_pTabWidget(0)
 {
+    m_dataSeriesColor[0] = QApplication::palette().color(QPalette::LinkVisited);
+    m_dataSeriesColor[1] = QApplication::palette().color(QPalette::Link);
     prepare();
     prepareActions();
@@ -96,8 +98,12 @@
 
     m_pPaneContainer = new UIVMActivityMonitorPaneContainer(this, m_enmEmbedding);
+    for (int i = 0; i < 2; ++i)
+        m_pPaneContainer->setDataSeriesColor(i, m_dataSeriesColor[i]);
     m_pPaneContainer->hide();
     pMainLayout->addWidget(m_pPaneContainer);
     connect(m_pTabWidget, &QTabWidget::currentChanged,
             this, &UIVMActivityToolWidget::sltCurrentTabChanged);
+    connect(m_pPaneContainer, &UIVMActivityMonitorPaneContainer::sigColorChanged,
+            this, &UIVMActivityToolWidget::sltDataSeriesColorChanged);
 }
 
@@ -209,5 +215,8 @@
         {
             CMachine comMachine = pMachine->toLocal()->machine();
-            m_pTabWidget->addTab(new UIVMActivityMonitorLocal(m_enmEmbedding, this, comMachine), comMachine.GetName());
+            UIVMActivityMonitorLocal *pActivityMonitor = new UIVMActivityMonitorLocal(m_enmEmbedding, this, comMachine);
+            pActivityMonitor->setDataSeriesColor(0, m_dataSeriesColor[0]);
+            pActivityMonitor->setDataSeriesColor(1, m_dataSeriesColor[1]);
+            m_pTabWidget->addTab(pActivityMonitor, comMachine.GetName());
             continue;
         }
@@ -217,5 +226,8 @@
             if (!comMachine.isOk())
                 continue;
-            m_pTabWidget->addTab(new UIVMActivityMonitorCloud(m_enmEmbedding, this, comMachine), comMachine.GetName());
+            UIVMActivityMonitorCloud *pActivityMonitor = new UIVMActivityMonitorCloud(m_enmEmbedding, this, comMachine);
+            pActivityMonitor->setDataSeriesColor(0, m_dataSeriesColor[0]);
+            pActivityMonitor->setDataSeriesColor(1, m_dataSeriesColor[1]);
+            m_pTabWidget->addTab(pActivityMonitor, comMachine.GetName());
             continue;
         }
@@ -252,4 +264,17 @@
 }
 
+void UIVMActivityToolWidget::sltDataSeriesColorChanged(int iIndex, const QColor &color)
+{
+    for (int i = m_pTabWidget->count() - 1; i >= 0; --i)
+    {
+        UIVMActivityMonitor *pMonitor = qobject_cast<UIVMActivityMonitor*>(m_pTabWidget->widget(i));
+        if (!pMonitor)
+            continue;
+        pMonitor->setDataSeriesColor(iIndex, color);
+        if (iIndex >= 0 && iIndex < 2)
+            m_dataSeriesColor[iIndex] = color;
+    }
+}
+
 void UIVMActivityToolWidget::setExportActionEnabled(bool fEnabled)
 {
Index: trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityToolWidget.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityToolWidget.h	(revision 104448)
+++ trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityToolWidget.h	(revision 104449)
@@ -33,4 +33,5 @@
 
 /* Qt includes: */
+#include <QColor>
 #include <QWidget>
 #include <QUuid>
@@ -77,4 +78,5 @@
     void sltCurrentTabChanged(int iIndex);
     void sltTogglePreferencesPane(bool fChecked);
+    void sltDataSeriesColorChanged(int iIndex, const QColor &color);
 
 private:
@@ -111,4 +113,5 @@
     UIVMActivityMonitorPaneContainer *m_pPaneContainer;
     QTabWidget *m_pTabWidget;
+    QColor m_dataSeriesColor[2];
 };
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitor.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitor.cpp	(revision 104448)
+++ trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitor.cpp	(revision 104449)
@@ -130,5 +130,4 @@
     void sltSetShowPieChart(bool fShowPieChart);
     void sltSetUseAreaChart(bool fUseAreaChart);
-    void sltSelectDataSeriesColor();
     void sltRetranslateUI();
 
@@ -227,7 +226,4 @@
     connect(this, &UIChart::customContextMenuRequested,
             this, &UIChart::sltCreateContextMenu);
-
-    setDataSeriesColor(0, QApplication::palette().color(QPalette::LinkVisited));
-    setDataSeriesColor(1, QApplication::palette().color(QPalette::Link));
 
     m_iMarginLeft = 3 * QFontMetricsF(m_axisFont).averageCharWidth();
@@ -849,12 +845,4 @@
         connect(pAreaChartToggle, &QAction::toggled, this, &UIChart::sltSetUseAreaChart);
     }
-    QAction *pSelectColor0 = menu.addAction(m_strSelectChartColor0);
-    pSelectColor0->setData(0);
-    connect(pSelectColor0, &QAction::triggered, this, &UIChart::sltSelectDataSeriesColor);
-
-    QAction *pSelectColor1 = menu.addAction(m_strSelectChartColor1);
-    pSelectColor1->setData(1);
-    connect(pSelectColor1, &QAction::triggered, this, &UIChart::sltSelectDataSeriesColor);
-
     menu.exec(mapToGlobal(point));
 }
@@ -874,23 +862,4 @@
 {
     setUseAreaChart(fUseAreaChart);
-}
-
-void UIChart::sltSelectDataSeriesColor()
-{
-    QAction *pSenderAction = qobject_cast<QAction*>(sender());
-    if (!pSenderAction)
-        return;
-    int iIndex = pSenderAction->data().toInt();
-    if (iIndex < 0 || iIndex >= DATA_SERIES_SIZE)
-        return;
-
-    QColorDialog colorDialog(m_dataSeriesColor[iIndex], this);
-    if (colorDialog.exec() == QDialog::Rejected)
-        return;
-    QColor newColor = colorDialog.selectedColor();
-    if (m_dataSeriesColor[iIndex] == newColor)
-        return;
-    m_dataSeriesColor[iIndex] = newColor;
-    update();
 }
 
@@ -1266,4 +1235,15 @@
 }
 
+void UIVMActivityMonitor::setDataSeriesColor(int iIndex, const QColor &color)
+{
+    if (iIndex < 0 || iIndex >= DATA_SERIES_SIZE)
+        return;
+    m_dataSeriesColor[iIndex] = color;
+
+    foreach (UIChart *pChart, m_charts)
+        if (pChart)
+            pChart->setDataSeriesColor(iIndex, color);
+}
+
 /*********************************************************************************************************************************
 *   UIVMActivityMonitorLocal definition.                                                                         *
Index: trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitor.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitor.h	(revision 104448)
+++ trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitor.h	(revision 104449)
@@ -33,4 +33,5 @@
 
 /* Qt includes: */
+#include <QColor>
 #include <QWidget>
 #include <QMap>
@@ -157,4 +158,5 @@
     virtual QUuid machineId() const = 0;
     virtual QString machineName() const = 0;
+    void setDataSeriesColor(int iIndex, const QColor &color);
 
 public slots:
@@ -184,4 +186,5 @@
     void prepareActions();
     void setInfoLabelWidth();
+
     QGridLayout            *m_pContainerLayout;
     QTimer                 *m_pTimer;
@@ -222,4 +225,5 @@
     int m_iMaximumLabelLength;
     int m_iMaximumQueueSize;
+    QColor m_dataSeriesColor[DATA_SERIES_SIZE];
 
 private slots:
Index: trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitorPaneContainer.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitorPaneContainer.cpp	(revision 104448)
+++ trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitorPaneContainer.cpp	(revision 104449)
@@ -28,8 +28,13 @@
 /* Qt includes: */
 #include <QApplication>
+#include <QColor>
+#include <QColorDialog>
 #include <QHBoxLayout>
 #include <QLabel>
+#include <QPainter>
+#include <QPixmap>
 #include <QPlainTextEdit>
 #include <QPushButton>
+#include <QStyle>
 
 /* GUI includes: */
@@ -37,11 +42,12 @@
 #include "UIVMActivityMonitorPaneContainer.h"
 
+/* Other includes: */
+#include "iprt/assert.h"
+
 UIVMActivityMonitorPaneContainer::UIVMActivityMonitorPaneContainer(QWidget *pParent,
                                                                    EmbedTo enmEmbedTo /* = EmbedTo_Stack */)
     : UIPaneContainer(pParent, enmEmbedTo, false /* detach not allowed */)
-    , m_pColorLabel0(0)
-    , m_pColorLabel1(0)
-    , m_pColorChangeButton0(0)
-    , m_pColorChangeButton1(0)
+    , m_pColorLabel{0, 0}
+    , m_pColorChangeButton{0, 0}
 {
     prepare();
@@ -50,26 +56,24 @@
 void UIVMActivityMonitorPaneContainer::prepare()
 {
-    sltRetranslateUI();
-
     QWidget *pContainerWidget = new QWidget(this);
     QVBoxLayout *pContainerLayout = new QVBoxLayout(pContainerWidget);
-    insertTab(0, pContainerWidget, m_strTabText);
+    insertTab(Tab_Preferences, pContainerWidget, "");
 
-    QHBoxLayout *pColorLayout0 = new QHBoxLayout(this);
-    m_pColorLabel0 = new QLabel(this);
-    m_pColorChangeButton0 = new QPushButton(this);
-    pColorLayout0->addWidget(m_pColorLabel0);
-    pColorLayout0->addWidget(m_pColorChangeButton0);
+    for (int i = 0; i < 2; ++i)
+    {
+        QHBoxLayout *pColorLayout = new QHBoxLayout;
+        m_pColorLabel[i] = new QLabel(this);
+        m_pColorChangeButton[i] = new QPushButton(this);
+        pColorLayout->addWidget(m_pColorLabel[i]);
+        pColorLayout->addWidget(m_pColorChangeButton[i]);
+        pColorLayout->addStretch();
+        pContainerLayout->addLayout(pColorLayout);
+        connect(m_pColorChangeButton[i], &QPushButton::pressed,
+                this, &UIVMActivityMonitorPaneContainer::sltColorChangeButtonPressed);
+    }
 
-    QHBoxLayout *pColorLayout1 = new QHBoxLayout(this);
-    m_pColorLabel1 = new QLabel(this);
-    m_pColorChangeButton1 = new QPushButton(this);
-    pColorLayout1->addWidget(m_pColorLabel1);
-    pColorLayout1->addWidget(m_pColorChangeButton1);
+    pContainerLayout->addStretch();
 
-    pContainerLayout->addLayout(pColorLayout0);
-    pContainerLayout->addLayout(pColorLayout1);
-
-
+    sltRetranslateUI();
     connect(&translationEventListener(), &UITranslationEventListener::sigRetranslateUI,
             this, &UIVMActivityMonitorPaneContainer::sltRetranslateUI);
@@ -78,9 +82,50 @@
 void UIVMActivityMonitorPaneContainer::sltRetranslateUI()
 {
-    m_strTabText = QApplication::translate("UIVMActivityMonitorPaneContainer", "Preferences");
+    setTabText(Tab_Preferences, QApplication::translate("UIVMActivityMonitorPaneContainer", "Preferences"));
 
-    if (m_pColorLabel0)
-        m_pColorLabel0->setText(QApplication::translate("UIVMActivityMonitorPaneContainer", "Data Series 1 Color"));
-    if (m_pColorLabel1)
-        m_pColorLabel1->setText(QApplication::translate("UIVMActivityMonitorPaneContainer", "Data Series 1 Color"));
+    if (m_pColorLabel[0])
+        m_pColorLabel[0]->setText(QApplication::translate("UIVMActivityMonitorPaneContainer", "Data Series 1 Color"));
+    if (m_pColorLabel[1])
+        m_pColorLabel[1]->setText(QApplication::translate("UIVMActivityMonitorPaneContainer", "Data Series 2 Color"));
 }
+
+void UIVMActivityMonitorPaneContainer::colorPushButtons(QPushButton *pButton, const QColor &color)
+{
+    AssertReturnVoid(pButton);
+    int iSize = qApp->style()->pixelMetric(QStyle::PM_ButtonIconSize);
+    QPixmap iconPixmap(iSize, iSize);
+    QPainter painter(&iconPixmap);
+    painter.setBrush(color);
+    painter.drawRect(iconPixmap.rect());
+    pButton->setIcon(QIcon(iconPixmap));
+}
+
+void UIVMActivityMonitorPaneContainer::setDataSeriesColor(int iIndex, const QColor &color)
+{
+    if (iIndex == 0 || iIndex == 1)
+    {
+        m_color[iIndex] = color;
+        colorPushButtons(m_pColorChangeButton[iIndex], color);
+    }
+}
+
+void UIVMActivityMonitorPaneContainer::sltColorChangeButtonPressed()
+{
+    int iIndex = -1;
+    if (sender() == m_pColorChangeButton[0])
+        iIndex = 0;
+    else if (sender() == m_pColorChangeButton[1])
+        iIndex = 1;
+    else
+        return;
+
+    QColorDialog colorDialog(m_color[iIndex], this);
+    if (colorDialog.exec() == QDialog::Rejected)
+        return;
+    QColor newColor = colorDialog.selectedColor();
+    if (m_color[iIndex] == newColor)
+        return;
+    m_color[iIndex] = newColor;
+    colorPushButtons(m_pColorChangeButton[iIndex], newColor);
+    emit sigColorChanged(iIndex, newColor);
+}
Index: trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitorPaneContainer.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitorPaneContainer.h	(revision 104448)
+++ trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitorPaneContainer.h	(revision 104449)
@@ -36,4 +36,5 @@
 #include "UIPaneContainer.h"
 
+class QColor;
 class QLabel;
 class QPushButton;
@@ -44,24 +45,34 @@
     Q_OBJECT;
 
+signals:
+
+    void sigColorChanged(int iIndex, const QColor &color);
+
 public:
 
     UIVMActivityMonitorPaneContainer(QWidget *pParent, EmbedTo enmEmbedTo = EmbedTo_Stack);
+    void setDataSeriesColor(int iIndex, const QColor &color);
 
 private slots:
 
     void sltRetranslateUI();
+    void sltColorChangeButtonPressed();
 
 private:
+    enum Tab
+    {
+        Tab_Preferences = 0
+    };
 
     void prepare();
+    void colorPushButtons(QPushButton *pButton, const QColor &color);
     QString m_strTabText;
 
 
-    QLabel *m_pColorLabel0;
-    QLabel *m_pColorLabel1;
+    QLabel *m_pColorLabel[2];
+    QPushButton *m_pColorChangeButton[2];
 
-    QPushButton *m_pColorChangeButton0;
-    QPushButton *m_pColorChangeButton1;
 
+    QColor m_color[2];
 
 };
