Index: /trunk/src/VBox/Frontends/VirtualBox/VirtualBox1.qrc
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/VirtualBox1.qrc	(revision 46809)
+++ /trunk/src/VBox/Frontends/VirtualBox/VirtualBox1.qrc	(revision 46810)
@@ -255,4 +255,5 @@
         <file alias="shared_clipboard_16px.png">images/shared_clipboard_16px.png</file>
         <file alias="shared_clipboard_disabled_16px.png">images/shared_clipboard_disabled_16px.png</file>
+        <file alias="movie_reel_16px.png">images/movie_reel_16px.png</file>
     </qresource>
 </RCC>
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp	(revision 46809)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp	(revision 46810)
@@ -20,4 +20,5 @@
 /* Qt includes: */
 #include <QTimer>
+#include <QPainter>
 
 /* GUI includes: */
@@ -26,4 +27,5 @@
 #include "UIMachineDefs.h"
 #include "UIConverter.h"
+#include "UIAnimationFramework.h"
 
 /* COM includes: */
@@ -491,4 +493,7 @@
 {
     Q_OBJECT;
+    Q_PROPERTY(double rotationAngleStart READ rotationAngleStart);
+    Q_PROPERTY(double rotationAngleFinal READ rotationAngleFinal);
+    Q_PROPERTY(double rotationAngle READ rotationAngle WRITE setRotationAngle);
 
 public:
@@ -498,6 +503,5 @@
     {
         UIIndicatorStateVideoCapture_Disabled = 0,
-        UIIndicatorStateVideoCapture_Enabled  = 1,
-        UIIndicatorStateVideoCapture_Writing  = 2
+        UIIndicatorStateVideoCapture_Enabled  = 1
     };
 
@@ -505,14 +509,15 @@
     UIIndicatorVideoCapture(CSession &session)
         : m_session(session)
-        , m_pUpdateTimer(new QTimer(this))
+        , m_pAnimation(0)
+        , m_dRotationAngle(0)
     {
         /* Assign state icons: */
-        setStateIcon(UIIndicatorStateVideoCapture_Disabled, QPixmap(":/video_capture_disabled_16px.png"));
-        setStateIcon(UIIndicatorStateVideoCapture_Enabled,  QPixmap(":/video_capture_16px.png"));
-        setStateIcon(UIIndicatorStateVideoCapture_Writing,  QPixmap(":/video_capture_write_16px.png"));
-
-        /* Connect timer to update active state: */
-        connect(m_pUpdateTimer, SIGNAL(timeout()), SLOT(sltUpdateState()));
-        m_pUpdateTimer->start(500);
+        setStateIcon(UIIndicatorStateVideoCapture_Disabled, QPixmap(":/movie_reel_16px.png"));
+        setStateIcon(UIIndicatorStateVideoCapture_Enabled, QPixmap(":/movie_reel_16px.png"));
+
+        /* Prepare *enabled* state animation: */
+        m_pAnimation = UIAnimationLoop::installAnimationLoop(this, "rotationAngle",
+                                                                   "rotationAngleStart", "rotationAngleFinal",
+                                                                   1000);
 
         /* Translate finally: */
@@ -540,5 +545,4 @@
             }
             case UIIndicatorStateVideoCapture_Enabled:
-            case UIIndicatorStateVideoCapture_Writing:
             {
                 strToolTip += QApplication::translate("UIIndicatorsPool", "<nobr><b>Video capture file:</b> %1</nobr>")
@@ -552,29 +556,65 @@
     }
 
-protected slots:
-
-    /* Handler: Update stuff: */
-    void sltUpdateState()
-    {
-        /* Toggle state from 'Enabled' to 'Writing': */
+public slots:
+
+    /* Handler: State stuff: */
+    void setState(int iState)
+    {
+        /* Update animation state: */
+        switch (iState)
+        {
+            case UIIndicatorStateVideoCapture_Disabled:
+                m_pAnimation->stop();
+                m_dRotationAngle = 0;
+                break;
+            case UIIndicatorStateVideoCapture_Enabled:
+                m_pAnimation->start();
+                break;
+            default:
+                break;
+        }
+
+        /* Call to base-class: */
+        QIStateIndicator::setState(iState);
+    }
+
+protected:
+
+    /* Handler: Translate stuff: */
+    void retranslateUi()
+    {
+        updateAppearance();
+    }
+
+    /* Handler: Paint stuff: */
+    void paintEvent(QPaintEvent*)
+    {
+        /* Create new painter: */
+        QPainter painter(this);
+        /* Configure painter for *enabled* state: */
         if (state() == UIIndicatorStateVideoCapture_Enabled)
-            setState(UIIndicatorStateVideoCapture_Writing);
-        /* Toggle state from 'Writing' to 'Enabled': */
-        else if (state() == UIIndicatorStateVideoCapture_Writing)
-            setState(UIIndicatorStateVideoCapture_Enabled);
-    }
-
-protected:
-
-    /* Handler: Translate stuff: */
-    void retranslateUi()
-    {
-        updateAppearance();
-    }
+        {
+            /* Shift rotation origin according pixmap center: */
+            painter.translate(height() / 2, height() / 2);
+            /* Rotate painter: */
+            painter.rotate(rotationAngle());
+            /* Unshift rotation origin according pixmap center: */
+            painter.translate(- height() / 2, - height() / 2);
+        }
+        /* Draw contents: */
+        drawContents(&painter);
+    }
+
+    /* Properties: Rotation stuff: */
+    double rotationAngleStart() const { return 0; }
+    double rotationAngleFinal() const { return 360; }
+    double rotationAngle() const { return m_dRotationAngle; }
+    void setRotationAngle(double dRotationAngle) { m_dRotationAngle = dRotationAngle; update(); }
 
     /* For compatibility reason we do it here,
      * later this should be moved to QIStateIndicator. */
     CSession &m_session;
-    QTimer *m_pUpdateTimer;
+    UIAnimationLoop *m_pAnimation;
+    double m_dRotationAngle;
 };
 
