public void ShowSettingsWindow()
        {
            while (true)
            {
                var win = new SettingsWindow();
                if (this.IsLoaded)
                {
                    win.Owner = this;
                }
                MasterOverrideOptions oldOptions = MasterOverrideOptions.CreateFromSettings();
                win.ShowDialog();

                if (win.DialogResult.HasValue && win.DialogResult.Value)
                {
                    if (ActiveMedia is SongMedia && !oldOptions.Equals(MasterOverrideOptions.CreateFromSettings()))
                    {
                        ReloadActiveMedia();
                    }

                    DataManager.SongTemplate = new FileInfo(Properties.Settings.Default.SongTemplateFile);

                    if (Controller.TryUpdateServerSettings())
                    {
                        break;
                    }
                    else
                    {
                        MessageBox.Show(Resource.seMsgInitServerError);
                    }
                }
            }
        }
        void ApplySongTemplateMaster(Song song, MasterOverrideOptions options)
        {
            SongFormatting master  = Song.CreateFromTemplate().Formatting;
            var            changed = song.Formatting;

            if (options.TextFormatting)
            {
                changed.MainText        = master.MainText;
                changed.TranslationText = master.TranslationText;
            }
            if (options.TextPosition)
            {
                changed.HorizontalOrientation  = master.HorizontalOrientation;
                changed.VerticalOrientation    = master.VerticalOrientation;
                changed.TextLineSpacing        = master.TextLineSpacing;
                changed.TranslationPosition    = master.TranslationPosition;
                changed.TranslationLineSpacing = master.TranslationLineSpacing;
            }
            if (options.SourceFormatting)
            {
                changed.SourceText = master.SourceText;
            }
            if (options.SourcePosition)
            {
                changed.SourceDisplayPosition = master.SourceDisplayPosition;
                changed.SourceBorderRight     = master.SourceBorderRight;
                changed.SourceBorderTop       = master.SourceBorderTop;
            }
            if (options.CopyrightFormatting)
            {
                changed.CopyrightText = master.CopyrightText;
            }
            if (options.CopyrightPosition)
            {
                changed.CopyrightDisplayPosition = master.CopyrightDisplayPosition;
                changed.CopyrightBorderBottom    = master.CopyrightBorderBottom;
            }
            if (options.OutlineShadow)
            {
                changed.IsOutlineEnabled = master.IsOutlineEnabled;
                changed.IsShadowEnabled  = master.IsShadowEnabled;
                changed.OutlineColor     = master.OutlineColor;
                changed.ShadowColor      = master.ShadowColor;
                changed.ShadowDirection  = master.ShadowDirection;
            }

            song.Formatting = changed;
        }
        void MediaManager_MediaLoaded(object sender, MediaEventArgs args)
        {
            if (args.Media is SongMedia)
            {
                Song song = (args.Media as SongMedia).Song;

                if (UsePortfolioBackground == true)
                {
                    song.SetBackground(portfolioBackground);
                }

                if (Properties.Settings.Default.TemplateMasterEnable)
                {
                    ApplySongTemplateMaster(song, MasterOverrideOptions.CreateFromSettings());
                }
            }
        }