Isolate Theme syncing with ActiveTheme to AppController instance only
This commit is contained in:
parent
568236ba80
commit
562121fd2b
2 changed files with 13 additions and 5 deletions
|
|
@ -90,7 +90,7 @@ namespace MatterHackers.MatterControl
|
|||
{
|
||||
private Dictionary<Type, HashSet<IObject3DEditor>> objectEditorsByType;
|
||||
|
||||
public ThemeConfig Theme { get; set; } = new ThemeConfig();
|
||||
public ThemeConfig Theme { get; set; }
|
||||
|
||||
public RunningTasksConfig Tasks { get; set; } = new RunningTasksConfig();
|
||||
|
||||
|
|
@ -689,6 +689,16 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
public ApplicationController()
|
||||
{
|
||||
// Initialize the AppContext theme object which will sync its content with Agg ActiveTheme changes
|
||||
this.Theme = new ThemeConfig();
|
||||
|
||||
ActiveTheme.ThemeChanged.RegisterEvent((s, e) =>
|
||||
{
|
||||
this.Theme.RebuildTheme(ActiveTheme.Instance);
|
||||
}, ref unregisterEvents);
|
||||
|
||||
this.Theme.RebuildTheme(ActiveTheme.Instance);
|
||||
|
||||
Object3D.AssetsPath = Path.Combine(ApplicationDataStorage.Instance.ApplicationLibraryDataPath, "Assets");
|
||||
|
||||
ScrollBar.DefaultMargin = new BorderDouble(right: 1);
|
||||
|
|
|
|||
|
|
@ -138,13 +138,11 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
public ThemeConfig()
|
||||
{
|
||||
ActiveTheme.ThemeChanged.RegisterEvent((s, e) => RebuildTheme(), ref unregisterEvents);
|
||||
RebuildTheme();
|
||||
}
|
||||
|
||||
public void RebuildTheme()
|
||||
public void RebuildTheme(IThemeColors colors)
|
||||
{
|
||||
var colors = this.Colors = ActiveTheme.Instance;
|
||||
this.Colors = colors;
|
||||
|
||||
DefaultThumbView.ThumbColor = new Color(colors.PrimaryTextColor, 30);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue