pulseview.git
7 years agoAdd a tooltip for the "Add decoder" button.
Uwe Hermann [Wed, 29 Mar 2017 23:20:42 +0000 (01:20 +0200)]
Add a tooltip for the "Add decoder" button.

7 years agobinding: Add description tooltips to almost all binding types.
Uwe Hermann [Wed, 29 Mar 2017 23:11:11 +0000 (01:11 +0200)]
binding: Add description tooltips to almost all binding types.

This can be the description of an option of an input/output module,
for example.

7 years agoprop/bool: Add a tooltip containing a description.
Uwe Hermann [Wed, 29 Mar 2017 23:48:12 +0000 (01:48 +0200)]
prop/bool: Add a tooltip containing a description.

This can be the description of an option of an input/output module,
for example.

7 years agobinding/prop: Add a description field.
Uwe Hermann [Wed, 29 Mar 2017 22:57:33 +0000 (00:57 +0200)]
binding/prop: Add a description field.

The config key / option bindings only allowed for a single name so far.

Add an additional description field, which can be used for longer
descriptions of the config keys / options.

Hook up the input/output format option descriptions.

7 years agowellarray.hpp: Add missing #include guards.
Uwe Hermann [Tue, 28 Mar 2017 21:20:51 +0000 (23:20 +0200)]
wellarray.hpp: Add missing #include guards.

7 years agoSimplify Qt5 setup, require cmake >= 2.8.12.
Uwe Hermann [Tue, 28 Mar 2017 20:54:27 +0000 (22:54 +0200)]
Simplify Qt5 setup, require cmake >= 2.8.12.

We now require cmake >= 2.8.12 (released 2013 or so, should be available
pretty much anywhere by now) which further simplifies the Qt5 setup.

Details:
https://doc.qt.io/qt-5/cmake-manual.html
https://cmake.org/cmake/help/v3.7/prop_tgt/AUTOMOC.html
https://cmake.org/cmake/help/v3.7/prop_tgt/AUTORCC.html

7 years agoDrop support for Qt4.
Uwe Hermann [Tue, 28 Mar 2017 20:26:02 +0000 (22:26 +0200)]
Drop support for Qt4.

We now require Qt5 for PulseView. Qt5 has been out since 2012 or so and
is available pretty much everywhere now.

We're successfully using Qt5 on Linux, Windows, *BSD, Mac OS X, and Android.

Dropping Qt4 support simplifies the build system quite a bit, reduces the
number of test scenarios we have to consider etc. etc.

7 years agoDrop unused boost-thread dependency.
Uwe Hermann [Tue, 28 Mar 2017 06:41:48 +0000 (08:41 +0200)]
Drop unused boost-thread dependency.

We no longer use boost-thread currently (in favor of C++11 thread
facilities), so drop the obsolete dependency from code and docs.

7 years agoUse alphabetical order for #includes.
Uwe Hermann [Tue, 28 Mar 2017 06:30:43 +0000 (08:30 +0200)]
Use alphabetical order for #includes.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,llvm-include-order" -fix

7 years agoWhitespace cosmetics.
Uwe Hermann [Fri, 24 Mar 2017 22:19:14 +0000 (23:19 +0100)]
Whitespace cosmetics.

7 years agoSpeed up analog trace painting
Soeren Apel [Sun, 26 Mar 2017 19:04:30 +0000 (21:04 +0200)]
Speed up analog trace painting

7 years agoSignalBase: Don't use static state
Soeren Apel [Thu, 23 Mar 2017 20:52:51 +0000 (21:52 +0100)]
SignalBase: Don't use static state

It's used across all SessionBase instances, d'oh.
Let's not do this.

7 years agoSettings: Whitespace fix
Soeren Apel [Thu, 23 Mar 2017 20:43:58 +0000 (21:43 +0100)]
Settings: Whitespace fix

7 years agoConsistenty use auto-generated namespace comments.
Uwe Hermann [Wed, 22 Mar 2017 22:34:36 +0000 (23:34 +0100)]
Consistenty use auto-generated namespace comments.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,google-readability-namespace-comments" -fix

Switch to the format used by clang-tidy to allow easy, automatic,
tool-based maintenance / checking of the comments.

This also found a few instances of comments that were out of sync.

