Skip to content

Workflow gui#1067

Draft
Teranis wants to merge 24 commits intomainfrom
workflow-gui
Draft

Workflow gui#1067
Teranis wants to merge 24 commits intomainfrom
workflow-gui

Conversation

@Teranis
Copy link
Copy Markdown
Member

@Teranis Teranis commented Apr 2, 2026

@Teranis
Copy link
Copy Markdown
Member Author

Teranis commented Apr 3, 2026

#657

@ElpadoCan
Copy link
Copy Markdown
Collaborator

ElpadoCan commented Apr 11, 2026

Hi Timon, nice work! I started testing this and I will write here my suggestions:

  1. When the workflow GUI starts, it's not clear what to do. I would change the text from "Drop items here" to a dynamic text that changes depending on the status. I would start with "To create a new workflow, click on "New workflow file" button on the top-left toolbar". Once the experiment folders have been selected, the text can change to "To create your workflow, drag and drop items from the left sidebar".
  2. It would be nice if the left sidebar were expandable. To do this, I would use a QDockWidget, because this is exactly what that sidebar with items is. You can look at the line self.propsDockWidget = QDockWidget('Cell-ACDC objects', self) in the gui.py file.
  3. When I added the pre-process image card, it was not clear how to provide the image file as input. A tooltip on the input of each card saying something like "To provide an image as input, either connect the output of another card, or add the card "Selet image data" to select which channel to use as input".
  4. The "Select image data" card has a flat button with the cog icon, while the "Pre-process image" card does not
  5. In general, it would be nice to be able to set-up the parameters of the card by clicking anywhere on the card and not just the cog button. Or maybe double-click?
  6. We probably need a "Save image" and "Save segmentation" card as a possible final output? These cards should use apps.filenameDialog to allow the user to provide the endname of the saved image.
  7. Along the lines of 6., if I have a "Select image" card whose output is connected to a "Pre-process image" card, the workflow can run, but nothing concrete happens, right? I would make the workflow valid only if the final output is connected to a card that saves data or the aforementioned "Save image" and "Save segmentation" card.

... To be continued :D

@ElpadoCan
Copy link
Copy Markdown
Collaborator

ElpadoCan commented Apr 11, 2026

  1. I would add a menubar on the top with the File and Help menus as a minimum. The File menu should have the create new file and loading actions (use the exact same action of the toolbar, no need to duplicate). The Help menu should have the info menu about the workflow GUI, the Open log file location action, and the About Cell-ACDC. This is to make it consistent with the other modules.

@Teranis Teranis mentioned this pull request Apr 11, 2026
31 tasks
@ElpadoCan
Copy link
Copy Markdown
Collaborator

  1. I don't know how I did this, but in the log window it says Removed connection: card 1 output 0 -> card 0 input 0.. However, the black arrow is not removed. When I tried to reconnect them, the log says "Input 0 on this card already has a connection. Inputs can only have one connection.". In general, how are connections removed? I think a right-click menu with the "Remove connection" option is the way to go.

@Teranis
Copy link
Copy Markdown
Member Author

Teranis commented Apr 11, 2026

Ciao Francesco, thanks for the feedback!
Here some awnsers
1: Good suggestion! In general, I think I will add a welcome window similar to when ACDC is started, which explains stuff.
3: In general, I wanted to be stringent and not allow loading additional data unless it's with the segm or img input cards. This would also be explained in the welcome window.
4: and 5: I am a bit confused by the cog situation. On my machine, all have a cog icon. Anyways, you can right-click to open the dialogue. The cog, anyway, was meant for people which dont have right click for some reason.
6: That is the idea. I wanted to first implement the actual workers to see what the requirements for the card would be.
7: Yes, I would add it to workflow validation that there is a warning if there are "open ends"
9: You can delete cards by middle click, and connections via middle click or right click. The bug you encountered is for sure interesting, I will keep track of it!

@ElpadoCan
Copy link
Copy Markdown
Collaborator

1: Good suggestion! In general, I think I will add a welcome window similar to when ACDC is started, which explains stuff.

I don't think we need a welcome window, the whole thing is very intuitive. It just needs those two additional visual guides, see below.

3: In general, I wanted to be stringent and not allow loading additional data unless it's with the segm or img input cards. This would also be explained in the welcome window.

I'm not sure I understood, what I meant was to just add a tooltip on the input that appears when hovering the mouse cursor to explain what to do with the input. People will never read the welcome window, trust me :D. Most users learn by just clicking around at random and tooltips help a lot with that.

Anyways, you can right-click to open the dialogue. The cog, anyway, was meant for people which dont have right click for some reason.

I would add the possibility to open the dialogue also with double left-click

9: You can delete cards by middle click, and connections via middle click or right click. The bug you encountered is for sure interesting, I will keep track of it!

The concept of middle-click does not exist on MacOS :D. I would add the right-click menu with the two options "Open dialogue to setup card..." and "Remove card".

@ElpadoCan
Copy link
Copy Markdown
Collaborator

  1. The "Discard" and "Save" button on this dialogue should have the "No" and "Save" icons to be consistent with all other message boxes in Cell-ACDC. Use the buttons noPushButton, and widgets.savePushButton, respectively. The acdc message box accepts QPushButton classes as well. Here is the code
discardButton = widgets.noPushButton()
saveButton = widgets.savePushButton()

_, discardButton, saveButton = msg.warning(
    self,
    'Unsaved workflow changes',
    txt,
    buttonsTexts=('Cancel', discardButton, saveButton)
)
image

@ElpadoCan
Copy link
Copy Markdown
Collaborator

  1. Beno: order the cards into categories to avoid a long list of cards
  2. Beno: create example workflows to show in tutorials

@ElpadoCan
Copy link
Copy Markdown
Collaborator

  1. Test loading a saved workflow with different input data
  2. Save workflow to ini file that can run headless from the terminal with the command acdc -p <file path of ini file> as we already have for measurements and segmentation module

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants