libsigrokcxx is the most important dependency. A QUIET search means we
can miss important information, such as a version mismatch, and the
"libsigrokcxx not found" message is not at all helpful in determining
the cause of the problem.
Gerhard Sittig [Sun, 28 Oct 2018 21:15:49 +0000 (22:15 +0100)]
manual: allow manual conversion without source builds
Add a cmake_minimum_required() directive to the manual/ subdir's CMake
rules, such that the documentation can get built without involving the
application and its build dependencies.
Gerhard Sittig [Thu, 25 Oct 2018 17:26:27 +0000 (19:26 +0200)]
manual: expand the protocol decoder troubleshooting subsection
Expand the discussion that timing information is not required or
optional to some decoders, but essential to others (because of the very
protocol that gets interpreted). Mention that some oversampling is
typically required. Don't suggest that PD exceptions must be bugs,
incomplete configuration may be even more typical.
Separate the "you can ..." introduction from the first check list item,
to increase visibility of the entry. Existing text was not re-flown, to
reduce the diff size.
Gerhard Sittig [Sun, 14 Oct 2018 15:06:16 +0000 (17:06 +0200)]
manual: also install images/*.png with the HTML output
Extend the CMake rules for the manual. Do install the images/ subdir but
omit the *.xcf files. Prepare the CSS file although this seems to be not
strictly necessary (gets inlined, but we are prepared if it's external).
Only install these additional files when the asciidoctor(1) tool is
available, and thus the .html file can get generated (to not install
some questionable combination of a .pdf and unrelated .png files, or to
not install the resources when none of the manual files got created).
This approach was tested with the following command sequence:
$ make manual
$ make install
$ xdg-open ~/share/doc/pulseview/*.html
Gerhard Sittig [Sun, 14 Oct 2018 14:05:04 +0000 (16:05 +0200)]
manual: accept absence of the asciidoctor-pdf exectuable
The asciidoctor(1) executable is considered mandatory when building the
Pulseview manual. The asciidoctor-pdf(1) executable is not universally
available (is missing in Debian), accept its absence, avoid execution
failure in that case.
This implementation replaces the actual .txt to .pdf conversion with a
mere echo(1) message, which may go unnoticed in verbose build output.
"make --no-print-directories manual" may be required to remain aware.
Gerhard Sittig [Sun, 14 Oct 2018 13:30:46 +0000 (15:30 +0200)]
manual: introduce CMake logic for asciidoctor execution
Introduce new "manual", "manual-html" and "manual-pdf" make(1) targets
(the former depending on the latter). None of these targets are part of
"make all" by design, users decide whether to convert the manual text.
Execution will fail (fatally) in the absence of dependencies or tools.
Soeren Apel [Sun, 21 Oct 2018 19:22:01 +0000 (21:22 +0200)]
Fix clazy warnings regarding range-for references
The warnings that are fixed are of this type:
warning: Missing reference in range-for with non trivial type (std::__cxx11::string) [-Wclazy-range-loop]
Jon Burgess [Sun, 14 Oct 2018 22:52:24 +0000 (23:52 +0100)]
Fix memory leak in DecoderMenu
==214004== 1,536 (16 direct, 1,520 indirect) bytes in 1 blocks are definitely lost in loss record 6,288 of 6,442
==214004== at 0x4C2EE0B: malloc (vg_replace_malloc.c:299)
==214004== by 0x67D8435: g_malloc (in /usr/lib64/libglib-2.0.so.0.5600.3)
==214004== by 0x67F0056: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.5600.3)
==214004== by 0x67F14FA: g_slist_copy_deep (in /usr/lib64/libglib-2.0.so.0.5600.3)
==214004== by 0x5584FC: pv::widgets::DecoderMenu::DecoderMenu(QWidget*, bool) (decodermenu.cpp:33)
==214004==
Soeren Apel [Wed, 3 Oct 2018 19:52:00 +0000 (21:52 +0200)]
Fix #1292/1294 by snapping to any edge when not hovering over a signal
1292: TimeItem instances now snap to any edge when not hovering over a
signal, including the ruler itself. Hence, there is always an area
where one can hover without selecting a signal, even if the entire
view is full of signals.
Cursors also show the desired behavior: the left edge snaps while
the right does not. Hence, the width is kept constant. If the user
wants to snap the right edge to a signal edge, this can be achieved
by dragging the right edge separately.
1294: TimeItem instances now snap to any edge - before, they were snapping
only to edges when hovering over a signal.
Gerhard Sittig [Tue, 18 Sep 2018 16:34:42 +0000 (18:34 +0200)]
Logging: avoid "cb was NULL" warning message during logging shutdown
Commit 4b9234088f56 introduced the fetch and restore of the libraries'
default log routines in addition to the registration of a Pulseview
application's log routine. Some code paths in main() could result in
unexpected "cb was NULL" messages on stderr, when logging::init() did
not execute but the destructor tried to restore a handler which was not
fetched before. Silence the error message.