Commit Graph

543 Commits

Author SHA1 Message Date
Luke Campagnola
2ce6196ac0 Fixed Parameter.sigValueChanging 2014-03-25 13:15:29 -04:00
Luke Campagnola
00c9c1e2a7 Fix ROI.sigRemoveClicked to avoid repeated signal emission
Update ROI example to demonstrate removal
2014-03-25 09:21:19 -04:00
Luke Campagnola
d83869c944 GraphicsItem.getViewWidget() returns None if widget has been deleted by Qt
Merge remote-tracking branch 'fabioz/fix_widget_dead' into develop
2014-03-24 15:58:07 -04:00
Luke Campagnola
6c6beed735 Fixes to make crashing less likely on PySide
Merge branch 'clear_cycles' into develop
2014-03-24 15:52:08 -04:00
Luke Campagnola
25e7d12f09 Cleanup / fixes:
- Corrected isQObjectAlive for PyQt and older PySide
  - Warning messages are opt-in using pg.setConfigOptions(crashWarning=True)
2014-03-24 15:47:32 -04:00
Luke Campagnola
ed87cffd1f corrected SVG test, moved to its proper home 2014-03-24 12:48:30 -04:00
Luke Campagnola
bc57d5a6af Minor corrections to debug.Profiler 2014-03-24 11:18:56 -04:00
Luke Campagnola
5b47eff2f7 Disable weave by default. 2014-03-24 11:18:56 -04:00
Luke Campagnola
9a0eef7bea Merge pull request #58 from JNevrly/plotdataitem_downsampling_fix
PlotDataItem downsampling calculation fix
2014-03-24 11:17:14 -04:00
Luke Campagnola
fd6cc955e2 Fixed GLGridItem.setSize, added setSpacing 2014-03-16 13:45:26 -04:00
JosefNevrly
70724a44b3 Added check for zero ViewBox width when calculating automatic downsampling ratio. (Prevents zero-division when downsampling is set before Plot is properly created and drawn within a container). 2014-03-16 15:13:43 +01:00
JosefNevrly
aa4b790dd2 Fixes calculation of axis width/height in case values are not shown. 2014-03-16 10:38:08 +01:00
JosefNevrly
22ecd3cc41 PlotItem.showValues fixed (was not implemented before). 2014-03-16 10:20:42 +01:00
Luke Campagnola
693df7030a Fixed multiprocess deadlock on windows
Added several utilities and debugging tools
Merge branch 'multiprocess-fix' into develop
2014-03-14 18:48:07 -04:00
Luke Campagnola
79cfd3601e Rename Mutex module 2014-03-14 18:00:29 -04:00
Luke Campagnola
5d709251d1 clean up debug messages 2014-03-14 17:57:44 -04:00
Luke Campagnola
89c04c8a81 Corrected bug in multiprocess causing deadlock at exit
Multiprocess debugging messages now use one color per process
Corrected RemoteGraphicsView not setting correct pg options on remote
process

New debugging tools:
* util.cprint for printing color on terminal (based on colorama)
* debug.ThreadColor causes each thread to print in a different color
* debug.PeriodicTrace used for debugging deadlocks
* Mutex for detecting deadlocks
2014-03-14 14:18:46 -04:00
Luke Campagnola
adfcfa99a1 Fixed multiprocess port re-use on windows 2014-03-14 14:17:42 -04:00
fabioz
6433795e78 Make sure we don't leave view boxes alive by doing a 'bridge' for the on the plot items. Also added warnings if proper cleanup wasn't done. 2014-03-13 17:38:50 -03:00
fabioz
e46bb31449 Checking if view is alive before returning it. 2014-03-13 15:52:49 -03:00
Luke Campagnola
34802c8aec Added pg.gaussianFilter, removed all dependency on gaussian_filter 2014-03-11 19:01:34 -04:00
Luke Campagnola
ff697ce492 Expanded capabilities of interpolateArray function to support broadcasting 2014-03-11 13:13:33 -04:00
Luke Campagnola
72a3902a18 Added pure-python implementation of scipy.ndimage.map_coordinates 2014-03-11 10:11:04 -04:00
Luke Campagnola
1eac666d02 PlotDataItem._fourierTransform now uses np.interp 2014-03-11 10:11:03 -04:00
Luke Campagnola
4263379a90 added test for solve3DTransform 2014-03-11 10:11:03 -04:00
Luke Campagnola
0bc923b719 Added SRTTransform3D test, corrected fromMatrix bug 2014-03-11 10:11:03 -04:00
Luke Campagnola
18ddff76f0 colormap no longer requires scipy.interpolate 2014-03-11 10:11:03 -04:00
Luke Campagnola
816069c020 All scipy imports in the library are now optional (need to test each of these changes)
Several examples still require scipy.
2014-03-11 10:11:03 -04:00
Luke Campagnola
00418e4921 Allow GLMeshItem to draw edges from MeshData with face-indexed vertexes. 2014-03-10 23:04:10 -04:00
Luke Campagnola
c8f03e828e Ignore NaN when checking data range in ImageView.
Merge remote-tracking branch 'zarch/bottleneck_range' into develop
2014-03-06 15:30:36 -05:00
Luke Campagnola
87ff0f314c Merge branch 'fix_finite_cache' into develop 2014-03-05 10:34:46 -05:00
Luke Campagnola
41c3d47d43 Correct GraphicsItem to use relative import of lru_cache
Update MultiPlotSpeedTest to test lru_cache performance
2014-03-05 10:25:55 -05:00
Luke Campagnola
dcb2c42179 Moved lru_cache to util, test to util/tests 2014-03-05 09:16:53 -05:00
Luke Campagnola
dad001b9d4 Style corrections 2014-03-05 09:12:23 -05:00
Luke Campagnola
eb33970274 Correct to unix line endings 2014-03-05 09:11:53 -05:00
Pietro Zambelli
dad5d8f733 Detect range of the image using bottleneck if available 2014-03-04 16:56:56 +00:00
fabioz
e7cd4012bc Changed FiniteCache which had a bug where calling items() would make it recurse forever with a new LRUCache implementation. 2014-03-04 10:03:20 -03:00
Luke Campagnola
0045863165 Merge branch 'fabioz-crash' into develop 2014-03-03 13:49:05 -05:00
Luke Campagnola
3e764b00c2 Minor edits 2014-03-03 13:48:31 -05:00
Luke Campagnola
ad11ff3950 Minor cleanups for GraphItem 2014-03-03 12:56:15 -05:00
fabioz
c4880863b9 Fixed crash when collecting items on ViewBox and fixed exception which could happen when dragging when mouse handling is disabled. 2014-03-03 09:32:14 -03:00
Luke Campagnola
2e3cfcbd6d Make setPen() methods more consistent throughout the package.
Merge remote-tracking branch 'termim/develop' into develop

