pulseview.git
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.

7 years agoTraceView: Center traces vertically after view creation
Soeren Apel [Fri, 13 Jan 2017 07:51:00 +0000 (08:51 +0100)]
TraceView: Center traces vertically after view creation

7 years agoTraceView: Fix variable name
Soeren Apel [Thu, 12 Jan 2017 21:59:31 +0000 (22:59 +0100)]
TraceView: Fix variable name

7 years agoTraceView: Restore vertical offset
Soeren Apel [Thu, 12 Jan 2017 21:57:31 +0000 (22:57 +0100)]
TraceView: Restore vertical offset

7 years agolicense: remove FSF postal address from boiler plate license text
Gerhard Sittig [Thu, 20 Oct 2016 07:53:43 +0000 (09:53 +0200)]
license: remove FSF postal address from boiler plate license text

Remove the FSF postal address as it might change (it did in the past).
Reference the gnu.org website instead which is more stable.

7 years agoMainWindow, View::View: Fix two memory errors reported by valgrind
Perttu Ahola [Sat, 24 Dec 2016 19:31:05 +0000 (21:31 +0200)]
MainWindow, View::View: Fix two memory errors reported by valgrind

(use of freed data, use of uninitialized variable)

7 years agoAdd tooltips
Soeren Apel [Fri, 9 Dec 2016 17:19:28 +0000 (18:19 +0100)]
Add tooltips

7 years agoFix unit tests
Soeren Apel [Tue, 6 Dec 2016 06:35:36 +0000 (07:35 +0100)]
Fix unit tests

7 years agoDecoderStack: Fix "data may be unitialized" error
Soeren Apel [Sun, 4 Dec 2016 18:45:30 +0000 (19:45 +0100)]
DecoderStack: Fix "data may be unitialized" error

7 years agoMainWindow: Fix "main_window may be uninitialized" error
Soeren Apel [Sun, 4 Dec 2016 13:38:32 +0000 (14:38 +0100)]
MainWindow: Fix "main_window may be uninitialized" error

7 years agoMainBar: Correct event handler name
Soeren Apel [Wed, 30 Nov 2016 07:32:56 +0000 (08:32 +0100)]
MainBar: Correct event handler name

7 years agoFix "always zoom to fit" feature
Soeren Apel [Wed, 30 Nov 2016 07:23:56 +0000 (08:23 +0100)]
Fix "always zoom to fit" feature

7 years agoImplement views::trace::StandardBar and derive MainBar from it
Soeren Apel [Mon, 28 Nov 2016 19:02:17 +0000 (20:02 +0100)]
Implement views::trace::StandardBar and derive MainBar from it

7 years agoMove file loading from MainBar to Session
Soeren Apel [Fri, 25 Nov 2016 17:42:38 +0000 (18:42 +0100)]
Move file loading from MainBar to Session

7 years agoDo not change session name when performing only a selective save
Soeren Apel [Thu, 24 Nov 2016 19:02:06 +0000 (20:02 +0100)]
Do not change session name when performing only a selective save

7 years agoFix #849 by making sure no references to the DecodeTrace instance remain
Soeren Apel [Thu, 24 Nov 2016 17:42:24 +0000 (18:42 +0100)]
Fix #849 by making sure no references to the DecodeTrace instance remain

7 years agoMainWindow: Update tab text when session name changes
Soeren Apel [Fri, 4 Nov 2016 17:21:37 +0000 (18:21 +0100)]
MainWindow: Update tab text when session name changes

7 years agoDecoderStack: Remove unneeded shared_ptr use
Soeren Apel [Fri, 4 Nov 2016 17:00:08 +0000 (18:00 +0100)]
DecoderStack: Remove unneeded shared_ptr use

7 years agoDecodeTrace: Remove unneeded pointer to the signalbase instance
Soeren Apel [Fri, 4 Nov 2016 09:35:27 +0000 (10:35 +0100)]
DecodeTrace: Remove unneeded pointer to the signalbase instance

7 years agoMainWindow: Add settings button
Soeren Apel [Tue, 18 Oct 2016 15:27:14 +0000 (17:27 +0200)]
MainWindow: Add settings button

7 years agoMainWindow: Add separator
Soeren Apel [Tue, 18 Oct 2016 06:47:02 +0000 (08:47 +0200)]
MainWindow: Add separator

7 years agoMainWindow: Don't use get_active_view() to determine active session
Soeren Apel [Tue, 11 Oct 2016 13:55:55 +0000 (15:55 +0200)]
MainWindow: Don't use get_active_view() to determine active session

