-
Notifications
You must be signed in to change notification settings - Fork 45
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
A first step in giving lyse user definable controls like blacs. #114
base: master
Are you sure you want to change the base?
Conversation
…o the logging widget in the window.
I have a few comments, but overall I think that this PR (even on its own) is a valuable upgrade to lyse. Immediate comments:
Longer term comments:
|
…dow. Need to fix this.
…ow use a splitter so the chat window can be removed.
Thanks for all of the comments. Here are some point-by-point responses:
|
Thanks for clarifying all these things. I understand much better and look forward to the finished product! Minor follow ups.
I might suggest that for a big overall change like this with separable intermediate steps, we might want to break the steps into individual PRs. If you base the actual lyse globals implementation branch on top of this one and create a separate PR, it's much easier to review changes separately and github will automatically merge everything when merging the top-most PR. |
On 3, I'm possibly several years out of date but the Monash labs extensively used multiple plot windows from single scripts. All the time. Kris's lab had 8 monitors for labscript suite programs, with 3 dedicated to lyse plot windows. It would have been a big killer to the workflow to have a change like this appear. We can't know what lyse workflows people are relying on, so should be careful with breaking things. I'm not opposed to tabbing plots, in some cases it could be really useful. But I think it needs to be configurable per script (e.g. a line of code in the script configures tabbing plots or not). And the default (if the line of code isn't in the script) should be based on a labconfig setting, which if missing from the labconfig file, should default to not tabbing for backwards compatibility. It could be turned on by default for new installations, if you thought that was best, by enabling it in the profile generation (in labscript-utils?) I have some other points/suggestions I'd like to raise, but don't really have time right now. I'll attempt to free up some time this weekend to take a look in more detail! |
@dihm : Since I also did a fair amount of refactoring of the Lyse code as part of this work so far, I do think it would be good to get it working without any more added functionality before making the next step to lyse variables. In terms of adding a button to open / close the textbox, I'll do a simple implementation of that now to get the code and settings in place. This will make future refinements of the GUI easy. @philipstarkey : I think I have the perfect solution. I'll work that up during a boring meeting I have to attend in 30 minutes and push the changes along with a new demo screenshot. |
Here is the demo if using a mdiWindow that gets the figures issue from @philipstarkey taken care of. The hide terminal button is also present. |
Well I think that is looking pretty good! Not sure if this was a deliberate choice, but it doesn't appear any of your recent commits have been pushed up. I'd be curious to try out the code locally in the next few days. |
This is in the branch ... and I have merged the changes where they belong into |
I think there is a lot of good stuff in here, but I think the changes are rapidly entering an unreviewable state due to the the spread of changes, and number of lines of code that are being changed. From what I can tell, the changes can be broken down into:
So I think it would make sense to make each of these changes into a separate PR so they can be reviewed and interrogated in isolation. I'm not 100% wedded to the above order, but I believe it's the order that makes the most sense. If agreed, here are my initial comments on approaches to each that will hopefully speed up the PR process:
Does that sound like a reasonable breakdown to everyone? |
@philipstarkey Thanks for all of the feedback. I do think we should setup face-to-face zoom meeting to discuss all of this, but I would like to document some points here to feed into that.
|
@philipstarkey I was confused by one of your comments, part of #4 "...limit some of the multi-plot layouts that can be created when plots span multiple analysis scripts". I am not sure what you mean by this. Since plots are generated and owned by separately running worker processes it seems impossible for two distinct analysis scripts to render to the same plot window. Right? |
For what it's worth, I think it wouldn't take too much effort to modify the DragDropTabWidget used by BLACS to allow dragging a tab out into its own separate window, if that possibility would change anything about whether people preferred an approach using tabs vs mdi windows. I'm considering making such a modification anyway in order to use labscript's DragDropTabWidget in an unrelated program I'm working on. Perhaps mdi windows make more sense anyway, but thought I'd mention it! |
@chrisjbillington Good to hear from you Chris. I think the only real difference between the two approaches is that with separate windows one would have to decide which would get the per-worker textbox (assuming that this change is made, and I do think it a positive change). The advantage of tabs (including the DragDropTabWidget) / MDI is that there is the contents of each worker process is attached to a single top-level window that hosts that worker's text box. My thought would be to release a version into the wild one top-level window per process and see what the feedback is. I just gave DragDropTabWidget a look, and one comment that it has the annoying property that the number of sub-frames seems fixed. Meaning when I grab a tab and drag it into the gap between frames I expect the tab to appear in a new frame. |
Note: this isn't really a pull request, it is more of a demo for how this feature is going to get feedback.
One of the biggest issues with lyse is the lack of user definable parameters in the gui. The goal of this branch is to make the
lyse
interface more similar to that ofblacs
. So this demo is the first step in that direction that provides eachlyse
worker a canvas in the form of a pre-generated window, and likeblacs
the logging window has been moved from a joint window to a per-worker window (already this is a great improvement to for diagnosing issues on a per process basis).I plan to retain the current behavior of capturing plot windows for existing scripts, with the small change that scripts that make more than one figure have them placed in different tabs of the window.
The following image shows how this current implementation looks in the wild.
Right now I am looking for feedback on this before I spend significant time devising a full solution.