Remove redundant isNull() check - isEmpty is a superset of isNull
[pulseview.git] / NEWS
blobd5934f455dc57a4a2a8e72cf6d1e8eeeb482ebad
1 0.4.0 (2017-06-12)
2 ------------------
4  * Updated build requirements:
5    - A C++ compiler with full C++11 support (g++ >= 4.8.1 or clang++ >= 3.3)
6    - cmake >= 2.8.12
7    - libglib >= 2.28.0
8    - glibmm-2.4 >= 2.28.0
9    - Boost >= 1.55:
10      - New requirement: libboost-serialization.
11      - Dropped requirement: libboost-thread.
12    - libsigrokcxx >= 0.5.0 (libsigrok C++ bindings)
13    - libsigrokdecode >= 0.5.0
14    - Dropped support for Qt4; PulseView now requires Qt5.
15  * Add the concepts of sessions and views to PulseView: 
16    - Sessions represent individual files/device instances.
17      Each session is represented as a tab in PulseView.
18    - Views are different data representations of one specific session.
19      For example, different views of a session can have different zoom levels,
20      can be scrolled to different positions, etc. etc.
21      Each view is a dock window within the respective session's tab.
22    - The view docks can be repositioned, resized and extracted out into their
23      own individual windows.
24    - Sessions and views are partially saved and restored when PulseView
25      exits/starts. Not all information is restored yet, though (e.g. decoders).
26    - Add CTRL-q to close PulseView, CTRL-w to close a session tab (bug #899).
27  * Add support for saving analog data to .sr files.
28  * Analog signal traces:
29    - Add initial implementation of a vertical grid for analog traces.
30    - Add a dropdown for the vertical resolution setting.
31    - Show the vertical resolution info on the right-hand side of the trace.
32    - Make the number of vertical/horizontal divisions configurable.
33    - Add an option to enable autoranging for analog channels.
34  * Add a settings icon which allows access to various PulseView config options.
35  * Settings -> About:
36    - Show the used libraries, versions, and features (bug #912).
37    - Fix word-wrapping of the driver/decoder/module names (bug #111).
38  * The menu bar and "burger menu" have been removed in favor of the
39    global settings menu (plus various buttons/icons and their hotkeys).
40  * UI and usability tweaks:
41    - Try to keep annotation labels within the view if there's enough space.
42    - Annotation labels can now be pushed aside by the row title.
43    - Use natural sort order for decode trace's channel selector drop-down.
44    - Improve icon/theme handling: Don't try to use non-existing theme icons.
45    - Add a pane splitter for the trace names/arrows, allowing horizontal resize.
46    - Show a confirmation dialog when closing sessions with unsaved data.
47    - Add tooltips to various UI elements to increase usability.
48    - Show a progress dialog while scanning for devices.
49  * Connect dialog:
50    - Improve UI to make it easier to use and understand.
51    - Allow for TCP and VXI connections to supported devices (bug #769).
52    - Clarify button label to "Scan for devices using driver above".
53  * Add support for showing the sampling points in traces (bug #485).
54  * Add support for specifying the (assumed) initial pin states before the
55    first sample that is being decoded. This can be set to 0/low, 1/high, or
56    to "use the same value as in the first sample".
57  * Add support for lists of discrete values for probe factor config.
58  * Add the -c option to not restore previous sessions on startup (bug #862).
59  * Performance improvements: 
60    - Improved decoding performance due to larger chunk size.
61    - Increase session saving chunk size for much better performance.
62  * Open to-be-imported files in binary mode (bug #733).
63  * Startup: If last-used device is not available, use other available ones.
64  * Various internal code fixes and improvements found by clang-tidy.
65  * Add a check for explicit linking against libatomic (bug #810).
66  * Import/export/load: Allow file names without dots ("*" vs. "*.*").
67  * Improve support for high-DPI displays and scaling (bug #871).
68  * Improve internal data storage and data handling algorithms.
69  * Remove FSF postal address from boiler plate license text.
70  * Fix a clang build issue related to 'override' (bug #737).
71  * Fix some zoom-dependent annotation block drawing issues (bug #745).
72  * Fix locking issues when trying to run multiple decoders (bug #181).
73  * Fix an exception due to incorrect handling of SR_CONF_FILTER.
74  * Fix an issue with multiple device/session creation upon file imports.
75  * Fix a drawing issue with "use coloured backgrounds" and markers (bug #771).
76  * Fix various issues to better handle re-loading of input files.
77  * Fix a build issue in the PulseView test-suite (bug #808).
78  * Fix a Qt5 bug related to QMainWindow SVG icons via workaround (bug #814).
79  * Fix a Boost-related build issue with gcc 6.2.x (bug #863).
80  * Fix an issue that prevented decoders from being removed (bug #849).
81  * Fix an issue with incorrect sample rate limits (bug #890).
82  * Fix decoding issues due to re-feeding old data (bugs #876, #850).
83  * Fix temporarily non-working 'b' and 's' hotkeys (bugs #907, #908)
84  * Fix an issue with std::roundf() on Android (bug #945).
85  * Fix an issue with negative vertical divisions on channel 0 (bug #940).
86  * Fix an issue when zero vertical divisions were configured (bug #942).
87  * Fix an issue with the file save progressbar remaining open (bug #895).
88  * Fix incorrect values when importing raw analog data (bug #958).
89  * Fix an issue with non-smooth zoom on e.g. some trackpads.
90  * Fix an issue where the horizontal scrollbar couldn't be moved (bug #957).
91  * Fix an issue with the pane positioning when loading files (bug #969).
92  * Fix an issue where the Run button would remain green incorrectly (bug #970).
93  * Fix a crash when input modules were yielding errors (bug #775).
94  * Fix a crash with stacked decoders on Mac OS X.
95  * Fix a crash when no device was found or selected.
96  * Fix a crash with selected but unusable devices (bug #805).
97  * Fix a crash when closing PulseView with active triggers (bug #705).
98  * Fix a crash that occured with certain glibmm versions (bug #777).
99  * Fix a crash when an unusable device is encountered (bug #829).
100  * Fix a negative cursor position "Save Selected Range As" crash (bug #792).
101  * Fix various other unrelated crash conditions.
102  * Add an AppData/AppStream file for PulseView (bug #859).
103    - Install the file to ${CMAKE_INSTALL_DATAROOTDIR}/metainfo.
104  * .desktop file:
105    - Rename to org.sigrok.PulseView.desktop.
106    - Add MimeType=application/vnd.sigrok.session field (bug #858).
107    - Add additional Development category.
108    - Install the file to ${CMAKE_INSTALL_DATAROOTDIR}/applications.
109  * Rename sigrok-logo-notext.{png,svg,ico} icons to pulseview.{png,svg,ico}.
110    - Install the icons to ${CMAKE_INSTALL_DATAROOTDIR}/icons/...
111  * NSIS:
112    - Update to Python 3.4.x. We can't use any higher version for the time
113      being, since 3.4.x is the last version to support Windows XP.
114    - Place the example .sr files in a separate installer section.
115    - Limit example .sr files to a small set to shrink the installer size.
116    - Clarify Start menu links (e.g. "Uninstall") to avoid confusion.
117    - Allow registering the .sr extension with PulseView (bug #964).
118  * manpage: Various updates (e.g. hotkeys, command-line options).
119  * Fix various compiler warnings.
121 0.3.0 (2016-01-29)
122 ------------------
124  * PulseView now uses libsigrokcxx (the libsigrok C++ bindings library).
125  * Update to use the new APIs of libsigrokcxx 0.4.x and libsigrokdecode 0.4.x.
126  * Add support for vertical scaling of analog and logic traces.
127  * Add a "Save selection range as..." feature. This allows the user to select
128    a subset of the data (using the cursors) and save that into a file in the
129    libsigrok session format (*.sr).
130  * Remember the directory of the last file that was opened/saved.
131  * Automatically save and restore (upon PulseView shutdown/startup):
132     - the window state (size, position)
133     - the most recently used device
134  * Implement pinch-zoom support (useful e.g. on tablets).
135  * Implement an "always zoom-to-fit" feature.
136  * Implement a "sticky scrolling" feature, using hotkey 's' (bug #121).
137  * Show icons for active triggers on the right-hand side of the window.
138  * Cursors: Also show the frequency in addition to distance/time (bug #502).
139  * List available serial ports (for serial-based devices) in a drop-down.
140  * Add support for trace groups. An arbitrary number of traces can be grouped
141    together, which allows for dragging them around as a group and re-ordering
142    traces within the group. Hotkeys: group (CTRL+g), ungroup (CTRL+u).
143  * Use either alternating gray values as trace background color, or the
144    trace's own color (slightly modified). This behaviour is configurable
145    via the menu or the 'b' hotkey.
146  * Show a vertical marker at the trigger point (bug #685).
147  * Sampling bar: Show the total sampling time in a tooltip.
148  * Trace/Decoder popups: Close the popup when the ENTER/RETURN key is pressed.
149  * Improve horizontal arrow-key scrolling step size.
150  * The viewport can now be dragged vertically as well.
151  * Add support for placing arbitrary markers (double-click at the desired
152    position in the ruler area) with arbitrary name/content. Markers can be
153    removed via the delete key (or the right-click context menu).
154  * Show full device names in the device drop-down.
155  * The device selector combobox is now a split button. Clicking on a device
156    name will open the "Connect to Device" dialog which allows for manual
157    device selection. Clicking on the small arrow will open a drop-down with
158    all autodetected devices.
159  * The main menu is now hidden by default, pressing ALT will make it appear,
160    pressing ALT or ESC will hide it again.
161  * Add an Export menu item, which can export the data in various formats.
162  * Add an Import menu item, which allows data import of various formats.
163  * Support specifying input files + formats on the command-line (-i and -I).
164  * Update the possible samplerates/samplecounts widgets when needed.
165  * Various UI fixes and improvements (colors, font sizes, clipping, etc).
166  * Add support for the SR_CONF_{POWER_OFF,PROBE_FACTOR} config keys.
167  * Include the device / filename in the window title (bug #244).
168  * Keyboard shortcuts:
169    - Add space as a shortcut to start/stop an acquisition.
170    - Add shortcuts for the open/save menu items (CTRL-o, CTRL-s).
171    - Add trace group shortcuts: group (CTRL+g), ungroup (CTRL+u).
172    - Add 's' as shortcut for enabling/disabling sticky scrolling.
173    - Add 'b' as shortcut for colored / alternating-gray trace backgrounds.
174  * Add a few missing toolbar buttons.
175  * Provide tooltips for decoder annotations (which show the "full" annotation
176    text regardless of zoom-level).
177  * Improvements to work (better) with Qt5 (Qt4 remains supported as well).
178  * The whole code-base has been converted to C++11 (dropping the use
179    of various Boost functionality in favor of std:: equivalents).
180  * Build system:
181    - Always build with -std=c++11.
182    - Auto-detect Qt4 or Qt5. If both are available, Qt5 will be selected
183      unless the cmake option FORCE_QT4 is set to TRUE.
184    - Don't use Qt-defined keywords (can cause issues with other headers).
185    - Fix an issue with QtSvg linking (bug #369).
186    - Fix a build issue related to Qt4 MOC.
187    - Add "-git-<hash>" suffix to development version numbers (bug #609).
188    - Fix the build for older glibmm versions (bug #548).
189  * Updated build requirements:
190    - A C++ compiler with C++11 support (g++ >= 4.7 or clang++ >= 3.1)
191    - glibmm-2.4 (>= 2.28.0)
192    - Qt4 >= 4.5 or Qt5 (including the following components):
193     - Qt4: QtCore, QtGui, QtSvg
194     - Qt5: Qt5Core, Qt5Gui, Qt5Widgets, Qt5Svg
195    - Boost >= 1.53 (bugs #722, #593).
196    - libsigrokcxx >= 0.4.0 (libsigrok C++ bindings)
197    - libsigrokdecode >= 0.4.0
198    - libsigrokandroidutils >= 0.1.0 (optional, only needed on Android)
199  * Dropped build requirements:
200    - libsigrok (PulseView now uses libsigrokcxx instead).
201  * manpage:
202    - Various fixes and updates.
203    - Document all keyboard shortcuts.
204  * Android:
205    - Add basic Android support and support for building a PulseView APK.
206    - Install logging callbacks for Android.
207    - Fix a rendering issue by disabling the system background.
208    - Fix an issue due to a missing libintl.so in the APK (bug #575).
209    - Add asset reader functionality, e.g. for firmware files.
210    - Include firmware files (from sigrok-firmware) in the APK (bug #400).
211  * Windows:
212    - Fix an issue related to CMAKE_MODULE_PATH usage.
213    - Fix multiple Boost- and thread-related issues.
214    - Fix a build issue due to windows.h namespace pollution (bug #517).
215    - Fix an issue when saving .sr files (bug #615).
216  * Mac OS X:
217    - Fix an issue related to Glib::Variant types.
218    - Fix a build failure on Mac OS X 10.10 (bug #621).
219  * NSIS:
220    - Drop libusb0.dll, we use libusb-1.0 everywhere now.
221    - Add start menu entries for Zadig (bug #542).
222    - Support out-of-tree builds.
223    - Don't hardcode the MXE install location.
224  * README: Drop reference to obsolete sigrok-commits mailing list.
225  * Add a Doxygen file for auto-generated code documentation.
226  * Populate signal popup combo box with signal names (not probe names).
227  * Fix various thread related issues.
228  * Fix various compiler warnings and compiler portability issues.
229  * Adapt PulseView to use the new libsigrokcxx trigger API (bugs #448, #452).
230  * Reimplement file save using the "srzip" output module (bug #451).
231  * Check whether config keys are available before use (bug #487).
232  * Markers: Fix display of negative values in popups (bug #460).
233  * Properly handle device selection failure (bug #455).
234  * Fix a progressbar issue when saving files (bug #451).
235  * Fix incorrect channel names in .sr files (bug #490).
236  * Save and load signal names as UTF-8 strings (bug #498).
237  * Add a workaround for QTBUG-22829 (bug #532).
238  * Allow vertical scrolling via CTRL + mouse-wheel (bug #497).
239  * Fix an isnan() related compiler error (bug #531).
240  * Gracefully handle the case of a failing SAMPLERATE query (bug #529).
241  * Show less device info in the device dropdown (bug #285).
242  * Always show full device info in device selection tooltips (bug #489).
243  * Fix a segfault due to a missing Capability::LIST check (bug #453).
244  * Allow PulseView to be killed via CTRL-C from a terminal (bug #368).
245  * Support having no selected device (bug #488, #392).
246  * Add menu actions to the main window too (bug #590).
247  * Avoid confusing autocompletion in the channel name popups (bug #501).
248  * Fix an issue with channel ordering being reset incorrectly (bug #536).
249  * Fix an issue related to a disappearing samplerate dropdown (bug #594).
250  * Fix an issue with incorrect samplenumbers when running decoders.
251  * Suppress warnings from glibmm about deprecated auto_ptr (bug #654).
252  * Add a workaround for a corrupted timescale issue (bug #627).
253  * Fix a libzip-related issue resulting in errors writing .sr files (bug #570).
254  * Fix an issue that caused incorrect .sr files being saved (bug #599).
255  * When clicking a channel name, place the cursor in the text field (bug #298).
256  * Fix a double-free issue/segfault when trying to open an .sr file (bug #405).
257  * Fix an issue with incorrect placement of PD annotation tooltips (bug #477).
258  * Allow drag-moving both cursors (left + right) at the same time (bug #514).
259  * Improve the step-size of the vertical scroll bar click-movement (bug #513).
260  * Fix a too small display area for devices with many channels (bug #515).
261  * Fix a Qt5 QWellArray related static linking issue (bug #525).
262  * Fix broken session saving for devices with more than one channel (bug #404).
263  * Fix incorrect ruler units of kilo-/mega-/giga-seconds (bug #371).
264  * Fix an issue with segment sizes wasting huge amounts of memory (bug #622).
265  * Avoid a crash when running out of memory, show an error instead (bug #626).
266  * Improve behaviour when the last PD is removed from the stack (bug #510).
267  * Disable device options GUI elements after an acquisition start (bug #597).
268  * Fix an issue with the samplerate input format option (bug #595).
269  * Fix a segfault when switching from a file to a device and back (bug #596).
270  * Fix a segfault when loading very large .sr files (bug #592).
271  * Fix a segfault when selecting a device twice (bug #605).
272  * Fix an incorrect decode trace background color (bug #718).
273  * Fix incorrect annotation row background color behaviour (bug #719).
274  * Fix an issue with lingering decoder traces (bug #687).
275  * Fix non-intuitive channel name editing behaviour (bug #717).
276  * Speed up annotation drawing by quite a bit (bug #325).
278 0.2.0 (2014-05-06)
279 ------------------
281  * Add support for protocol decoding.
282    - A menu item Decoders->Add can add (only) low-level protocol decoders.
283    - Clicking on a decoder's arrow on the left-hand side allows stacking
284      (only) further, higher-level decoders (bug #333).
285    - Add support for multiple decoder rows per PD (bugs #161, #303).
286  * Add support for loading data from input files.
287  * Add support for saving logic analyzer data in *.sr files (bug #245).
288  * Show the filename of loaded *.sr files as "device name" in a drop-down.
289  * Add support for the new "channel groups" feature in libsigrok.
290  * Add a "Zoom to fit" and a "Zoom 1:1" icon/button.
291  * Add a "Channels" icon/button for enabling and configuring device channels.
292  * Add a "Device options" icon/button for configuring device specific settings
293    such as voltage thresholds.
294  * Double-clicking will zoom into the location the cursor points to.
295  * Add shortcut keys for Zoom-in (CTRL++) and Zoom-out (Ctrl+-) (bug #235).
296  * Add initial, basic support for analog data sources, such as oscilloscopes.
297    This has been tested on e.g. the Rigol DS1052E oscilloscope (bug #127).
298  * Almost all operations in PulseView work in an "auto-apply" style, i.e.
299    any changes in the GUI popups (decoder channel assignment, decoder option
300    changes, device channel changes, device option changes, and so on) have an
301    immediate effect (you don't have to click on any "OK" buttons).
302  * Open file dialog: Add 'All files' selection possibility.
303  * Added GUI support for the following libsigrok config options:
304    - SR_CONF_VOLTAGE_THRESHOLD
305    - SR_CONF_TRIGGER_SLOPE
306    - SR_CONF_EXTERNAL_CLOCK
307    - SR_CONF_CLOCK_EDGE
308  * Updated build requirements:
309    - cmake >= 2.8.6 (required)
310    - libsigrok >= 0.3.0 (required)
311    - libsigrokdecode >= 0.3.0 (required)
312      Note: libsigrokdecode is now always required (was optional before).
313    - libboost-filesystem >= 1.42 (required)
314    - libboost-test >= 1.42 (optional, only needed for running unit tests)
315  * Fix a build issue on NetBSD due to an incorrect #include.
316  * Fix a channel handling issue for devices with >= 16 channels.
317  * Fixed a few display issues related to UTF-8 strings in decoder annotations,
318    decoder options, and so on (bug #307, and other fixes without bug numbers).
319  * Don't decode if required PD channels were not supplied (bug #204).
320  * Fix some issues with partially disappearing PD annotations.
321  * Update the samplerate selector when the device config changes (since e.g.
322    en-/disabling logic analyzer channels can change available samplerates).
323  * Fix a samplerate selector and device config update issue (bug #296).
324  * Minor performance improvements via memory pre-allocation in some areas.
325  * Remove old PD annotations upon new captures (bugs #172, #302).
326  * Portability improvements by using portable sample pack/unpack code.
327  * Fix a segfault related to thread joining (bug #323).
328  * Fix a minor issue which lead to trigger config being unusable (bug #318).
329  * Fix an issue which lead to the user-selected samplerate in the drop-down
330    box not being selected and shown again after clicking "Run" (bug #324).
331  * Start a new decode session whenever a new frame begins.
332  * Fix an issue which arose when a session file load failed (bug #331).
333  * Fix a segfault if only exactly one libsigrok driver is available (bug #334).
334  * Fix an issue with channel names not being updated while typing (bug #338).
335  * Fix an issue by stopping the capture when a device is changed (bug #223).
336  * Fix an issue with the displayed cursor popup time (bug #229).
337  * Fix handling of different integer types in some properties (bug #203).
338  * Hide the 'Configure device' button when the popup would be empty (bug #232).
339  * Fix a decoding chunk buffer / unitsize issue (bugs #171, #225).
340  * Fix a zoom issue due to invalid samplerate, assume 1Hz if needed (bug #278).
341  * Fix a QWellArray related issue by dropping QT_NO_MENU code (bug #265).
342  * Fix an analog data channel interleaving issue (bug #279).
343  * Only show the sample count widget if needed (i.e., hide it for scopes).
344  * SweepTimingWidget: Show a 1-2-5 based list for samplerate and samplecount.
345  * Fixed a unit test issue with AnalogSnapshotTest (bug #286).
346  * Add an extra sample to edges to make the end sample visible (bug #280).
347  * Fix an issue with decoder errors being shown even after the error was fixed.
348  * Add support for SR_CONF_LIMIT_SAMPLES (device-specific limits) (bug #74).
349  * Windows:
350    - Use the sigrok logo as icon for pulseview.exe (bugs #110, #238).
351    - Fix SVG icons not being displayed on Windows (bug #239).
352    - Ship libusb0.dll in the NSIS based installer (bug #241).
353    - Additionally ship decoders, firmware files, example *.sr files, and
354      zadig.exe and zadig_xp.exe in the NSIS based installer.
355    - Fix a "working path" issue resulting in PDs not being usable.
356  * Device scan: Disable "OK" button if no devices were found (bug #237).
357  * Fix a segfault related to incorrect decoder option handling (bug #160).
358  * Fix an off-by-one issue resulting in one PD not being usable (bug #164).
359  * Fix a PD channel auto-select logic issue with optional channels (bug #310).
360  * Fix an issue when cancelling "Connect to Device" (bug #242).
361  * Avoid confusing annotation color changes (bug #311).
362  * Fix an issue that caused some decoded data to not be shown (bug #308).
363  * Don't allow disabled channels (channel arrows) to be selected (bug #313).
364  * The channel name field is now resized to always fit the contents (bug #167).
365  * Build fixes for systems with (among other versions) Qt5 installed.
366  * Fix a build issue related to missing libboost-filesystem (bug #133).
367  * Add Cotire (optional, disabled by default) support for build performance.
368  * Fix a build issue related to Cotire (bug #217).
369  * Fix an issue with missing channel names from loaded files (bug #126).
370  * Fix missing samplerate loading from session files (bug #123).
371  * Fix some build issues related to C++ namespaces (bug #196).
372  * Fix a file loading issue which triggered an assert (bug #320).
374 0.1.0 (2013-05-04)
375 ------------------
377  * Initial release.