While it would be neat if it worked, it unfortunately doesn't as
the currently focused item may not be related to any view - e.g.
when one of the tabs of the QTabWidget was clicked.
For this reason, we store the last session the user interacted
with and treat it as the currently focused session.

7 years agoMainWindow: Fix session error slot declaration
Soeren Apel [Tue, 11 Oct 2016 13:47:53 +0000 (15:47 +0200)]
MainWindow: Fix session error slot declaration

7 years agoMove run/stop button from the menu bar to the tab widget
Soeren Apel [Mon, 10 Oct 2016 17:22:38 +0000 (19:22 +0200)]
Move run/stop button from the menu bar to the tab widget

7 years agoMainWindow: Select new session after creation
Soeren Apel [Mon, 10 Oct 2016 10:00:35 +0000 (12:00 +0200)]
MainWindow: Select new session after creation

7 years agoMainWindow: Prevent the QTabWidget from collapsing when empty
Soeren Apel [Mon, 10 Oct 2016 07:15:04 +0000 (09:15 +0200)]
MainWindow: Prevent the QTabWidget from collapsing when empty

7 years agoMainWindow: Update session tab when focusing a different view
Soeren Apel [Sun, 9 Oct 2016 18:55:19 +0000 (20:55 +0200)]
MainWindow: Update session tab when focusing a different view

7 years agoMove the "new session" button to the main window's tab area
Soeren Apel [Sat, 8 Oct 2016 13:47:12 +0000 (15:47 +0200)]
Move the "new session" button to the main window's tab area

7 years agoMainWindow: Fix dock nesting
Soeren Apel [Tue, 4 Oct 2016 17:52:56 +0000 (19:52 +0200)]
MainWindow: Fix dock nesting

The nesting flag was applied to the wrong QMainWindow
after the introduction of the tab widget.

7 years agoMainWindow: Allow tabs to be closed
Soeren Apel [Tue, 4 Oct 2016 17:52:29 +0000 (19:52 +0200)]
MainWindow: Allow tabs to be closed

7 years agoMainWindow: Use regular pointer for QDockWidgets
Soeren Apel [Tue, 4 Oct 2016 17:32:58 +0000 (19:32 +0200)]
MainWindow: Use regular pointer for QDockWidgets

Using shared_ptrs conflicts with the Qt memory management,
so we can't use them if we don't have control over when
those objects are deleted by Qt. In this case, we need to
handle the dock widgets properly.

7 years agoMainWindow: Use a QTabWidget to display the QDockWidgets
Soeren Apel [Thu, 29 Sep 2016 17:36:48 +0000 (19:36 +0200)]
MainWindow: Use a QTabWidget to display the QDockWidgets

7 years agoChange namespace for the trace view and implement ViewBase
Soeren Apel [Mon, 26 Sep 2016 06:45:38 +0000 (08:45 +0200)]
Change namespace for the trace view and implement ViewBase

7 years agoMainWindow: Make session naming consistent
Soeren Apel [Mon, 12 Sep 2016 19:42:59 +0000 (21:42 +0200)]
MainWindow: Make session naming consistent

7 years agoCMakeLists.txt: Avoid -fext-numeric-literals, (not supported by clang).
Uwe Hermann [Sat, 3 Dec 2016 21:23:24 +0000 (22:23 +0100)]
CMakeLists.txt: Avoid -fext-numeric-literals, (not supported by clang).

This (re-)fixes bug #863.

7 years agoWorkaround for a gcc 6.2.1 bug causing boost-related build issues.
Uwe Hermann [Fri, 4 Nov 2016 22:46:08 +0000 (23:46 +0100)]
Workaround for a gcc 6.2.1 bug causing boost-related build issues.

Patch provided by AurĂ©lien Jacobs, thanks a lot!

This fixes bug #863.

8 years agocmake, INSTALL: Bump the Boost requirement to >= 1.55.
Gerhard Sittig [Thu, 13 Oct 2016 14:25:39 +0000 (16:25 +0200)]
cmake, INSTALL: Bump the Boost requirement to >= 1.55.

Support for serialization of multiprecision data (which is used for view
timestamps) was introduced in boost version 1.55. Since commit 3a21afa6
builds with versions up to and including 1.54 are reported to fail.

Bump the required version from 1.53 to 1.55. Rephrase the CMake logic
which searches for the Boost dependency. Create a list of libraries from
fixed and optional parts, which as a byproduct avoids long lines. Pass
that list of required libraries to one common find_package() call.

Signed-off-by: Gerhard Sittig <gerhard.sittig@gmx.net>
8 years agoINSTALL: Add new libboost-serialization dependency.
Uwe Hermann [Sun, 4 Sep 2016 14:15:47 +0000 (16:15 +0200)]
INSTALL: Add new libboost-serialization dependency.

8 years agoMainWindow: Fix crash on closing last session
Soeren Apel [Sun, 4 Sep 2016 12:49:29 +0000 (14:49 +0200)]
MainWindow: Fix crash on closing last session

8 years agopulseview.qrc: Add missing entries for new icons.
Uwe Hermann [Sun, 4 Sep 2016 12:21:34 +0000 (14:21 +0200)]
pulseview.qrc: Add missing entries for new icons.

8 years agoMainBar: Remove empty menu button
Soeren Apel [Sun, 4 Sep 2016 06:03:30 +0000 (08:03 +0200)]
MainBar: Remove empty menu button

8 years agoMainWindow: Don't return bogus view
Soeren Apel [Sat, 3 Sep 2016 22:17:32 +0000 (00:17 +0200)]
MainWindow: Don't return bogus view

8 years agoUpdate main window and dock widget titles as session name changes
Soeren Apel [Sat, 3 Sep 2016 22:15:42 +0000 (00:15 +0200)]
Update main window and dock widget titles as session name changes

8 years agoMainWindow: Don't save sessions that have no device
Soeren Apel [Sat, 3 Sep 2016 21:40:20 +0000 (23:40 +0200)]
MainWindow: Don't save sessions that have no device

8 years agoSession: Fix signal mappings for the views
Soeren Apel [Fri, 2 Sep 2016 17:59:33 +0000 (19:59 +0200)]
Session: Fix signal mappings for the views

8 years agoAllow dock windows to be closed and handle this properly
Soeren Apel [Fri, 2 Sep 2016 16:20:41 +0000 (18:20 +0200)]
Allow dock windows to be closed and handle this properly

8 years agoAdd "new session" and "new view" toolbar buttons
Soeren Apel [Thu, 1 Sep 2016 19:11:18 +0000 (21:11 +0200)]
Add "new session" and "new view" toolbar buttons

Those are temporary and will eventually replaced by
a proper UI.

8 years agoMainWindow: Enable dock nesting
Soeren Apel [Thu, 1 Sep 2016 06:46:04 +0000 (08:46 +0200)]
MainWindow: Enable dock nesting

8 years agoSave/restore view states and signal settings
Soeren Apel [Wed, 31 Aug 2016 06:19:02 +0000 (08:19 +0200)]
Save/restore view states and signal settings

8 years agoSession: Implement .sr file save/restore
Soeren Apel [Mon, 29 Aug 2016 19:41:17 +0000 (21:41 +0200)]
Session: Implement .sr file save/restore

8 years agoFix crash when saving session with open files
Soeren Apel [Mon, 29 Aug 2016 16:10:09 +0000 (18:10 +0200)]
Fix crash when saving session with open files

8 years agoLet SignalBase store/restore its internal data
Soeren Apel [Mon, 29 Aug 2016 16:08:11 +0000 (18:08 +0200)]
Let SignalBase store/restore its internal data

8 years agoSession: Save/restore channel info and top-level decoder
Soeren Apel [Sun, 28 Aug 2016 20:03:50 +0000 (22:03 +0200)]
Session: Save/restore channel info and top-level decoder

8 years agoSignalBase: Add internal name
Soeren Apel [Sun, 28 Aug 2016 15:44:42 +0000 (17:44 +0200)]
SignalBase: Add internal name

8 years agoMainWindow/MainBar: Fix signals
Soeren Apel [Sun, 28 Aug 2016 14:54:58 +0000 (16:54 +0200)]
MainWindow/MainBar: Fix signals

Before, QMetaObject::connectSlotsByName(this) was used to connect
the signals to the slots automagically. This is no longer feasible
for the MainBar as there are slots that can't be auto-assigned and
the MainWindow doesn't have any signals at the moment.

8 years agoSession/MainBar: Fix device change handling
Soeren Apel [Sat, 27 Aug 2016 20:23:28 +0000 (22:23 +0200)]
Session/MainBar: Fix device change handling

8 years agoSession: Fix include order
Soeren Apel [Sat, 27 Aug 2016 19:58:48 +0000 (21:58 +0200)]
Session: Fix include order

8 years agoImplement multi-session handling
Soeren Apel [Sat, 27 Aug 2016 19:55:57 +0000 (21:55 +0200)]
Implement multi-session handling

This includes letting sessions restore their internal state on
their own and that there are unique names associated with each
session that the GUI can use when there is no data.

