Index: /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerFilterPanel.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerFilterPanel.cpp	(revision 70472)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerFilterPanel.cpp	(revision 70473)
@@ -23,4 +23,5 @@
 # include <QButtonGroup>
 # include <QComboBox>
+# include <QFrame>
 # include <QHBoxLayout>
 # if defined(RT_OS_SOLARIS)
@@ -178,7 +179,11 @@
     , m_pAndRadioButton(0)
     , m_pOrRadioButton(0)
+    , m_pRadioButtonContainer(0)
     , m_pAddFilterTermButton(0)
     , m_eFilterOperatorButton(AndButton)
     , m_pFilterTermsLineEdit(0)
+    , m_pResultLabel(0)
+    , m_iUnfilteredLineCount(0)
+    , m_iFilteredLineCount(0)
 {
     prepare();
@@ -188,18 +193,30 @@
 {
     Q_UNUSED(iCurrentIndex);
+    filter();
+    retranslateUi();
+}
+
+void UIVMLogViewerFilterPanel::filter()
+{
     QPlainTextEdit *pCurrentPage = m_pViewer->currentLogPage();
     AssertReturnVoid(pCurrentPage);
     const QString& strInputText = m_pViewer->currentLog();
+    m_iUnfilteredLineCount = 0;
+    m_iFilteredLineCount = 0;
     if (strInputText.isNull())
         return;
+    QTextDocument *document = pCurrentPage->document();
+    if (!document)
+        return;
+    QStringList stringLines = strInputText.split("\n");
+    m_iUnfilteredLineCount = stringLines.size();
     if (m_filterTermList.empty())
     {
-        QTextDocument *document = pCurrentPage->document();
-        if (document)
-            document->setPlainText(strInputText);
+        document->setPlainText(strInputText);
         emit sigFilterApplied();
-        return;
-    }
-    QStringList stringLines = strInputText.split("\n");
+        m_iFilteredLineCount = document->lineCount();
+        return;
+    }
+
     /* Prepare filter-data: */
     QString strFilteredText;
@@ -217,7 +234,6 @@
     }
 
-    QTextDocument *document = pCurrentPage->document();
-    if (document)
-        document->setPlainText(strFilteredText);
+    document->setPlainText(strFilteredText);
+    m_iFilteredLineCount = document->lineCount();
 
     /* Move the cursor position to end: */
@@ -328,34 +344,7 @@
     m_pCloseButton = new UIMiniCancelButton(this);
     AssertPtrReturnVoid(m_pCloseButton);
-    {
-        m_pMainLayout->addWidget(m_pCloseButton);
-    }
-
-    m_pFilterTermsLineEdit = new UIVMFilterLineEdit(this);
-    AssertPtrReturnVoid(m_pFilterTermsLineEdit);
-    {
-        m_pMainLayout->addWidget(m_pFilterTermsLineEdit, 4);
-        m_pFilterTermsLineEdit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum /*vertical */);
-    }
-
-    m_pButtonGroup = new QButtonGroup(this);
-    AssertPtrReturnVoid(m_pButtonGroup);
-    {
-        m_pAndRadioButton = new QRadioButton(this);
-        m_pOrRadioButton =  new QRadioButton(this);
-        AssertPtrReturnVoid(m_pAndRadioButton);
-        AssertPtrReturnVoid(m_pOrRadioButton);
-        m_pButtonGroup->addButton(m_pAndRadioButton, static_cast<int>(AndButton));
-        m_pButtonGroup->addButton(m_pOrRadioButton, static_cast<int>(OrButton));
-
-        m_pOrRadioButton->setText("Or");
-        m_pAndRadioButton->setText("And");
-
-        m_pOrRadioButton->setChecked(true);
-        m_eFilterOperatorButton = OrButton;
-
-        m_pMainLayout->addWidget(m_pOrRadioButton);
-        m_pMainLayout->addWidget(m_pAndRadioButton);
-    }
+    m_pMainLayout->addWidget(m_pCloseButton);
+
+    prepareRadioButtonGroup();
 
     m_pFilterComboBox = new QComboBox(this);
@@ -374,7 +363,20 @@
     AssertPtrReturnVoid(m_pAddFilterTermButton);
     {
+        m_pAddFilterTermButton->setIcon(UIIconPool::defaultIcon(UIIconPool::UIDefaultIconType_ArrowForward, this));
         m_pMainLayout->addWidget(m_pAddFilterTermButton,0);
     }
 
+    m_pFilterTermsLineEdit = new UIVMFilterLineEdit(this);
+    AssertPtrReturnVoid(m_pFilterTermsLineEdit);
+    {
+        m_pMainLayout->addWidget(m_pFilterTermsLineEdit, 4);
+        m_pFilterTermsLineEdit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum /*vertical */);
+    }
+
+    m_pResultLabel = new QLabel(this);
+    AssertPtrReturnVoid(m_pResultLabel);
+    {
+        m_pMainLayout->addWidget(m_pResultLabel,0);
+    }
         /* Create filter-label: */
 //         m_pFilterLabel = new QLabel(this);
