Enable and disable the File→Print and Go menu items as needed. Have the

print dialog cancel itself if we don't hand it a capture file.

svn path=/trunk/; revision=45863
This commit is contained in:
Gerald Combs 2012-11-01 22:12:57 +00:00
parent 606a7433ce
commit 66b13e2961
4 changed files with 42 additions and 5 deletions

View File

@ -86,6 +86,7 @@ MainWindow::MainWindow(QWidget *parent) :
gbl_cur_main_window = this;
main_ui_->setupUi(this);
setMenusForCaptureFile();
setForCapturedPackets(false);
setMenusForSelectedTreeRow();
setForCaptureInProgress(false);
setMenusForFileSet(false);
@ -1170,6 +1171,42 @@ void MainWindow::setMenusForCaptureStopping() {
#endif /* HAVE_LIBPCAP */
}
void MainWindow::setForCapturedPackets(bool have_captured_packets)
{
main_ui_->actionFilePrint->setEnabled(have_captured_packets);
// set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/Print",
// have_captured_packets);
// set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/EditMenu/FindPacket",
// have_captured_packets);
// set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/EditMenu/FindNext",
// have_captured_packets);
// set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/EditMenu/FindPrevious",
// have_captured_packets);
// set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/ViewMenu/ZoomIn",
// have_captured_packets);
// set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/ViewMenu/ZoomOut",
// have_captured_packets);
// set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/ViewMenu/NormalSize",
// have_captured_packets);
main_ui_->actionGoGoToPacket->setEnabled(have_captured_packets);
main_ui_->actionGoPreviousPacket->setEnabled(have_captured_packets);
main_ui_->actionGoNextPacket->setEnabled(have_captured_packets);
main_ui_->actionGoFirstPacket->setEnabled(have_captured_packets);
main_ui_->actionGoLastPacket->setEnabled(have_captured_packets);
// set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/GoMenu/PreviousPacketInConversation",
// have_captured_packets);
// set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/GoMenu/NextPacketInConversation",
// have_captured_packets);
// set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/StatisticsMenu/Summary",
// have_captured_packets);
// set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/StatisticsMenu/ProtocolHierarchy",
// have_captured_packets);
}
void MainWindow::setMenusForFileSet(bool enable_list_files) {
bool enable_next = fileset_get_next() != NULL && enable_list_files;
bool enable_prev = fileset_get_previous() != NULL && enable_list_files;

View File

@ -111,8 +111,7 @@ private:
void setMenusForCaptureFile(bool force_disable = false);
void setMenusForCaptureInProgress(bool capture_in_progress = false);
void setMenusForCaptureStopping();
// xxx set_menus_for_captured_packets
// xxx set_menus_for_selected_packet
void setForCapturedPackets(bool have_captured_packets);
void setMenusForFileSet(bool enable_list_files);
void updateForUnsavedChanges();
void setForCaptureInProgress(gboolean capture_in_progress = false);

View File

@ -187,8 +187,8 @@ void MainWindow::captureCapturePrepared(capture_options *capture_opts) {
void MainWindow::captureCaptureUpdateStarted(capture_options *capture_opts) {
Q_UNUSED(capture_opts);
qDebug() << "captureCaptureUpdateStarted";
setForCaptureInProgress(true);
setForCapturedPackets(true);
}
void MainWindow::captureCaptureUpdateFinished(capture_options *capture_opts) {
Q_UNUSED(capture_opts);
@ -282,7 +282,7 @@ void MainWindow::captureFileReadFinished(const capture_file *cf) {
updateForUnsavedChanges();
// /* Enable menu items that make sense if you have some captured packets. */
// set_menus_for_captured_packets(TRUE);
setForCapturedPackets(true);
main_ui_->statusBar->popFileStatus();
QString msg = QString().sprintf("%s", get_basename(cf->filename));
@ -293,6 +293,7 @@ void MainWindow::captureFileClosing(const capture_file *cf) {
if (cf != cap_file_) return;
setMenusForCaptureFile(true);
setForCapturedPackets(false);
setForCaptureInProgress(false);
// Reset expert info indicator

View File

@ -80,7 +80,7 @@ PrintDialog::PrintDialog(QWidget *parent, capture_file *cf) :
print_bt_(new QPushButton(tr("&Print..."))),
cap_file_(cf)
{
if (!cf) close(); // ...or assert?
if (!cf) done(QDialog::Rejected); // ...or assert?
pd_ui_->setupUi(this);