8 years agoMake the first view own the toolbar instead of the main window
Soeren Apel [Fri, 26 Aug 2016 20:29:40 +0000 (22:29 +0200)]
Make the first view own the toolbar instead of the main window

Handling multiple sessions requires that every session can be
controlled individually. This means that either

a) there could be one toolbar that adjusts dynamically to the
session whose view currently has focus

or

b) every session has its own toolbar.

I opted for b) because it's more intuitive and more straightforward
to implement. So now every session has a main view (the first one
created) and a main bar that sits in the same dock widget.

8 years agoMainWindow: Remove menu bar
Soeren Apel [Mon, 22 Aug 2016 15:32:34 +0000 (17:32 +0200)]
MainWindow: Remove menu bar

8 years agoMainWindow: Prevent Qt from restoring the dock widgets
Soeren Apel [Thu, 18 Aug 2016 18:02:18 +0000 (20:02 +0200)]
MainWindow: Prevent Qt from restoring the dock widgets

8 years agoRemove context menu for central MainWindow widget
Soeren Apel [Wed, 17 Aug 2016 06:25:03 +0000 (08:25 +0200)]
Remove context menu for central MainWindow widget

8 years agoFix signal connection for view::Signal and SignalBase enabled state
Soeren Apel [Tue, 16 Aug 2016 19:34:30 +0000 (21:34 +0200)]
Fix signal connection for view::Signal and SignalBase enabled state

8 years agoMove view-independent data from view::DecodeTrace to SignalBase
Soeren Apel [Tue, 16 Aug 2016 19:32:56 +0000 (21:32 +0200)]
Move view-independent data from view::DecodeTrace to SignalBase

8 years agoMove signals to views and make Session handle multiple views
Soeren Apel [Tue, 16 Aug 2016 19:31:59 +0000 (21:31 +0200)]
Move signals to views and make Session handle multiple views

8 years agoUse SignalBase instead of LogicSignal for decoders
Soeren Apel [Tue, 16 Aug 2016 19:30:46 +0000 (21:30 +0200)]
Use SignalBase instead of LogicSignal for decoders

8 years agoRemove data_ also for LogicSignal and use SignalBase data instead
Soeren Apel [Tue, 16 Aug 2016 19:14:55 +0000 (21:14 +0200)]
Remove data_ also for LogicSignal and use SignalBase data instead

8 years agoMove signal data to SignalBase and adjust view::AnalogSignal
Soeren Apel [Tue, 16 Aug 2016 19:13:25 +0000 (21:13 +0200)]
Move signal data to SignalBase and adjust view::AnalogSignal

The signal data belongs to the signal base (M) and not
the view's AnalogSignal (V). Hence we need to move it.

8 years agoRename Trace::channel_ to Trace::base_, including dependencies
Soeren Apel [Tue, 16 Aug 2016 19:10:40 +0000 (21:10 +0200)]
Rename Trace::channel_ to Trace::base_, including dependencies

8 years agoIntroduce pv::data::SignalBase
Soeren Apel [Tue, 16 Aug 2016 19:09:58 +0000 (21:09 +0200)]
Introduce pv::data::SignalBase

8 years agoFix #814 by using PNG application logo instead of SVG
Soeren Apel [Tue, 16 Aug 2016 19:00:16 +0000 (21:00 +0200)]
Fix #814 by using PNG application logo instead of SVG

8 years agoMake view windows non-closeable
Soeren Apel [Tue, 16 Aug 2016 18:46:56 +0000 (20:46 +0200)]
Make view windows non-closeable

8 years agoImplement MainWindow::add_view()
Soeren Apel [Tue, 16 Aug 2016 16:11:41 +0000 (18:11 +0200)]
Implement MainWindow::add_view()

8 years agoViewWidget: Define ViewTypes
Soeren Apel [Thu, 5 May 2016 19:23:19 +0000 (21:23 +0200)]
ViewWidget: Define ViewTypes

8 years agoIntroduce MainWindow::get_active_view()
Soeren Apel [Sat, 16 Apr 2016 21:49:07 +0000 (23:49 +0200)]
Introduce MainWindow::get_active_view()

8 years agoUse a QDockWidget to contain the view
Soeren Apel [Sat, 16 Apr 2016 20:51:25 +0000 (22:51 +0200)]
Use a QDockWidget to contain the view

8 years agoView: Move assertion after assignment
Soeren Apel [Wed, 20 Jul 2016 06:52:50 +0000 (08:52 +0200)]
View: Move assertion after assignment