7 years agoRandom simplifications, cosmetics/whitespace/consistency fixes.
Uwe Hermann [Sat, 18 Mar 2017 23:20:26 +0000 (00:20 +0100)]
Random simplifications, cosmetics/whitespace/consistency fixes.

7 years agoUse the "default" keyword.
Uwe Hermann [Tue, 21 Mar 2017 23:45:20 +0000 (00:45 +0100)]
Use the "default" keyword.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,modernize-use-equals-default" -fix

(with manual fixups to move the "= default" to the .hpp)

7 years agoUse bool literals for boolean values.
Uwe Hermann [Tue, 21 Mar 2017 23:01:10 +0000 (00:01 +0100)]
Use bool literals for boolean values.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,modernize-use-bool-literals" -fix

7 years agoDon't use redundant void argument.
Uwe Hermann [Tue, 21 Mar 2017 21:38:59 +0000 (22:38 +0100)]
Don't use redundant void argument.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,modernize-redundant-void-arg" -fix

7 years agoDon't use deprecated headers.
Uwe Hermann [Mon, 20 Mar 2017 20:40:29 +0000 (21:40 +0100)]
Don't use deprecated headers.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,modernize-deprecated-headers" -fix

(with some additional manual fixups)

7 years agoUse nullptr in a few places.
Uwe Hermann [Mon, 20 Mar 2017 20:26:44 +0000 (21:26 +0100)]
Use nullptr in a few places.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,modernize-use-nullptr" -fix

7 years agoRemove unused "using" declarations.
Uwe Hermann [Mon, 20 Mar 2017 20:00:14 +0000 (21:00 +0100)]
Remove unused "using" declarations.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,misc-unused-using-decls" -fix

(with manual add-on fixes such as dropping unused headers as well,
and commenting some false-positive cases)

7 years agoSettings: Add Qt version
Soeren Apel [Wed, 22 Mar 2017 22:42:23 +0000 (23:42 +0100)]
Settings: Add Qt version

7 years agoDecoderStack: Fix memory leak
Soeren Apel [Wed, 22 Mar 2017 22:26:21 +0000 (23:26 +0100)]
DecoderStack: Fix memory leak

7 years agoAnalogSignal: display type-related improvements
Soeren Apel [Wed, 22 Mar 2017 21:33:09 +0000 (22:33 +0100)]
AnalogSignal: display type-related improvements

1) Only show the v/div setting if analog trace is drawn
2) Update the trace when the display type is changed

7 years agoAnalogSignal: Implement converted logic trace painting
Soeren Apel [Wed, 22 Mar 2017 22:24:13 +0000 (23:24 +0100)]
AnalogSignal: Implement converted logic trace painting

Yeah, it violates the DRY principle and isn't nice OOP-wise
but it'll do for now. The entire group of Trace/Signal classes
needs to be reworked anyway to support device-independent
signal types anyway (think math traces and such).

7 years agoLogicSignal: Don't depend on device_ being valid
Soeren Apel [Wed, 22 Mar 2017 19:05:38 +0000 (20:05 +0100)]
LogicSignal: Don't depend on device_ being valid

7 years agoAnalogSignal: Add conversion type and display type
Soeren Apel [Wed, 22 Mar 2017 22:07:41 +0000 (23:07 +0100)]
AnalogSignal: Add conversion type and display type

7 years agoSignalBase: Implement A2D conversions
Soeren Apel [Wed, 22 Mar 2017 22:03:21 +0000 (23:03 +0100)]
SignalBase: Implement A2D conversions

7 years agoSession: Make sure we don't try to add a non-existant decoder
Soeren Apel [Sat, 18 Mar 2017 11:12:41 +0000 (12:12 +0100)]
Session: Make sure we don't try to add a non-existant decoder

This can happen if either the saved configuration is wrong
or a decoder simply doesn't exist. We don't want to crash then.

7 years agoLogicSegment: Remove constructor requiring sigrok::Logic
Soeren Apel [Thu, 16 Mar 2017 21:24:17 +0000 (22:24 +0100)]
LogicSegment: Remove constructor requiring sigrok::Logic

7 years agoLogicSegment: Make constructor and append_payload() more generic
Soeren Apel [Thu, 16 Mar 2017 20:40:33 +0000 (21:40 +0100)]
LogicSegment: Make constructor and append_payload() more generic

7 years agoUse presence of logic/analog data as indicator of channel type
Soeren Apel [Wed, 15 Mar 2017 18:22:17 +0000 (19:22 +0100)]
Use presence of logic/analog data as indicator of channel type

However, don't do this for the StoreSession. Reason is that we
only want to save the original data and not treat any converted
data as its own channel.

7 years agoSignalBase: Allow checking for logic data directly
Soeren Apel [Tue, 14 Mar 2017 21:54:20 +0000 (22:54 +0100)]
SignalBase: Allow checking for logic data directly

If we always return a valid pointer, we need to look
at the channel type to figure out if this data is
supposed to be valid or not. This isn't useful.

7 years agoIntroduce PV-internal channel types
Soeren Apel [Wed, 22 Mar 2017 21:45:41 +0000 (22:45 +0100)]
Introduce PV-internal channel types

7 years agomain.cpp: Minor consistency fixes found by clang-tidy.
Uwe Hermann [Sat, 18 Mar 2017 19:01:54 +0000 (20:01 +0100)]
main.cpp: Minor consistency fixes found by clang-tidy.

7 years agoDon't use std:: in the code directly (where possible).
Uwe Hermann [Wed, 15 Mar 2017 22:16:05 +0000 (23:16 +0100)]
Don't use std:: in the code directly (where possible).

Use "using std::foo" to make the actual code itself a lot more readable.

There are some exceptions where we usually cannot do this, e.g. std::thread
often conflicts with "thread" from Qt or Boost.

7 years agoOnly show sampling points when zoomed in far enough.
Uwe Hermann [Fri, 17 Mar 2017 22:53:49 +0000 (23:53 +0100)]
Only show sampling points when zoomed in far enough.

7 years agoShow sampling points in analog traces.
Uwe Hermann [Fri, 17 Mar 2017 22:05:23 +0000 (23:05 +0100)]
Show sampling points in analog traces.

This fixes (parts of) bug #485.

7 years agoAnalogSignal::paint_trace(): Factor out a const variable.
Uwe Hermann [Fri, 17 Mar 2017 22:00:04 +0000 (23:00 +0100)]
AnalogSignal::paint_trace(): Factor out a const variable.

7 years agoAdd a hotkey to show/hide sampling points.
Uwe Hermann [Fri, 17 Mar 2017 19:47:36 +0000 (20:47 +0100)]
Add a hotkey to show/hide sampling points.

This is also hooked up into the global settings, so it will be
persistent across multiple PulseView runs.

This fixes (parts of) bug #485.

7 years agoShow sampling points in logic traces.
Uwe Hermann [Fri, 17 Mar 2017 19:35:20 +0000 (20:35 +0100)]
Show sampling points in logic traces.

This fixes (parts of) bug #485.

7 years agoIncrease session saving chunk size for much better performance.
Uwe Hermann [Thu, 16 Mar 2017 22:29:24 +0000 (23:29 +0100)]
Increase session saving chunk size for much better performance.

Increasing the StoreSession chunk size from 1Msamples to 10Msamples
leads to massively faster session saving due to reduced overhead.

In some cases a 2x (or more) speed-up has been observed. A further increase
to, say, 100Msamples shows no further noticeable improvements.

This also has the additional benefit of generating fewer entries/files
within the sigrok session (*.sr) output/ZIP files, which can potentially
be beneficial for very long captures.

7 years agoTraceView: Use sticky scrolling setting directly
Soeren Apel [Mon, 13 Mar 2017 18:15:32 +0000 (19:15 +0100)]
TraceView: Use sticky scrolling setting directly

7 years agoSettings: Activate first item upon dialog creation
Soeren Apel [Mon, 13 Mar 2017 07:56:03 +0000 (08:56 +0100)]
Settings: Activate first item upon dialog creation

7 years agoSettings: Change icon for "Views"
Soeren Apel [Mon, 13 Mar 2017 07:18:47 +0000 (08:18 +0100)]
Settings: Change icon for "Views"

