2 Proposal for the loading state machines
5 ViewFrame state machine
10 E: Empty (the initial state right after construction)
11 A: Activating (waiting for component to be activated)
12 N: No load_location request (a view component has been loaded, but no load_location request has been sent yet)
13 W: Waiting (waiting for a response after a load request)
14 U: Underway (the component has responded and the load is assumed underway)
15 L: Loaded (the component has finished loading successfully)
16 F: Failed (there was a fatal error somewhere)
18 X: this stimulus is guaranteed impossible in this state
21 Things I was unsure about:
23 ?2: Once a load has failed at some stage, should it be OK for Nautilus
24 to try to make further calls of any kind?
28 1) "Component stops responding" stimulus.
29 2) Distinction of failure loading vs. crash of the component.
33 A "*" means that this is illegal but non-fatal, so we want to use g_warning.
36 State Transition Chart
41 | E | A | N | W | U | L | F |
42 ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
43 successful load_client call | A | X | X | X | X | X | ?2 |
44 ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
45 unsuccessful load_client call | F | X | X | X | X | X | ?2 |
46 ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
47 successful activated_component call | X | N | X | X | X | X | ?2 |
48 ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
49 unsuccessful activated_component call | X | F | X | X | X | X | ?2 |
50 ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
51 stop activation | E | E | X | X | X | X | ?2 |
52 ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
53 nautilus_view_frame_load_location call | X | F | W | W | W | W | ?2 |
54 ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
55 open_location call from component | X | X | N* | U | U | L | X |
56 ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
57 open_location_in_new_window | X | X | N* | U | U | L | X |
58 ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
59 report_location_change | X | X | N* | U | U | U | X |
60 S ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
61 t report_selection_change | X | X | N* | U | U | L | X |
62 i ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
63 m report_status | X | X | N* | U | U | L | X |
64 u ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
65 l report_load_underway | X | X | N* | U | U | U | X |
66 u ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
67 s report_load_progress | X | X | N* | U | U | U | X |
68 ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
69 report_load_complete | X | X | N* | L | L | L | X |
70 ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
71 report_load_failed | X | X | N* | F | F | F | X |
72 ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
73 set_title | X | X | N* | U | U | L | X |
74 ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|
75 user hits cancel on timer dialog | X | X | X | F | X | X | X |
76 ----------------------------------------|-----|-----|-----|-----|-----|-----|-----|