VirtualBox

Ignore:
Timestamp:
Apr 26, 2024 2:09:35 PM (10 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
162954
Message:

FE/Qt. bugref:9510. Adding a new pane container to activity monitor widget to host setting controls.

Location:
trunk/src/VBox/Frontends/VirtualBox
Files:
10 edited
2 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk

    r103914 r104445  
    858858        src/logviewer/UIVMLogViewerWidget.h \
    859859        src/activity/vmactivity/UIVMActivityMonitor.h \
     860        src/activity/vmactivity/UIVMActivityMonitorPaneContainer.h \
    860861        src/activity/UIMonitorCommon.h \
    861862        src/medium/UIFDCreationDialog.h \
     
    14381439        src/activity/UIMonitorCommon.cpp \
    14391440        src/activity/vmactivity/UIVMActivityMonitor.cpp \
     1441        src/activity/vmactivity/UIVMActivityMonitorPaneContainer.cpp \
    14401442        src/medium/UIFDCreationDialog.cpp \
    14411443        src/medium/UIMedium.cpp \
  • trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityToolWidget.cpp

    r104393 r104445  
    2828/* Qt includes: */
    2929#include <QApplication>
    30 #include <QHBoxLayout>
     30#include <QVBoxLayout>
    3131#include <QStyle>
     32#include <QTabWidget>
    3233
    3334/* GUI includes: */
     35#include "QIToolBar.h"
    3436#include "UIActionPoolManager.h"
    3537#include "UIGlobalSession.h"
     
    3739#include "UIVMActivityToolWidget.h"
    3840#include "UIMessageCenter.h"
    39 #include "QIToolBar.h"
    4041#include "UIVirtualMachineItem.h"
    4142#include "UIVirtualMachineItemCloud.h"
    4243#include "UIVirtualMachineItemLocal.h"
    43 
     44#include "UIVMActivityMonitorPaneContainer.h"
    4445#ifdef VBOX_WS_MAC
    4546# include "UIWindowMenuManager.h"
     
    4748
    4849/* COM includes: */
     50#include "assert.h"
    4951#include "CMachine.h"
    5052
     
    5254UIVMActivityToolWidget::UIVMActivityToolWidget(EmbedTo enmEmbedding, UIActionPool *pActionPool,
    5355                                                 bool fShowToolbar /* = true */, QWidget *pParent /* = 0 */)
    54     : QTabWidget(pParent)
     56    : QWidget(pParent)
    5557    , m_enmEmbedding(enmEmbedding)
    5658    , m_pActionPool(pActionPool)
     
    5860    , m_pToolBar(0)
    5961    , m_pExportToFileAction(0)
    60 {
    61     setTabPosition(QTabWidget::East);
     62    , m_pPaneContainer(0)
     63    , m_pTabWidget(0)
     64{
    6265    prepare();
    6366    prepareActions();
     
    8386void UIVMActivityToolWidget::prepare()
    8487{
    85     setTabBarAutoHide(true);
    86     setLayout(new QHBoxLayout);
    87 
    88     connect(this, &UIVMActivityToolWidget::currentChanged,
     88    QVBoxLayout *pMainLayout = new QVBoxLayout(this);
     89
     90    m_pTabWidget = new QTabWidget(this);
     91    m_pTabWidget->setTabPosition(QTabWidget::East);
     92    m_pTabWidget->setTabBarAutoHide(true);
     93
     94    pMainLayout->addWidget(m_pTabWidget);
     95
     96
     97    m_pPaneContainer = new UIVMActivityMonitorPaneContainer(this, m_enmEmbedding);
     98    m_pPaneContainer->hide();
     99    pMainLayout->addWidget(m_pPaneContainer);
     100    connect(m_pTabWidget, &QTabWidget::currentChanged,
    89101            this, &UIVMActivityToolWidget::sltCurrentTabChanged);
    90102}
     
    134146    if (m_pExportToFileAction)
    135147        connect(m_pExportToFileAction, &QAction::triggered, this, &UIVMActivityToolWidget::sltExportToFile);
     148    if (m_pActionPool->action(UIActionIndex_M_Activity_T_Preferences))
     149        connect(m_pActionPool->action(UIActionIndex_M_Activity_T_Preferences), &QAction::toggled,
     150                this, &UIVMActivityToolWidget::sltTogglePreferencesPane);
    136151}
    137152
     
    167182void UIVMActivityToolWidget::removeTabs(const QVector<QUuid> &machineIdsToRemove)
    168183{
     184    AssertReturnVoid(m_pTabWidget);
    169185    QVector<UIVMActivityMonitor*> removeList;
    170186
    171     for (int i = count() - 1; i >= 0; --i)
    172     {
    173         UIVMActivityMonitor *pMonitor = qobject_cast<UIVMActivityMonitor*>(widget(i));
     187    for (int i = m_pTabWidget->count() - 1; i >= 0; --i)
     188    {
     189        UIVMActivityMonitor *pMonitor = qobject_cast<UIVMActivityMonitor*>(m_pTabWidget->widget(i));
    174190        if (!pMonitor)
    175191            continue;
     
    177193        {
    178194            removeList << pMonitor;
    179             removeTab(i);
     195            m_pTabWidget->removeTab(i);
    180196        }
    181197    }
     
    185201void UIVMActivityToolWidget::addTabs(const QList<UIVirtualMachineItem*> &machines)
    186202{
     203    AssertReturnVoid(m_pTabWidget);
    187204    foreach (UIVirtualMachineItem* pMachine, machines)
    188205    {
     
    192209        {
    193210            CMachine comMachine = pMachine->toLocal()->machine();
    194             addTab(new UIVMActivityMonitorLocal(m_enmEmbedding, this, comMachine), comMachine.GetName());
     211            m_pTabWidget->addTab(new UIVMActivityMonitorLocal(m_enmEmbedding, this, comMachine), comMachine.GetName());
    195212            continue;
    196213        }
     
    200217            if (!comMachine.isOk())
    201218                continue;
    202             addTab(new UIVMActivityMonitorCloud(m_enmEmbedding, this, comMachine), comMachine.GetName());
     219            m_pTabWidget->addTab(new UIVMActivityMonitorCloud(m_enmEmbedding, this, comMachine), comMachine.GetName());
    203220            continue;
    204221        }
     
    208225void UIVMActivityToolWidget::sltExportToFile()
    209226{
    210     UIVMActivityMonitor *pActivityMonitor = qobject_cast<UIVMActivityMonitor*>(currentWidget());
     227    AssertReturnVoid(m_pTabWidget);
     228    UIVMActivityMonitor *pActivityMonitor = qobject_cast<UIVMActivityMonitor*>(m_pTabWidget->currentWidget());
    211229    if (pActivityMonitor)
    212230        pActivityMonitor->sltExportMetricsToFile();
     
    215233void UIVMActivityToolWidget::sltCurrentTabChanged(int iIndex)
    216234{
     235    AssertReturnVoid(m_pTabWidget);
    217236    Q_UNUSED(iIndex);
    218     UIVMActivityMonitor *pActivityMonitor = qobject_cast<UIVMActivityMonitor*>(currentWidget());
     237    UIVMActivityMonitor *pActivityMonitor = qobject_cast<UIVMActivityMonitor*>(m_pTabWidget->currentWidget());
    219238    if (pActivityMonitor)
    220239    {
     
    227246}
    228247
     248void UIVMActivityToolWidget::sltTogglePreferencesPane(bool fChecked)
     249{
     250    AssertReturnVoid(m_pPaneContainer);
     251    m_pPaneContainer->setVisible(fChecked);
     252}
     253
    229254void UIVMActivityToolWidget::setExportActionEnabled(bool fEnabled)
    230255{
  • trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityToolWidget.h

    r103943 r104445  
    3333
    3434/* Qt includes: */
    35 #include <QTabWidget>
     35#include <QWidget>
    3636#include <QUuid>
    3737
     
    4040
    4141/* Forward declarations: */
     42class CMachine;
     43class QIToolBar;
     44class QTabWidget;
    4245class UIActionPool;
    43 class QIToolBar;
    4446class UIVirtualMachineItem;
    45 class CMachine;
     47class UIVMActivityMonitorPaneContainer;
     48
    4649
    4750/** QTabWidget extension host machine activity widget(s) in the Manager UI. */
    48 class UIVMActivityToolWidget : public QTabWidget
     51class UIVMActivityToolWidget : public QWidget
    4952{
    5053    Q_OBJECT;
     
    7376    void sltExportToFile();
    7477    void sltCurrentTabChanged(int iIndex);
     78    void sltTogglePreferencesPane(bool fChecked);
    7579
    7680private:
     
    105109    QVector<QUuid> m_machineIds;
    106110    QAction *m_pExportToFileAction;
     111    UIVMActivityMonitorPaneContainer *m_pPaneContainer;
     112    QTabWidget *m_pTabWidget;
    107113};
    108114
  • trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitor.cpp

    r104425 r104445  
    2828/* Qt includes: */
    2929#include <QApplication>
     30#include <QColorDialog>
    3031#include <QDateTime>
    3132#include <QLabel>
     
    129130    void sltSetShowPieChart(bool fShowPieChart);
    130131    void sltSetUseAreaChart(bool fUseAreaChart);
     132    void sltSelectDataSeriesColor();
    131133    void sltRetranslateUI();
    132134
     
    182184    QString m_strPieChartToggleActionLabel;
    183185    QString m_strAreaChartToggleActionLabel;
     186    QString m_strSelectChartColor0;
     187    QString m_strSelectChartColor1;
    184188    bool    m_fDrawCurenValueIndicators;
    185189    /** The width of the right margin in characters. */
     
    369373    m_strPieChartToggleActionLabel = QApplication::translate("UIVMInformationDialog", "Show Pie Chart");
    370374    m_strAreaChartToggleActionLabel = QApplication::translate("UIVMInformationDialog", "Draw Area Chart");
     375    m_strSelectChartColor0 = QApplication::translate("UIVMInformationDialog", "Change 1st Dataseries' Color");
     376    m_strSelectChartColor1 = QApplication::translate("UIVMInformationDialog", "Change 2nd Dataseries' Color");
    371377    update();
    372378}
     
    578584        if (m_fUseAreaChart && m_fIsAreaChartAllowed)
    579585        {
    580             painter.setOpacity(0.6);
    581             painter.drawPixmap(rect(), areaPixmap);
     586            painter.setOpacity(0.5);
     587            painter.drawImage(rect(), areaPixmap.toImage());
    582588            painter.setOpacity(1.0);
    583589        }
    584 
    585590        /* Draw a horizontal and vertical line on data point under the mouse cursor
    586591         * and draw the value on the left hand side of the chart: */
     
    844849        connect(pAreaChartToggle, &QAction::toggled, this, &UIChart::sltSetUseAreaChart);
    845850    }
     851    QAction *pSelectColor0 = menu.addAction(m_strSelectChartColor0);
     852    pSelectColor0->setData(0);
     853    connect(pSelectColor0, &QAction::triggered, this, &UIChart::sltSelectDataSeriesColor);
     854
     855    QAction *pSelectColor1 = menu.addAction(m_strSelectChartColor1);
     856    pSelectColor1->setData(1);
     857    connect(pSelectColor1, &QAction::triggered, this, &UIChart::sltSelectDataSeriesColor);
    846858
    847859    menu.exec(mapToGlobal(point));
     
    862874{
    863875    setUseAreaChart(fUseAreaChart);
     876}
     877
     878void UIChart::sltSelectDataSeriesColor()
     879{
     880    QAction *pSenderAction = qobject_cast<QAction*>(sender());
     881    if (!pSenderAction)
     882        return;
     883    int iIndex = pSenderAction->data().toInt();
     884    if (iIndex < 0 || iIndex >= DATA_SERIES_SIZE)
     885        return;
     886
     887    QColorDialog colorDialog(m_dataSeriesColor[iIndex], this);
     888    if (colorDialog.exec() == QDialog::Rejected)
     889        return;
     890    QColor newColor = colorDialog.selectedColor();
     891    if (m_dataSeriesColor[iIndex] == newColor)
     892        return;
     893    m_dataSeriesColor[iIndex] = newColor;
     894    update();
    864895}
    865896
     
    18271858    resetRAMInfoLabel();
    18281859    connect(&translationEventListener(), &UITranslationEventListener::sigRetranslateUI, this, &UIVMActivityMonitorCloud::sltRetranslateUI);
     1860
    18291861    /* Start the timer: */
    18301862    start();
  • trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitor.h

    r103982 r104445  
    160160public slots:
    161161
    162         void sltExportMetricsToFile();
     162    void sltExportMetricsToFile();
    163163
    164164protected slots:
    165165
    166         virtual void sltRetranslateUI();
     166    virtual void sltRetranslateUI();
    167167
    168168protected:
     
    235235    /** Holds the instance of layout we create. */
    236236    QVBoxLayout *m_pMainLayout;
    237 
    238237    EmbedTo m_enmEmbedding;
    239238};
  • trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitorPaneContainer.cpp

    r104426 r104445  
    2727
    2828/* Qt includes: */
     29#include <QApplication>
    2930#include <QHBoxLayout>
    3031#include <QPlainTextEdit>
     
    3233
    3334/* GUI includes: */
    34 #include "UIIconPool.h"
    35 #include "UIVMLogPage.h"
    36 #include "UIVMLogViewerPanel.h"
    37 #include "UIVMLogViewerWidget.h"
    38 #include "UIVMLogViewerSearchWidget.h"
    39 #include "UIVMLogViewerFilterWidget.h"
    40 #include "UIVMLogViewerBookmarksWidget.h"
    41 #include "UIVMLogViewerPreferencesWidget.h"
    4235#include "UITranslationEventListener.h"
    43 #ifdef VBOX_WS_MAC
    44 # include "VBoxUtils-darwin.h"
    45 #endif
     36#include "UIVMActivityMonitorPaneContainer.h"
    4637
    47 UIVMLogViewerPaneContainer::UIVMLogViewerPaneContainer(QWidget *pParent,
    48                                                        UIVMLogViewerWidget *pViewer,
    49                                                        EmbedTo enmEmbedTo /* = EmbedTo_Stack */)
    50     : UIPaneContainer(pParent, enmEmbedTo, true /* detach allowed */)
    51     , m_pViewer(pViewer)
    52     , m_pSearchWidget(0)
    53     , m_pFilterWidget(0)
    54     , m_pBookmarksWidget(0)
    55     , m_pPreferencesWidget(0)
     38UIVMActivityMonitorPaneContainer::UIVMActivityMonitorPaneContainer(QWidget *pParent,
     39                                                                   EmbedTo enmEmbedTo /* = EmbedTo_Stack */)
     40    : UIPaneContainer(pParent, enmEmbedTo, false /* detach not allowed */)
     41    , m_pColorLabel0(0)
     42    , m_pColorLabel1(0)
     43    , m_pColorChangeButton0(0)
     44    , m_pColorChangeButton1(0)
     45    , m_pColorChangeReset0(0)
     46    , m_pColorChangeReset1;
    5647{
    5748    prepare();
    5849}
    5950
    60 void UIVMLogViewerPaneContainer::prepare()
     51void UIVMActivityMonitorPaneContainer::prepare()
    6152{
    62     /* Search tab: */
    63     m_pSearchWidget = new UIVMLogViewerSearchWidget(0, m_pViewer);
    64     insertTab(Page_Search, m_pSearchWidget);
     53    sltRetranslateUI();
    6554
    66     connect(m_pSearchWidget, &UIVMLogViewerSearchWidget::sigHighlightingUpdated,
    67             this, &UIVMLogViewerPaneContainer::sigHighlightingUpdated);
    68     connect(m_pSearchWidget, &UIVMLogViewerSearchWidget::sigSearchUpdated,
    69             this, &UIVMLogViewerPaneContainer::sigSearchUpdated);
    70     connect(m_pSearchWidget, &UIVMLogViewerSearchWidget::sigShowPane,
    71             this, &UIVMLogViewerPaneContainer::sigShowSearchPane);
     55    QWidget *pContainerWidget = new QWidget(this);
     56    insertTab(0, pContainerWidget, m_strTabText);
    7257
    73     /* Filter tab: */
    74     m_pFilterWidget = new UIVMLogViewerFilterWidget(0, m_pViewer);
    75     insertTab(Page_Filter, m_pFilterWidget);
    76 
    77     connect(m_pFilterWidget, &UIVMLogViewerFilterWidget::sigFilterApplied,
    78             this, &UIVMLogViewerPaneContainer::sigFilterApplied);
    79 
    80     /* Bookmark tab: */
    81     m_pBookmarksWidget = new UIVMLogViewerBookmarksWidget(0, m_pViewer);
    82     insertTab(Page_Bookmark, m_pBookmarksWidget);
    83 
    84     connect(m_pBookmarksWidget, &UIVMLogViewerBookmarksWidget::sigDeleteBookmarkByIndex,
    85             this, &UIVMLogViewerPaneContainer::sigDeleteBookmarkByIndex);
    86     connect(m_pBookmarksWidget, &UIVMLogViewerBookmarksWidget::sigDeleteAllBookmarks,
    87             this, &UIVMLogViewerPaneContainer::sigDeleteAllBookmarks);
    88     connect(m_pBookmarksWidget, &UIVMLogViewerBookmarksWidget::sigBookmarkSelected,
    89             this, &UIVMLogViewerPaneContainer::sigBookmarkSelected);
    90 
    91     /* Preferences tab: */
    92     m_pPreferencesWidget = new UIVMLogViewerPreferencesWidget(0, m_pViewer);
    93     insertTab(Page_Preferences, m_pPreferencesWidget);
    94 
    95     connect(m_pPreferencesWidget, &UIVMLogViewerPreferencesWidget::sigShowLineNumbers,
    96             this, &UIVMLogViewerPaneContainer::sigShowLineNumbers);
    97     connect(m_pPreferencesWidget, &UIVMLogViewerPreferencesWidget::sigWrapLines,
    98             this, &UIVMLogViewerPaneContainer::sigWrapLines);
    99     connect(m_pPreferencesWidget, &UIVMLogViewerPreferencesWidget::sigChangeFontSizeInPoints,
    100             this, &UIVMLogViewerPaneContainer::sigChangeFontSizeInPoints);
    101     connect(m_pPreferencesWidget, &UIVMLogViewerPreferencesWidget::sigChangeFont,
    102             this, &UIVMLogViewerPaneContainer::sigChangeFont);
    103     connect(m_pPreferencesWidget, &UIVMLogViewerPreferencesWidget::sigResetToDefaults,
    104             this, &UIVMLogViewerPaneContainer::sigResetToDefaults);
    105 
    106     sltRetranslateUI();
    10758    connect(&translationEventListener(), &UITranslationEventListener::sigRetranslateUI,
    108             this, &UIVMLogViewerPaneContainer::sltRetranslateUI);
     59            this, &UIVMActivityMonitorPaneContainer::sltRetranslateUI);
    10960}
    11061
    111 void UIVMLogViewerPaneContainer::refreshSearch()
     62void UIVMActivityMonitorPaneContainer::sltRetranslateUI()
    11263{
    113     if (m_pSearchWidget)
    114         m_pSearchWidget->refreshSearch();
     64    m_strTabText = QApplication::translate("UIVMActivityMonitorPaneContainer", "Preferences");
    11565}
    116 
    117 QVector<float> UIVMLogViewerPaneContainer::matchLocationVector() const
    118 {
    119     if (!m_pSearchWidget)
    120         return QVector<float>();
    121     return m_pSearchWidget->matchLocationVector();
    122 }
    123 
    124 int UIVMLogViewerPaneContainer::matchCount() const
    125 {
    126     if (!m_pSearchWidget)
    127         return 0;
    128     return m_pSearchWidget->matchCount();
    129 }
    130 
    131 void UIVMLogViewerPaneContainer::applyFilter()
    132 {
    133     if (m_pFilterWidget)
    134         m_pFilterWidget->applyFilter();
    135 }
    136 
    137 void UIVMLogViewerPaneContainer::updateBookmarkList(const QVector<UIVMLogBookmark>& bookmarkList)
    138 {
    139     if (m_pBookmarksWidget)
    140         m_pBookmarksWidget->updateBookmarkList(bookmarkList);
    141 }
    142 
    143 void UIVMLogViewerPaneContainer::disableEnableBookmarking(bool flag)
    144 {
    145     if (m_pBookmarksWidget)
    146         m_pBookmarksWidget->disableEnableBookmarking(flag);
    147 }
    148 
    149 void UIVMLogViewerPaneContainer::setShowLineNumbers(bool bShowLineNumbers)
    150 {
    151     if (m_pPreferencesWidget)
    152         m_pPreferencesWidget->setShowLineNumbers(bShowLineNumbers);
    153 }
    154 
    155 void UIVMLogViewerPaneContainer::setWrapLines(bool bWrapLines)
    156 {
    157     if (m_pPreferencesWidget)
    158         m_pPreferencesWidget->setWrapLines(bWrapLines);
    159 }
    160 
    161 void UIVMLogViewerPaneContainer::setFontSizeInPoints(int fontSizeInPoints)
    162 {
    163     if (m_pPreferencesWidget)
    164         m_pPreferencesWidget->setFontSizeInPoints(fontSizeInPoints);
    165 }
    166 
    167 void UIVMLogViewerPaneContainer::sltRetranslateUI()
    168 {
    169     setTabText(Page_Search, UIVMLogViewerWidget::tr("Find"));
    170     setTabText(Page_Filter, UIVMLogViewerWidget::tr("Filter"));
    171     setTabText(Page_Bookmark, UIVMLogViewerWidget::tr("Bookmarks"));
    172     setTabText(Page_Preferences, UIVMLogViewerWidget::tr("Preferences"));
    173 }
    174 
    175 bool UIVMLogViewerPaneContainer::eventFilter(QObject *pObject, QEvent *pEvent)
    176 {
    177     /* Check if the search panel is interested in the event (most prob. key event): */
    178     if (m_pSearchWidget && m_pSearchWidget->handleSearchRelatedEvents(pObject, pEvent))
    179         return true;
    180 
    181     return UIPaneContainer::eventFilter(pObject, pEvent);
    182 }
    183 
    184 
    185 /*********************************************************************************************************************************
    186 *   UIVMLogViewerPanel implementation.                                                                                           *
    187 *********************************************************************************************************************************/
    188 
    189 UIVMLogViewerPane::UIVMLogViewerPane(QWidget *pParent, UIVMLogViewerWidget *pViewer)
    190     : QWidget(pParent)
    191     , m_pViewer(pViewer)
    192 {
    193 }
    194 
    195 UIVMLogViewerWidget* UIVMLogViewerPane::viewer()
    196 {
    197     return m_pViewer;
    198 }
    199 
    200 const UIVMLogViewerWidget* UIVMLogViewerPane::viewer() const
    201 {
    202     return m_pViewer;
    203 }
    204 
    205 QTextDocument  *UIVMLogViewerPane::textDocument()
    206 {
    207     QPlainTextEdit *pEdit = textEdit();
    208     if (!pEdit)
    209         return 0;
    210     return textEdit()->document();
    211 }
    212 
    213 QPlainTextEdit *UIVMLogViewerPane::textEdit()
    214 {
    215     if (!viewer())
    216         return 0;
    217     UIVMLogPage *logPage = viewer()->currentLogPage();
    218     if (!logPage)
    219         return 0;
    220     return logPage->textEdit();
    221 }
    222 
    223 const QString* UIVMLogViewerPane::logString() const
    224 {
    225     if (!viewer())
    226         return 0;
    227     const UIVMLogPage* const page = qobject_cast<const UIVMLogPage* const>(viewer()->currentLogPage());
    228     if (!page)
    229         return 0;
    230     return &(page->logString());
    231 }
  • trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitorPaneContainer.h

    r104426 r104445  
    11/* $Id$ */
    22/** @file
    3  * VBox Qt GUI - UIVMLogViewer class declaration.
     3 * VBox Qt GUI - UIVMActivityMonitorPanel class declaration.
    44 */
    55
     
    2626 */
    2727
    28 #ifndef FEQT_INCLUDED_SRC_logviewer_UIVMLogViewerPanel_h
    29 #define FEQT_INCLUDED_SRC_logviewer_UIVMLogViewerPanel_h
     28#ifndef FEQT_INCLUDED_SRC_activity_vmactivity_UIVMActivityMonitorPaneContainer_h
     29#define FEQT_INCLUDED_SRC_activity_vmactivity_UIVMActivityMonitorPaneContainer_h
    3030#ifndef RT_WITHOUT_PRAGMA_ONCE
    3131# pragma once
     
    3333
    3434/* GUI includes: */
     35#include "UILibraryDefs.h"
    3536#include "UIPaneContainer.h"
    36 #include "UIVMLogBookmark.h"
    3737
    38 /* Forward declarations: */
    39 class QPlainTextEdit;
    40 class QTextDocument;
    41 class UIVMLogViewerWidget;
    42 class UIVMLogViewerSearchWidget;
    43 class UIVMLogViewerFilterWidget;
    44 class UIVMLogViewerBookmarksWidget;
    45 class UIVMLogViewerPreferencesWidget;
    4638
    47 class UIVMLogViewerPaneContainer : public UIPaneContainer
     39class SHARED_LIBRARY_STUFF UIVMActivityMonitorPaneContainer : public UIPaneContainer
    4840{
     41
    4942    Q_OBJECT;
    50 
    51 signals:
    52 
    53     void sigHighlightingUpdated();
    54     void sigSearchUpdated();
    55     void sigFilterApplied();
    56     void sigDeleteBookmarkByIndex(int bookmarkIndex);
    57     void sigDeleteAllBookmarks();
    58     void sigBookmarkSelected(int index);
    59 
    60     void sigShowLineNumbers(bool show);
    61     void sigWrapLines(bool show);
    62     void sigChangeFontSizeInPoints(int size);
    63     void sigChangeFont(QFont font);
    64     void sigResetToDefaults();
    65 
    66     void sigShowSearchPane();
    6743
    6844public:
    6945
    70     UIVMLogViewerPaneContainer(QWidget *pParent,
    71                                UIVMLogViewerWidget *pViewer,
    72                                EmbedTo enmEmbedTo = EmbedTo_Stack);
    73 
    74     /** @name Search page pass through functions
    75       * @{ */
    76         void refreshSearch();
    77         QVector<float> matchLocationVector() const;
    78         /** Returns the number of the matches to the current search. */
    79         int matchCount() const;
    80     /** @} */
    81 
    82     /** @name Filter page pass through functions
    83       * @{ */
    84         void applyFilter();
    85     /** @} */
    86 
    87     /** @name Bookmark page pass through functions
    88       * @{ */
    89         void updateBookmarkList(const QVector<UIVMLogBookmark>& bookmarkList);
    90         void disableEnableBookmarking(bool flag);
    91     /** @} */
    92 
    93     /** @name Preferences page pass through functions
    94       * @{ */
    95         void setShowLineNumbers(bool bShowLineNumbers);
    96         void setWrapLines(bool bWrapLines);
    97         void setFontSizeInPoints(int fontSizeInPoints);
    98     /** @} */
    99 
    100     enum Page
    101     {
    102         Page_Search = 0,
    103         Page_Filter,
    104         Page_Bookmark,
    105         Page_Preferences,
    106         Page_Max
    107     };
    108 
    109 protected:
    110 
    111     virtual bool eventFilter(QObject *pObject, QEvent *pEvent) RT_OVERRIDE;
     46    UIVMActivityMonitorPaneContainer(QWidget *pParent, EmbedTo enmEmbedTo = EmbedTo_Stack);
    11247
    11348private slots:
     
    11752private:
    11853
    119     void prepare() RT_OVERRIDE;
    120 
    121     UIVMLogViewerWidget             *m_pViewer;
    122     UIVMLogViewerSearchWidget        *m_pSearchWidget;
    123     UIVMLogViewerFilterWidget       *m_pFilterWidget;
    124     UIVMLogViewerBookmarksWidget     *m_pBookmarksWidget;
    125     UIVMLogViewerPreferencesWidget  *m_pPreferencesWidget;
     54    void prepare();
     55    QString m_strTabText;
    12656};
    12757
    128 /** UIDialonPanel extension acting as the base class for UIVMLogViewerXXXPanel widgets. */
    129 class UIVMLogViewerPane : public QWidget
    130 {
    131     Q_OBJECT;
    13258
    133 public:
    13459
    135     UIVMLogViewerPane(QWidget *pParent, UIVMLogViewerWidget *pViewer);
    136 
    137 protected:
    138 
    139     virtual void prepareWidgets() = 0;
    140     virtual void prepareConnections()  = 0;
    141 
    142     /* Access functions for children classes. */
    143     UIVMLogViewerWidget        *viewer();
    144     const UIVMLogViewerWidget  *viewer() const;
    145     QTextDocument  *textDocument();
    146     QPlainTextEdit *textEdit();
    147     /* Return the unmodified log. */
    148     const QString *logString() const;
    149 
    150 private:
    151 
    152     /** Holds the reference to VM Log-Viewer this panel belongs to. */
    153     UIVMLogViewerWidget *m_pViewer;
    154 };
    155 
    156 #endif /* !FEQT_INCLUDED_SRC_logviewer_UIVMLogViewerPanel_h */
     60#endif /* !FEQT_INCLUDED_SRC_activity_vmactivity_UIVMActivityMonitorPaneContainer_h */
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.cpp

    r104393 r104445  
    32723272};
    32733273
     3274/** Simple action extension, used as 'Toggle Pane Preferences' action class. */
     3275class UIActionMenuActivityPreferences : public UIActionToggle
     3276{
     3277    Q_OBJECT;
     3278
     3279public:
     3280
     3281    /** Constructs action passing @a pParent to the base-class. */
     3282    UIActionMenuActivityPreferences(UIActionPool *pParent)
     3283        : UIActionToggle(pParent)
     3284    {
     3285        setShortcutContext(Qt::WidgetWithChildrenShortcut);
     3286        setIcon(UIIconPool::iconSetFull(":/log_viewer_options_32px.png",          ":/log_viewer_options_16px.png",
     3287                                        ":/log_viewer_options_disabled_32px.png", ":/log_viewer_options_disabled_16px.png"));
     3288    }
     3289
     3290protected:
     3291
     3292    /** Returns shortcut extra-data ID. */
     3293    virtual QString shortcutExtraDataID() const RT_OVERRIDE
     3294    {
     3295        return QString("ToggleActivityMonitorPreferences");
     3296    }
     3297
     3298    /** Returns default shortcut. */
     3299    virtual QKeySequence defaultShortcut(UIType) const RT_OVERRIDE
     3300    {
     3301        return QKeySequence("");
     3302    }
     3303
     3304    /** Handles translation event. */
     3305    virtual void retranslateUi() RT_OVERRIDE
     3306    {
     3307        setName(QApplication::translate("UIActionPool", "&Preferences"));
     3308        setShortcutScope(QApplication::translate("UIActionPool", "Activity Monitor"));
     3309        setStatusTip(QApplication::translate("UIActionPool", "Open pane with activity monitor preferences"));
     3310        setToolTip(  QApplication::translate("UIActionPool", "Open Preferences Pane")
     3311                   + (shortcut().isEmpty() ? QString() : QString(" (%1)").arg(shortcut().toString())));
     3312    }
     3313};
     3314
    32743315
    32753316/*********************************************************************************************************************************
     
    35193560    m_pool[UIActionIndex_M_Activity_S_Export] = new UIActionMenuSelectorActivityPerformExport(this);
    35203561    m_pool[UIActionIndex_M_Activity_S_ToVMActivityOverview] = new UIActionMenuSelectorActivityToVMActivityOverview(this);
     3562    m_pool[UIActionIndex_M_Activity_T_Preferences] = new UIActionMenuActivityPreferences(this);
    35213563
    35223564    /* Create 'File Manager' actions: */
     
    39944036    pMenu->addAction(action(UIActionIndex_M_Activity_S_Export));
    39954037    pMenu->addAction(action(UIActionIndex_M_Activity_S_ToVMActivityOverview));
     4038    /* 'Preferences' action: */
     4039    pMenu->addAction(action(UIActionIndex_M_Activity_T_Preferences));
    39964040
    39974041    /* Mark menu as valid: */
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPool.h

    r104393 r104445  
    106106    UIActionIndex_M_Activity_S_Export,
    107107    UIActionIndex_M_Activity_S_ToVMActivityOverview,
     108    UIActionIndex_M_Activity_T_Preferences,
    108109
    109110    /* File Manager actions: */
  • trunk/src/VBox/Frontends/VirtualBox/src/guestctrl/UIFileManager.cpp

    r104393 r104445  
    230230        m_pFileTableSplitter->setCollapsible(i, false);
    231231
    232     /** Vertical splitter has 3 widgets. Log panel as bottom most one, operations panel on top of it,
    233      * and pTopWidget which contains everthing else: */
    234232    m_pVerticalSplitter = new QSplitter;
    235233    if (m_pVerticalSplitter)
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManagerWidget.cpp

    r104393 r104445  
    10321032                m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Activity_S_Export));
    10331033                m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Activity_S_ToVMActivityOverview));
     1034                m_pToolBar->addAction(actionPool()->action(UIActionIndex_M_Activity_T_Preferences));
    10341035                m_pToolBar->addSeparator();
    10351036                m_pToolBar->addAction(actionPool()->action(UIActionIndexMN_M_Machine_S_Settings));
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPaneContainer.h

    r103923 r104445  
    7777    EmbedTo  m_enmEmbedTo;
    7878    bool     m_fDetachAllowed;
    79 
    8079    QTabWidget *m_pTabWidget;
    81 
    8280    QIDialogButtonBox *m_pButtonBox;
    8381};
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette