示例#1
0
        /// <summary>
        /// Adds the or update display prefs.
        /// </summary>
        /// <param name="user">The user.</param>
        /// <param name="data">The data.</param>
        /// <exception cref="System.ArgumentNullException"></exception>
        public void AddOrUpdateDisplayPreferences(User user, DisplayPreferences data)
        {
            if (user == null)
            {
                throw new ArgumentNullException();
            }

            if (data == null)
            {
                throw new ArgumentNullException();
            }

            data.UserId = user.Id;

            if (DisplayPreferences == null)
            {
                DisplayPreferences = new[] { data };
            }
            else
            {
                var list = DisplayPreferences.Where(u => u.UserId != user.Id).ToList();
                list.Add(data);
                DisplayPreferences = list;
            }
        }
示例#2
0
        /// <summary>
        /// Save the display preferences associated with an item in the repo
        /// </summary>
        /// <param name="displayPreferences">The display preferences.</param>
        /// <param name="userId">The user id.</param>
        /// <param name="client">The client.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>Task.</returns>
        /// <exception cref="ArgumentNullException">item</exception>
        public void SaveDisplayPreferences(DisplayPreferences displayPreferences, Guid userId, string client, CancellationToken cancellationToken)
        {
            if (displayPreferences == null)
            {
                throw new ArgumentNullException(nameof(displayPreferences));
            }

            if (string.IsNullOrEmpty(displayPreferences.Id))
            {
                throw new ArgumentException("Display preferences has an invalid Id", nameof(displayPreferences));
            }

            cancellationToken.ThrowIfCancellationRequested();

            using (WriteLock.Write())
            {
                using (var connection = CreateConnection())
                {
                    connection.RunInTransaction(db =>
                    {
                        SaveDisplayPreferences(displayPreferences, userId, client, db);
                    }, TransactionMode);
                }
            }
        }
示例#3
0
        private async Task NavigateToItemInternal(BaseItemDto item, ViewType context)
        {
            // Grab it fresh from the server to make sure we have the full record
            item = await _apiClient.GetItemAsync(item.Id, _apiClient.CurrentUserId);

            if (item.IsFolder)
            {
                DisplayPreferences displayPreferences;

                try
                {
                    displayPreferences = await _presentationManager.GetDisplayPreferences(item.DisplayPreferencesId, CancellationToken.None);
                }
                catch
                {
                    // Already logged at lower levels
                    displayPreferences = new DisplayPreferences()
                    {
                        Id = new Guid(item.DisplayPreferencesId)
                    };
                }

                await App.Instance.ApplicationWindow.Dispatcher.InvokeAsync(async() => await Navigate(_themeManager.CurrentTheme.GetFolderPage(item, context, displayPreferences)));
            }
            else
            {
                await App.Instance.ApplicationWindow.Dispatcher.InvokeAsync(async() => await Navigate(_themeManager.CurrentTheme.GetItemPage(item, context)));
            }
        }
示例#4
0
        /// <summary>
        /// Gets the display prefs.
        /// </summary>
        /// <param name="user">The user.</param>
        /// <param name="createIfNull">if set to <c>true</c> [create if null].</param>
        /// <returns>DisplayPreferences.</returns>
        /// <exception cref="System.ArgumentNullException"></exception>
        public DisplayPreferences GetDisplayPreferences(User user, bool createIfNull)
        {
            if (user == null)
            {
                throw new ArgumentNullException();
            }

            if (DisplayPreferences == null)
            {
                if (!createIfNull)
                {
                    return(null);
                }

                AddOrUpdateDisplayPreferences(user, new DisplayPreferences {
                    UserId = user.Id
                });
            }

            var data = DisplayPreferences.FirstOrDefault(u => u.UserId == user.Id);

            if (data == null && createIfNull)
            {
                data = new DisplayPreferences {
                    UserId = user.Id
                };
                AddOrUpdateDisplayPreferences(user, data);
            }

            return(data);
        }
示例#5
0
        private Task <ItemsResult> GetMoviesByGenre(ItemListViewModel viewModel, DisplayPreferences displayPreferences)
        {
            var apiClient = _sessionFactory().ActiveApiClient;

            var query = new ItemQuery
            {
                Fields = FolderPage.QueryFields,

                UserId = _sessionFactory().LocalUserId,

                IncludeItemTypes = new[] { "Movie" },

                SortBy = !String.IsNullOrEmpty(displayPreferences.SortBy)
                             ? new[] { displayPreferences.SortBy }
                             : new[] { ItemSortBy.SortName },

                SortOrder = displayPreferences.SortOrder,

                Recursive = true
            };

            var indexOption = viewModel.CurrentIndexOption;

            if (indexOption != null)
            {
                query.Genres = new[] { indexOption.Name };
            }

            return(apiClient.GetItemsAsync(query, CancellationToken.None));
        }
示例#6
0
        private Task <ItemsResult> GetMoviesByYear(ItemListViewModel viewModel, DisplayPreferences displayPreferences)
        {
            var query = new ItemQuery
            {
                Fields = FolderPage.QueryFields,

                UserId = _sessionManager.CurrentUser.Id,

                IncludeItemTypes = new[] { "Movie" },

                SortBy = !String.IsNullOrEmpty(displayPreferences.SortBy)
                             ? new[] { displayPreferences.SortBy }
                             : new[] { ItemSortBy.SortName },

                SortOrder = displayPreferences.SortOrder,

                Recursive = true,
                ParentId  = ParentId
            };

            var indexOption = viewModel.CurrentIndexOption;

            if (indexOption != null)
            {
                query.Years = new[] { int.Parse(indexOption.Name) };
            }

            return(ApiClient.GetItemsAsync(query, CancellationToken.None));
        }
        private Task <ItemsResult> GetSeriesByGenre(ItemListViewModel viewModel, DisplayPreferences displayPreferences)
        {
            var query = new ItemQuery
            {
                Fields = FolderPage.QueryFields,

                UserId = _sessionManager.CurrentUser.Id,

                IncludeItemTypes = new[] { "Series" },

                SortBy = !String.IsNullOrEmpty(displayPreferences.SortBy)
                             ? new[] { displayPreferences.SortBy }
                             : new[] { ItemSortBy.SortName },

                SortOrder = displayPreferences.SortOrder,

                Recursive = true
            };

            var indexOption = viewModel.CurrentIndexOption;

            if (indexOption != null)
            {
                query.Genres = new[] { indexOption.Name };
            }

            return(ApiClient.GetItemsAsync(query));
        }
示例#8
0
        public DisplayPreferencesViewModel(DisplayPreferences displayPreferences, IPresentationManager presentation)
        {
            DisplayPreferences = displayPreferences;
            _presentation      = presentation;

            SaveCommand = new RelayCommand(obj => Save());
            IncreaseImageSizeCommand     = new RelayCommand(obj => IncreaseImageSize());
            DecreaseImageSizeCommand     = new RelayCommand(obj => DecreaseImageSize());
            ToggleScrollDirectionCommand = new RelayCommand(obj => ToggleScrollDirection());
        }
示例#9
0
        /// <summary>
        /// Get structure bitmap with optional caption
        /// </summary>
        /// <param name="pixWidth"></param>
        /// <param name="pixHeight"></param>
        /// <param name="desiredBondLength">Desired length in milliinches</param>
        /// <param name="cellStyle"></param>
        /// <param name="caption"></param>
        /// <returns></returns>

        public Bitmap GetFixedHeightMoleculeBitmap(
            int pixWidth,
            int pixHeight,
            DisplayPreferences dp,
            CellStyleMx cellStyle,
            string caption)
        {
            const int minWidth = 100, minHeight = 100;

            if (pixWidth < minWidth)
            {
                pixWidth = minWidth;
            }
            if (pixHeight < minHeight)
            {
                pixHeight = minHeight;
            }

            Bitmap bm = null;

            if (cellStyle == null)
            {
                Font font = new Font("Tahoma", 8.25f);
                cellStyle = new CellStyleMx(font, Color.Black, Color.Empty);
            }

            if (dp == null)
            {
                dp = new DisplayPreferences();
                //SetStandardDisplayPreferences(dp);
            }

            //if (Lex.Contains(qc.Criteria, "SSS")) // no H display if SS query
            //  dp.HydrogenDisplayMode = HydrogenDisplayMode.Off;
            if (String.IsNullOrEmpty(caption))
            {
                bm = GetMoleculeBitmap(pixWidth, pixHeight, dp);
            }

            else
            {
                bm = GetMoleculeBitmap(pixWidth, pixHeight + 20, dp);                 // get image with a bit of extra height for text

                Rectangle captionRect = new Rectangle(2, 0, pixWidth, pixHeight);     // show the text part
                Graphics  g           = System.Drawing.Graphics.FromImage(bm);
                Brush     brush       = Brushes.Black;
                if (cellStyle.ForeColor == Color.Blue)
                {
                    brush = Brushes.Blue;
                }
                g.DrawString(caption, cellStyle.Font, brush, captionRect);
            }

            return(bm);
        }
        /// <summary>
        /// Gets the folder page.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <param name="context">The context.</param>
        /// <param name="displayPreferences">The display preferences.</param>
        /// <returns>Page.</returns>
        public Page GetFolderPage(BaseItemDto item, ViewType context, DisplayPreferences displayPreferences)
        {
            if (!_folderTypesWithDetailPages.Contains(item.Type, StringComparer.OrdinalIgnoreCase))
            {
                var options = GetListPageConfig(item, context);

                return(new FolderPage(item, displayPreferences, _apiClient, _imageManager, _sessionManager, _presentationManager, _navService, _playbackManager, _logger, _serverEvents, options));
            }

            return(GetItemPage(item, context));
        }
示例#11
0
 public virtual void SaveDisplayPrefs(DisplayPreferences prefs)
 {
     try
     {
         Kernel.Instance.MB3ApiRepository.SaveDisplayPreferences(DisplayPreferencesId, DisplayPreferences);
     }
     catch (Exception e)
     {
         Logger.ReportException("Unable to save display prefs for {0}", e, Name);
     }
 }
示例#12
0
        /// <summary>
        /// Saves display preferences for a Folder
        /// </summary>
        /// <param name="user">The user.</param>
        /// <param name="folder">The folder.</param>
        /// <param name="data">The data.</param>
        /// <returns>Task.</returns>
        public Task SaveDisplayPreferencesForFolder(User user, Folder folder, DisplayPreferences data)
        {
            // Need to update all items with the same DisplayPreferencesId
            foreach (var child in RootFolder.GetRecursiveChildren(user)
                     .OfType <Folder>()
                     .Where(i => i.DisplayPreferencesId == folder.DisplayPreferencesId))
            {
                child.AddOrUpdateDisplayPreferences(user, data);
            }

            return(Kernel.DisplayPreferencesRepository.SaveDisplayPreferences(folder, CancellationToken.None));
        }
        public FolderPage(BaseItemDto parent, DisplayPreferences displayPreferences, IApiClient apiClient, IImageManager imageManager, ISessionManager sessionManager, IPresentationManager presentation, INavigationService navigationManager, IPlaybackManager playbackManager, ILogger logger, IServerEvents serverEvents, ListPageConfig options)
        {
            _navigationManager   = navigationManager;
            _playbackManager     = playbackManager;
            _logger              = logger;
            _serverEvents        = serverEvents;
            _presentationManager = presentation;
            _sessionManager      = sessionManager;
            _imageManager        = imageManager;
            _apiClient           = apiClient;
            _options             = options;
            _displayPreferences  = displayPreferences;

            _parentItem = parent;

            InitializeComponent();

            Loaded   += FolderPage_Loaded;
            Unloaded += FolderPage_Unloaded;

            SetDefaults(displayPreferences);

            _viewModel = new ItemListViewModel(GetItemsAsync, _presentationManager, _imageManager, _apiClient, _navigationManager, _playbackManager, _logger, _serverEvents)
            {
                ImageDisplayHeightGenerator  = GetImageDisplayHeight,
                DisplayNameGenerator         = GetDisplayName,
                PreferredImageTypesGenerator = GetPreferredImageTypes,

                ShowSidebarGenerator     = GetShowSidebar,
                ScrollDirectionGenerator = GetScrollDirection,

                AutoSelectFirstItem = true,

                ShowLoadingAnimation = true
            };

            _viewModel.AddIndexOptions(options.IndexOptions);

            _viewModel.PropertyChanged += _viewModel_PropertyChanged;

            _viewModel.DisplayPreferences = displayPreferences;

            DataContext = _viewModel;

            UpdateSortTitle();
            UpdateSortOrder();

            BtnSort.Visibility = _options.SortOptions.Count > 0
                                     ? Visibility.Visible
                                     : Visibility.Collapsed;

            BtnSort.Click += BtnSort_Click;
        }
示例#14
0
        public DisplayPreferencesViewModel(DisplayPreferences displayPreferences, IPresentationManager presentation, ITheaterConfigurationManager configurationManager, ISessionManager sessionManager)
        {
            DisplayPreferences    = displayPreferences;
            _presentation         = presentation;
            _configurationManager = configurationManager;
            _sessionManager       = sessionManager;
            _userConfig           = configurationManager.GetUserTheaterConfiguration(sessionManager.CurrentUser.Id);

            SaveCommand = new RelayCommand(obj => Save());
            IncreaseImageSizeCommand     = new RelayCommand(obj => IncreaseImageSize());
            DecreaseImageSizeCommand     = new RelayCommand(obj => DecreaseImageSize());
            ToggleScrollDirectionCommand = new RelayCommand(obj => ToggleScrollDirection());
        }
示例#15
0
        private void SaveDisplayPreferences(DisplayPreferences displayPreferences, Guid userId, string client, IDatabaseConnection connection)
        {
            var serialized = _jsonSerializer.SerializeToBytes(displayPreferences);

            using (var statement = connection.PrepareStatement("replace into userdisplaypreferences (id, userid, client, data) values (@id, @userId, @client, @data)"))
            {
                statement.TryBind("@id", displayPreferences.Id.ToGuidBlob());
                statement.TryBind("@userId", userId.ToGuidBlob());
                statement.TryBind("@client", client);
                statement.TryBind("@data", serialized);

                statement.MoveNext();
            }
        }
示例#16
0
/// <summary>
/// Get the SVG for a molecule within a specified size rectangle (units important, eg. px, mm
/// </summary>
/// <param name="width"></param>
/// <param name="height"></param>
/// <param name="units"></param>
/// <param name="dp"></param>
/// <returns></returns>

        public string GetMoleculeSvg(
            int width             = -1,
            int height            = -1,
            string units          = Depiction.UnitsPixel,
            DisplayPreferences dp = null)
        {
            string svg = null;

            UpdateNativeMolecule();

            if (NativeMol == null || NativeMol.Atoms.Count == 0)
            {
                return(null);
            }

            //width = height = -1; // debug
            //units = null;

            //NativeMol.setProperty(CDKConstants.TITLE, "caffeine"); // title already set from input!

            // Use size and units if specified. If not defined then a mm size box just containing the structure will be defined in generated svg

            DepictionGenerator dptgen = new DepictionGenerator();

            if (width > 0 && height > 0)
            {
                dptgen.Size      = new System.Windows.Size(width, height);
                dptgen.FillToFit = true;
            }

            Depiction d = dptgen.Depict(NativeMol);

            if (Lex.IsDefined(units))
            {
                if (units != Depiction.UnitsPixel && units != Depiction.UnitsMM)
                {
                    throw new Exception("Invalid Depiction units: " + units);
                }

                svg = d.ToSvgString(units);                 // get SVG setting desired units in the XML
            }

            else
            {
                svg = d.ToSvgString();
            }

            return(svg);
        }
示例#17
0
        public FolderPage(BaseItemDto parent, DisplayPreferences displayPreferences, IApiClient apiClient, IImageManager imageManager, IPresentationManager presentation, INavigationService navigationManager, IPlaybackManager playbackManager, ILogger logger, ListPageConfig options)
        {
            _logger = logger;
            _presentationManager = presentation;
            _imageManager        = imageManager;
            _apiClient           = apiClient;
            _options             = options;

            _parentItem = parent;

            InitializeComponent();

            Loaded += FolderPage_Loaded;

            SetDefaults(displayPreferences);

            var playAllFromHere = parent.IsType("playlist") || parent.IsType("musicalbum");

            _viewModel = new ItemListViewModel(vm => options.CustomItemQuery(vm, displayPreferences), _presentationManager, _imageManager, _apiClient, navigationManager, playbackManager, _logger)
            {
                ImageDisplayHeightGenerator  = GetImageDisplayHeight,
                DisplayNameGenerator         = options.DisplayNameGenerator ?? GetDisplayName,
                PreferredImageTypesGenerator = GetPreferredImageTypes,

                ShowSidebarGenerator     = GetShowSidebar,
                ScrollDirectionGenerator = GetScrollDirection,

                AutoSelectFirstItem = true,

                ShowLoadingAnimation = true,

                PlayAllFromHereOnPlayCommand     = playAllFromHere,
                PlayAllFromHereOnNavigateCommand = playAllFromHere
            };

            _viewModel.AddIndexOptions(options.IndexOptions);

            _viewModel.PropertyChanged += _viewModel_PropertyChanged;

            _viewModel.DisplayPreferences = displayPreferences;

            if (!string.IsNullOrEmpty(options.IndexValue))
            {
                var index = options.IndexOptions.First(i => string.Equals(i.Name, options.IndexValue));
                _viewModel.IndexOptionsCollectionView.MoveCurrentTo(index);
            }

            DataContext = _viewModel;
        }
示例#18
0
        /// <inheritdoc />
        public DisplayPreferences GetDisplayPreferences(Guid userId, Guid itemId, string client)
        {
            var prefs = _dbContext.DisplayPreferences
                        .Include(pref => pref.HomeSections)
                        .FirstOrDefault(pref =>
                                        pref.UserId.Equals(userId) && string.Equals(pref.Client, client) && pref.ItemId.Equals(itemId));

            if (prefs == null)
            {
                prefs = new DisplayPreferences(userId, itemId, client);
                _dbContext.DisplayPreferences.Add(prefs);
            }

            return(prefs);
        }
示例#19
0
        protected override void LoadDisplayPreferences()
        {
            Logger.ReportInfo("Loading display prefs for " + this.Path);

            Guid id = Id;

            if (Config.Instance.EnableSyncViews)           
                id = baseItem.GetType().FullName.GetMD5();

            DisplayPreferences dp = Kernel.Instance.ItemRepository.RetrieveDisplayPreferences(id);
            if (dp == null) {
                LoadDefaultDisplayPreferences(ref id, ref dp);
            }
            this.DisplayPrefs = dp;
        }
示例#20
0
        /// <inheritdoc />
        public DisplayPreferences GetDisplayPreferences(Guid userId, string client)
        {
            using var dbContext = _dbProvider.CreateContext();
            var prefs = dbContext.DisplayPreferences
                        .Include(pref => pref.HomeSections)
                        .FirstOrDefault(pref =>
                                        pref.UserId == userId && string.Equals(pref.Client, client));

            if (prefs == null)
            {
                prefs = new DisplayPreferences(userId, client);
                dbContext.DisplayPreferences.Add(prefs);
            }

            return(prefs);
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        public Main()
        {
            // Setup device
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";

            // Capture device settings event
            graphics.PreparingDeviceSettings += new EventHandler <PreparingDeviceSettingsEventArgs>(Graphics_PreparingDeviceSettings);

            // Read INI file
            ReadINISettings();

            // Timing
            this.IsFixedTimeStep = true;
            graphics.SynchronizeWithVerticalRetrace = true;
            this.Window.Title = title;

            // Set display mode
            displayPreference = (windowedMode) ? DisplayPreferences.Windowed : DisplayPreferences.Fullscreen;

            // Create engine core
            core = new DeepCore(arena2Path, this.Services);

            // Create game state manager
            gameManager = new GameStateManager(this);
            Components.Add(gameManager);

            // Create game states
            titleScreen     = new TitleScreen1(core, this);
            playground1     = new Playground1(core, this);
            playground2     = new Playground2(core, this);
            gameOptionsMenu = new ExitMenu(core, this);

            // Apply settings
            playground1.MouseLookSpeed = mouseLookSpeed;
            playground2.MouseLookSpeed = mouseLookSpeed;

            // Setup title events
            titleScreen.OnStartClicked += new EventHandler(TitleScreen_OnStartClicked);
            titleScreen.OnExitClicked  += new EventHandler(TitleScreen_OnExitClicked);

            // Set initial game state
            gameManager.ChangeState(titleScreen);
        }
        private Task <ItemsResult> GetAllActors(ItemListViewModel viewModel, DisplayPreferences displayPreferences)
        {
            var fields = FolderPage.QueryFields.ToList();

            fields.Remove(ItemFields.Overview);
            fields.Remove(ItemFields.DisplayPreferencesId);
            fields.Remove(ItemFields.DateCreated);

            var query = new PersonsQuery
            {
                Fields = fields.ToArray(),

                IncludeItemTypes = new[] { "Series", "Episode" },

                SortBy = !String.IsNullOrEmpty(displayPreferences.SortBy)
                             ? new[] { displayPreferences.SortBy }
                             : new[] { ItemSortBy.SortName },

                SortOrder = displayPreferences.SortOrder,

                Recursive = true,

                UserId = _sessionManager.CurrentUser.Id,

                PersonTypes = new[] { PersonType.Actor, PersonType.GuestStar }
            };

            var indexOption = viewModel.CurrentIndexOption;

            if (indexOption != null)
            {
                if (string.Equals(indexOption.Name, "#", StringComparison.OrdinalIgnoreCase))
                {
                    query.NameLessThan = "A";
                }
                else
                {
                    query.NameStartsWithOrGreater = indexOption.Name;
                    query.NameLessThan            = indexOption.Name + "zz";
                }
            }

            return(ApiClient.GetPeopleAsync(query));
        }
示例#23
0
        public DisplayPreferences RetrieveDisplayPreferences(DisplayPreferences dp)
        {
            var cmd = connection.CreateCommand();

            cmd.CommandText = "select view_type, show_labels, vertical_scroll, sort_order, index_by, use_banner, thumb_constraint_width, thumb_constraint_height, use_coverflow, use_backdrop from display_prefs where guid = @guid";
            cmd.AddParam("@guid", dp.Id);

            using (var reader = cmd.ExecuteReader())
            {
                if (reader.Read())
                {
                    try
                    {
                        dp.ViewType.Chosen = ViewTypeNames.GetName((ViewType)Enum.Parse(typeof(ViewType), reader.GetString(0)));
                    }
                    catch
                    {
                        dp.ViewType.Chosen = ViewTypeNames.GetName(MediaBrowser.Library.ViewType.Poster);
                    }
                    dp.ShowLabels.Value     = reader.GetBoolean(1);
                    dp.VerticalScroll.Value = reader.GetBoolean(2);
                    try
                    {
                        dp.SortOrder = reader.GetString(3);
                    }
                    catch { }
                    if (Config.Instance.RememberIndexing)
                    {
                        dp.IndexBy = reader.GetString(4);
                    }
                    else
                    {
                        dp.IndexBy = "None";
                    }

                    dp.UseBanner.Value       = reader.GetBoolean(5);
                    dp.ThumbConstraint.Value = new Microsoft.MediaCenter.UI.Size(reader.GetInt32(6), reader.GetInt32(7));
                    dp.UseCoverflow.Value    = reader.GetBoolean(8);
                    dp.UseBackdrop.Value     = reader.GetBoolean(9);
                }
            }

            return(dp);
        }
示例#24
0
        public void SaveDisplayPreferences(DisplayPreferences dp)
        {
            var cmd = connection.CreateCommand();

            cmd.CommandText = "replace into display_prefs (guid, view_type, show_labels, vertical_scroll, sort_order, index_by, use_banner, thumb_constraint_width, thumb_constraint_height, use_coverflow, use_backdrop) values (@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11)";
            cmd.AddParam("@1", dp.Id);
            cmd.AddParam("@2", ViewTypeNames.GetEnum((string)dp.ViewType.Chosen).ToString());
            cmd.AddParam("@3", dp.ShowLabels.Value);
            cmd.AddParam("@4", dp.VerticalScroll.Value);
            cmd.AddParam("@5", dp.SortOrder.ToString());
            cmd.AddParam("@6", dp.IndexByString);
            cmd.AddParam("@7", dp.UseBanner.Value);
            cmd.AddParam("@8", dp.ThumbConstraint.Value.Width);
            cmd.AddParam("@9", dp.ThumbConstraint.Value.Height);
            cmd.AddParam("@10", dp.UseCoverflow.Value);
            cmd.AddParam("@11", dp.UseBackdrop.Value);

            QueueCommand(cmd);
        }
示例#25
0
        protected virtual void ShowUserMenu()
        {
            var page = NavigationService.CurrentPage as IHasDisplayPreferences;
            DisplayPreferences displayPreferences = null;
            ListPageConfig     options            = null;

            if (page != null)
            {
                displayPreferences = page.GetDisplayPreferences();
                options            = page.GetListPageConfig();
            }

            var userProfileWindow = new UserProfileWindow(this, SessionManager, PresentationManager, ImageManager,
                                                          ApiClient, ConfigurationManager, displayPreferences, options);

            userProfileWindow.Closed += userProfileWindow_Closed;

            userProfileWindow.ShowModal(PresentationManager.Window);
        }
示例#26
0
        /// <summary>
        /// Render molecule into bitmap of specified size.
        /// </summary>
        /// <param name="bitmapWidth"></param>
        /// <param name="bitmapHeight"></param>
        /// <param name="dp"></param>
        /// <returns></returns>

        public Bitmap GetMoleculeBitmap(
            int bitmapWidth,
            int bitmapHeight,
            DisplayPreferences dp = null)
        {
            byte[]     ba;
            FileStream fs;
            float      top, bottom, left, right, height, width, strBottom, hCenter, drop, stdBndLen, scale, fontSize, bondThickness;
            int        txtLen;
            Bitmap     bm;

            UpdateNativeMolecule();

            if (NativeMol == null || NativeMol.Atoms.Count == 0)
            {
                return(null);
            }

            //NativeMol.setProperty(CDKConstants.TITLE, "caffeine"); // title already set from input!

            DepictionGenerator dptgen = new DepictionGenerator();

            dptgen.Size = new System.Windows.Size(bitmapWidth, bitmapHeight);

            Depiction d = dptgen.Depict(NativeMol);

            dptgen.Size      = new System.Windows.Size(bitmapWidth, bitmapHeight);
            dptgen.FillToFit = true;

            //string svg = d.ToSvgString();
            //bm = SvgUtil.GetBitmapFromSvgXml(svg, bitmapWidth);

            //System.Windows.Media.Imaging.RenderTargetBitmap rtBm = d.ToBitmap();

            string path = TempFile.GetTempFileName(ClientDirs.TempDir, "jpg", true);

            d.WriteTo("jpg", path);
            bm = new Bitmap(path);

            return(bm);
        }
示例#27
0
        public void SaveDisplayPreferences(DisplayPreferences dp)
        {
            var cmd = connection.CreateCommand();

            cmd.CommandText = "replace into display_prefs (guid, view_type, show_labels, vertical_scroll, sort_order, index_by, use_banner, thumb_constraint_width, thumb_constraint_height, use_coverflow, use_backdrop) values (@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11)";
            cmd.AddParam("@1", dp.Id);
            cmd.AddParam("@2", ViewTypeNames.GetEnum((string)dp.ViewType.Chosen).ToString());
            cmd.AddParam("@3", dp.ShowLabels.Value);
            cmd.AddParam("@4", dp.VerticalScroll.Value);
            cmd.AddParam("@5", dp.SortOrder.ToString());
            cmd.AddParam("@6", dp.IndexByString);
            cmd.AddParam("@7", dp.UseBanner.Value);
            cmd.AddParam("@8", dp.ThumbConstraint.Value.Width);
            cmd.AddParam("@9", dp.ThumbConstraint.Value.Height);
            cmd.AddParam("@10", dp.UseCoverflow.Value);
            cmd.AddParam("@11", dp.UseBackdrop.Value);

            QueueCommand(cmd);

            //custom prefs
            //var delCmd = connection.CreateCommand();
            //delCmd.CommandText = "delete from custom_display_prefs where guid = @guid";
            //delCmd.AddParam("@guid", dp.Id);
            //delCmd.ExecuteNonQuery();
            var insCmd = connection.CreateCommand();

            insCmd.CommandText = "insert or replace into custom_display_prefs(guid, parm_key, parm_value) values(@guid, @key, @value)";
            insCmd.AddParam("@guid", dp.Id);
            SQLiteParameter val = new SQLiteParameter("@value");

            insCmd.Parameters.Add(val);
            SQLiteParameter key = new SQLiteParameter("@key");

            insCmd.Parameters.Add(key);
            foreach (var pair in dp.CustomParms)
            {
                key.Value = pair.Key;
                val.Value = pair.Value;
                QueueCommand(insCmd);
            }
        }
示例#28
0
        private Task <ItemsResult> GetBoxSets(ItemListViewModel viewModel, DisplayPreferences displayPreferences)
        {
            var query = new ItemQuery
            {
                Fields = FolderPage.QueryFields,

                UserId = _sessionManager.CurrentUser.Id,

                IncludeItemTypes = new[] { "BoxSet" },

                SortBy = !String.IsNullOrEmpty(displayPreferences.SortBy)
                             ? new[] { displayPreferences.SortBy }
                             : new[] { ItemSortBy.SortName },

                SortOrder = displayPreferences.SortOrder,

                Recursive = true
            };

            return(ApiClient.GetItemsAsync(query));
        }
示例#29
0
        /// <summary>
        /// Gets the folder page.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <param name="context">The context.</param>
        /// <param name="displayPreferences">The display preferences.</param>
        /// <returns>Page.</returns>
        public Page GetFolderPage(BaseItemDto item, ViewType context, DisplayPreferences displayPreferences)
        {
            var apiClient = _connectionManager.GetApiClient(item);

            if (item.IsType("channel") || item.IsType("channelfolderitem"))
            {
                var options = GetChannelPageConfig(item, context);

                return(new FolderPage(item, displayPreferences, apiClient, _imageManager, _presentationManager, _navService, _playbackManager, _logger, options));
            }

            if (context == ViewType.Folders || !_folderTypesWithDetailPages.Contains(item.Type, StringComparer.OrdinalIgnoreCase))
            {
                var options = GetListPageConfig(item, context);

                return(new FolderPage(item, displayPreferences, apiClient, _imageManager, _presentationManager,
                                      _navService, _playbackManager, _logger, options));
            }

            return(GetItemPage(item, context));
        }
        private Task <ItemsResult> GetFavoriteArtists(ItemListViewModel viewModel, DisplayPreferences displayPreferences)
        {
            var query = new ArtistsQuery
            {
                Fields = FolderPage.QueryFields,

                UserId = _sessionManager.CurrentUser.Id,

                SortBy = !String.IsNullOrEmpty(displayPreferences.SortBy)
                             ? new[] { displayPreferences.SortBy }
                             : new[] { ItemSortBy.SortName },

                SortOrder = displayPreferences.SortOrder,

                Recursive = true,

                Filters = new[] { ItemFilter.IsFavorite }
            };

            return(ApiClient.GetArtistsAsync(query));
        }
 public DisplayPreferences RetrieveDisplayPreferences(DisplayPreferences dp) {
         return dp != null ? displayRepo.RetrieveDisplayPreferences(dp) : null;
 }
        public void SaveDisplayPreferences(DisplayPreferences dp)
        {
            var cmd = connection.CreateCommand();
            cmd.CommandText = "replace into display_prefs (guid, view_type, show_labels, vertical_scroll, sort_order, index_by, use_banner, thumb_constraint_width, thumb_constraint_height, use_coverflow, use_backdrop) values (@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11)";
            cmd.AddParam("@1", dp.Id);
            cmd.AddParam("@2", ViewTypeNames.GetEnum((string)dp.ViewType.Chosen).ToString());
            cmd.AddParam("@3", dp.ShowLabels.Value);
            cmd.AddParam("@4", dp.VerticalScroll.Value);
            cmd.AddParam("@5", dp.SortOrder.ToString());
            cmd.AddParam("@6", dp.IndexByString);
            cmd.AddParam("@7", dp.UseBanner.Value);
            cmd.AddParam("@8", dp.ThumbConstraint.Value.Width);
            cmd.AddParam("@9", dp.ThumbConstraint.Value.Height);
            cmd.AddParam("@10", dp.UseCoverflow.Value);
            cmd.AddParam("@11", dp.UseBackdrop.Value);

            QueueCommand(cmd);
        }
        public DisplayPreferences RetrieveDisplayPreferences(DisplayPreferences dp)
        {
            var cmd = connection.CreateCommand();
            cmd.CommandText = "select view_type, show_labels, vertical_scroll, sort_order, index_by, use_banner, thumb_constraint_width, thumb_constraint_height, use_coverflow, use_backdrop from display_prefs where guid = @guid";
            cmd.AddParam("@guid", dp.Id);

            using (var reader = cmd.ExecuteReader())
            {
                if (reader.Read())
                {
                    try
                    {
                        dp.ViewType.Chosen = ViewTypeNames.GetName((ViewType)Enum.Parse(typeof(ViewType), reader.GetString(0)));
                    }
                    catch
                    {
                        dp.ViewType.Chosen = ViewTypeNames.GetName(MediaBrowser.Library.ViewType.Poster);
                    }
                    dp.ShowLabels.Value = reader.GetBoolean(1);
                    dp.VerticalScroll.Value = reader.GetBoolean(2);
                    try
                    {
                        dp.SortOrder = reader.GetString(3);
                    }
                    catch { }
                    if (Config.Instance.RememberIndexing)
                        dp.IndexBy = reader.GetString(4);
                    else
                        dp.IndexBy = "None";

                    dp.UseBanner.Value = reader.GetBoolean(5);
                    dp.ThumbConstraint.Value = new Microsoft.MediaCenter.UI.Size(reader.GetInt32(6), reader.GetInt32(7));
                    dp.UseCoverflow.Value = reader.GetBoolean(8);
                    dp.UseBackdrop.Value = reader.GetBoolean(9);
                }
            }

            return dp;
        }
        public DisplayPreferences RetrieveDisplayPreferences(DisplayPreferences dp)
        {
            var cmd = connection.CreateCommand();
            cmd.CommandText = "select view_type, show_labels, vertical_scroll, sort_order, index_by, use_banner, thumb_constraint_width, thumb_constraint_height, use_coverflow, use_backdrop from display_prefs where guid = @guid";
            cmd.AddParam("@guid", dp.Id);

            using (var reader = cmd.ExecuteReader())
            {
                if (reader.Read())
                {
                    dp.StopListeningForChanges(); //turn this off or we'll trigger the save routine before everything is filled in
                    try
                    {
                        dp.ViewType.Chosen = ViewTypeNames.GetName((ViewType)Enum.Parse(typeof(ViewType), reader.GetString(0)));
                    }
                    catch
                    {
                        dp.ViewType.Chosen = ViewTypeNames.GetName(MediaBrowser.Library.ViewType.Poster);
                    }
                    dp.ShowLabels.Value = reader.GetBoolean(1);
                    dp.VerticalScroll.Value = reader.GetBoolean(2);
                    try
                    {
                        dp.SortOrder = reader.GetString(3);
                    }
                    catch { }
                    if (Config.Instance.RememberIndexing)
                        dp.IndexBy = reader.GetString(4);
                    else
                        dp.IndexBy = Localization.LocalizedStrings.Instance.GetString("NoneDispPref");

                    dp.UseBanner.Value = reader.GetBoolean(5);
                    dp.ThumbConstraint.Value = new Microsoft.MediaCenter.UI.Size(reader.GetInt32(6), reader.GetInt32(7));
                    dp.UseCoverflow.Value = reader.GetBoolean(8);
                    dp.UseBackdrop.Value = reader.GetBoolean(9);

                    dp.ListenForChanges(); //turn back on
                }
            }

            cmd = connection.CreateCommand();
            cmd.CommandText = "select parm_key, parm_value from custom_display_prefs where guid = @guid";
            cmd.AddParam("@guid", dp.Id);

            using (var reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    try
                    {
                        dp.CustomParms[reader.GetString(0)] = reader.GetString(1);
                    }
                    catch (Exception e)
                    {
                        Logger.ReportException("Error reading custom display prefs.", e);
                    }
                }
            }

            return dp;
        }
        public void SaveDisplayPreferences(DisplayPreferences dp)
        {
            var cmd = connection.CreateCommand();
            cmd.CommandText = "replace into display_prefs (guid, view_type, show_labels, vertical_scroll, sort_order, index_by, use_banner, thumb_constraint_width, thumb_constraint_height, use_coverflow, use_backdrop) values (@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11)";
            cmd.AddParam("@1", dp.Id);
            cmd.AddParam("@2", ViewTypeNames.GetEnum((string)dp.ViewType.Chosen).ToString());
            cmd.AddParam("@3", dp.ShowLabels.Value);
            cmd.AddParam("@4", dp.VerticalScroll.Value);
            cmd.AddParam("@5", dp.SortOrder.ToString());
            cmd.AddParam("@6", dp.IndexByString);
            cmd.AddParam("@7", dp.UseBanner.Value);
            cmd.AddParam("@8", dp.ThumbConstraint.Value.Width);
            cmd.AddParam("@9", dp.ThumbConstraint.Value.Height);
            cmd.AddParam("@10", dp.UseCoverflow.Value);
            cmd.AddParam("@11", dp.UseBackdrop.Value);

            QueueCommand(cmd);

            //custom prefs
            //var delCmd = connection.CreateCommand();
            //delCmd.CommandText = "delete from custom_display_prefs where guid = @guid";
            //delCmd.AddParam("@guid", dp.Id);
            //delCmd.ExecuteNonQuery();
            var insCmd = connection.CreateCommand();
            insCmd.CommandText = "insert or replace into custom_display_prefs(guid, parm_key, parm_value) values(@guid, @key, @value)"; 
            insCmd.AddParam("@guid", dp.Id);
            SQLiteParameter val = new SQLiteParameter("@value");
            insCmd.Parameters.Add(val);
            SQLiteParameter key = new SQLiteParameter("@key");
            insCmd.Parameters.Add(key);
            foreach (var pair in dp.CustomParms)
            {
                key.Value = pair.Key;
                val.Value = pair.Value;
                QueueCommand(insCmd);
            }

        }
 public void SaveDisplayPreferences(DisplayPreferences prefs)
 {
     displayRepo.SaveDisplayPreferences(prefs);
 }
 public DisplayPreferences RetrieveDisplayPreferences(DisplayPreferences dp)
 {
     return displayRepo.RetrieveDisplayPreferences(dp);
 }