7 years agoTie the "sticky scrolling" setting in with the settings mgmt
Soeren Apel [Sun, 12 Mar 2017 20:32:35 +0000 (21:32 +0100)]
Tie the "sticky scrolling" setting in with the settings mgmt

7 years agoSettings: Change view settings shortcuts
Soeren Apel [Fri, 10 Mar 2017 07:52:02 +0000 (08:52 +0100)]
Settings: Change view settings shortcuts

7 years agoIntegrate the about dialog into the settings dialog
Soeren Apel [Thu, 9 Mar 2017 18:38:20 +0000 (19:38 +0100)]
Integrate the about dialog into the settings dialog

7 years agoSettings: Prettify the settings dialog
Soeren Apel [Wed, 8 Mar 2017 21:53:51 +0000 (22:53 +0100)]
Settings: Prettify the settings dialog

7 years agoSession: Don't reset session name for file devices
Soeren Apel [Wed, 8 Mar 2017 08:44:16 +0000 (09:44 +0100)]
Session: Don't reset session name for file devices

7 years agoUse the "default" keyword.
Uwe Hermann [Fri, 10 Mar 2017 21:09:58 +0000 (22:09 +0100)]
Use the "default" keyword.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,modernize-use-equals-default" -fix

(with manual fixups to move the "= default" to the .hpp)

7 years agoUse emplace_back() where possible.
Uwe Hermann [Fri, 10 Mar 2017 20:32:43 +0000 (21:32 +0100)]
Use emplace_back() where possible.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,modernize-use-emplace" -fix

Using emplace_back() has multiple advantages:

 - It's usually shorter and easier to read.

 - It's more efficient.

   V1: v.push_back("foo");
   V2: v.emplace_back("foo");

   V1 will construct a temporary std::string from the string literal "foo",
   another copy of that temporary object will be constructed and placed
   into the vector 'v', then the temporary object's destructor will be called.

   V2 will simply create a std::string directly in the vector 'v', i.e.
   there's only one construction (not 2) and no destructor needs to be called.

7 years agoUse bool literals for boolean values.
Uwe Hermann [Fri, 10 Mar 2017 20:41:30 +0000 (21:41 +0100)]
Use bool literals for boolean values.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,modernize-use-bool-literals" -fix

7 years agoDon't use redundant void argument.
Uwe Hermann [Fri, 10 Mar 2017 20:17:22 +0000 (21:17 +0100)]
Don't use redundant void argument.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,modernize-redundant-void-arg" -fix

7 years agoPrefer std::make_shared().
Uwe Hermann [Fri, 10 Mar 2017 19:26:31 +0000 (20:26 +0100)]
Prefer std::make_shared().

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,modernize-make-shared" -fix

(with some additional manual fixups)

Using make_shared() over manual construction has multiple advantages:

 - It's shorter to write and easier to read.

   V1: auto sb = shared_ptr<Foo>(new Foo());
   V2: auto sb = make_shared<Foo>();

 - The type "Foo" is repeated less often (less code duplication, lower
   risk of forgetting to update one of the "Foo"s upon copy-paste etc.)

 - Manual construction leads to two individual allocations (actual data and
   the control block of the shared_ptr). Using make_shared() will only lead
   to one allocation, which has performance, cache-locality and memory
   consumption benefits.

 - It's exception-safe, whereas manual construction is not necessarily:

   V1: func(shared_ptr<Foo>(new Foo()), shared_ptr<Foo>(new Foo()));
   V2: func(make_shared<Foo>(), make_shared<Foo>());

   In "V1", one of the "new" invocations could throw, potentially
   causing memory leaks. No leaks will happen with make_shared().

7 years agoDon't use deprecated headers.
Uwe Hermann [Thu, 9 Mar 2017 23:34:10 +0000 (00:34 +0100)]
Don't use deprecated headers.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,modernize-deprecated-headers" -fix

(with some additional manual fixups)

7 years agoUse nullptr in a few places.
Uwe Hermann [Thu, 9 Mar 2017 23:11:45 +0000 (00:11 +0100)]
Use nullptr in a few places.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,modernize-use-nullptr" -fix

7 years agoGlobalSettings: Implement undo function for the "cancel" button
Soeren Apel [Tue, 7 Mar 2017 21:14:49 +0000 (22:14 +0100)]
GlobalSettings: Implement undo function for the "cancel" button

7 years agoTraceView: Fix "always zoom to fit" feature
Soeren Apel [Mon, 6 Mar 2017 18:07:36 +0000 (19:07 +0100)]
TraceView: Fix "always zoom to fit" feature

7 years agoTraceView: Only perform "always zoom to fit" for the main view
Soeren Apel [Sun, 5 Mar 2017 20:16:56 +0000 (21:16 +0100)]
TraceView: Only perform "always zoom to fit" for the main view

7 years agoIntroduce ViewBase::is_main_view
Soeren Apel [Sun, 5 Mar 2017 20:07:23 +0000 (21:07 +0100)]
Introduce ViewBase::is_main_view

7 years agoMainWindow: Restructure add_view()
Soeren Apel [Sun, 5 Mar 2017 19:54:51 +0000 (20:54 +0100)]
MainWindow: Restructure add_view()

7 years agoTie the "always zoom to fit" setting in with the settings mgmt
Soeren Apel [Sun, 5 Mar 2017 19:30:34 +0000 (20:30 +0100)]
Tie the "always zoom to fit" setting in with the settings mgmt

7 years agoTie the "use coloured bg" setting in with the settings mgmt
Soeren Apel [Sun, 5 Mar 2017 18:58:37 +0000 (19:58 +0100)]
Tie the "use coloured bg" setting in with the settings mgmt

7 years agoImplement initial version of the settings management
Soeren Apel [Mon, 6 Mar 2017 18:04:47 +0000 (19:04 +0100)]
Implement initial version of the settings management

7 years agoManpage update
Soeren Apel [Sat, 4 Mar 2017 15:29:36 +0000 (16:29 +0100)]
Manpage update

7 years agoFix #829 by not throwing when device can't be used
Soeren Apel [Thu, 2 Mar 2017 22:07:53 +0000 (23:07 +0100)]
Fix #829 by not throwing when device can't be used

7 years agoUpdate sr_period_string usage
Soeren Apel [Sat, 25 Feb 2017 21:55:30 +0000 (22:55 +0100)]
Update sr_period_string usage

7 years agoIncrease decoding chunk size for much better performance.
Uwe Hermann [Mon, 6 Mar 2017 07:41:42 +0000 (08:41 +0100)]
Increase decoding chunk size for much better performance.

Increasing the (max) decoding chunk size from 4ksamples to 10Msamples
leads to massively faster protocol decoding due to reduced overhead
related to srd_session_send() and other functions invoked internally.

In some cases a 2x (or more) speed-up has been observed.

7 years agoBring back sticky scroll and coloured background shortcuts.
Piotr Esden-Tempski [Sat, 4 Mar 2017 09:06:22 +0000 (01:06 -0800)]
Bring back sticky scroll and coloured background shortcuts.

Converted the actions to QShortcut. We do not use the actions anywhere
else in the code and they were not being triggered using the setShortcut
setting. Additionally expanded the view background color to be a
toggleable attribute.

This fixes bugs #907 and #908.

7 years agoName session tabs "Session 1" per default.
Uwe Hermann [Fri, 3 Mar 2017 23:32:43 +0000 (00:32 +0100)]
Name session tabs "Session 1" per default.

This is a bit more specific than "Untitled-1".

7 years agomanpage: Document CTRL+w for closing session tabs.
Uwe Hermann [Fri, 3 Mar 2017 23:26:35 +0000 (00:26 +0100)]
manpage: Document CTRL+w for closing session tabs.

7 years agoAdded Ctrl-Q and Ctrl-W shortcuts.
Piotr Esden-Tempski [Fri, 3 Mar 2017 07:31:04 +0000 (23:31 -0800)]
Added Ctrl-Q and Ctrl-W shortcuts.

Ctrl-Q is commonly used to close the application, and Ctrl-W usually is
used to close the current tab. According to the Qt::Modifier
documentation this setup should work seamlessly on Mac OS where Meta is
usually used in place of Ctrl.

This fixes bug #899.

7 years agoAdd Run/Stop shortcut.
Piotr Esden-Tempski [Fri, 3 Mar 2017 01:55:55 +0000 (17:55 -0800)]
Add Run/Stop shortcut.

