RtpPlayerDialog::RtpPlayerDialog(QWidget &parent, CaptureFile &cf) : WiresharkDialog(parent, cf) #ifdef QT_MULTIMEDIA_LIB , ui(new Ui::RtpPlayerDialog) , start_rel_time_(0.0) #endif // QT_MULTIMEDIA_LIB { ui->setupUi(this); setWindowTitle(wsApp->windowTitleString(tr("RTP Player"))); resize(parent.size()); #ifdef QT_MULTIMEDIA_LIB ui->splitter->setStretchFactor(0, 3); ui->splitter->setStretchFactor(1, 1); ctx_menu_ = new QMenu(this); ctx_menu_->addAction(ui->actionZoomIn); ctx_menu_->addAction(ui->actionZoomOut); ctx_menu_->addAction(ui->actionReset); ctx_menu_->addSeparator(); ctx_menu_->addAction(ui->actionMoveRight10); ctx_menu_->addAction(ui->actionMoveLeft10); ctx_menu_->addAction(ui->actionMoveRight1); ctx_menu_->addAction(ui->actionMoveLeft1); ctx_menu_->addSeparator(); ctx_menu_->addAction(ui->actionGoToPacket); ctx_menu_->addSeparator(); ctx_menu_->addAction(ui->actionDragZoom); ctx_menu_->addAction(ui->actionToggleTimeOrigin); ctx_menu_->addAction(ui->actionCrosshairs); connect(ui->audioPlot, SIGNAL(mouseMove(QMouseEvent*)), this, SLOT(mouseMoved(QMouseEvent*))); connect(ui->audioPlot, SIGNAL(mousePress(QMouseEvent*)), this, SLOT(graphClicked(QMouseEvent*))); cur_play_pos_ = new QCPItemStraightLine(ui->audioPlot); ui->audioPlot->addItem(cur_play_pos_); cur_play_pos_->setVisible(false); ui->audioPlot->xAxis->setNumberFormat("gb"); ui->audioPlot->xAxis->setNumberPrecision(3); ui->audioPlot->xAxis->setDateTimeFormat("yyyy-MM-dd\nhh:mm:ss.zzz"); ui->audioPlot->yAxis->setVisible(false); ui->playButton->setIcon(StockIcon("media-playback-start")); ui->stopButton->setIcon(StockIcon("media-playback-stop")); ui->audioPlot->setMouseTracking(true); ui->audioPlot->setEnabled(true); ui->audioPlot->setInteractions( QCP::iRangeDrag | QCP::iRangeZoom ); ui->audioPlot->setFocus(); QTimer::singleShot(0, this, SLOT(retapPackets())); #endif // QT_MULTIMEDIA_LIB }
QPushButton *RtpPlayerDialog::addPlayerButton(QDialogButtonBox *button_box) { if (!button_box) return NULL; QPushButton *player_button; player_button = button_box->addButton(tr("Play Streams"), QDialogButtonBox::ApplyRole); player_button->setIcon(StockIcon("media-playback-start")); return player_button; }
void InterfaceTree::display() { #ifdef HAVE_LIBPCAP interface_t device; #if HAVE_EXTCAP QIcon extcap_icon(StockIcon("x-capture-options")); #endif setDisabled(false); clear(); if (global_capture_opts.all_ifaces->len == 0) { // Error,or just no interfaces? QTreeWidgetItem *ti = new QTreeWidgetItem(); QLabel *err_label; if (global_capture_opts.ifaces_err == 0) { err_label = new QLabel("No interfaces found"); } else { err_label = new QLabel(global_capture_opts.ifaces_err_info); } err_label->setWordWrap(true); setColumnCount(1); addTopLevelItem(ti); setItemWidget(ti, 0, err_label); resizeColumnToContents(0); return; } /* when no interfaces were available initially and an update of the interface list called this function, the column count is set to 1 reset it to ensure that the interface list is properly displayed */ resetColumnCount(); // List physical interfaces first. Alternatively we could sort them by // traffic, interface name, or most recently used. QList<QTreeWidgetItem *> phys_ifaces; QList<QTreeWidgetItem *> virt_ifaces; for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) { device = g_array_index(global_capture_opts.all_ifaces, interface_t, i); /* Continue if capture device is hidden */ if (device.hidden) { continue; } InterfaceTreeWidgetItem *ti = new InterfaceTreeWidgetItem(); ti->setText(IFTREE_COL_NAME, QString().fromUtf8(device.display_name)); ti->setData(IFTREE_COL_NAME, Qt::UserRole, QString(device.name)); ti->setData(IFTREE_COL_STATS, Qt::UserRole, qVariantFromValue(&ti->points)); #if HAVE_EXTCAP if (device.if_info.type == IF_EXTCAP) { if (extcap_has_configuration((const char *)(device.name), FALSE)) { ti->setIcon(IFTREE_COL_EXTCAP, extcap_icon); ti->setData(IFTREE_COL_EXTCAP, Qt::UserRole, QString(device.if_info.extcap)); if (!(device.external_cap_args_settings != 0 && g_hash_table_size(device.external_cap_args_settings) > 0)) { QFont ti_font = ti->font(IFTREE_COL_NAME); ti_font.setItalic(true); ti->setFont(IFTREE_COL_NAME, ti_font); } } virt_ifaces << ti; } else #endif { phys_ifaces << ti; } // XXX Need to handle interfaces passed from the command line. if (strstr(prefs.capture_device, device.name) != NULL) { device.selected = TRUE; global_capture_opts.num_selected++; global_capture_opts.all_ifaces = g_array_remove_index(global_capture_opts.all_ifaces, i); g_array_insert_val(global_capture_opts.all_ifaces, i, device); } } if (!phys_ifaces.isEmpty()) addTopLevelItems(phys_ifaces); if (!virt_ifaces.isEmpty()) addTopLevelItems(virt_ifaces); setSelectedInterfaces(); // XXX Add other device information resizeColumnToContents(IFTREE_COL_NAME); resizeColumnToContents(IFTREE_COL_STATS); #if HAVE_EXTCAP resizeColumnToContents(IFTREE_COL_EXTCAP); #endif #else QTreeWidgetItem *ti = new QTreeWidgetItem(); clear(); setColumnCount(1); ti->setText(0, tr("Interface information not available")); addTopLevelItem(ti); resizeColumnToContents(0); #endif // HAVE_LIBPCAP }