VirtualBox

Changeset 12183 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Sep 7, 2008 2:35:53 AM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
36154
Message:

Debugger GUI: Having a go at the statistics view and hitting a extremely inefficient tree view. So, later.

Location:
trunk/src/VBox/Debugger
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Debugger/Makefile.kmk

    r12182 r12183  
    135135VBoxDbg_QT_MOCHDRS = \
    136136        VBoxDbgGui.h \
    137         VBoxDbgConsole.h
    138 #       VBoxDbgStats.h
     137        VBoxDbgConsole.h \
     138        VBoxDbgStats.h
    139139VBoxDbg_SOURCES = \
    140140        VBoxDbg.cpp \
    141141        VBoxDbgGui.cpp \
    142142        VBoxDbgBase.cpp \
    143         VBoxDbgConsole.cpp
    144 #       VBoxDbgStats.cpp
     143        VBoxDbgConsole.cpp \
     144        VBoxDbgStats.cpp
    145145VBoxDbg_LIBS = \
    146146        $(LIB_VMM)
  • trunk/src/VBox/Debugger/VBoxDbgBase.cpp

    r9269 r12183  
    5252}
    5353
    54 int VBoxDbgBase::stamReset(const char *pszPat)
     54int VBoxDbgBase::stamReset(const QString &rPat)
    5555{
     56#ifdef VBOXDBG_USE_QT4
     57    QByteArray Utf8Array = rPat.toUtf8();
     58    const char *pszPat = !rPat.isEmpty() ? Utf8Array.constData() : NULL;
     59#else
     60    const char *pszPat = !rPat.isEmpty() ? rPat : NULL;
     61#endif
    5662    if (m_pVM)
    5763        return STAMR3Reset(m_pVM, pszPat);
     
    5965}
    6066
    61 int VBoxDbgBase::stamEnum(const char *pszPat, PFNSTAMR3ENUM pfnEnum, void *pvUser)
     67int VBoxDbgBase::stamEnum(const QString &rPat, PFNSTAMR3ENUM pfnEnum, void *pvUser)
    6268{
     69#ifdef VBOXDBG_USE_QT4
     70    QByteArray Utf8Array = rPat.toUtf8();
     71    const char *pszPat = !rPat.isEmpty() ? Utf8Array.constData() : NULL;
     72#else
     73    const char *pszPat = !rPat.isEmpty() ? rPat : NULL;
     74#endif
    6375    if (m_pVM)
    6476        return STAMR3Enum(m_pVM, pszPat, pfnEnum, pvUser);
  • trunk/src/VBox/Debugger/VBoxDbgBase.h

    r9269 r12183  
    2929#include <VBox/dbg.h>
    3030#include <iprt/thread.h>
     31#ifdef VBOXDBG_USE_QT4
     32# include <QString>
     33#else
     34# include <qstring.h>
     35#endif
    3136
    3237
     
    7883     * Wrapper for STAMR3Reset().
    7984     */
    80     int stamReset(const char *pszPat);
     85    int stamReset(const QString &rPat);
    8186    /**
    8287     * Wrapper for STAMR3Enum().
    8388     */
    84     int stamEnum(const char *pszPat, PFNSTAMR3ENUM pfnEnum, void *pvUser);
     89    int stamEnum(const QString &rPat, PFNSTAMR3ENUM pfnEnum, void *pvUser);
    8590    /**
    8691     * Wrapper for DBGCCreate().
  • trunk/src/VBox/Debugger/VBoxDbgGui.cpp

    r12180 r12183  
    137137int VBoxDbgGui::showStatistics()
    138138{
    139 #ifndef VBOXDBG_USE_QT4
    140139    if (!m_pDbgStats)
    141140    {
     141#ifdef VBOXDBG_USE_QT4
     142        m_pDbgStats = new VBoxDbgStats(m_pVM, "*x*"); /// @todo the QTreeWidget/QTreeView sucks big time. it freezes the app for 30+ seconds. Need to write a new item model I fear. 'ing crap!!!
     143#else
    142144        m_pDbgStats = new VBoxDbgStats(m_pVM);
     145#endif
    143146        connect(m_pDbgStats, SIGNAL(destroyed(QObject *)), this, SLOT(notifyChildDestroyed(QObject *)));
    144147        repositionStatistics();
    145148    }
    146149    m_pDbgStats->show();
    147 #endif
    148150    return VINF_SUCCESS;
    149151}
     
    151153void VBoxDbgGui::repositionStatistics(bool fResize/* = true*/)
    152154{
    153 #ifndef VBOXDBG_USE_QT4
    154155    if (m_pDbgStats)
    155156    {
     
    160161            resizeWidget(m_pDbgStats, m_cxDesktop - m_cx - m_x + m_xDesktop, m_cyDesktop - m_y + m_yDesktop);
    161162    }
    162 #endif
    163163}
    164164
  • trunk/src/VBox/Debugger/VBoxDbgStats.cpp

    r9269 r12183  
    2626#define LOG_GROUP LOG_GROUP_DBGG
    2727#include "VBoxDbgStats.h"
    28 #include <qlocale.h>
    29 #include <qpushbutton.h>
    30 #include <qspinbox.h>
    31 #include <qlabel.h>
    32 #include <qclipboard.h>
    33 #include <qapplication.h>
     28#ifdef VBOXDBG_USE_QT4
     29# include <QLocale>
     30# include <QPushButton>
     31# include <QSpinBox>
     32# include <QLabel>
     33# include <QClipboard>
     34# include <QApplication>
     35# include <QHBoxLayout>
     36# include <QVBoxLayout>
     37#else
     38# include <qlocale.h>
     39# include <qpushbutton.h>
     40# include <qspinbox.h>
     41# include <qlabel.h>
     42# include <qclipboard.h>
     43# include <qapplication.h>
     44#endif
    3445
    3546#include <VBox/err.h>
     
    3950
    4051
     52#include <stdio.h> //remove me
    4153
    4254
     
    6779
    6880VBoxDbgStatsItem::VBoxDbgStatsItem(const char *pszName, VBoxDbgStatsItem *pParent, bool fBranch /*= true*/)
    69     : QListViewItem(pParent, QString(getNodeName(pszName))), m_pszName(RTStrDup(pszName)), m_fBranch(fBranch), m_pParent(pParent)
     81#ifdef VBOXDBG_USE_QT4
     82    : QTreeWidgetItem(pParent, QStringList(QString(getNodeName(pszName)))),
     83#else
     84    : QListViewItem(pParent, QString(getNodeName(pszName))),
     85#endif
     86    m_pszName(RTStrDup(pszName)), m_fBranch(fBranch), m_pParent(pParent)
    7087
    7188{
     
    7390
    7491VBoxDbgStatsItem::VBoxDbgStatsItem(const char *pszName, QListView *pParent, bool fBranch/* = true*/)
    75     : QListViewItem(pParent, QString(getNodeName(pszName))), m_pszName(RTStrDup(pszName)), m_fBranch(fBranch), m_pParent(NULL)
    76 
     92#ifdef VBOXDBG_USE_QT4
     93    : QTreeWidgetItem(pParent, QStringList(QString(getNodeName(pszName)))),
     94#else
     95    : QListViewItem(pParent, QString(getNodeName(pszName))),
     96#endif
     97    m_pszName(RTStrDup(pszName)), m_fBranch(fBranch), m_pParent(NULL)
    7798{
    7899}
     
    87108{
    88109    /* Iterate and print our children. */
    89     QListViewItem *pItem;
    90     for (pItem = firstChild(); pItem; pItem = pItem->nextSibling())
     110#ifdef VBOXDBG_USE_QT4
     111    int cChildren = childCount();
     112    for (int i = 0; i < cChildren; i++)
     113    {
     114        VBoxDbgStatsItem *pMyItem = (VBoxDbgStatsItem *)child(i);
     115        pMyItem->logTree(fReleaseLog);
     116    }
     117#else
     118    for (QListViewItem *pItem = firstChild(); pItem; pItem = pItem->nextSibling())
    91119    {
    92120        VBoxDbgStatsItem *pMyItem = (VBoxDbgStatsItem *)pItem;
    93121        pMyItem->logTree(fReleaseLog);
    94122    }
     123#endif
    95124}
    96125
     
    98127{
    99128    /* Iterate and stringify our children. */
    100     QListViewItem *pItem;
    101     for (pItem = firstChild(); pItem; pItem = pItem->nextSibling())
     129#ifdef VBOXDBG_USE_QT4
     130    int cChildren = childCount();
     131    for (int i = 0; i < cChildren; i++)
     132    {
     133        VBoxDbgStatsItem *pMyItem = (VBoxDbgStatsItem *)child(i);
     134        pMyItem->stringifyTree(String);
     135    }
     136#else
     137    for (QListViewItem *pItem = firstChild(); pItem; pItem = pItem->nextSibling())
    102138    {
    103139        VBoxDbgStatsItem *pMyItem = (VBoxDbgStatsItem *)pItem;
    104140        pMyItem->stringifyTree(String);
    105141    }
     142#endif
    106143}
    107144
     
    594631     * Generic printing.
    595632     */
     633#ifdef VBOXDBG_USE_QT4
     634    if (!isHidden())
     635    {
     636        QByteArray  aColumns[9];
     637        const char *apszColumns[9];
     638        for (int i = 0; RT_ELEMENTS(aColumns); i++)
     639        {
     640            aColumns[i] = text(i).toUtf8();
     641            apszColumns[i] = aColumns[i].constData();
     642        }
     643
     644        if (fReleaseLog)
     645            RTLogRelPrintf("%-50s  %-10s %18s %18s %18s %18s %16s %s\n",
     646                           getName(), apszColumns[1], apszColumns[2], apszColumns[3],
     647                           apszColumns[4], apszColumns[5], apszColumns[7], apszColumns[8]);
     648        else
     649            RTLogPrintf("%-50s  %-10s %18s %18s %18s %18s %16s %s\n",
     650                        getName(), apszColumns[1], apszColumns[2], apszColumns[3],
     651                        apszColumns[4], apszColumns[5], apszColumns[7], apszColumns[8]);
     652    }
     653#else
    596654    if (isVisible())
    597655    {
     
    605663                        (const char *)text(4), (const char *)text(5), (const char *)text(7), (const char *)text(8));
    606664    }
     665#endif
    607666
    608667    /*
     
    617676     * Generic printing.
    618677     */
     678#ifdef VBOXDBG_USE_QT4
     679    if (!isHidden())
     680    {
     681        QByteArray  aColumns[9];
     682        const char *apszColumns[9];
     683        for (int i = 0; RT_ELEMENTS(aColumns); i++)
     684        {
     685            aColumns[i] = text(i).toUtf8();
     686            apszColumns[i] = aColumns[i].constData();
     687        }
     688
     689        QString ItemString;
     690        ItemString.sprintf("%-50s  %-10s %18s %18s %18s %18s %16s %s\n",
     691                           getName(), apszColumns[1], apszColumns[2], apszColumns[3],
     692                           apszColumns[4], apszColumns[5], apszColumns[7], apszColumns[8]);
     693        String += ItemString;
     694    }
     695#else
    619696    if (isVisible())
    620697    {
     
    625702        String += ItemString;
    626703    }
     704#endif
    627705
    628706    /*
     
    646724
    647725
    648 VBoxDbgStatsView::VBoxDbgStatsView(PVM pVM, VBoxDbgStats *pParent/* = NULL*/, const char *pszName/* = NULL*/, WFlags f/* = 0*/)
    649     : QListView(pParent, pszName, f),  VBoxDbgBase(pVM),
     726VBoxDbgStatsView::VBoxDbgStatsView(PVM pVM, VBoxDbgStats *pParent/* = NULL*/)
     727    : QListView(pParent), 
     728    VBoxDbgBase(pVM),
    650729    m_pParent(pParent), m_pHead(NULL), m_pTail(NULL), m_pCur(NULL), m_pRoot(NULL),
    651730    m_pLeafMenu(NULL), m_pBranchMenu(NULL), m_pViewMenu(NULL), m_pContextMenuItem(NULL)
     
    655734     * Create the columns.
    656735     */
     736#ifdef VBOXDBG_USE_QT4
     737    setColumnCount(9);
     738    QStringList Headers;
     739    setHeaderLabels(Headers << "Name" << "Unit" << "Value/Times" << "Min" << "Average" << "Max" << "Total" << "dInt" << "Description");
     740    setItemsExpandable(true);
     741    setSortingEnabled(true);
     742
     743#else
    657744    addColumn("Name");                  // 0
    658745    addColumn("Unit");                  // 1
     
    674761    Assert(i == 8);
    675762    setShowSortIndicator(true);
     763#endif
    676764
    677765    /*
     
    680768    setRootIsDecorated(true);
    681769    m_pRoot = new VBoxDbgStatsItem("/", this);
     770#ifdef VBOXDBG_USE_QT4
     771    m_pRoot->setExpanded(true);
     772#else
    682773    m_pRoot->setOpen(true);
     774#endif
    683775
    684776    /*
    685777     * We've got three menus to populate and link up.
    686778     */
     779#ifdef VBOXDBG_USE_QT4
     780    /** @todo */
     781
     782#else  /* QT3 */
    687783    m_pLeafMenu = new QPopupMenu(this);
    688784    m_pLeafMenu->insertItem("Rese&t", eReset);
     
    715811    connect(this, SIGNAL(contextMenuRequested(QListViewItem *, const QPoint &, int)), this,
    716812            SLOT(contextMenuReq(QListViewItem *, const QPoint &, int)));
     813#endif /* QT3 */
    717814}
    718815
     
    742839static void hideParentBranches(VBoxDbgStatsLeafItem *pItem)
    743840{
     841#ifdef VBOXDBG_USE_QT4
     842    /// @todo
     843    NOREF(pItem);
     844#else
    744845    for (VBoxDbgStatsItem *pParent = pItem->getParent(); pParent; pParent = pParent->getParent())
    745846    {
     
    751852        pParent->setVisible(false);
    752853    }
     854#endif
    753855}
    754856
     
    766868    m_pCur = m_pHead;
    767869    m_PatStr = rPatStr;
    768     int rc = stamEnum(m_PatStr.isEmpty() ? NULL : m_PatStr, updateCallback, this);
     870    int rc = stamEnum(m_PatStr, updateCallback, this);
    769871    if (VBOX_SUCCESS(rc))
    770872    {
     
    782884void VBoxDbgStatsView::reset(const QString &rPatStr)
    783885{
    784     stamReset(rPatStr.isEmpty() ? NULL : rPatStr);
     886    stamReset(rPatStr);
    785887}
    786888
    787889static void setOpenTree(QListViewItem *pItem, bool f)
    788890{
     891#ifdef VBOXDBG_USE_QT4
     892    pItem->setExpanded(f);
     893    int cChildren = pItem->childCount();
     894    for (int i = 0; i < cChildren; i++)
     895        pItem->child(i)->setExpanded(f);
     896#else
    789897    pItem->setOpen(f);
    790898    for (pItem = pItem->firstChild(); pItem; pItem = pItem->nextSibling())
    791899        setOpenTree(pItem, f);
    792 }
    793 
     900#endif
     901}
     902
     903#ifndef VBOXDBG_USE_QT4
    794904void VBoxDbgStatsView::expandAll()
    795905{
     
    801911    setOpenTree(m_pRoot, false);
    802912}
     913#endif /* QT3 */
     914
    803915
    804916/*static*/ DECLCALLBACK(int) VBoxDbgStatsView::updateCallback(const char *pszName, STAMTYPE enmType, void *pvSample, STAMUNIT enmUnit,
     
    9181030         * Try find the name among the children of that parent guy.
    9191031         */
     1032#ifdef VBOXDBG_USE_QT4
     1033        QListViewItem *pChild = NULL;
     1034        int cChildren = pParent->childCount();
     1035        for (int i = 0; i < cChildren; i++)
     1036        {
     1037            pChild = pParent->child(i);
     1038            if (pChild->text(0) == NameStr)
     1039                break;
     1040        }
     1041#else
    9201042        QListViewItem *pChild = pParent->firstChild();
    9211043        while (pChild && pChild->text(0) != NameStr)
    9221044            pChild = pChild->nextSibling();
     1045#endif
     1046
    9231047        if (pChild)
    9241048            pParent = (VBoxDbgStatsItem *)pChild;
     
    9271051            Log3(("createPath: %.*s\n", pszEnd - pszFullName, pszFullName));
    9281052            NameStr = QString::fromUtf8(pszFullName, pszEnd - pszFullName);
     1053#ifdef VBOXDBG_USE_QT4
     1054            QByteArray NameArray = NameStr.toUtf8();
     1055            pParent = new VBoxDbgStatsItem(NameArray.constData(), pParent);
     1056#else
    9291057            pParent = new VBoxDbgStatsItem(NameStr, pParent);
     1058#endif
    9301059        }
    9311060        pParent->setVisible(true);
     
    9401069        if (m_pContextMenuItem->isLeaf())
    9411070        {
     1071#ifdef VBOXDBG_USE_QT4
     1072#else
    9421073            m_pLeafMenu->setItemEnabled(eReset, isVMOk());
    9431074            m_pLeafMenu->setItemEnabled(eRefresh, isVMOk());
     1075#endif
    9441076            m_pLeafMenu->popup(rPoint);
    9451077        }
    9461078        else
    9471079        {
     1080#ifdef VBOXDBG_USE_QT4
     1081#else
    9481082            m_pBranchMenu->setItemEnabled(eReset, isVMOk());
    9491083            m_pBranchMenu->setItemEnabled(eRefresh, isVMOk());
     1084#endif
    9501085            m_pBranchMenu->popup(rPoint);
    9511086        }
     
    9541089    {
    9551090        m_pContextMenuItem = NULL;
     1091#ifdef VBOXDBG_USE_QT4
     1092#else
    9561093        m_pViewMenu->setItemEnabled(eReset, isVMOk());
    9571094        m_pViewMenu->setItemEnabled(eRefresh, isVMOk());
     1095#endif
    9581096        m_pViewMenu->popup(rPoint);
    9591097    }
     
    11101248
    11111249
    1112 VBoxDbgStats::VBoxDbgStats(PVM pVM, const char *pszPat/* = NULL*/, unsigned uRefreshRate/* = 0*/,
    1113                            QWidget *pParent/* = NULL*/, const char *pszName/* = NULL*/, WFlags f/* = 0*/)
    1114     : QVBox(pParent, pszName, f), VBoxDbgBase(pVM),
    1115     m_PatStr(pszPat), m_uRefreshRate(0)
    1116 {
     1250VBoxDbgStats::VBoxDbgStats(PVM pVM, const char *pszPat/* = NULL*/, unsigned uRefreshRate/* = 0*/, QWidget *pParent/* = NULL*/)
     1251#ifdef VBOXDBG_USE_QT4
     1252    : QWidget(pParent),
     1253#else
     1254    : QVBox(pParent),
     1255#endif
     1256    VBoxDbgBase(pVM), m_PatStr(pszPat), m_uRefreshRate(0)
     1257{
     1258#ifdef VBOXDBG_USE_QT4
     1259    setWindowTitle("VBoxDbg - Statistics");
     1260#else
    11171261    setCaption("VBoxDbg - Statistics");
     1262#endif
    11181263
    11191264    /*
    11201265     * On top, a horizontal box with the pattern field, buttons and refresh interval.
    11211266     */
     1267#ifdef VBOXDBG_USE_QT4
     1268    QHBoxLayout *pHLayout = new QHBoxLayout;
     1269
     1270    QLabel *pLabel = new QLabel(" Pattern ");
     1271    pHLayout->addWidget(pLabel);
     1272    pLabel->setMaximumSize(pLabel->sizeHint());
     1273    pLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
     1274
     1275    m_pPatCB = new QComboBox();
     1276    pHLayout->addWidget(m_pPatCB);
     1277    if (pszPat && *pszPat)
     1278        m_pPatCB->addItem(pszPat);
     1279    m_pPatCB->setDuplicatesEnabled(false);
     1280    m_pPatCB->setEditable(true);
     1281    connect(m_pPatCB, SIGNAL(activated(const QString &)), this, SLOT(apply(const QString &)));
     1282
     1283    QPushButton *pPB = new QPushButton("&All");
     1284    pHLayout->addWidget(pPB);
     1285    pPB->setMaximumSize(pPB->sizeHint());
     1286    connect(pPB, SIGNAL(clicked()), this, SLOT(applyAll()));
     1287
     1288    pLabel = new QLabel("  Interval ");
     1289    pHLayout->addWidget(pLabel);
     1290    pLabel->setMaximumSize(pLabel->sizeHint());
     1291    pLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
     1292
     1293    QSpinBox *pSB = new QSpinBox();
     1294    pHLayout->addWidget(pSB);
     1295    pSB->setMinimum(0);
     1296    pSB->setMaximum(60);
     1297    pSB->setSingleStep(1.0);
     1298    /* The reset of the spinbox setup is identical - bet they forgot to change something ;-) */
     1299#else
     1300
    11221301    QHBox *pHBox = new QHBox(this);
    11231302
     
    11411320
    11421321    QSpinBox *pSB = new QSpinBox(0, 60, 1, pHBox, "Interval");
     1322#endif
    11431323    pSB->setValue(m_uRefreshRate);
    11441324    pSB->setSuffix(" s");
     
    11501330
    11511331    /*
    1152      * Place the view at the top.
    1153      */
    1154     m_pView = new VBoxDbgStatsView(pVM, this, pszName, f);
     1332     * Create the tree view and setup the layout.
     1333     */
     1334#ifdef VBOXDBG_USE_QT4
     1335    m_pView = new VBoxDbgStatsView(pVM, this);
     1336
     1337    QWidget *pHBox = new QWidget;
     1338    pHBox->setLayout(pHLayout);
     1339
     1340    QVBoxLayout *pVLayout = new QVBoxLayout;
     1341    pVLayout->addWidget(pHBox);
     1342    pVLayout->addWidget(m_pView);
     1343    this->setLayout(pVLayout);
     1344#else
     1345    m_pView = new VBoxDbgStatsView(pVM, this);
     1346#endif
    11551347
    11561348    /*
     
    11591351     */
    11601352    int iColumn = m_pView->sortColumn();
     1353#ifdef VBOXDBG_USE_QT4
     1354    m_pView->setUpdatesEnabled(false);
     1355    m_pView->setSortingEnabled(false);
     1356    refresh();
     1357    m_pView->sortItems(iColumn, Qt::AscendingOrder);
     1358 //   QTreeView::expandAll
     1359    m_pView->expandAll();
     1360    for (int i = 0; i <= 8; i++)
     1361    {
     1362        printf("%#x: %d", i, m_pView->columnWidth(i));
     1363        m_pView->resizeColumnToContents(i);
     1364        printf(" -> %d\n", m_pView->columnWidth(i));
     1365    }
     1366    m_pView->setUpdatesEnabled(true);
     1367#else
    11611368    m_pView->setSortColumn(-1);
    11621369    refresh();
    11631370    m_pView->setSortColumn(iColumn);
    11641371    m_pView->sort();
     1372#endif
    11651373
    11661374    /*
     
    11971405    if ((unsigned)iRefresh != m_uRefreshRate)
    11981406    {
     1407#ifdef VBOXDBG_USE_QT4
     1408        if (!m_uRefreshRate || iRefresh)
     1409            m_pTimer->start(iRefresh * 1000);
     1410#else
    11991411        if (!m_uRefreshRate)
    12001412            m_pTimer->start(iRefresh * 1000);
    12011413        else if (iRefresh)
    12021414            m_pTimer->changeInterval(iRefresh * 1000);
     1415#endif
    12031416        else
    12041417            m_pTimer->stop();
  • trunk/src/VBox/Debugger/VBoxDbgStats.h

    r12180 r12183  
    109109    }
    110110
     111#ifdef VBOXDBG_USE_QT4
     112    ///virtual bool operator<(const QTreeWidgetItem &other) const;
     113#else
    111114    /**
    112115     * Get sort key.
     
    118121    virtual QString key(int iColumn, bool fAscending) const
    119122    {
    120 #ifdef VBOXDBG_USE_QT4
    121         /** @todo */ NOREF(iColumn); NOREF(fAscending);
    122         return "";
    123 #else
    124123        return QListViewItem::key(iColumn, fAscending);
     124    }
    125125#endif
    126     }
    127126
    128127    /**
     
    144143    void copyTreeToClipboard(void) const;
    145144
     145#ifdef VBOXDBG_USE_QT4
     146    void setVisible(bool fVisible)
     147    {
     148        setHidden(!fVisible);
     149    }
     150
     151    bool isVisible()
     152    {
     153        return !isHidden();
     154    }
     155#endif
    146156
    147157protected:
     
    256266
    257267public:
    258 #ifdef VBOXDBG_USE_QT4
    259     /** @todo */
    260 #else
    261268    /**
    262269     * Creates a VM statistics list view widget.
     
    264271     * @param   pVM         The VM which STAM data is being viewed.
    265272     * @param   pParent     Parent widget.
    266      * @param   pszName     Widget name.
    267      * @param   f           Widget flags.
    268      */
    269     VBoxDbgStatsView(PVM pVM, VBoxDbgStats *pParent = NULL, const char *pszName = NULL, WFlags f = 0);
    270 #endif
     273     */
     274    VBoxDbgStatsView(PVM pVM, VBoxDbgStats *pParent = NULL);
    271275
    272276    /** Destructor. */
     
    289293    void reset(const QString &rPatStr);
    290294
     295#ifndef VBOXDBG_USE_QT4
    291296    /**
    292297     * Expand all items in the view.
     
    298303     */
    299304    void collapsAll();
     305#endif /* QT3 */
    300306
    301307private:
     
    384390
    385391public:
    386 #ifdef VBOXDBG_USE_QT4
    387392    /**
    388393     * Creates a VM statistics list view widget.
     
    394399     */
    395400    VBoxDbgStats(PVM pVM, const char *pszPat = NULL, unsigned uRefreshRate= 0, QWidget *pParent = NULL);
    396 #else
    397     /**
    398      * Creates a VM statistics list view widget.
    399      *
    400      * @param   pVM             The VM this is hooked up to.
    401      * @param   pszPat          Initial selection pattern. NULL means everything. (See STAM for details.)
    402      * @param   uRefreshRate    The refresh rate. 0 means not to refresh and is the default.
    403      * @param   pParent         Parent widget.
    404      * @param   pszName         Widget name.
    405      * @param   f               Widget flags.
    406      */
    407     VBoxDbgStats(PVM pVM, const char *pszPat = NULL, unsigned uRefreshRate= 0, QWidget *pParent = NULL, const char *pszName = NULL, WFlags f = 0);
    408 #endif
    409401
    410402    /** Destructor. */
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