This is a proposed solution to reenable the <Space> shortcut for
Run/Stop. It seems that setShortcut on QToolButton is not working, but
it seems that adding QShortcut works as a workaround.

7 years agoDecoderStack: Avoid re-feeding old data after wait_for_data()
Marcus Comstedt [Sun, 26 Feb 2017 13:31:02 +0000 (14:31 +0100)]
DecoderStack: Avoid re-feeding old data after wait_for_data()

This fixes #876 and #850.

7 years agoSegment: Do not alter chunks when there are active iterators
Soeren Apel [Sun, 19 Feb 2017 20:19:11 +0000 (21:19 +0100)]
Segment: Do not alter chunks when there are active iterators

7 years agoView: Fix view item positioning
Soeren Apel [Sat, 18 Feb 2017 23:37:08 +0000 (00:37 +0100)]
View: Fix view item positioning

7 years agoSegment: Move definition of MaxChunkSize
Soeren Apel [Sat, 18 Feb 2017 07:21:00 +0000 (08:21 +0100)]
Segment: Move definition of MaxChunkSize

This fixes a compile error with clang:

pv/data/segment.cpp.o: In function `unsigned long const& std::min<unsigned long>(unsigned long const&, unsigned long const&)':
/usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h:200: undefined reference to `pv::data::Segment::MaxChunkSize'
clang: error: linker command failed with exit code 1 (use -v to see invocation)

7 years agopulseview_cross.nsi.in: Use Python 3.4 (Windows XP support).
Uwe Hermann [Fri, 17 Feb 2017 08:27:20 +0000 (09:27 +0100)]
pulseview_cross.nsi.in: Use Python 3.4 (Windows XP support).

The last Python version to officially support Windows XP was 3.4.x.

We'll keep the Windows installers at that version for the time being,
until Windows XP support is no longer feasible (e.g. because important
sigrok requirements such as Qt, glib, or libusb drop XP suppport).

7 years agoUpdate unit tests
Soeren Apel [Tue, 14 Feb 2017 20:03:50 +0000 (21:03 +0100)]
Update unit tests

7 years agoAnalogSignal: Split up divs during autoranging if needed
Soeren Apel [Mon, 13 Feb 2017 23:12:54 +0000 (00:12 +0100)]
AnalogSignal: Split up divs during autoranging if needed

7 years agoAnalogSegment: Calculate min/max also for small sample sizes
Soeren Apel [Mon, 13 Feb 2017 23:07:55 +0000 (00:07 +0100)]
AnalogSegment: Calculate min/max also for small sample sizes

7 years agoPerform autoranging for analog traces also when new data comes in
Soeren Apel [Mon, 13 Feb 2017 22:39:13 +0000 (23:39 +0100)]
Perform autoranging for analog traces also when new data comes in

7 years agoProvide notifiers for when signal data changes
Soeren Apel [Mon, 13 Feb 2017 22:26:31 +0000 (23:26 +0100)]
Provide notifiers for when signal data changes

7 years agoImplement autoranging for analog channels
Soeren Apel [Sun, 12 Feb 2017 17:29:47 +0000 (18:29 +0100)]
Implement autoranging for analog channels

7 years agoStoreSession: Remove outdated comment
Soeren Apel [Fri, 10 Feb 2017 19:28:20 +0000 (20:28 +0100)]
StoreSession: Remove outdated comment

7 years agoMainBar: Properly limit the lower value of the sample range
Soeren Apel [Fri, 10 Feb 2017 19:22:51 +0000 (20:22 +0100)]
MainBar: Properly limit the lower value of the sample range

This fixes bug #890.

7 years agoSession: Handle frame markers properly
Soeren Apel [Fri, 10 Feb 2017 07:09:55 +0000 (08:09 +0100)]
Session: Handle frame markers properly

7 years agoAnalogSignal: Allow separate vdiv counts for pos/neg
Soeren Apel [Wed, 8 Feb 2017 21:16:39 +0000 (22:16 +0100)]
AnalogSignal: Allow separate vdiv counts for pos/neg

7 years agoMainBar: Make sure device and GUI are in sync on startup
Soeren Apel [Wed, 8 Feb 2017 20:53:08 +0000 (21:53 +0100)]
MainBar: Make sure device and GUI are in sync on startup

