@@ -203,7 +203,7 @@ public class PhoebusApplication extends Application {
203203 /**
204204 * Menu to add a layout to the current layout
205205 */
206- private final Menu add_layout = new Menu (Messages .AddLayout , ImageCache .getImageView (ImageCache .class , "/icons/layouts .png" ));
206+ private final Menu add_layout = new Menu (Messages .AddLayout , ImageCache .getImageView (ImageCache .class , "/icons/add_layout .png" ));
207207
208208 /**
209209 * List of memento names
@@ -229,6 +229,11 @@ public class PhoebusApplication extends Application {
229229 */
230230 private MenuButton layout_menu_button ;
231231
232+ /**
233+ * Toolbar button for adding past layouts
234+ */
235+ private MenuButton add_layout_menu_button ;
236+
232237 /**
233238 * Last file used by 'File, Open' menu
234239 * (the _directory_ is actually used by the file-open dialog)
@@ -759,6 +764,7 @@ void createLoadLayoutsMenu() {
759764 final List <MenuItem > menuItemList = new ArrayList <>();
760765 final List <MenuItem > toolbarMenuItemList = new ArrayList <>();
761766 final List <MenuItem > addLayoutMenuItemList = new ArrayList <>();
767+ final List <MenuItem > toolbarAddLayoutMenuItemList = new ArrayList <>();
762768
763769 final Map <String , File > layoutFiles = new HashMap <String , File >();
764770
@@ -822,6 +828,12 @@ void createLoadLayoutsMenu() {
822828 addLayoutMenuItem .setMnemonicParsing (false );
823829 addLayoutMenuItem .setOnAction (event -> startAddingLayout (file ));
824830 addLayoutMenuItemList .add (addLayoutMenuItem );
831+
832+ // Repeat for the same menu in the toolbar. They can't share menu items.
833+ final MenuItem toolbarAddLayoutMenuItem = new MenuItem (filename );
834+ toolbarAddLayoutMenuItem .setMnemonicParsing (false );
835+ toolbarAddLayoutMenuItem .setOnAction (event -> startAddingLayout (file ));
836+ toolbarAddLayoutMenuItemList .add (toolbarAddLayoutMenuItem );
825837 }
826838 });
827839 }
@@ -832,6 +844,7 @@ void createLoadLayoutsMenu() {
832844 load_layout .getItems ().setAll (menuItemList );
833845 add_layout .getItems ().setAll (addLayoutMenuItemList );
834846 layout_menu_button .getItems ().setAll (toolbarMenuItemList );
847+ add_layout_menu_button .getItems ().setAll (toolbarAddLayoutMenuItemList );
835848 delete_layouts .setDisable (memento_files .isEmpty ());
836849 });
837850 });
@@ -965,6 +978,12 @@ private ToolBar createToolbar() {
965978 if (! Preferences .toolbar_entries .contains ("!Layouts" ))
966979 toolBar .getItems ().add (layout_menu_button );
967980
981+ add_layout_menu_button = new MenuButton (null , ImageCache .getImageView (getClass (), "/icons/add_layout.png" ));
982+ add_layout_menu_button .setTooltip (new Tooltip (Messages .AddLayout ));
983+ if (Preferences .toolbar_entries .contains ("Add Layouts" ) && !Preferences .toolbar_entries .contains ("!Add Layouts" )) {
984+ toolBar .getItems ().add (add_layout_menu_button );
985+ }
986+
968987 // Contributed Entries
969988 ToolbarEntryService .getInstance ().listToolbarEntries ().forEach ((entry ) -> {
970989 final AtomicBoolean open_new = new AtomicBoolean ();
0 commit comments