Conflicts:
	pyqtgraph/graphicsItems/ROI.py
2014-03-01 09:37:59 -05:00
Luke Campagnola
c72638ab1b Merge branch 'tommy3001-doc-updates' into develop
Conflicts:
	pyqtgraph/graphicsItems/AxisItem.py
	pyqtgraph/graphicsItems/PlotDataItem.py
	pyqtgraph/graphicsItems/ROI.py
2014-02-28 21:07:43 -05:00
Luke Campagnola
912f1f13c2 documentation fixes 2014-02-28 20:27:22 -05:00
Luke Campagnola
43ec2bcd2c Expanded ROI documentation 2014-02-28 18:24:01 -05:00
Mikhail Terekhov
953b9e4129 Make signature of the setPen method consistent 2014-02-28 16:16:13 -05:00
Mikhail Terekhov
6255dca99c MouseClickEvent: sometimes __repr__ could cause an exception
This happens during debugging session in an IDE (eric5) when debugger inspects
variables but self._scenePos is not yet initialized.
2014-02-28 16:15:25 -05:00
Luke Campagnola
ab0729bb04 Add check for even array length when using arrayToQPath(connect='pairs') 2014-02-28 08:55:30 -05:00
Luke Campagnola
5b6bc6715c Added GLViewWidget.setBackgroundColor() 2014-02-28 08:54:33 -05:00
Luke Campagnola
7d32ef85be Added automatic image downsampling (disabled by default)
- Reduces aliasing when zoomed out
  - Improves performance and memory usage for large images
Merge branch 'image_downsampling' into develop

Conflicts:
	pyqtgraph/graphicsItems/ImageItem.py
2014-02-17 20:48:22 -05:00
Luke Campagnola
036cadb44c pg.dbg() now returns pointer to console widget 2014-02-17 20:02:42 -05:00
Luke Campagnola
d67464af72 Update imageToArray to support Py2.6 + Qt 4.10 2014-02-17 20:02:03 -05:00
tommy3001
da4bb3df23 List alignments class WidgetParameterItem 2014-02-15 11:42:36 +01:00
tommy3001
57c36a953d malformed Signal list of function setData 2014-02-15 11:26:24 +01:00
Martin Fitzpatrick
e0c22e2796 Adding some additional deprectated APIs for Qt5. Example plots (mostly) working.
This adds some remaining APIs that were deprecated in Qt5. These are easy to do
as they're all documented, e.g.
http://qt-project.org/doc/qt-5.0/qtwidgets/qgraphicsitem-compat.html

Tested with most of the examples. Although I can't be sure as I
don't know what the 'correct' output is, they look like they work.

Some issues with interaction e.g. on the color bar plot.
2014-02-14 11:05:10 +01:00
Martin Fitzpatrick
b244805bde Basic plot function works. 2014-02-14 10:57:05 +01:00
Martin Fitzpatrick
42dbd7956a Adding PyQt5 compatibility (broken)
Adding compatibility for PyQt5 via a shim in Qt.py. This restructures the PyQt5 libraries
to match the layout seen in PyQt4, allowing it to continue to be used as drop in replacement.

This works up to the point of importing, however other API changes are broken - for example
the deprectation of .scale() on GraphicsItems throws an error currently.
2014-02-14 10:29:33 +01:00
tommy3001
78d92b383f Aditional ":" added, minor list alignments 2014-02-12 21:25:31 +01:00
tommy3001
17fdd51b55 malformed Signal list of class ROI 2014-02-12 21:19:29 +01:00
tommy3001
af106e3245 Minor Arguments list alignment in setDownSampling 2014-02-12 21:18:36 +01:00
tommy3001
9f5954641d ":" added 2014-02-12 21:06:54 +01:00
tommy3001
ce0fb140e8 ":" added again (copy/paste issue) 2014-02-12 21:03:39 +01:00
tommy3001
ddaa07afb1 "Arguments" added again (copy/paste issue) 2014-02-12 20:49:53 +01:00
Luke Campagnola
210d07027e ImageView updates to improve subclassing flexibility:
- Allow non-ndarray image data
 - Make quickMinMax a normal method
2014-02-12 11:31:58 -05:00
Sol Simpson
24cf9ada2c BF: unicode fix for TableWidget
Setting a table item value to a unicode value with non ascii chars would
cause the tablewidget contents to not be displayed (no exception thrown
either).

Changed all instances of str(..) or map(str,...) to use asUnicode and
issue seems to be fixed
2014-02-12 04:04:06 -05:00
Luke Campagnola
1ecceeaa92 Fixed unicode titles in Dock 2014-02-12 03:02:09 -05:00
Luke Campagnola
9677b1492b Added ViewBox.setBackgroundColor() 2014-02-12 02:16:00 -05:00
Luke Campagnola
283a568693 Cylinder base moved to z=0 2014-02-11 23:13:31 -05:00
Luke Campagnola
79af643955 Added Vector.angle method
Inverted MeshData.cylinder normals
2014-02-11 13:59:09 -05:00
Luke Campagnola
d45467e4cb Merge branch 'cylinder_mesh' into develop
Adds MeshData.cylinder
2014-02-11 10:12:40 -05:00
Luke Campagnola
032c6c625d GLViewWidget.itemsAt() now measures y from top of widget. 2014-02-10 20:51:17 -05:00
Luke Campagnola
c8ee4a86be Added support for GL_LINES in GLLinePlotItem 2014-02-09 10:39:20 -05:00
Luke Campagnola
5488f9ec84 Added BarGraphItem.shape() to allow better mouse interaction 2014-02-09 10:38:29 -05:00
tommy3001
f99fdaf2ce Merge remote-tracking branch 'remotes/upstream/develop' into develop 2014-02-08 08:50:17 +01:00
Luke Campagnola
193367a56b Signal cleanup:
- Renamed GraphicsView signals to avoid collision with ViewBox signals that
  are wrapped in PlotWidget: sigRangeChanged => sigDeviceRangeChanged and
  sigTransformChanged => sigDeviceTransformChanged.
- All signal disconnections that catch TypeError now also catch RuntimeError
  for pyside compatibility.
2014-02-07 10:38:41 -05:00
tommy3001
2a13994a2a Bugfix: Malformed tables.
All argument lists with `**Arguments:**`
2014-02-05 21:04:33 +01:00
tommy3001
2279775244 Merge branch 'develop' of https://github.com/pyqtgraph/pyqtgraph into develop 2014-02-05 20:06:22 +01:00
tommy3001
8b6ff6b06a Bugfix: Malformed tables. 2014-02-05 20:03:25 +01:00
Luke Campagnola
8730245990 Merge branch 'viewbox_limits' into develop
Adds ViewBox.setLimits method

Conflicts:
	examples/SimplePlot.py
2014-02-04 20:32:44 -05:00
Luke Campagnola
9093282a2a Wrap setLimits in PlotItem and PlotWidget 2014-02-04 20:28:23 -05:00
Luke Campagnola
bccbc29940 Bugfixes:
- isosurface works for arrays with shapes > 255
 - Fixed ImageItem exception building histogram when image has only one value
 - Fixed MeshData exception caused when vertexes have no matching faces
 - Fixed GLViewWidget exception handler
2014-02-03 22:24:45 -05:00
tommy3001
92d7bbe18e In list tables "**Arguments**", "Arguments:" changed to **Arguments:** 2014-02-03 21:13:10 +01:00
tommy3001
67685d80bc No rendering of "Line style keyword arguments:" list because of missing blank line and mysterious unexpected identation error 2014-02-03 20:33:55 +01:00
Luke Campagnola
92d3b3fb94 cleanups 2014-02-02 10:45:32 -05:00
Luke Campagnola
96296749be Merge remote-tracking branch 'termim/master' into termim-fixes
ArrowItem: setStyle now combines new options with previously-set options.
AxisItem: fix minor exceptions
2014-02-02 10:43:29 -05:00
Luke Campagnola
ff232f4e3a Added cylinder geometry to opengl MeshData 2014-02-01 20:46:05 -05:00
Mikhail Terekhov
95bddca014 In ArrowItem allow individual parameter change through setStyle call. 2014-01-31 23:00:18 -05:00
Mikhail Terekhov
13aa00d915 Check that textRects is not empty, otherwise np.max raises ValueError. 2014-01-31 22:10:17 -05:00
Mikhail Terekhov
355b38dcc1 Typo 2014-01-31 21:26:01 -05:00
Luke Campagnola
d0ed3ba245 Removed duplicate limit-setting arguments
Renamed args for clarity, improved documentation
Fixed interaction bugs
 - zooming works correctly when view is against limit
 - no more phantom target range; target is reset during mouse interaction.
2014-01-31 13:04:47 -05:00
Luke Campagnola
b0cafce3b4 Basic view limits appear to be working. 2014-01-30 10:50:07 -05:00
Luke Campagnola
797a8c0f08 Implementing user-defined limits for ViewBox 2014-01-28 13:22:54 -05:00
Luke Campagnola
d86beb5a5a Added setMinimumPlotHeight method, set default min height to 50px. 2014-01-25 08:58:54 -05:00
Luke Campagnola
5a1a663a50 MultiPlotWidget now uses scroll bar when plots do not fit in widget area. 2014-01-25 08:50:31 -05:00
Luke Campagnola
d4364ea17a Fix MultiPlotWidget wrapping methods incorrectly. 2014-01-25 07:37:04 -05:00
Luke Campagnola
21639196d8 Fix imports in MultiPlotWidget and its example.
Merge remote-tracking branch 'termim/develop' into multiplotwidget-fix
2014-01-25 07:30:29 -05:00
Luke Campagnola
23779f004e - Fixed FillBetweenItem to force PlotCurveItem to generate path
- Added FillBetweenItem.setCurves()
- Added FillBetweenItem example
2014-01-23 10:34:26 -05:00
Mikhail Terekhov
baa6c4b82c Fix metaarray import in MultiPlotWidget.py example and MultiPlotItem.py 2014-01-20 22:15:14 -05:00
Luke Campagnola
ca68f05f1f Fix: PlotCurveItem now ignores clip-to-view when auto-range is enabled. 2014-01-19 08:37:58 -05:00
Luke Campagnola
e97aebb343 Merge branch 'develop' of https://github.com/johnelund/pyqtgraph into johnelund-develop 2014-01-18 23:26:27 -05:00
Luke Campagnola
b3e07a0e0a ImageItem fix against a51c30d 2014-01-18 19:59:36 -05:00
Luke Campagnola
c9c2160856 more cleanups
added simple test
2014-01-18 19:13:39 -05:00
Luke Campagnola
b813ecabc3 cleanup; corrected view clipping. 2014-01-17 18:31:36 -05:00
John Lund
a381c61c0c LegendItem bugfix
drawSymbol is module-level funct, not class method
2014-01-17 08:59:59 -06:00
Luke Campagnola
6e5e35691c cleanups 2014-01-16 20:34:05 -05:00
Luke Campagnola
704f2f2048 Merge remote-tracking branch 'gpoulin/scatter_optim' into scatter-optim
Conflicts:
	pyqtgraph/functions.py
	pyqtgraph/graphicsItems/AxisItem.py
2014-01-15 00:11:05 -05:00
Luke Campagnola
19293d5b67 fixed division by zero 2014-01-14 22:29:46 -05:00
Luke Campagnola
e8dd3e6e57 ImageItem.getHistogram is more clever about constructing histograms:
- integer dtype images now have integer-aligned bins, with bin number
    determined by a target value
  - step size is automatically chosen based on a target image size
  - bins and step arguments have default values 'auto'
2014-01-14 22:22:50 -05:00
Antony Lee
20b9d079ce Nicer range for value histogram of integer images.
When an ImageItem's data has an integer dtype, this patch ensures that
each bin of the LUT histogram contains the same number of integer
values, in order to avoid "spikes" in the histogram that are merely due
to some bins covering more integer values than others.

This commit needs testing (it was rebased from an old commit).
2014-01-14 01:33:52 -08:00
Luke Campagnola
33e4a9e213 Fix: prevent divide-by-zero in AxisItem 2014-01-05 14:40:56 -05:00
Luke Campagnola
eda59be46d corrected PolyLineROI.setPen() to modify individual segments as well. 2014-01-04 01:03:58 -05:00
Luke Campagnola
95dd56bdb6 Bugfixes:
- fixed PlotCurveItem generating exceptions when data has length=0
- fixed ImageView.setImage only working once
2014-01-01 20:22:13 -05:00
Luke Campagnola
21c1686221 Fixed AxisItem to support unicode in tick strings 2013-12-29 09:17:23 -05:00
Luke Campagnola
a199b75c66 Added Flowchart.sigChartChanged 2013-12-27 22:48:44 -05:00
Luke Campagnola
2aac1faa17 fixes for python3 2013-12-27 22:32:05 -05:00
Luke Campagnola
4886270b53 PlotNode control widget now displays combo box to let user select plots to connect to
Flowchart example updated to use this feature.
2013-12-27 21:07:03 -05:00
Luke Campagnola
2c2135a49f Major updates to ComboBox:
- Essentially a graphical interface to dict; all items have text and value
- Assigns previously-selected text after list is cleared and repopulated
- Get, set current value
2013-12-27 21:06:31 -05:00
Luke Campagnola
f4e0f091dc Fixes against relative-import reorganization 2013-12-23 18:42:02 -05:00
Luke Campagnola
f21e0b86a4 fixed circular import 2013-12-23 10:22:53 -05:00
Luke Campagnola
a069104c6b rebuild UI files 2013-12-23 10:11:20 -05:00
Luke Campagnola
7e907db557 .ui files 2013-12-23 10:08:26 -05:00
Luke Campagnola
50df2b2def dockarea, imageview, metaarray 2013-12-23 10:06:26 -05:00
Luke Campagnola
eaf29b5f07 flowchart, canvas 2013-12-23 10:01:20 -05:00
Luke Campagnola
7777240d89 exporters, multiprocess, opengl 2013-12-23 09:46:54 -05:00
Luke Campagnola
a2e8290d8e console, graphicsscene, and 2nd-level graphicsitems 2013-12-23 07:51:33 -05:00
Luke Campagnola
cf312e7bac updated widgets 2013-12-22 02:18:37 -05:00
Luke Campagnola
f630734453 Switching to relative imports to allow pyqtgraph to be imported under other names.
finished top-level files and graphicsItems
2013-12-22 02:08:39 -05:00
Luke Campagnola
90b6b5b501 python 3 fixes 2013-12-21 23:41:37 -05:00
Luke Campagnola
19be6959f3 Flowchart:
* Replaced dynamic imports with static
* Added NodeLibrary allowing multiple customized collections of Node types
2013-12-21 23:26:02 -05:00
Luke Campagnola
59f07a03ee python3 fix 2013-12-21 23:26:02 -05:00
Luke Campagnola
b50b94908f pyqtgraph, .exporters, and .opengl now use static imports 2013-12-21 23:26:02 -05:00
Luke Campagnola
03c01d3b32 Fixes related to CSV exporter:
- CSV headers include data names, if available
  - Exporter correctly handles items with no data
  - pg.plot() avoids creating empty data item
  - removed call to reduce() from exporter; not available in python 3
  - Gave .name() methods to PlotDataItem, PlotCurveItem, and ScatterPlotItem