7 years agoFree unused segment memory after acquisition
Soeren Apel [Wed, 8 Feb 2017 19:33:48 +0000 (20:33 +0100)]
Free unused segment memory after acquisition

Segments allocate chunks of MaxChunkSize bytes each.
Most likely, the last allocated chunk isn't fully used,
so there's memory going to waste. This patch fixes this
by allocating a chunk of the required size that replaces
the last standard chunk.

7 years agoTests: Add tests for Segment class
Soeren Apel [Wed, 8 Feb 2017 17:35:40 +0000 (18:35 +0100)]
Tests: Add tests for Segment class

7 years agoSwitch segment storage from single vector to vector of arrays
Soeren Apel [Wed, 8 Feb 2017 17:30:41 +0000 (18:30 +0100)]
Switch segment storage from single vector to vector of arrays

Previously, PV would run out of storage space for the data
segments because data was stored in a vector. As a vector allows
contiguous access to the underlying data (much like an array),
it needs a contiguous section of memory. With incoming data and
constant resizing of the vector, the OS at some point can no
longer supply such a section of memory, causing PV to abort
acquisition.

This change fixes this by using several chunks that are never
grown in size. Instead, new chunks are allocated and added to
the vector as needed. This way, the OS will be able to provide
memory until it runs out of system memory.

7 years agoUnify get_samples() semantics for AnalogSegment and LogicSegment
Soeren Apel [Sun, 22 Jan 2017 20:32:05 +0000 (21:32 +0100)]
Unify get_samples() semantics for AnalogSegment and LogicSegment

7 years agopulseview_cross.nsi.in: Bump Python version to 3.6.
Uwe Hermann [Thu, 2 Feb 2017 21:28:57 +0000 (22:28 +0100)]
pulseview_cross.nsi.in: Bump Python version to 3.6.

7 years agoBuild fixes for Qt5 Windows/mingw/MXE support.
Uwe Hermann [Sun, 29 Jan 2017 18:36:59 +0000 (19:36 +0100)]
Build fixes for Qt5 Windows/mingw/MXE support.

We currently need to (ab)use pkg-config to get all the required
Qt5 static linking dependencies right, since this doesn't yet
work properly in MXE's cmake.

We use ${PKGDEPS_STATIC_LDFLAGS} instead of ${PKGDEPS_STATIC_LIBRARIES}
to avoid some linker issues related to libbz2.

We need to add Qt5::QSvgPlugin, Qt5::QWindowsIntegrationPlugin,
Qt5PlatformSupport and all the Qt5 libs and their dependencies to
the link libraries list (for both PulseView and the unit tests).

In one of the source code files we need to explicitly list all
static Qt plugins via Q_IMPORT_PLUGIN to make static builds work,
which is currently QWindowsIntegrationPlugin and QSvgPlugin.

We're only focusing on having a working Qt5 build for Windows,
as we no longer need to or want to support Qt4 there.

Details:
https://github.com/mxe/mxe/issues/1642

Thanks to Tony Theodore for the help!

This should also fix bug #871, since we're now building with Qt >= 5.6
which has high-DPI support in general.

Tested via manual specification (might need further changes, though):

  set QT_SCALE_FACTOR=2
  pulseview.exe

7 years agoConfirm with user also when trying to close the session's main dock
Soeren Apel [Fri, 20 Jan 2017 09:59:50 +0000 (10:59 +0100)]
Confirm with user also when trying to close the session's main dock

7 years agoConfirm with user when trying to close sessions with unsaved data
Soeren Apel [Thu, 19 Jan 2017 21:01:43 +0000 (22:01 +0100)]
Confirm with user when trying to close sessions with unsaved data

7 years agoMainWindow: Improve view removal
Soeren Apel [Tue, 17 Jan 2017 21:05:41 +0000 (22:05 +0100)]
MainWindow: Improve view removal

7 years agoTraceView: Center traces more than once
Soeren Apel [Fri, 13 Jan 2017 17:36:00 +0000 (18:36 +0100)]
TraceView: Center traces more than once

This is to make sure the traces are centered when the view is
first drawn but also properly centered when the final size is
known. This fixes a "jumping" display when opening a new trace
view in addition to an existing one.