FollowStreamDialog::FollowStreamDialog(QWidget &parent, CaptureFile &cf, follow_type_t type) : WiresharkDialog(parent, cf), ui(new Ui::FollowStreamDialog), follow_type_(type), truncated_(false), save_as_(false) { ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose, true); memset(&follow_info_, 0, sizeof(follow_info_)); follow_info_.show_type = SHOW_ASCII; follow_info_.show_stream = BOTH_HOSTS; ui->teStreamContent->installEventFilter(this); // XXX Use recent settings instead resize(parent.width() * 2 / 3, parent.height()); QComboBox *cbcs = ui->cbCharset; cbcs->blockSignals(true); cbcs->addItem(tr("ASCII"), SHOW_ASCII); cbcs->addItem(tr("C Arrays"), SHOW_CARRAY); cbcs->addItem(tr("EBCDIC"), SHOW_EBCDIC); cbcs->addItem(tr("Hex Dump"), SHOW_HEXDUMP); cbcs->addItem(tr("UTF-8"), SHOW_UTF8); cbcs->addItem(tr("YAML"), SHOW_YAML); cbcs->addItem(tr("Raw"), SHOW_RAW); cbcs->blockSignals(false); b_filter_out_ = ui->buttonBox->addButton(tr("Hide this stream"), QDialogButtonBox::ActionRole); connect(b_filter_out_, SIGNAL(clicked()), this, SLOT(filterOut())); b_print_ = ui->buttonBox->addButton(tr("Print"), QDialogButtonBox::ActionRole); connect(b_print_, SIGNAL(clicked()), this, SLOT(printStream())); b_save_ = ui->buttonBox->addButton(tr("Save as" UTF8_HORIZONTAL_ELLIPSIS), QDialogButtonBox::ActionRole); connect(b_save_, SIGNAL(clicked()), this, SLOT(saveAs())); ProgressFrame::addToButtonBox(ui->buttonBox, &parent); connect(ui->buttonBox, SIGNAL(helpRequested()), this, SLOT(helpButton())); connect(ui->teStreamContent, SIGNAL(mouseMovedToTextCursorPosition(int)), this, SLOT(fillHintLabel(int))); connect(ui->teStreamContent, SIGNAL(mouseClickedOnTextCursorPosition(int)), this, SLOT(goToPacketForTextPos(int))); connect(&cap_file_, SIGNAL(captureFileClosing()), this, SLOT(captureFileClosing())); fillHintLabel(-1); }
WiresharkDialog::WiresharkDialog(QWidget &, CaptureFile &capture_file) : QDialog(NULL, Qt::Window), cap_file_(capture_file), file_closed_(false), retap_depth_(0), dialog_closed_(false) { setWindowIcon(wsApp->normalIcon()); setWindowTitleFromSubtitle(); connect(&cap_file_, SIGNAL(captureFileRetapStarted()), this, SLOT(beginRetapPackets())); connect(&cap_file_, SIGNAL(captureFileRetapFinished()), this, SLOT(endsRetapPackets())); connect(&cap_file_, SIGNAL(captureFileClosing()), this, SLOT(captureFileClosing())); connect(&cap_file_, SIGNAL(captureFileClosed()), this, SLOT(captureFileClosing())); }
void CaptureFile::captureFileEvent(int event, gpointer data) { switch(event) { case(cf_cb_file_opened): { g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Opened"); cap_file_ = (capture_file *) data; QFileInfo cfi(QString::fromUtf8(cap_file_->filename)); file_title_ = cfi.baseName(); emit captureFileOpened(); break; } case(cf_cb_file_closing): g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Closing"); file_state_ = tr(" [closing]"); emit captureFileClosing(); break; case(cf_cb_file_closed): g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Closed"); file_state_ = tr(" [closed]"); emit captureFileClosed(); cap_file_ = NULL; file_title_ = no_capture_file_; file_state_ = QString(); break; case(cf_cb_file_read_started): g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Read started"); emit captureFileReadStarted(); break; case(cf_cb_file_read_finished): g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Read finished"); emit captureFileReadFinished(); break; case(cf_cb_file_reload_started): g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Reload started"); emit captureFileReadStarted(); break; case(cf_cb_file_reload_finished): g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Reload finished"); emit captureFileReadFinished(); break; case(cf_cb_packet_selected): case(cf_cb_packet_unselected): case(cf_cb_field_unselected): // Signals and slots handled elsewhere. break; case(cf_cb_file_save_started): // data = string case(cf_cb_file_save_finished): case(cf_cb_file_save_failed): // Ignored break; default: g_log(NULL, G_LOG_LEVEL_DEBUG, "FIX: main_cf_callback %d %p", event, data); g_warning("CaptureFile::captureFileCallback: event %u unknown", event); break; } }
ExportObjectDialog::ExportObjectDialog(QWidget &parent, CaptureFile &cf, ObjectType object_type) : WiresharkDialog(parent, cf), eo_ui_(new Ui::ExportObjectDialog), save_bt_(NULL), save_all_bt_(NULL), tap_name_(NULL), name_(NULL), tap_packet_(NULL), eo_protocoldata_resetfn_(NULL) { QPushButton *close_bt; eo_ui_->setupUi(this); setAttribute(Qt::WA_DeleteOnClose, true); #if defined(Q_OS_MAC) eo_ui_->progressLabel->setAttribute(Qt::WA_MacSmallSize, true); eo_ui_->progressBar->setAttribute(Qt::WA_MacSmallSize, true); #endif export_object_list_.eod = this; switch (object_type) { case Dicom: tap_name_ = "dicom_eo"; name_ = "DICOM"; tap_packet_ = eo_dicom_packet; break; case Http: tap_name_ = "http_eo"; name_ = "HTTP"; tap_packet_ = eo_http_packet; break; case Smb: tap_name_ = "smb_eo"; name_ = "SMB"; tap_packet_ = eo_smb_packet; eo_protocoldata_resetfn_ = eo_smb_cleanup; break; case Tftp: tap_name_ = "tftp_eo"; name_ = "TFTP"; tap_packet_ = eo_tftp_packet; break; } save_bt_ = eo_ui_->buttonBox->button(QDialogButtonBox::Save); save_all_bt_ = eo_ui_->buttonBox->button(QDialogButtonBox::SaveAll); close_bt = eo_ui_->buttonBox->button(QDialogButtonBox::Close); setWindowTitle(wsApp->windowTitleString(QStringList() << tr("Export") << tr("%1 object list").arg(name_))); if (save_bt_) save_bt_->setEnabled(false); if (save_all_bt_) save_all_bt_->setEnabled(false); if (close_bt) close_bt->setDefault(true); connect(&cap_file_, SIGNAL(captureFileClosing()), this, SLOT(captureFileClosing())); show(); raise(); activateWindow(); }