forked from pyqtgraph/pyqtgraph
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Piker pin - PlotItem
overlays
#1
Open
goodboy
wants to merge
99
commits into
master
Choose a base branch
from
piker_pin
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
this is probably also fixing a bug: the code was using np.empty() but was not filling up all the elements.
transpose texture coords instead of image data this doesn't alter the displayed image's orientation.
This fixes an issue that came up in PySide6 6.2.2 where calls to GraphicsObject.parentChanged were passed to QGraphicsObject.parentChanged instead of GraphicsItem.parentChanged. In addition, this fix handles the case of ScaleBar.parentChanged as well, where specifying the specific parent class was insufficient. Thanks to @pijyoi for identifying this fix.
Fix PySide6 6.2.2 breaking change
avoid PyOpenGL automatic array conversion
Not sure how I made it this far without noticing... Forwarding changing signals from checklist children show "true"/"false" as changing values, not self's value. This fixes the problem. Also, "value" should represent the stored `self.opts['value']` instead of the transient widget value. I fixed this with a separate `childrenValue` function which contains the transient widget value
avoid comparing string with ndarray
Fire correct signal type for checklist value changing
…h#2086) * Use GroupParameter instead of popup button for PenParameter * Move PenPreviewLabel to `widgets` folder * More pen parameter refactoring - Better internal variable names - Use 'valueChanging' instead of 'changed' logic * Pen preview refactoring - Show 'changing' instead of 'changed' values - Add 'C' indicator for cosmetic pen * Don't listen for 'color' valueChanging
…pyqtgraph#2101) * change colors for the GroupParameterItem to address issue in darkmode on macos * handle qdarkstyle stylesheet * Add and apply palette matching QDarkStyle when OS is in darkMode. * revert changes to Qt/__init__.py and apply dynamic palette in basetypes.py * replace palette.background() with palette.window() * Update the palette detection in basetypes.py and add fix for when the os color theme is changed while the app is running. * Add palette.py and update groupItem color selection method Added method in `pg/__init__.py` to apply app palette based on user input - meant to be used with QDarkStyle * implement changes based on review * update import in palette.py and add colors/__init__.py * add a pointSize method and clean up updateDepth method in basetypes.py * Remove unused import in basetypes.py
Python 3.10 no longer allows automatically converting some floats to ints, see the fourth point here: https://docs.python.org/3/whatsnew/3.10.html#other-language-changes
Fix automatic int-casting code for Python 3.10 compatibility
Also change the docs of `TargetItem` to point to `ScatterPlotItem.setSymbol()` in reference to what symbols are accepted, since the documentation for this method lists all the symbols.
Fix typos and formatting errors
Added projects to Used by list
…format Fix formatting on minimum value of GradientLegend.
If the signals are blocked externally, keep the state. Before the patch, the block got released unconditionally. There has been a `blockIfUnchanged` decorator for this, but its code has been re-used with a logical error, so the decorator couldn't have worked.
fixes a CodeQL warning
Avoid import error in HDF5 exporter
test enum using : "enums & enum"
Fix : QPoint() no longer accepts float arguments
add support for PySide6 6.3.0 QOverrideCursorGuard
Fix UFuncTypeError when plotting integer data on windows
* Improve performance of PlotCurveItem * Hide chunksize in private method and comment it
* Add glow example * Add new line at the end of the file * Fix nb_lines issue. Reduce curves amplitude.
Used the power of `blockIfUnchanged` decorator
* Handle/remove unused variables All found via CodeQL * Errors that cropped up as a result of initial errors being fixed * Even more things that were only used in now removed statements * Update comment to reflect code change * Undo profiler removals, add comment about GC behavior
`QtGui.QPixmap().width() == 0`
Fixed division by zero when no pixmap is loaded
Added possibility to use custom dock labels
This is still very much a WIP/testing patch but on my current use case (real time updates to a 40k+ datums set at around display rate) results in approximately a 2x speedup according to the profiler output included here.
If we don't reuse the `QPainterPath` that is be "reserved" (i.e. by calling `.reserve()` on it to avoid re-allocating memory and using `.clear()` instead of generating a new path) the mem allocs will be somewhat pointless. Instead make it possible to pass in a previously generated path, clear it, and rewrite to the reserved space. Relevant docs: - https://doc.qt.io/qt-5/qpainterpath.html#reserve - https://doc.qt.io/qt-5/qpainterpath.html#clear
This is a more explicit input argument name which we assign to an internal `._mt` instance var. This patch also includes some improvements for recursive profiling, see below. Further this commit makes some larger alterations: - drops the class variable `._msgs` since it was causing issues on nested profiler use. My presumption is that this code was written with the expectation that stacks could unwind (per thread) out of order? I don't see why else you'd have `.flush()` only print on a `._depth < 1` condition.. - drops `.flush()`, since `.finish()` is the only place this method is called (even when scanning the rest of the code base) thus dropping a call frame. - formatting adjustments around this `class` as per `flake8` linter. Details, in order from bullets above: - when a top level (aka `._depth == 0`) profiler was deleted by the GC, all messages from all underling (aka recursive) profilers were also wiped, meaning you'd get a weird case where only the "Exit" msg was showing. Now we instead expect each instance to clear it's own msg set. There should also be no further reason for the `._depth < 1` check since each instance unwinds and emits it's own messages, presumably as the call stack unwinds via the GC. - I see no reason to have the `.flush()` when it was a trivial method that can be inlined to `.finish()` and I doubt there's much of a use case for "incrementally flushing" unless the user is using one "god profiler" throughout their entire stack..
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
clearly @guilledk and I forgot about this bit 😂
This patchset is needed to run latest
piker
master.