- mode_button = gtk_ui_manager_get_widget ( vw->uim, "/ui/MainMenu/View/SetShow/ShowCenterMark" );
- g_assert ( mode_button );
- gtk_check_menu_item_set_active ( GTK_CHECK_MENU_ITEM(mode_button),vik_viewport_get_draw_centermark(vw->viking_vvp) );
-
- mode_button = gtk_ui_manager_get_widget ( vw->uim, "/ui/MainMenu/View/SetShow/ShowHighlight" );
- g_assert ( mode_button );
- gtk_check_menu_item_set_active ( GTK_CHECK_MENU_ITEM(mode_button),vik_viewport_get_draw_highlight (vw->viking_vvp) );
+ // Slightly long winded methods to align loaded viewport settings with the UI
+ // Since the rewrite for toolbar + menu actions
+ // there no longer exists a simple way to directly change the UI to a value for toggle settings
+ // it only supports toggling the existing setting (otherwise get infinite loops in trying to align tb+menu elements)
+ // Thus get state, compare them, if different then invert viewport setting and (re)sync the setting (via toggling)
+ gboolean vp_state_scale = vik_viewport_get_draw_scale ( vw->viking_vvp );
+ gboolean ui_state_scale = gtk_check_menu_item_get_active ( GTK_CHECK_MENU_ITEM(get_show_widget_by_name(vw, "ShowScale")) );
+ if ( vp_state_scale != ui_state_scale ) {
+ vik_viewport_set_draw_scale ( vw->viking_vvp, !vp_state_scale );
+ toggle_draw_scale ( NULL, vw );
+ }
+ gboolean vp_state_centermark = vik_viewport_get_draw_centermark ( vw->viking_vvp );
+ gboolean ui_state_centermark = gtk_check_menu_item_get_active ( GTK_CHECK_MENU_ITEM(get_show_widget_by_name(vw, "ShowCenterMark")) );
+ if ( vp_state_centermark != ui_state_centermark ) {
+ vik_viewport_set_draw_centermark ( vw->viking_vvp, !vp_state_centermark );
+ toggle_draw_centermark ( NULL, vw );
+ }
+ gboolean vp_state_highlight = vik_viewport_get_draw_highlight ( vw->viking_vvp );
+ gboolean ui_state_highlight = gtk_check_menu_item_get_active ( GTK_CHECK_MENU_ITEM(get_show_widget_by_name(vw, "ShowHighlight")) );
+ if ( vp_state_highlight != ui_state_highlight ) {
+ vik_viewport_set_draw_highlight ( vw->viking_vvp, !vp_state_highlight );
+ toggle_draw_highlight ( NULL, vw );
+ }