QgsStatisticalSummaryDockWidget::QgsStatisticalSummaryDockWidget( QWidget *parent ) : QgsDockWidget( parent ) , mLayer( nullptr ) { setupUi( this ); mFieldExpressionWidget->registerExpressionContextGenerator( this ); mLayerComboBox->setFilters( QgsMapLayerProxyModel::VectorLayer ); mFieldExpressionWidget->setFilters( QgsFieldProxyModel::Numeric | QgsFieldProxyModel::String | QgsFieldProxyModel::Date ); mLayerComboBox->setLayer( mLayerComboBox->layer( 0 ) ); mFieldExpressionWidget->setLayer( mLayerComboBox->layer( 0 ) ); connect( mLayerComboBox, SIGNAL( layerChanged( QgsMapLayer* ) ), this, SLOT( layerChanged( QgsMapLayer* ) ) ); connect( mFieldExpressionWidget, SIGNAL( fieldChanged( QString ) ), this, SLOT( refreshStatistics() ) ); connect( mSelectedOnlyCheckBox, SIGNAL( toggled( bool ) ), this, SLOT( refreshStatistics() ) ); connect( mButtonRefresh, SIGNAL( clicked( bool ) ), this, SLOT( refreshStatistics() ) ); connect( QgsProject::instance(), SIGNAL( layersWillBeRemoved( QStringList ) ), this, SLOT( layersRemoved( QStringList ) ) ); QSettings settings; Q_FOREACH ( QgsStatisticalSummary::Statistic stat, mDisplayStats ) { QAction* action = new QAction( QgsStatisticalSummary::displayName( stat ), mOptionsToolButton ); action->setCheckable( true ); bool checked = settings.value( QStringLiteral( "/StatisticalSummaryDock/checked_%1" ).arg( stat ), true ).toBool(); action->setChecked( checked ); action->setData( stat ); mStatsActions.insert( stat, action ); connect( action, SIGNAL( triggered( bool ) ), this, SLOT( statActionTriggered( bool ) ) ); mOptionsToolButton->addAction( action ); }
QgsStatisticalSummaryDockWidget::QgsStatisticalSummaryDockWidget( QWidget *parent ) : QDockWidget( parent ) , mLayer( 0 ) { setupUi( this ); mLayerComboBox->setFilters( QgsMapLayerProxyModel::VectorLayer ); mFieldExpressionWidget->setFilters( QgsFieldProxyModel::Numeric ); connect( mLayerComboBox, SIGNAL( layerChanged( QgsMapLayer* ) ), this, SLOT( layerChanged( QgsMapLayer* ) ) ); connect( mFieldExpressionWidget, SIGNAL( fieldChanged( QString ) ), this, SLOT( refreshStatistics() ) ); connect( mSelectedOnlyCheckBox, SIGNAL( toggled( bool ) ), this, SLOT( refreshStatistics() ) ); connect( mButtonRefresh, SIGNAL( clicked( bool ) ), this, SLOT( refreshStatistics() ) ); if ( mLayerComboBox->currentLayer() ) { mFieldExpressionWidget->setLayer( mLayerComboBox->currentLayer() ); } QSettings settings; foreach ( QgsStatisticalSummary::Statistic stat, mDisplayStats ) { QAction* action = new QAction( QgsStatisticalSummary::displayName( stat ), mOptionsToolButton ); action->setCheckable( true ); bool checked = settings.value( QString( "/StatisticalSummaryDock/checked_%1" ).arg( stat ), true ).toBool(); action->setChecked( checked ); action->setData( stat ); mStatsActions.insert( stat, action ); connect( action, SIGNAL( triggered( bool ) ), this, SLOT( statActionTriggered( bool ) ) ); mOptionsToolButton->addAction( action ); }
void UIVMInformationDialog::sltProcessStatistics() { /* Get machine debugger: */ CMachineDebugger dbg = m_session.GetConsole().GetDebugger(); QString strInfo; /* Process selected VM statistics: */ for (DataMapType::const_iterator it = m_names.begin(); it != m_names.end(); ++it) { strInfo = dbg.GetStats(it.key(), true); m_values[it.key()] = parseStatistics(strInfo); } /* Update VM statistics page: */ refreshStatistics(); }
void UIVMInformationDialog::retranslateUi() { sltUpdateDetails(); AssertReturnVoid(!m_session.isNull()); CMachine machine = m_session.GetMachine(); AssertReturnVoid(!machine.isNull()); /* Setup dialog title: */ setWindowTitle(tr("%1 - Session Information").arg(machine.GetName())); /* Translate tabs: */ m_pTabWidget->setTabText(0, tr("Configuration &Details")); m_pTabWidget->setTabText(1, tr("&Runtime Information")); /* Clear counter names initially: */ m_names.clear(); m_units.clear(); m_links.clear(); /* Storage statistics: */ CSystemProperties sp = vboxGlobal().virtualBox().GetSystemProperties(); CStorageControllerVector controllers = m_session.GetMachine().GetStorageControllers(); int iIDECount = 0, iSATACount = 0, iSCSICount = 0; foreach (const CStorageController &controller, controllers) { switch (controller.GetBus()) { case KStorageBus_IDE: { for (ULONG i = 0; i < sp.GetMaxPortCountForStorageBus(KStorageBus_IDE); ++i) { for (ULONG j = 0; j < sp.GetMaxDevicesPerPortForStorageBus(KStorageBus_IDE); ++j) { /* Names: */ m_names[QString("/Devices/IDE%1/ATA%2/Unit%3/*DMA") .arg(iIDECount).arg(i).arg(j)] = tr("DMA Transfers"); m_names[QString("/Devices/IDE%1/ATA%2/Unit%3/*PIO") .arg(iIDECount).arg(i).arg(j)] = tr("PIO Transfers"); m_names[QString("/Devices/IDE%1/ATA%2/Unit%3/ReadBytes") .arg(iIDECount).arg(i).arg(j)] = tr("Data Read"); m_names[QString("/Devices/IDE%1/ATA%2/Unit%3/WrittenBytes") .arg(iIDECount).arg(i).arg(j)] = tr("Data Written"); /* Units: */ m_units[QString("/Devices/IDE%1/ATA%2/Unit%3/*DMA") .arg(iIDECount).arg(i).arg(j)] = "[B]"; m_units[QString("/Devices/IDE%1/ATA%2/Unit%3/*PIO") .arg(iIDECount).arg(i).arg(j)] = "[B]"; m_units[QString("/Devices/IDE%1/ATA%2/Unit%3/ReadBytes") .arg(iIDECount).arg(i).arg(j)] = "B"; m_units[QString("/Devices/IDE%1/ATA%2/Unit%3/WrittenBytes") .arg(iIDECount).arg(i).arg(j)] = "B"; /* Belongs to */ m_links[QString("/Devices/IDE%1/ATA%2/Unit%3").arg(iIDECount).arg(i).arg(j)] = QStringList() << QString("/Devices/IDE%1/ATA%2/Unit%3/*DMA").arg(iIDECount).arg(i).arg(j) << QString("/Devices/IDE%1/ATA%2/Unit%3/*PIO").arg(iIDECount).arg(i).arg(j) << QString("/Devices/IDE%1/ATA%2/Unit%3/ReadBytes").arg(iIDECount).arg(i).arg(j) << QString("/Devices/IDE%1/ATA%2/Unit%3/WrittenBytes").arg(iIDECount).arg(i).arg(j); } } ++iIDECount; break; } case KStorageBus_SATA: { for (ULONG i = 0; i < sp.GetMaxPortCountForStorageBus(KStorageBus_SATA); ++i) { for (ULONG j = 0; j < sp.GetMaxDevicesPerPortForStorageBus(KStorageBus_SATA); ++j) { /* Names: */ m_names[QString("/Devices/SATA%1/Port%2/DMA").arg(iSATACount).arg(i)] = tr("DMA Transfers"); m_names[QString("/Devices/SATA%1/Port%2/ReadBytes").arg(iSATACount).arg(i)] = tr("Data Read"); m_names[QString("/Devices/SATA%1/Port%2/WrittenBytes").arg(iSATACount).arg(i)] = tr("Data Written"); /* Units: */ m_units[QString("/Devices/SATA%1/Port%2/DMA").arg(iSATACount).arg(i)] = "[B]"; m_units[QString("/Devices/SATA%1/Port%2/ReadBytes").arg(iSATACount).arg(i)] = "B"; m_units[QString("/Devices/SATA%1/Port%2/WrittenBytes").arg(iSATACount).arg(i)] = "B"; /* Belongs to: */ m_links[QString("/Devices/SATA%1/Port%2").arg(iSATACount).arg(i)] = QStringList() << QString("/Devices/SATA%1/Port%2/DMA").arg(iSATACount).arg(i) << QString("/Devices/SATA%1/Port%2/ReadBytes").arg(iSATACount).arg(i) << QString("/Devices/SATA%1/Port%2/WrittenBytes").arg(iSATACount).arg(i); } } ++iSATACount; break; } case KStorageBus_SCSI: { for (ULONG i = 0; i < sp.GetMaxPortCountForStorageBus(KStorageBus_SCSI); ++i) { for (ULONG j = 0; j < sp.GetMaxDevicesPerPortForStorageBus(KStorageBus_SCSI); ++j) { /* Names: */ m_names[QString("/Devices/SCSI%1/%2/ReadBytes").arg(iSCSICount).arg(i)] = tr("Data Read"); m_names[QString("/Devices/SCSI%1/%2/WrittenBytes").arg(iSCSICount).arg(i)] = tr("Data Written"); /* Units: */ m_units[QString("/Devices/SCSI%1/%2/ReadBytes").arg(iSCSICount).arg(i)] = "B"; m_units[QString("/Devices/SCSI%1/%2/WrittenBytes").arg(iSCSICount).arg(i)] = "B"; /* Belongs to: */ m_links[QString("/Devices/SCSI%1/%2").arg(iSCSICount).arg(i)] = QStringList() << QString("/Devices/SCSI%1/%2/ReadBytes").arg(iSCSICount).arg(i) << QString("/Devices/SCSI%1/%2/WrittenBytes").arg(iSCSICount).arg(i); } } ++iSCSICount; break; } default: break; } } /* Network statistics: */ ulong count = vboxGlobal().virtualBox().GetSystemProperties().GetMaxNetworkAdapters(KChipsetType_PIIX3); for (ulong i = 0; i < count; ++i) { CNetworkAdapter na = machine.GetNetworkAdapter(i); KNetworkAdapterType ty = na.GetAdapterType(); const char *name; switch (ty) { case KNetworkAdapterType_I82540EM: case KNetworkAdapterType_I82543GC: case KNetworkAdapterType_I82545EM: name = "E1k"; break; case KNetworkAdapterType_Virtio: name = "VNet"; break; default: name = "PCNet"; break; } /* Names: */ m_names[QString("/Devices/%1%2/TransmitBytes").arg(name).arg(i)] = tr("Data Transmitted"); m_names[QString("/Devices/%1%2/ReceiveBytes").arg(name).arg(i)] = tr("Data Received"); /* Units: */ m_units[QString("/Devices/%1%2/TransmitBytes").arg(name).arg(i)] = "B"; m_units[QString("/Devices/%1%2/ReceiveBytes").arg(name).arg(i)] = "B"; /* Belongs to: */ m_links[QString("NA%1").arg(i)] = QStringList() << QString("/Devices/%1%2/TransmitBytes").arg(name).arg(i) << QString("/Devices/%1%2/ReceiveBytes").arg(name).arg(i); } /* Statistics page update: */ refreshStatistics(); }