Make the stream graph dialog modeless and let the user open multiple
instances. The dangling dialog behaves similar to the GTK+ version. Add
a setDissectedCaptureFile signal to MainWindow (currently unused).
Properly transform yAxis2 and simplify resetAxes while we're at it.
Other bug fixes.
svn path=/trunk/; revision=51795
GTK+: Fix what appears to be an off-by-one error in the MA period (21
segments instead of 20). Throw away our initial segment length instead
of subtracting it from the moving sum, which skews the sum.
Qt: Add the througput graph. Use bits/s for the throughput y axis. Let
the user switch between graph types. The dialog hangs when doing this. I
haven't been able to track down the cause. Remove some unused code.
Both: Tell the user that we're using a 20 segment moving average. Move
more routines to tap-tcp-stream.[ch].
svn path=/trunk/; revision=51759
QWidget::setWindowModified: The window title does not contain a '[*]' placeholder
a) Add [*] to the window title.
b) Also set the window title before calling setWindowModified
Not really understanding what I'm doing here, just following the hints
given in http://qt-project.org/forums/viewthread/2108
Original logmessages when closing Wireshark while running a capture.
17:23:39.652 Capture Msg Capture stopped!
17:23:39.653 Main Dbg Callback: capture update finished
QWidget::setWindowModified: The window title does not contain a '[*]' placeholder
FIX: packet list heading menu sensitivity
17:23:39.653 Dbg FIX: capture_info_ui_destroy
17:23:39.653 Main Dbg Callback: Closing
FIX: packet list heading menu sensitivity
17:23:39.655 Main Dbg Callback: Closed
svn path=/trunk/; revision=51722
splitters they're actually layed out in. This should let us reorganize the
splitters at will (when the prefs change) without reconstructing the panes.
svn path=/trunk/; revision=51718
panes, not yet which data goes in which pane).
You currently have to restart for the change to take effect. I also had to move
the preferences-reading (and thus the epan_init) call to before the main window
instantiation so that the preference was actually available for use. This means
that the progress-bar doesn't show up for very long any more, since most of the
work is already done by the time it appears.
I'm sure there is a way to delay just the layout setup until later, but I kept
getting slot errors I couldn't figure out...
svn path=/trunk/; revision=51647
immediately from the CLI. Get rid of the comment concerning multi-pass parsing
of the options, it only applied to the GTK version.
svn path=/trunk/; revision=51640
(yet) and it is getting in the way while I try and add some argument parsing.
It's still in the GTK version if we want it.
svn path=/trunk/; revision=51639
QCustomPlot data sets are made up of keys (x axis by default) and values
(y axis). It looks like we can have multiple values for a given key
(i.e. we can show multiple sequence numbers for a given timestamp) but
QCPItemTracers can only be positioned by a key and not a key+value pair.
This makes our graph selection behavior a bit different compared to the
GTK+ version. We can only select one segment for a give timestamp but
our selection targets are much larger (the height of the graph).
Add a map for segment data so we don't have to iterate to find them. Use
UTF8_RIGHTWARDS_ARROW where appropriate. Set a window title. Tell the
user what will happen if he or she clicks. Disable graph selection.
svn path=/trunk/; revision=51604
mouse interactions than the GTK+ version, but they seem to match modern
UI conventions better. The keyboard shortcuts have been changed to match
modern UI conventions as well, but I'll try to support the old shortcuts
as much as possible.
svn path=/trunk/; revision=51554
Add the QCustomPlot widget. Thanks to Emanuel Eichhammer for granting a
license change. Move some common code from ui/gtk/tcp_graph.c to
ui/tap-tcp-stream.[ch]. Get rid of tcp_graph_selected_packet_enabled().
It was only used in the menu code and didn't match what we were doing
elsewhere.
Still quite a bit of work to do but it's a promising start.
svn path=/trunk/; revision=51538
deletes the interface list, which in turn kills off the dumpcap process
it may be running. This should hopefully keep us from leaving dumpcap
processes running in the background on Windows. (Am I the only one
running QtShark on that platform?)
svn path=/trunk/; revision=51485
Add CaptureFilterCombo and CaptureFilterEdit classes, similar to their
display filter counterparts. Add a CaptureFilterSyntaxWorker class which
runs a syntax check in a background thread similar to the threaded code
in capture_dlg.c. Add a bunch of related signal and slot plumbing. Other
minor fixups.
svn path=/trunk/; revision=51200
Original (read from file) comments can be accessed by pkthdr->opt_comment
Keep user comments in seperated BST, add new method for epan session to get it.
svn path=/trunk/; revision=51090
addition to a "global" list. Store all of those lists in the recent
file. Maintain the lists in ui/recent.c, rather than attaching them to
widgets; have the code that populates the combo boxes get the lists from
the ui/recent.c code.
This makes a little more of the code GUI-toolkit-independent, and should
fix bug 7278.
#BACKPORT 1.10, 1.8
svn path=/trunk/; revision=50956
ui/qt/uat_dialog.cpp: In member function ‘void UatDialog::stringPrefTextChanged(const QString&)’:
ui/qt/uat_dialog.cpp:371:10: error: variable ‘enable_ok’ set but not used [-Werror=unused-but-set-variable]
And remove a tabs
svn path=/trunk/; revision=50906
C++-ize the UAT headers.
Add an ElidedLabel widget. Use it in the File Set, Profile, and UAT
dialogs.
Update the Qt README.
svn path=/trunk/; revision=50896
<QPushButton> if you're using a QPushButton, so:
1) adding the include is the right fix, not just a duct-tape
fix;
2) <QPushButton>, rather than <qpushbutton.h>, is probably what
you're expected to include.
(<QPushButton> is, at least in Qt 5.1, a wrapper that just includes
<qpushbutton.h>.)
svn path=/trunk/; revision=50849
CLEAN_FILES
DIRTY_FILES
and move packet_list_record.cpp to DIRTY.
Now I finally have a compiling qtshark again (clang and Qt5)
svn path=/trunk/; revision=50832
(Using a QDialogButtonBox would ensure that the button names, sizes,
and placement conforms to the UI guidelines for each platform.)
svn path=/trunk/; revision=50822
summary_dialog.ui: Warning: The name 'layoutWidget' (QWidget) is already in use, defaulting to 'layoutWidget1'.
summary_dialog.ui: Warning: The name 'layoutWidget' (QWidget) is already in use, defaulting to 'layoutWidget2'.
summary_dialog.ui: Warning: The name 'layoutWidget' (QWidget) is already in use, defaulting to 'layoutWidget3'.
svn path=/trunk/; revision=50821
/usr/include/qt5/QtCore/qglobal.h:1079:4: error: #error "You must build your
code with position independent code if Qt was built with -reduce-relocations. "
"Compile your code with -fPIC or -fPIE."
There is almost certainly a better way to do this: I'm cheating here because I
don't know enough about autofoo, and it seems to work. I suspect we should be
checking PIE for the C++ compiler separately (since presumably they're not
guaranteed to be related like gcc/g++ are). I also suspect we should only be
building with it in the first place if Qt really needs it, though I have no idea
how to check that. The qt docs I've found suggest that qt5's cmake module has a
flag for it, but autofoo is never mentioned...
svn path=/trunk/; revision=50645
actionEditConfigurationProfiles. This keeps it from being converted to
the default preferences item on OS X.
Remove a hack where we stored the text for
actionEditConfigurationProfiles in its iconText in order to keep it from
clobbering actionEditPreferences. It doesn't seem to be necessary.
svn path=/trunk/; revision=50636
Add Summary Statistics to qtshark (Statistics => Summary)
Now, use tabs to split summary display (File Capture details, Capture Statistics)
Add also Comment Summary tab (to replace Statistics => Comments Summary)
From me :
Fix order of summary files in Qtshark.pro
svn path=/trunk/; revision=50470
column. Conversation spans (setup frame to last frame) are shown with a
square bracket. Linked frames are shown with a circle.
Use correct column justifications in Qt. Move common
justification-related packet list code to ui/packet_list_utils.[ch].
Add a last_frame element to conversation_t.
svn path=/trunk/; revision=50447
Qt make don't like cp ../../lib/lib{wireshark,wiretap,wsutil}.* .
cp: cannot stat `../../lib/lib{wireshark,wiretap,wsutil}.*': No such file or directory
svn path=/trunk/; revision=49994
is in this epan_dissect_t contain the field whose name is passed as an
argument" routine in libwireshark, and use it where we used
packet_is_ssl(). (We should check to see if anything *else* could use
it.)
svn path=/trunk/; revision=49530
it into a separate capture_session structure. capture_opts should
contain only user-specified option information (and stuff directly
derived from it, such as the "capturing from a pipe" flag).
svn path=/trunk/; revision=49493
it's always nice when there's a new one, especially one that can't share
file lists with others.
Remove capture_unix_ifnames.c from YET ANOTHER build tool file.
svn path=/trunk/; revision=49492
When trying to close the QtShark application during its initialization process
(by hitting the "close" button), the processes "qtshark.exe" and "dumpcap.exe" don't terminate properly
The patch contains fix to:
1. QtShark doesn't quit properly after closing the main window during initialization
2. User is not prompted to save the capture to file when user chooses to exit
the program during capturing.
3. Bug exists in function MainWindow::testCaptureFileClose(bool from_quit, QString &before_what),
which prevent it from behaving correctly when from_quit == true.
svn path=/trunk/; revision=49454
Detail about this issue :
Bug is reproduced when accessing Preferences Dialog before QtShark start-up is finished,
specifically before preferences loading is completed which comes very late in the initialization process.
Fix from Richard Turner :
Patch to fix problems arising from users interacting with main interface before initialization is complete
Introduced a new slot function in main window for the locking of features before
init complete and for the unlocking of features after all systems good to go.
svn path=/trunk/; revision=49453
than the standard error.
In Wireshark on Windows, create a console before doing so and destroy it
before exiting. Don't do that in TShark or dumpcap, as those are
console-mode programs on Windows.
This should fix bug 8609 and still allow "wireshark -D" and "wireshark
-L" to work when the standard output isn't redirected.
svn path=/trunk/; revision=49025
that directory since 2001 and reading from that directory was only left in for
backwards compatibility with versions prior to r4702. I think it's now safe
to remove that backwards compatibility.
This eliminates the last argument of get_persconffile_path().
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8437
svn path=/trunk/; revision=48797
at least on OS X, to set the "proxy icon" - we need to clear the window
title *and* the file path before we set it, otherwise the set doesn't
happen.
While we're at it, clear the file path whenever we're *not* using a
path. For temporary files, don't set the file path.
The file path is, in fact, the *full path*, not just the last component.
svn path=/trunk/; revision=48715
indicates. (Note: "unsaved data" is more than just "unsaved changes";
it could also mean "temporary file that hasn't been saved anywhere".)
svn path=/trunk/; revision=48709
a save can be done ("can" in the sense of "there's something to
save" and in the sense of "we can write that something out");
a "save as" can be done (in the sense of "we can write what we
have out");
there's unsaved data to save (which might be unsaved changes or
might be a temporary file full of packets);
and use them as appropriate. This means that the "unsaved data"
indicator in the UI will be turned on for temporary files full of
packets as well as for files with unsaved changes; that's what we want.
svn path=/trunk/; revision=48693
supports writing files with a given set of encapsulations and comment
types. Use it, rather than asking for a list of file formats that
support the given set of encapsulation and comment types and checking
whether we got back such a list, or duplicating its logic.
Having file.c use it means that nobody's using
wtap_dump_can_write_encaps() any more; get rid of it. Instead, have a
private routine that checks whether a given file format supports a given
set of encapsulations *and* comment types, and use that internally.
svn path=/trunk/; revision=48690
For each capture file type, have a bitset of comment types supported by
that capture file type.
Add a Wiretap routine that, for a given file type, returns the bitset of
comment types it supports.
Have wtap_get_savable_file_types() take a bitset of comment types that
need to be supported by the file types it returns.
Replace cf_has_comments() with a routine that returns a bitset of
capture file comment types in the capture file.
Use those routines in the capture file dialogs; don't wire in the notion
that pcap-NG supports all comment types and no other file formats
support any comment types. (That's currently true, but we don't want to
wire that in as being forever true.)
svn path=/trunk/; revision=48689
it affects more than just the file name, it also affects whatever "you
have unsaved changes" indicator the UI provides.
Put a comment in the Qt code as a reminder of how to set the "you have
unsaved changes" indicator.
svn path=/trunk/; revision=48680
Hex Dump", to clarify that it's not some sort of "generic" import
function, just one that can read a hex dump file. ("Import from Hex
Dump Text" is another possibility.) Use that string in the dialog title
as well.
svn path=/trunk/; revision=48665
Use the PNG versions of the new application icons.
Remove the XPM versions of the Wireshark application and capture icons.
To paraphrase Zoidberg, XPMs are bad and we should feel bad. Remove
xpm_to_widget_from_parent (which we weren't using and likely won't use
in the future).
Replace wiki_24.xpm (which was a GNOME or GTK+ stock icon IIRC) with the
16x16 and 24x24 versions emblem-web.png from GNOME icon theme 2.30.3.
This version was used specifically because it's GPLv2 and later versions
are GPLv3.
Update image/README.
svn path=/trunk/; revision=48565
is running" mutex. Have the NSIS installer check for this mutex and ask
the user to close Wireshark if it's found. While not perfect this makes
the WinSparkle update process much less annoying.
svn path=/trunk/; revision=47758
routine (prefs_register_directory_preference). Add PREF_FILENAME and
PREF_DIRNAME support to the Qt module preferences. Change a couple of
preferences to directory names.
Clean up some names and default settings.
svn path=/trunk/; revision=47573
for a preferences module. Use it to fill in the remaining preferences.
Don't show the printing preferences since they're not used here.
Change the titles and tooltips for some of the name resolution
preferences.
Disable the capture preferences if we can't capture. This is different
from the GTK+ version which hides it completely.
Thus concludes the preferences dialog (for the time being).
svn path=/trunk/; revision=47545
Add comments noting that
- We might want to do something different when the bookmark button is
pressed.
- The display filters (dfilters file) and gui.filter_expressions
preferences should be merged.
- Many buttons on Qt4 + OS X + unifiedTitleAndToolBarOnMac makes the
main window really wide.
Add a qstring_strdup convenience routine. Add "disabled" display filter
edit icons. Fix up whitespace and descriptions in a couple of places.
svn path=/trunk/; revision=47522
converted to QStrings, and, to get them to be treated as UTF-8, you need
to call the setCodecForCStrings method of the QTextCodec class to set
the codec to a UTF-8 codec.
In Qt 5, C strings are treated always as UTF-8 when converted to
QStrings, and there's no setCodecForCStrings method for the QTextCodec
class.
In addition, there's also no setCodecForTr method for the QTextCodec
class - and QObject isn't documented as even *having* a tr method, so I
don't know what to do there.
svn path=/trunk/; revision=47436
picker widget so we're back to popping up dialogs. Move the contents of
monospace_font.{cpp,h} to wireshark_application.{cpp,h}.
Pango and Qt use completely different string representations for fonts.
Add a separate gui.qt.font_name preference so that they don't clobber
each other.
svn path=/trunk/; revision=47240
Get rid of user-hostile behavior. In the layout preferences pane 2 & 3
radio buttons overrode the user's selection if a duplicate item was
selected. Now we assume that the user knows what he or she is doing and
steal duplicate selections from the other panes.
Qt:
Match the new GTK+ behavior in the layout preferences. Add padding
around the layout images. Add toolbar style preferences to the
Appearance pane (instead of the layout pane).
All:
Remove the selection mode and scrollbar placement prefs and mark them
obsolete as recently discussed on -dev.
Adjust the layout images yet again after more Awful Monitor Testing.
svn path=/trunk/; revision=47214
more clearly indicate that it's a copy of a preference value rather than
something we've saved in the preferences file. Update
prefs_pref_to_str() to handle default, stashed, and current prefs.
Create ui/preference_utils.[ch] and move some common routines there. Use
prefs_pref_type_name() in the GTK+ preferences dialog.
Make the "OK" button in the Qt preferences dialog work. We simply write
the prefs and redissect on "OK" and do nothing on "Cancel". This is
intentionally different from the Apply/OK/Cancel behavior in the GTK+
version.
Add a general "emitAppSignal" method to wsApp and use it for packet
dissection and preference changes.
Suggest that we might want to create a WsString class to make conversion
between QStrings, gchar *s, and GStrings easier.
svn path=/trunk/; revision=47139
information to crash dumps and the like. (Currently, we only handle OS
X's CrashReporter, but we should do this on other platforms where this
information can be added and would be helpful.)
svn path=/trunk/; revision=47109
immediately close the dialog if he or she presses the escape or enter
keys. Revert the value if the user presses escape. Properly handle the
base for uint preferences. Fix a NULL pointer dereference.
Add a gchar_free_to_qstring utility routine which creates a QString from
a g_malloced string and frees it.
svn path=/trunk/; revision=47083
item's name, status, or type resets it to its default value.
Double-clicking the item's value lets you edit it. Implement the
advanced search field. (Clicking OK and Cancel still doesn't yet do
anything.)
Note that we could probably use a
prefs_register_{uint16|port}_preference routine for 16-bit values. Make
reset_pref public. Update some names and descriptions.
svn path=/trunk/; revision=46986
representations, and default status out of write_prefs and into their
own routines. Split the corresponding custom preference write callbacks.
Fix an apparent memory leak in the hidden column callback.
Add an initial preferences dialog to the Qt port. Use the new preference
routines to implement an "Adavanced" page similar to the "about:config"
page available in many web browsers. Standard pages will hopefully follow
soon.
Remove some QDebug includes and make sure our QTreeWidgets have uniform
row heights set.
svn path=/trunk/; revision=46942
mouse and context (right mouse) signals to label stacks and use them to
pop up profile menus in the status bar. Add profile actions (manage,
new, edit, delete) to the profile dialog.
svn path=/trunk/; revision=46863
ui/gtk/profile_dialog.c. Use the correct profile list in
profile_dialog.c so that deletion works.
Add a profile dialog to the Qt port. For some reason it crashes when
changing configuration profiles, which might be related to bug 7722.
Move the Qt configuration profile initialization from main.cpp to
wireshark_application.cpp. Make sure QMenuBar doesn't grab the
configuration profiles action on OS X. Add more role color names to
tango_colors.h.
svn path=/trunk/; revision=46834
Cast away some implicit 64-bit-to-32-bit conversion errors due to use of
sizeof.
Cast away some implicit 64-bit-to-32-bit conversion errors due to use of
strtol() and strtoul().
Change some data types to avoid those implicit conversion warnings.
When assigning a constant to a float, make sure the constant isn't a
double, by appending "f" to the constant.
Constify a bunch of variables, parameters, and return values to
eliminate warnings due to strings being given const qualifiers. Cast
away those warnings in some cases where an API we don't control forces
us to do so.
Enable a bunch of additional warnings by default. Note why at least
some of the other warnings aren't enabled.
randpkt.c and text2pcap.c are used to build programs, so they don't need
to be in EXTRA_DIST.
If the user specifies --enable-warnings-as-errors, add -Werror *even if
the user specified --enable-extra-gcc-flags; assume they know what
they're doing and are willing to have the compile fail due to the extra
GCC warnings being treated as errors.
svn path=/trunk/; revision=46748
GTK+: Shorten the packet comment menu item name. Remove a couple of
unneeded includes.
Both: Add an arbitrary 20 MB limit when fetching all packet comments.
Use a color from the Tango palette for comments.
svn path=/trunk/; revision=46709
shifting routines to return an error message on failure or NULL on
success. Prettify and simplify the layout of the GTK+ time shift
dialog. Make the cancel button work as expected.
Add a time shift dialog to the Qt port. I used a Mad Lib (sentence)
layout. Hopefully that won't make translation too difficult. For some
reason time shifts aren't immediately shown in the packet detail. This
appears to be a bug in the packet list / packet detail code.
Add warning role color definitions to tango_colors.h and use them.
svn path=/trunk/; revision=46680
when we detect a remote connection). Use it for the "go to" and search
frames. Properly detect remote connections in the splash overlay.
svn path=/trunk/; revision=46591
It's now possible to build qtshark with autotools and QtCreator if you add some
extra symlinks and fiddle with LD_LIBRARY_PATH.
svn path=/trunk/; revision=46546
actually doing and what users are likely to want to do. Rename the
search enum values and functions to reflect what we're actually doing
and add a comment explaining why making searches more correct might make
searching worse. Add a search bar to the Qt main window, thus
continuing the War On Gratuitous Dialogs.
Clear out any previous temporary label stack items before adding a new one.
svn path=/trunk/; revision=46541
apply/match-related actions. Have matchSelectedFilter figure out our
filter strings, which lets us remove duplicate code in the apply/match
action slots. Remove some leftover code from an experiment.
Adjust the temporary message colors in the status bar and label stack.
Add a NULL check to construct_match_selected_string.
svn path=/trunk/; revision=46449
"Analyze→Prepare a Filter". Add a context menu to the protocol tree and
fill in the items we've implemented so far.
Add an "applyAllPreferences" method and corresponding
"preferencesUpdated" signal to wsApp. Use it to set the maximum display
filter combo count.
Move the packet filtering code from the display filter edit to the main
window (which makes more sense and matches what we're doing in the GTK+
version and gets rid of more global cfile references). Try to center the
display filter edit button images.
Use a different "close" button in the main toolbar. It looks better but
is still wrong (on OS X at least).
svn path=/trunk/; revision=46434
border. Add them as pixbufs to ui/gtk/toolbar_icons.h and use them to
replace the file icon XPM in stock_icons.c. Add modelines.
svn path=/trunk/; revision=46413
filter widget there. Add a few more items to the main toolbar. Note that
Qt 4.8 doesn't support a unified title+toolbar with multiple toolbar
rows on OS X (at least not easily) but Qt 5 might.
Disable icons-in-menus on OS X.
svn path=/trunk/; revision=46371
Allow multiple interface selections. Make sure we update the packet list
properly in a couple of places.
Use the right callback+signal to update capture statistics in the status
bar. Remove the global cfile from the main_statusbar.cpp
Add the version to the main window.
svn path=/trunk/; revision=46350