gboolean range_check_validity_modal(GtkWidget *parent, packet_range_t *range) { GtkWidget *dialog; switch (packet_range_check(range)) { case CVT_NO_ERROR: return TRUE; case CVT_SYNTAX_ERROR: dialog = gtk_message_dialog_new(GTK_WINDOW(parent), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "The specified range of packets isn't a valid range."); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); return FALSE; case CVT_NUMBER_TOO_BIG: dialog = gtk_message_dialog_new(GTK_WINDOW(parent), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "The specified range of packets has a packet number that's too large."); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); return FALSE; default: g_assert_not_reached(); return FALSE; } }
gboolean range_check_validity(packet_range_t *range) { switch (packet_range_check(range)) { case CVT_NO_ERROR: return TRUE; case CVT_SYNTAX_ERROR: simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "The specified range of packets isn't a valid range."); return FALSE; case CVT_NUMBER_TOO_BIG: simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "The specified range of packets has a packet number that's too large."); return FALSE; default: g_assert_not_reached(); return FALSE; } }
void PacketRangeGroupBox::updateCounts() { SyntaxLineEdit::SyntaxState orig_ss = syntax_state_; bool displayed_checked = pr_ui_->displayedButton->isChecked(); int selected_num; bool can_select; bool selected_packets; int ignored_cnt = 0, displayed_ignored_cnt = 0; int label_count; if (!range_ || !range_->cf) return; if (range_->displayed_cnt != 0) { pr_ui_->displayedButton->setEnabled(true); } else { displayed_checked = false; pr_ui_->capturedButton->setChecked(true); pr_ui_->displayedButton->setEnabled(false); } // All / Captured pr_ui_->allCapturedLabel->setEnabled(!displayed_checked); label_count = range_->cf->count; if (range_->remove_ignored) { label_count -= range_->ignored_cnt; } pr_ui_->allCapturedLabel->setText(QString("%1").arg(label_count)); // All / Displayed pr_ui_->allDisplayedLabel->setEnabled(displayed_checked); if (range_->include_dependents) { label_count = range_->displayed_plus_dependents_cnt; } else { label_count = range_->displayed_cnt; } if (range_->remove_ignored) { label_count -= range_->displayed_ignored_cnt; } pr_ui_->allDisplayedLabel->setText(QString("%1").arg(label_count)); // Selected / Captured + Displayed selected_num = (range_->cf->current_frame) ? range_->cf->current_frame->num : 0; can_select = (selected_num != 0); if (can_select) { pr_ui_->selectedButton->setEnabled(true); pr_ui_->selectedCapturedLabel->setEnabled(!displayed_checked); pr_ui_->selectedDisplayedLabel->setEnabled(displayed_checked); } else { if (range_->process == range_process_selected) { pr_ui_->allButton->setChecked(true); } pr_ui_->selectedButton->setEnabled(false); pr_ui_->selectedCapturedLabel->setEnabled(false); pr_ui_->selectedDisplayedLabel->setEnabled(false); } if ((range_->remove_ignored && can_select && range_->cf->current_frame->flags.ignored) || selected_num < 1) { pr_ui_->selectedCapturedLabel->setText("0"); pr_ui_->selectedDisplayedLabel->setText("0"); } else { pr_ui_->selectedCapturedLabel->setText("1"); pr_ui_->selectedDisplayedLabel->setText("1"); } // Marked / Captured + Displayed if (displayed_checked) { selected_packets = (range_->displayed_marked_cnt != 0); } else { selected_packets = (range_->cf->marked_count > 0); } if (selected_packets) { pr_ui_->markedButton->setEnabled(true); pr_ui_->markedCapturedLabel->setEnabled(!displayed_checked); pr_ui_->markedDisplayedLabel->setEnabled(displayed_checked); } else { if (range_->process == range_process_marked) { pr_ui_->allButton->setChecked(true); } pr_ui_->markedButton->setEnabled(false); pr_ui_->markedCapturedLabel->setEnabled(false); pr_ui_->markedDisplayedLabel->setEnabled(false); } label_count = range_->cf->marked_count; if (range_->remove_ignored) { label_count -= range_->ignored_marked_cnt; } pr_ui_->markedCapturedLabel->setText(QString("%1").arg(label_count)); label_count = range_->cf->marked_count; if (range_->remove_ignored) { label_count -= range_->displayed_ignored_marked_cnt; } pr_ui_->markedDisplayedLabel->setText(QString("%1").arg(label_count)); // First to last marked / Captured + Displayed if (displayed_checked) { selected_packets = (range_->displayed_mark_range_cnt != 0); } else { selected_packets = (range_->mark_range_cnt != 0); } if (selected_packets) { pr_ui_->ftlMarkedButton->setEnabled(true); pr_ui_->ftlCapturedLabel->setEnabled(!displayed_checked); pr_ui_->ftlDisplayedLabel->setEnabled(displayed_checked); } else { if (range_->process == range_process_marked_range) { pr_ui_->allButton->setChecked(true); } pr_ui_->ftlMarkedButton->setEnabled(false); pr_ui_->ftlCapturedLabel->setEnabled(false); pr_ui_->ftlDisplayedLabel->setEnabled(false); } label_count = range_->mark_range_cnt; if (range_->remove_ignored) { label_count -= range_->ignored_mark_range_cnt; } pr_ui_->ftlCapturedLabel->setText(QString("%1").arg(label_count)); label_count = range_->displayed_mark_range_cnt; if (range_->remove_ignored) { label_count -= range_->displayed_ignored_mark_range_cnt; } pr_ui_->ftlDisplayedLabel->setText(QString("%1").arg(label_count)); // User specified / Captured + Displayed pr_ui_->rangeButton->setEnabled(true); pr_ui_->rangeCapturedLabel->setEnabled(!displayed_checked); pr_ui_->rangeDisplayedLabel->setEnabled(displayed_checked); packet_range_convert_str(range_, pr_ui_->rangeLineEdit->text().toUtf8().constData()); switch (packet_range_check(range_)) { case CVT_NO_ERROR: label_count = range_->user_range_cnt; if (range_->remove_ignored) { label_count -= range_->ignored_user_range_cnt; } pr_ui_->rangeCapturedLabel->setText(QString("%1").arg(label_count)); label_count = range_->displayed_user_range_cnt; if (range_->remove_ignored) { label_count -= range_->displayed_ignored_user_range_cnt; } pr_ui_->rangeDisplayedLabel->setText(QString("%1").arg(label_count)); syntax_state_ = SyntaxLineEdit::Empty; break; case CVT_SYNTAX_ERROR: pr_ui_->rangeCapturedLabel->setText("<small><i>Bad range</i></small>"); pr_ui_->rangeDisplayedLabel->setText("-"); syntax_state_ = SyntaxLineEdit::Invalid; break; case CVT_NUMBER_TOO_BIG: pr_ui_->rangeCapturedLabel->setText("<small><i>Number too large</i></small>"); pr_ui_->rangeDisplayedLabel->setText("-"); syntax_state_ = SyntaxLineEdit::Invalid; break; default: g_assert_not_reached(); return; } // Ignored switch(range_->process) { case(range_process_all): ignored_cnt = range_->ignored_cnt; displayed_ignored_cnt = range_->displayed_ignored_cnt; break; case(range_process_selected): ignored_cnt = (can_select && range_->cf->current_frame->flags.ignored) ? 1 : 0; displayed_ignored_cnt = ignored_cnt; break; case(range_process_marked): ignored_cnt = range_->ignored_marked_cnt; displayed_ignored_cnt = range_->displayed_ignored_marked_cnt; break; case(range_process_marked_range): ignored_cnt = range_->ignored_mark_range_cnt; displayed_ignored_cnt = range_->displayed_ignored_mark_range_cnt; break; case(range_process_user_range): ignored_cnt = range_->ignored_user_range_cnt; displayed_ignored_cnt = range_->displayed_ignored_user_range_cnt; break; default: g_assert_not_reached(); } if (displayed_checked) selected_packets = (displayed_ignored_cnt != 0); else selected_packets = (ignored_cnt != 0); if (selected_packets) { pr_ui_->ignoredCheckBox->setEnabled(true); pr_ui_->ignoredCapturedLabel->setEnabled(!displayed_checked); pr_ui_->ignoredDisplayedLabel->setEnabled(displayed_checked); } else { pr_ui_->ignoredCheckBox->setEnabled(false); pr_ui_->ignoredCapturedLabel->setEnabled(false); pr_ui_->ignoredDisplayedLabel->setEnabled(false); } pr_ui_->ignoredCapturedLabel->setText(QString("%1").arg(ignored_cnt)); pr_ui_->ignoredDisplayedLabel->setText(QString("%1").arg(displayed_ignored_cnt)); if (orig_ss != syntax_state_) { pr_ui_->rangeLineEdit->setSyntaxState(syntax_state_); emit validityChanged(isValid()); } emit rangeChanged(); }