Wireshark-dev: [Wireshark-dev] Qt related menu issues on Mac OS X (bug 10890, etc)

From: Luke Mewburn <luke@xxxxxxxxxxx>
Date: Wed, 22 Jul 2015 12:53:20 +1000
Hi,

I've been experiencing weird issues running my Mac OS X builds of wireshark
compiled with Qt 5.2 from Homebrew.

I've configured wireshark with:
	configure --disable-gtktest --with-qt --with-gnutls
		--without-geoip --disable-warnings-as-errors --no-create
		--no-recursion --with-gcrypt=no


1. insertNative startup warnings.

The following warning appears 4 times at startup:
	void QCocoaMenu::insertNative(QCocoaMenuItem *, QCocoaMenuItem *)
	Menu item is already in a menu, remove it from the other menu
	first before inserting

These appear to be related to bug 10890
	https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=10890
Comment 7 of that bug references change 5041
	https://code.wireshark.org/review/#/c/5041/
Comment 9 refers to QTBUG-34160
	https://bugreports.qt.io/browse/QTBUG-34160

I did some tracing through the code, and I think it's related to the
reuse of various sub menus between "Analyse", packet_list, and proto_tree,
including:
	actionBytes
	actionCopy
	actionApply_as_Filter
	actionPrepare_a_Filter

When I comment out the setup of these 4 menus in ui/qt/packet_list.cpp
and ui/qt/proto_tree.cpp the warnings go away.


2. "Copy Bytes" sub sub menu doesn't work

The actionBytes sub sub menu fails with
	void QCocoaWindow::syncWindowState(Qt::WindowState)
	invalid window content view size, check your window geometry


3. Menu bar doesn't change from that of the app I started wireshark from.

If I start wireshark from iTerm, the menu bar is still
as it was from iTerm except that I can't select any items.
If I change focus away from wireshark (e.g. click on desktop to get
Finder) then click on wireshark's window, the Wireshark menu bar appears.

This appear unrelated to the startup warnings in (1); if I comment out all
the menus that trigger the warnings, this problem still occurs.



regards,
Luke.

Attachment: pgpDeLpn3mhE4.pgp
Description: PGP signature