Comments (3)
@rkishony right now we don't assign two quibs from graphics when one of them depends on the other, but only to the source quib, to prevent contradictory changes to a quib.
But in cases like your example, I guess that we should not view overriding as a contradictory change.
My new approach would be to collect the overrides that will be caused by assignment made by the graphics event, and discard assignments just when they cause an override in the same quib.
The problem with that approach is that to know what overrides we might perform, we might have to ask the user to choose, which would be weird to do when some of these overrides will not be performed.
An example where this is relevant:
a = iquib(1)
b = a + 1
c = a + 2
b.allow_overriding = True
c.allow_overriding = True
plot(b, c)
Whet the plot is dragged, I'd the user chooses to override both b and c at the iquib level, their assignments will be contradictory and we will have to choose only one.
Maybe as a very nice-to-have feature in the future, if the user chooses to override the first at the iquib level, we could change the dialog for c to offer only self override or skipping. But for now I think the approach I offered is good enough.
from quibbler.
ok, but it will help if in addition you also make sure that the plot quib does not issue an override in the X position if the marker was dragged only on Y (if X didn't change) and does not issue an override in the Y position if the marker was dragged horizontally
this will allow more logical dragging along constrained curves such as in the plot(b,c) example you have
from quibbler.
I'm not sure that we should do that. If we override only one axis when the diff is in the other axis, the change might still propagate through the quibs into the "unchanged" axis, and the dot we dragged will end up in a different position from the mouse. I think when dragging a point, we logically assign to it both x and y, regardless of its previous location.
from quibbler.
Related Issues (20)
- error in override viewer with path HOT 1
- shift-enter does not propagate to next cell after execution of cells with quib viewers HOT 2
- wrong override HOT 1
- error in save/load HOT 3
- labext new override is replaced at OLD rather than NEW position HOT 1
- bug in transpositional_translation HOT 1
- add Quibbler support for pandas.DataFrame
- bug in assignments within quib-creation jupyter cell HOT 1
- install.py fails HOT 3
- bug in transpositional inverter of array with ragged list HOT 1
- labext: assignment within quib creation cell is ignored
- add Quibbler support for ipywidgets HOT 1
- add Quibbler support for plotly
- grey out Undo/Redo buttons HOT 1
- `UnicodeDecodeError` when installing on windows machine using the install.py script
- Flask warning: "This is a development server"
- install.py fails installing labext HOT 1
- No support for google colab HOT 6
- Cannot initialize quibbler. HOT 7
- add Quibbler support for bokeh HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from quibbler.