Ticket #179 (new task)

Opened 3 years ago

Last modified 4 months ago

No macro playback for modal windows

Reported by: westram Owned by: devel
Priority: minor Component: Library (GUI)
Version: SVN Keywords: macros
Cc:

Description (last modified by westram) (diff)

Macros do not work with modal dialogs.

Example:

BIO::remote_action($gb_main,"ARB_NT","selection_admin");
BIO::remote_action($gb_main,"ARB_NT","SPECIES_SELECTIONS/STORE"); 
BIO::remote_awar($gb_main,"ARB_NT","tmp/input/string","bla");
BIO::remote_action($gb_main,"ARB_NT","CREATE_CONFIGURATION/OK"); 
BIO::remote_action($gb_main,"ARB_NT","SPECIES_SELECTIONS/CLOSE");

Execution hangs in "SPECIES_SELECTIONS/STORE" and waits for the user to enter a configname.

Solutions:

  • dont use modal dialogs (sic)
  • add "Never ask again" toggles to modal question windows
    • when selected, store next answer as default answer
    • add "Again ask me everything" to Properties menu
  • enhance way actions are recorded (not sure whether this may work):
    • when execution is inside a callback during macro recording, record differently, e.g.
      BIO::remote_modal_awar($gb_main,"ARB_NT","tmp/input/string","bla");
      BIO::remote_modal_action($gb_main,"ARB_NT","CREATE_CONFIGURATION/OK"); 
      
    • write these actions before the callback itself
    • when executing BIO::remote_modal_...(), don't execute, just put the commands to some FIFO
    • when inside a modal loop and no events wait, lookup that FIFO and execute first commands from there. repeat.
    • when execution of normal remote_action/remote_awar ends, clear the FIFO

(see also #63)

Change History

Changed 4 months ago by westram

  • description modified (diff)

Changed 4 months ago by westram

  • priority changed from normal to minor
  • component changed from !NoIdea to Library (GUI)
  • [8359] implements "Never ask again" toggles, making it possible to work with macros that trigger modal question dialogs
  • other modal dialogs (e.g. those requesting a string/file) are still problematic. They should be replaced with a different way to get the needed input from the user (e.g. ask before starting the action)
Note: See TracTickets for help on using tickets.