2013-12-19 12:30:00 -05:00
Luke Campagnola
a0b7e5a61c Corrected mouse clicking on PlotCurveItem - now uses stroke outline instead of path shape
Added 'width' argument to PlotCurveItem.setClickable()
2013-12-19 09:56:58 -05:00
Luke Campagnola
4e9e75817f Added Qt.loadUiType function for PySide
Added example of simple Designer usage.
2013-12-17 21:23:37 -05:00
Luke Campagnola
768c2b3356 Merge branch 'version_strings' into develop
* __init__.py now contains latest release version string
* installing from git checkout that does not correspond to a release commit
  will result in a more descriptive version string
2013-12-15 13:19:00 -05:00
Luke Campagnola
6d57792dc6 Merge branch 'profilers' into develop
New Profiler class from Antony Lee:
* Simpler API (with backward compatibility)
* Individual Profilers can be enabled by environmental variable PYQTGRAPHPROFILE
2013-12-15 09:17:24 -05:00
Luke Campagnola
5b7f4124d9 * Made new profilers compatible with old API
* Adjusted output formatting for clearer representation of nested profilers
* Message string formatting deferred until finish to reduce overhead
2013-12-15 09:07:09 -05:00
Luke Campagnola
e4ca62448b Added Dock.raiseDock() method 2013-12-11 14:28:56 -05:00
Luke Campagnola
6ae0892ea0 Set version strings to 0.9.8 in source; these will be updated with major releases.
Added tools/setVersion script
setup.py now auto-generates version string based on pyqtgraph/__init__ and git info, if available
2013-12-01 10:23:45 -05:00
Antony Lee
f136b33033 Profilers controllable via PYQTGRAPHPROFILE.
A new function profiling system is implemented.  Most importantly, this
allows one to profile various internal functions directly by setting the
`PYQTGRAPHPROFILE` environment variable to a comma separated list of
function and method names, e.g.

    PYQTGRAPHPROFILE=functions.makeARGB,ImageItem.render \
        python -mexamples

Specifically, items in `PYQTGRAPHPROFILE` must be of the form
`classname.methodname` or `dotted_module_name.functionname`, with the
initial "pyqtgraph." stripped from the dotted module name.

Moreover, the overhead of inactive profilers has been kept minimal: an
introspective check of the caller's name (only if `PYQTGRAPHPROFILE` is
set) and a trivial function (not method) call per profiler call.

The new profilers rely on `sys._getframe` to find the caller's name,
although the previous system (passing the caller's name explicitely)
could certainly have been kept instead.

Finally the API of profilers has been changed: register a
profiling point simply by calling the profiler, and profilers are
automatically flushed on garbage collection.  See the docstring of
`pyqtgraph.debug.Profiler` for more details.
2013-11-27 09:57:46 -08:00
Luke Campagnola
4486272737 Catch OverflowError from Point.length() 2013-11-25 01:16:21 -05:00
Luke Campagnola
c1f72b29c6 Merge branch 'faster-make-argb' into develop
- Speed improvements in functions.makeARGB
- ImageItem is faster by avoiding makeQImage(transpose=True)
2013-11-24 21:11:21 -05:00
Luke Campagnola
71ee4deb84 - fixed ImageItem handling of rgb images
- fixed makeARGB re-ordering of color channels
2013-11-24 21:10:06 -05:00
Luke Campagnola
bd2330af9f ImageItem performance boost by avoiding makeQImage(transpose=True) 2013-11-24 20:45:10 -05:00
blink1073
a08b28c958 Simplify to take transpose logic out of makeARGB function 2013-11-24 15:50:28 -06:00
blink1073
ddce17dc62 Undo remove trailing whitespace 2013-11-23 23:08:18 -06:00
blink1073
85d7116482 Speedups for making ARGB arrays 2013-11-23 23:02:19 -06:00
Luke Campagnola
d34bdb1be7 corrected GradientWidget.__all__ 2013-11-22 09:33:02 -05:00
Luke Campagnola
6e74df28a0 Merge branch 'dont-copy-context-menu' into develop
This allows ViewBox context menus to be modified by directly manipulating ViewBox.menu
2013-11-21 23:38:44 -05:00
Luke Campagnola
19cf49bc7d fixed context menu handling for non-GraphicsItems 2013-11-21 23:29:03 -05:00
Luke Campagnola
8deaf0866f avoid division by zero when ViewBox has size or aspect = 0 2013-11-21 13:37:01 -05:00
Luke Campagnola
f05c10a80f removed unnecessary scipy import 2013-11-21 09:57:56 -05:00
Luke Campagnola
a972114b4f Fixed ViewBox not updating immediately after call to setAspectLocked 2013-11-21 07:56:30 -05:00
Antony Lee
23a0d6d7c0 Use actions of ViewBox's contextMenu in full menu.
The main change is on `ViewBox.getContextMenus`, which now returns an
up-to-date of actions that `GraphicsScene.addParentContextMenus` can use.

Also, `getContextMenus` was given a default implementation in the base
class (falling back on `getMenu` if defined), and some cleanup was done.
2013-11-20 12:23:07 -08:00
Luke Campagnola
0a5cb62a6f ImageItem now has auto downsampling; seems to be working properly.
Still need auto clipping as well.
2013-11-20 13:51:39 -05:00
Luke Campagnola
193b1097b2 Merge branch 'axis_unicode_fix' into develop 2013-11-19 14:47:03 -05:00
Luke Campagnola
901e8ae596 Fixed unicode handling in AxisItem label 2013-11-19 14:45:57 -05:00
Luke Campagnola
5b905cde8b Override ViewBox.popup() to update menu before showing
Extend ViewBox menu in examples/contextMenu
2013-11-19 07:46:17 -05:00
Luke Campagnola
5b156cd3d3 Fixes for multiprocess / RemoteGraphicsView:
- Process now optionally wraps stdout/stderr from child process to
  circumvent a python bug
- Added windows error number for port-in-use check
- fixed segv caused by lost QImage input in pyside
2013-11-17 22:32:15 -05:00
Antony Lee
2e61be739f Don't copy the context menu of ViewBoxes.
This allows customization of the context menu of a ViewBox simply by
calling viewbox.menu.addAction(...).  See issue #13.  Also some cleanup.
2013-11-17 14:21:13 -08:00
Luke Campagnola
1418358bfb Fixed RemoteGraphicsView passing mouse events on python3 + pyside 2013-11-17 14:12:00 -05:00
Luke Campagnola
08be09ee40 Fixed RemoteGraphicsView on windows
- Avoid using authkey on windows; seems to be broken
 - Included yet another method of accessing shared memory as QImage
2013-11-17 09:27:55 -07:00
Luke Campagnola
8d7ab108fd Fixed PySide issues by removing itemChange methods from GraphicsWidget and ViewBox;
Workaround is for ViewBox to see whether its scene has changed every time it paints.

Fixes: 12
2013-11-16 20:23:41 -05:00
luke
25d666a1da Avoid calling QGraphicsWidget.itemChange--this causes segfault in python3 + pyqt
Fixes #10
2013-11-15 22:05:09 -05:00
Antony Lee
dac7eb5817 Faster import of PyQtGraph.
* RawImageWidget (and thus OpenGL) isn't imported by default anymore.
* scipy.stats.scoreatpercentile is replaced by numpy.percentile.

This commit has not been tested as the example runner is currently
broken.
2013-11-15 11:00:12 -08:00
Luke Campagnola
ef2ffdd88c Fixed bug: ViewBox context menu elements are no longer deleted when using flowchart + pyside 2013-11-14 14:01:25 -05:00
Luke Campagnola
f8772d179f removed unused variable 2013-11-14 12:16:31 -05:00
Luke Campagnola
810b90a1e6 Minor fix in ScatterPlotItem handling of per-point data 2013-11-10 23:25:07 -05:00
Luke Campagnola
ccc5e6274a Fixes:
- GraphItem reports pixel margins to improve auto-range
 - ViewBox.setRange is more careful about disabling auto range for axes that are set
2013-11-07 12:05:05 -05:00
Luke Campagnola
58ed8ee7bd ViewBox overhaul. Cleaned up code pathway:
- setRange now only affects target range
  - updateViewRange only affects view range
  - updateMatrix only affects childGroup transform
  - updateMatrix is only called before a render

Pathway now looks like:
        setRange -> updateViewRange -> matrix dirty -> ...
                                    -> sigRangeChanged

        ... -> prepareForPaint -> updateAutoRange, updateMatrix if dirty
2013-11-06 23:26:57 -05:00
Luke Campagnola
31928e70a5 Bugfixes:
- GraphicsView.render now correctly invokes GraphicsScene.prepareForPaint
 - Fixed RemoteGraphicsView renderer to use new PyQt QImage API.
 - multiprocess.Process now pipes stdout/err directly to console when in debugging mode
2013-11-06 23:14:27 -05:00
Luke Campagnola
ea8079334f Correct ViewBox.translate to use setRange(x, y) when possible rather than making two calls. 2013-11-06 15:35:24 -05:00
Luke Campagnola
96a4ff7cd5 Fixes:
- ROI updates on sigTransformChanged
  - ViewBox is more careful about accepting all auto-range changes up to the point it is disabled, even if the auto-range calculation is deferred.
2013-11-04 22:07:43 -05:00
Luke Campagnola
0daae425a3 A bit more flow reorganization 2013-11-03 19:41:05 -05:00
Luke Campagnola
6083521387 Initial success. Testing and further reorganization to follow. 2013-11-03 17:55:57 -05:00
Luke Campagnola
a4103dd152 Mid-way through overhaul. Proposed code path looks like:
setRange -> updateViewRange -> matrix dirty
                            -> sigRangeChanged

    ... -> prepareForPaint -> updateAutoRange, updateMatrix if dirty
2013-11-03 17:10:59 -05:00
Luke Campagnola
ab1b1c6adf Added ViewBox test suite 2013-10-25 10:33:41 -04:00
Luke Campagnola
662af1a9c5 ignore test directories in top-level __init__ imports 2013-10-25 10:31:30 -04:00
Luke Campagnola
84a845185e Fix: when ViewBox is resized, update range if it is linked to another view 2013-10-20 11:06:57 -04:00
Luke Campagnola
bb2ecd033c minor fix 2013-10-18 15:10:44 -04:00
Luke Campagnola
f19df05bdf Allow AxisItem.setScale(None) to retain API backward compatibility. 2013-10-18 15:02:17 -04:00
Luke Campagnola
03fd45c24a Updated documentation to match previous API change 2013-10-18 14:59:17 -04:00
Luke Campagnola
390f78c810 Fixed improper tick spacing and axis scaling
This requires an API change:
 - AxisItem.setScale(float) has the usual behavior
 - AxisItem.setScale(None) is no longer allowed. Instead use:
 - AxisItem.enableAutoSIPrefix(bool) to enable/disable SI prefix scaling
Also makes the API more intuitive since these features are now accessed and implemented independently.
2013-10-18 14:47:49 -04:00
Luke Campagnola
ea6f4ef442 Add backport ordereddict to repository
Merge remote-tracking branch 'kif/master' into develop

Conflicts:
	pyqtgraph/pgcollections.py
2013-10-18 11:21:15 -04:00
Luke Campagnola
b993c64c48 Workaround for OrderedDict bug: import from 'ordereddict' backport module if available 2013-10-18 09:46:48 -04:00
Jerome Kieffer
4052c3e9d1 Ordereddict exploses with python2.6 ...
Use the official backport
2013-10-17 20:19:30 +02:00
Guillaume Poulin
d22403f84f Correct symbols position 2013-09-24 17:13:13 +08:00
Guillaume Poulin
36979b67ea Clean ScatterPlotItem 2013-09-24 17:06:51 +08:00
Guillaume Poulin
73a079a649 Improve ScatterPlotItem.py
Add optimization for PySide, Plot only visible symbole, cache rectTarg
2013-09-24 16:12:29 +08:00
Guillaume Poulin
bd43a7508a Rename self.tar to self.target 2013-09-23 17:47:33 +08:00
Guillaume Poulin
c3576b1c09 Some few more optimization to ScatterPlotItem 2013-09-23 16:45:43 +08:00
Guillaume Poulin
f5ee45ac28 Improve ScatterPlotItem
Slightly faster and more memory efficient, correct python 3 bug
2013-09-23 00:45:55 +08:00
Guillaume Poulin
26b84693a8 Modify for loop into map in ScatterPlotItem.py 2013-09-22 23:10:18 +08:00
Guillaume Poulin
63bf2b3270 optimize ScatterPlotItem with pxMode=True 2013-09-20 15:46:10 +08:00
Luke Campagnola
54ca31f91b Added ImageExporter error message for zero-size export 2013-09-19 12:13:16 -04:00
Luke Campagnola
d8f9fb0781 Added GLBarGraphItem 2013-09-18 12:27:46 -04:00
Luke Campagnola
8b58416d1d minor edits 2013-09-18 12:27:01 -04:00
Luke Campagnola
58048a703c - Removed inf/nan checking from PlotDataItem and PlotCurveItem; improved performance
- Added 'connect' option to PlotDataItem and PlotCurveItem to affect which line segments are drawn
- arrayToQPath() added 'finite' connection mode which omits non-finite values from connections
2013-09-13 03:27:26 -04:00
Luke Campagnola
f6ed67fc33 merged SVG export fixes for python 3 2013-09-10 10:40:19 -04:00
Guillaume Poulin
b48e0e9eb5 Restore utf-8 compatibility for python 2 2013-09-10 22:34:20 +08:00
Guillaume Poulin
59ada9b1b4 More bugfixes in SVGExporter.py 2013-09-10 22:12:55 +08:00
Guillaume Poulin
35ea55897e python3 bugfixes (SVGexpoter) 2013-09-10 20:57:56 +08:00
Luke Campagnola
bb3533ab81 Workaround for pyside bug: https://bugs.launchpad.net/pyqtgraph/+bug/1223173 2013-09-10 02:51:57 -04:00
Luke Campagnola
881589468d Python 3 bugfixes 2013-09-10 00:31:43 -04:00
Luke Campagnola
f997b3079b Added GLBarGraphItem example
GLMeshItem accepts ShaderProgram or name of predefined program
Added missing documentation to GLGraphicsItem
minor edits
2013-09-06 15:36:36 -04:00
Guillaume Poulin
dfa2c8a502 solve some issue with opengl and python3 2013-09-05 04:37:41 +08:00
Guillaume Poulin
c02e6184ef merge inp 2013-09-05 00:28:03 +08:00
Luke Campagnola
91aa2f1c16 fixed TextParameter editor disappearing after focus lost 2013-08-27 12:00:26 -06:00
Luke Campagnola
42553854a9 pg.plot() and pg.PlotWidget() now accept background argument
ImageExporter correctly handles QBrush with style=NoBrush
2013-08-23 22:27:09 -06:00
Luke Campagnola
824e4b378b Corrected behavior of GraphicsView.setBackground 2013-08-23 22:08:32 -06:00
Luke Campagnola
d3f56c6df3 fixed PySide bug listing image formats 2013-08-22 10:02:39 -06:00
Luke Campagnola
160b1ee45f Python3 bugfixes 2013-08-21 10:40:19 -06:00
Luke Campagnola
6b3cfbc6fb Fixed parametertree selection bug 2013-08-18 23:02:01 -04:00
Luke Campagnola
2095a4c8ae Support for FFT with non-uniform time sampling 2013-08-16 21:28:03 -04:00
Luke Campagnola
79bd7ea187 documentation, bugfix 2013-08-04 14:36:14 -04:00
Luke Campagnola
ef8c47e8c8 Allow QtProcess without local QApplication 2013-08-04 14:35:28 -04:00
Luke Campagnola
3eeffd3b1d GLLinePLotItem accepts array of colors (thanks Felix!) 2013-07-13 16:42:36 -04:00
Luke Campagnola
6131427dea added error message when GL shaders are not available 2013-07-13 16:06:48 -04:00
Luke Campagnola
46901ae83a ListParameter bugfix: allow unhashable types as parameter values. 2013-07-12 13:14:09 -04:00
Luke Campagnola
5a2b946205 ViewBox bugfixes:
- drag rect now has large ZValue
  - fixed view linking with inverted y axis
2013-07-10 14:30:16 -04:00
Luke Campagnola
7cd3e663f9 experimental GL video widget
temporary fix for text parameter ignoring expanded option
Don't use os.EX_OK in pg.exit()
2013-07-10 00:02:16 -04:00
Guillaume Poulin
a290a39779 merge with inp 2013-07-05 00:09:30 +08:00
Luke Campagnola
a20e732f65 Added GL picking, matrix retrieval methods 2013-07-04 11:21:50 -04:00
Luke Campagnola
934e50ad55 Added python3 support for efficient method in arrayToQPath 2013-07-04 08:34:18 -04:00
Guillaume Poulin
f2d0991102 Minor fixes for py3k 2013-07-04 05:52:16 +08:00
Luke Campagnola
6e253e409b merge from acq4:
- Support for dynamic downsampling and view clipping in PlotDataItem / PlotItem
  - fixed __truediv__ handling
  - ViewBox updates to fix aspect locking (still broken)
  - AxisItem tries to be more clever about when to display tick text
  - Fix segmentation fault caused by exception inside GraphicsItem.paint()
  - Added 'x' scatter plot symbol
  - pg.mkPen supports dashes
2013-07-03 11:36:07 -04:00
Luke Campagnola
8c13a3e7e3 copy from acq4 2013-07-03 11:20:49 -04:00
Luke Campagnola
79e2b1403b minor edits 2013-07-03 08:54:18 -04:00
Luke Campagnola
f03703e78f corrected exception error message 2013-06-20 08:44:46 -04:00
Luke Campagnola
adda8ae24d New methods in use for converting array -> QImage.
This fixes memory leaks with PyQt 4.10 _except_ when using makeQImage(copy=False).
Tested on 4.9.3 and 4.10.2; need to be tested against other versions.
2013-06-19 19:36:46 -04:00
Luke Campagnola
cbd0efe79a ImageItem informs ViewBox when its size changes
Minor edits
2013-06-19 19:32:55 -04:00
Luke Campagnola
fa354ea4a3 bugfix in ViewBox.clear 2013-06-19 19:30:23 -04:00
Luke Campagnola
1b17bc6adb export uses padding to prevent edge effects 2013-06-19 09:10:14 -04:00
Luke Campagnola
e864043e76 delete texture and framebuffer after export 2013-06-18 21:46:50 -04:00
Luke Campagnola
3656b02237 Enabled piecewise export 2013-06-18 10:55:25 -04:00
Luke Campagnola
2243082d4b Added export methods to GLViewWidget 2013-06-16 23:31:27 -04:00
Luke Campagnola
aa85ed2828 fixed QString -> str conversions in flowchart 2013-06-07 17:05:54 -04:00
Luke Campagnola
f5435b7798 Fixed ScatterPlotItem.renderSymbol device argument 2013-06-01 07:54:55 -04:00
Luke Campagnola
3d820400d3 Added GLLinePlotItem documentation 2013-05-31 14:04:04 -04:00
Luke Campagnola
9a20d051cb Fixed unicode support in export file save 2013-05-31 10:15:40 -04:00
Luke Campagnola
59bbe0127e ImageView cleanups
- fixed auto-levelling when normalization options change
- added autoHistogramRange argument to setImage
2013-05-30 09:33:09 -04:00
Luke Campagnola
ba56899a36 Added basic wireframe mesh drawing 2013-05-29 14:33:14 -04:00
Luke Campagnola
af4980d153 merged bugfixes 2013-05-29 08:21:10 -04:00
Luke Campagnola
96a5f9290d Fixed ItemSample handling of ScatterPlotItem 2013-05-29 08:16:34 -04:00
Luke Campagnola
ba31b3d7ba Legends can be dragged by user 2013-05-28 18:47:33 -04:00
Luke Campagnola
7a7288b6b3 Fixed documentation for 'uver/under' in DockArea
Configure matplotlib to use PySide in MatplotlibWidget
2013-05-28 15:31:10 -04:00
Luke Campagnola
ee0825d677 Allow custom ItemSamples in LegendItem. 2013-05-22 14:35:14 -04:00
Luke Campagnola
91ac29bf23 Added basic symbol support to LegendItem 2013-05-22 14:27:19 -04:00
Luke Campagnola
a55d58024d Added Dock.close()
Fixed bugs in functions weave usage
Documented ROI signals
Fixed 3D view updating after every scene change
2013-05-22 14:09:56 -04:00
Luke Campagnola
017adec032 merge with inp 2013-05-13 14:48:16 -04:00