forked from osmocom/wireshark
Qt: Make some menu items discoverable (or not).
Enable and disable individual actions instead of their parent menus in order to keep them discoverable. Do the opposite for Colorize Conversation items so that we don't make the user traverse the menu hierarchy unnecessarily. Change-Id: I81770dbbb2d715a2131eb754fedaaadcc8803da2 Reviewed-on: https://code.wireshark.org/review/14558 Reviewed-by: Gerald Combs <gerald@wireshark.org> Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
This commit is contained in:
parent
ac8e08b6c7
commit
d6f69751c0
|
@ -27,6 +27,8 @@
|
|||
|
||||
#include "epan/dissector_filters.h"
|
||||
|
||||
#include <QMenu>
|
||||
|
||||
#include "qt_ui_utils.h"
|
||||
|
||||
ConversationAction::ConversationAction(QObject *parent, conversation_filter_s *conv_filter) :
|
||||
|
@ -49,6 +51,11 @@ void ConversationAction::setPacketInfo(struct _packet_info *pinfo)
|
|||
}
|
||||
}
|
||||
setEnabled(enable);
|
||||
|
||||
// If we're the "New Coloring Rule" item, enable or disable our parent menu.
|
||||
QMenu *parent_submenu = qobject_cast<QMenu *>(parentWidget());
|
||||
if (color_number_ > 0 || !parent_submenu) return;
|
||||
parent_submenu->setEnabled(enable);
|
||||
}
|
||||
|
||||
void ConversationAction::setFieldFilter(const QByteArray field_filter)
|
||||
|
|
|
@ -1970,41 +1970,46 @@ void MainWindow::setTitlebarForCaptureInProgress()
|
|||
and whether it could be saved except by copying the raw packet data. */
|
||||
void MainWindow::setMenusForCaptureFile(bool force_disable)
|
||||
{
|
||||
bool enable = true;
|
||||
bool can_write = false;
|
||||
bool can_save = false;
|
||||
|
||||
if (force_disable || capture_file_.capFile() == NULL || capture_file_.capFile()->state == FILE_READ_IN_PROGRESS) {
|
||||
/* We have no capture file or we're currently reading a file */
|
||||
main_ui_->actionViewReload_as_File_Format_or_Capture->setEnabled(false);
|
||||
main_ui_->actionFileMerge->setEnabled(false);
|
||||
main_ui_->actionFileClose->setEnabled(false);
|
||||
main_ui_->actionFileSave->setEnabled(false);
|
||||
main_ui_->actionFileSaveAs->setEnabled(false);
|
||||
main_ui_->actionStatisticsCaptureFileProperties->setEnabled(false);
|
||||
main_ui_->actionFileExportPackets->setEnabled(false);
|
||||
main_ui_->menuFileExportPacketDissections->setEnabled(false);
|
||||
main_ui_->actionFileExportPacketBytes->setEnabled(false);
|
||||
main_ui_->actionFileExportPDU->setEnabled(false);
|
||||
main_ui_->actionFileExportSSLSessionKeys->setEnabled(false);
|
||||
main_ui_->menuFileExportObjects->setEnabled(false);
|
||||
main_ui_->actionViewReload->setEnabled(false);
|
||||
enable = false;
|
||||
} else {
|
||||
main_ui_->actionViewReload_as_File_Format_or_Capture->setEnabled(true);
|
||||
main_ui_->actionFileMerge->setEnabled(cf_can_write_with_wiretap(capture_file_.capFile()));
|
||||
|
||||
main_ui_->actionFileClose->setEnabled(true);
|
||||
main_ui_->actionFileSave->setEnabled(cf_can_save(capture_file_.capFile()));
|
||||
main_ui_->actionFileSaveAs->setEnabled(cf_can_save_as(capture_file_.capFile()));
|
||||
main_ui_->actionStatisticsCaptureFileProperties->setEnabled(true);
|
||||
/*
|
||||
* "Export Specified Packets..." should be available only if
|
||||
* we can write the file out in at least one format.
|
||||
*/
|
||||
main_ui_->actionFileExportPackets->setEnabled(cf_can_write_with_wiretap(capture_file_.capFile()));
|
||||
main_ui_->menuFileExportPacketDissections->setEnabled(true);
|
||||
main_ui_->actionFileExportPacketBytes->setEnabled(true);
|
||||
main_ui_->actionFileExportPDU->setEnabled(true);
|
||||
main_ui_->actionFileExportSSLSessionKeys->setEnabled(true);
|
||||
main_ui_->menuFileExportObjects->setEnabled(true);
|
||||
main_ui_->actionViewReload->setEnabled(true);
|
||||
/* We have a capture file. Can we write or save? */
|
||||
can_write = cf_can_write_with_wiretap(capture_file_.capFile());
|
||||
can_save = cf_can_save(capture_file_.capFile());
|
||||
}
|
||||
|
||||
main_ui_->actionViewReload_as_File_Format_or_Capture->setEnabled(enable);
|
||||
main_ui_->actionFileMerge->setEnabled(can_write);
|
||||
main_ui_->actionFileClose->setEnabled(enable);
|
||||
main_ui_->actionFileSave->setEnabled(can_save);
|
||||
main_ui_->actionFileSaveAs->setEnabled(can_save);
|
||||
main_ui_->actionStatisticsCaptureFileProperties->setEnabled(enable);
|
||||
/*
|
||||
* "Export Specified Packets..." should be available only if
|
||||
* we can write the file out in at least one format.
|
||||
*/
|
||||
main_ui_->actionFileExportPackets->setEnabled(can_write);
|
||||
|
||||
main_ui_->actionFileExportAsCArrays->setEnabled(enable);
|
||||
main_ui_->actionFileExportAsCSV->setEnabled(enable);
|
||||
main_ui_->actionFileExportAsPDML->setEnabled(enable);
|
||||
main_ui_->actionFileExportAsPlainText->setEnabled(enable);
|
||||
main_ui_->actionFileExportAsPSML->setEnabled(enable);
|
||||
|
||||
main_ui_->actionFileExportPacketBytes->setEnabled(enable);
|
||||
main_ui_->actionFileExportPDU->setEnabled(enable);
|
||||
main_ui_->actionFileExportSSLSessionKeys->setEnabled(enable);
|
||||
|
||||
foreach (QAction *eo_action, main_ui_->menuFileExportObjects->actions()) {
|
||||
eo_action->setEnabled(enable);
|
||||
}
|
||||
|
||||
main_ui_->actionViewReload->setEnabled(enable);
|
||||
}
|
||||
|
||||
void MainWindow::setMenusForCaptureInProgress(bool capture_in_progress) {
|
||||
|
@ -2013,11 +2018,21 @@ void MainWindow::setMenusForCaptureInProgress(bool capture_in_progress) {
|
|||
|
||||
main_ui_->actionFileOpen->setEnabled(!capture_in_progress);
|
||||
main_ui_->menuOpenRecentCaptureFile->setEnabled(!capture_in_progress);
|
||||
main_ui_->menuFileExportPacketDissections->setEnabled(capture_in_progress);
|
||||
|
||||
main_ui_->actionFileExportAsCArrays->setEnabled(capture_in_progress);
|
||||
main_ui_->actionFileExportAsCSV->setEnabled(capture_in_progress);
|
||||
main_ui_->actionFileExportAsPDML->setEnabled(capture_in_progress);
|
||||
main_ui_->actionFileExportAsPlainText->setEnabled(capture_in_progress);
|
||||
main_ui_->actionFileExportAsPSML->setEnabled(capture_in_progress);
|
||||
|
||||
main_ui_->actionFileExportPacketBytes->setEnabled(capture_in_progress);
|
||||
main_ui_->actionFileExportPDU->setEnabled(capture_in_progress);
|
||||
main_ui_->actionFileExportSSLSessionKeys->setEnabled(capture_in_progress);
|
||||
main_ui_->menuFileExportObjects->setEnabled(capture_in_progress);
|
||||
|
||||
foreach (QAction *eo_action, main_ui_->menuFileExportObjects->actions()) {
|
||||
eo_action->setEnabled(capture_in_progress);
|
||||
}
|
||||
|
||||
main_ui_->menuFileSet->setEnabled(!capture_in_progress);
|
||||
main_ui_->actionFileQuit->setEnabled(true);
|
||||
|
||||
|
|
|
@ -1172,7 +1172,13 @@ void MainWindow::setMenusForSelectedPacket()
|
|||
// gbl_resolv_flags.transport_name));
|
||||
// set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/ToolsMenu/FirewallACLRules",
|
||||
// frame_selected);
|
||||
main_ui_->menuTcpStreamGraphs->setEnabled(is_tcp);
|
||||
|
||||
main_ui_->actionStatisticsTcpStreamRoundTripTime->setEnabled(is_tcp);
|
||||
main_ui_->actionStatisticsTcpStreamStevens->setEnabled(is_tcp);
|
||||
main_ui_->actionStatisticsTcpStreamTcptrace->setEnabled(is_tcp);
|
||||
main_ui_->actionStatisticsTcpStreamThroughput->setEnabled(is_tcp);
|
||||
main_ui_->actionStatisticsTcpStreamWindowScaling->setEnabled(is_tcp);
|
||||
|
||||
main_ui_->actionSCTPAnalyseThisAssociation->setEnabled(is_sctp);
|
||||
main_ui_->actionSCTPShowAllAssociations->setEnabled(is_sctp);
|
||||
main_ui_->actionSCTPFilterThisAssociation->setEnabled(is_sctp);
|
||||
|
|
Loading…
Reference in New Issue