DisplayPreferences.cs 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. using MediaBrowser.Model.Drawing;
  2. using ProtoBuf;
  3. using System;
  4. using System.Collections.Generic;
  5. namespace MediaBrowser.Model.Entities
  6. {
  7. /// <summary>
  8. /// Defines the display preferences for any item that supports them (usually Folders)
  9. /// </summary>
  10. [ProtoContract]
  11. public class DisplayPreferences
  12. {
  13. /// <summary>
  14. /// The image scale
  15. /// </summary>
  16. private const double ImageScale = .9;
  17. /// <summary>
  18. /// Initializes a new instance of the <see cref="DisplayPreferences" /> class.
  19. /// </summary>
  20. public DisplayPreferences()
  21. {
  22. RememberIndexing = false;
  23. PrimaryImageHeight = 250;
  24. PrimaryImageWidth = 250;
  25. CustomPrefs = new Dictionary<string, string>();
  26. }
  27. /// <summary>
  28. /// Gets or sets the user id.
  29. /// </summary>
  30. /// <value>The user id.</value>
  31. [ProtoMember(1)]
  32. public Guid UserId { get; set; }
  33. /// <summary>
  34. /// Gets or sets the type of the view.
  35. /// </summary>
  36. /// <value>The type of the view.</value>
  37. [ProtoMember(2)]
  38. public string ViewType { get; set; }
  39. /// <summary>
  40. /// Gets or sets the sort by.
  41. /// </summary>
  42. /// <value>The sort by.</value>
  43. [ProtoMember(4)]
  44. public string SortBy { get; set; }
  45. /// <summary>
  46. /// Gets or sets the index by.
  47. /// </summary>
  48. /// <value>The index by.</value>
  49. [ProtoMember(5)]
  50. public string IndexBy { get; set; }
  51. /// <summary>
  52. /// Gets or sets a value indicating whether [remember indexing].
  53. /// </summary>
  54. /// <value><c>true</c> if [remember indexing]; otherwise, <c>false</c>.</value>
  55. [ProtoMember(6)]
  56. public bool RememberIndexing { get; set; }
  57. /// <summary>
  58. /// Gets or sets the height of the primary image.
  59. /// </summary>
  60. /// <value>The height of the primary image.</value>
  61. [ProtoMember(7)]
  62. public int PrimaryImageHeight { get; set; }
  63. /// <summary>
  64. /// Gets or sets the width of the primary image.
  65. /// </summary>
  66. /// <value>The width of the primary image.</value>
  67. [ProtoMember(8)]
  68. public int PrimaryImageWidth { get; set; }
  69. /// <summary>
  70. /// Gets or sets the custom prefs.
  71. /// </summary>
  72. /// <value>The custom prefs.</value>
  73. [ProtoMember(9)]
  74. public Dictionary<string, string> CustomPrefs { get; set; }
  75. /// <summary>
  76. /// Gets or sets the scroll direction.
  77. /// </summary>
  78. /// <value>The scroll direction.</value>
  79. [ProtoMember(10)]
  80. public ScrollDirection ScrollDirection { get; set; }
  81. /// <summary>
  82. /// Gets or sets a value indicating whether [remember sorting].
  83. /// </summary>
  84. /// <value><c>true</c> if [remember sorting]; otherwise, <c>false</c>.</value>
  85. [ProtoMember(11)]
  86. public bool RememberSorting { get; set; }
  87. /// <summary>
  88. /// Gets or sets the sort order.
  89. /// </summary>
  90. /// <value>The sort order.</value>
  91. [ProtoMember(12)]
  92. public SortOrder SortOrder { get; set; }
  93. /// <summary>
  94. /// Increases the size of the image.
  95. /// </summary>
  96. public void IncreaseImageSize()
  97. {
  98. var newWidth = PrimaryImageWidth / ImageScale;
  99. var size = DrawingUtils.Resize(PrimaryImageWidth, PrimaryImageHeight, newWidth);
  100. PrimaryImageWidth = Convert.ToInt32(size.Width);
  101. PrimaryImageHeight = Convert.ToInt32(size.Height);
  102. }
  103. /// <summary>
  104. /// Decreases the size of the image.
  105. /// </summary>
  106. public void DecreaseImageSize()
  107. {
  108. var size = DrawingUtils.Scale(PrimaryImageWidth, PrimaryImageHeight, ImageScale);
  109. PrimaryImageWidth = Convert.ToInt32(size.Width);
  110. PrimaryImageHeight = Convert.ToInt32(size.Height);
  111. }
  112. }
  113. /// <summary>
  114. /// Enum ScrollDirection
  115. /// </summary>
  116. public enum ScrollDirection
  117. {
  118. /// <summary>
  119. /// The horizontal
  120. /// </summary>
  121. Horizontal,
  122. /// <summary>
  123. /// The vertical
  124. /// </summary>
  125. Vertical
  126. }
  127. /// <summary>
  128. /// Enum SortOrder
  129. /// </summary>
  130. public enum SortOrder
  131. {
  132. /// <summary>
  133. /// The ascending
  134. /// </summary>
  135. Ascending,
  136. /// <summary>
  137. /// The descending
  138. /// </summary>
  139. Descending
  140. }
  141. }