@@ -393,4 +395,35 @@
 }
 
+void UIVMLogViewerFilterPanel::prepareRadioButtonGroup()
+{
+    m_pButtonGroup = new QButtonGroup(this);
+    AssertPtrReturnVoid(m_pButtonGroup);
+
+    m_pRadioButtonContainer = new QFrame(this);
+    m_pRadioButtonContainer->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
+    AssertPtrReturnVoid(m_pRadioButtonContainer);
+
+    QHBoxLayout* containerLayout = (new QHBoxLayout(m_pRadioButtonContainer));
+    AssertPtrReturnVoid(containerLayout);
+    containerLayout->setContentsMargins(0, 0, 0, 0);
+    containerLayout->setSpacing(0);
+
+    m_pAndRadioButton = new QRadioButton(this);
+    m_pOrRadioButton =  new QRadioButton(this);
+    AssertPtrReturnVoid(m_pAndRadioButton);
+    AssertPtrReturnVoid(m_pOrRadioButton);
+
+    m_pButtonGroup->addButton(m_pAndRadioButton, static_cast<int>(AndButton));
+    m_pButtonGroup->addButton(m_pOrRadioButton, static_cast<int>(OrButton));
+    m_pOrRadioButton->setText("Or");
+    m_pAndRadioButton->setText("And");
+    m_pOrRadioButton->setChecked(true);
+    m_eFilterOperatorButton = OrButton;
+
+    containerLayout->addWidget(m_pOrRadioButton);
+    containerLayout->addWidget(m_pAndRadioButton);
+    m_pMainLayout->addWidget(m_pRadioButtonContainer);
+}
+
 void UIVMLogViewerFilterPanel::prepareConnections()
 {
@@ -407,11 +440,13 @@
 }
 
+
 void UIVMLogViewerFilterPanel::retranslateUi()
 {
-    m_pCloseButton->setToolTip(UIVMLogViewerWidget::tr("Close the search panel"));
-    //m_pFilterLabel->setText(UIVMLogViewerWidget::tr("Filter"));
-    m_pFilterComboBox->setToolTip(UIVMLogViewerWidget::tr("Enter filtering string here"));
-    m_pAddFilterTermButton->setText(UIVMLogViewerWidget::tr("Add"));
-    m_pAddFilterTermButton->setToolTip(UIVMLogViewerWidget::tr("Add filter term"));
+    m_pCloseButton->setToolTip(UIVMLogViewerWidget::tr("Close the search panel."));
+    m_pFilterComboBox->setToolTip(UIVMLogViewerWidget::tr("Enter filtering string here."));
+    m_pAddFilterTermButton->setToolTip(UIVMLogViewerWidget::tr("Add filter term."));
+    m_pResultLabel->setText(UIVMLogViewerWidget::tr("Showing %1/%2").arg(m_iFilteredLineCount).arg(m_iUnfilteredLineCount));
+    m_pFilterTermsLineEdit->setToolTip(UIVMLogViewerWidget::tr("The filter terms list. Select one to remove or click the button on the right side to remove them all."));
+    m_pRadioButtonContainer->setToolTip(UIVMLogViewerWidget::tr("The type of boolean operator for filter operation."));
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerFilterPanel.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerFilterPanel.h	(revision 70472)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerFilterPanel.h	(revision 70473)
@@ -28,4 +28,5 @@
 class QButtonGroup;
 class QComboBox;
+class QFrame;
 class QHBoxLayout;
 class QLabel;
@@ -79,7 +80,6 @@
     /** Prepares filter-panel. */
     void prepare();
-    /** Prepares widgets. */
     void prepareWidgets();
-    /** Prepares connections. */
+    void prepareRadioButtonGroup();
     void prepareConnections();
 
@@ -95,4 +95,5 @@
 
     bool applyFilterTermsToString(const QString& string);
+    void filter();
 
     /** Holds the reference to VM Log-Viewer this filter-panel belongs to. */
@@ -110,8 +111,12 @@
     QRadioButton        *m_pAndRadioButton;
     QRadioButton        *m_pOrRadioButton;
+    QFrame              *m_pRadioButtonContainer;
     QPushButton         *m_pAddFilterTermButton;
     QStringList          m_filterTermList;
     FilterOperatorButton m_eFilterOperatorButton;
     UIVMFilterLineEdit  *m_pFilterTermsLineEdit;
+    QLabel              *m_pResultLabel;
+    int                  m_iUnfilteredLineCount;
+    int                  m_iFilteredLineCount;
 };
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp	(revision 70472)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/logviewer/UIVMLogViewerWidget.cpp	(revision 70473)
@@ -698,4 +698,5 @@
         /* Create Log-Viewer: */
         QPlainTextEdit *pLogViewer = new QPlainTextEdit(pPageContainer);
+
         AssertPtrReturn(pLogViewer, 0);
         {
