Added new "Dark" theme, renamed previous theme to "Night"

This commit is contained in:
Jaex 2022-08-14 16:11:22 +03:00
parent de1d18d3c8
commit d6bf61aa0b
5 changed files with 75 additions and 64 deletions

View file

@ -1002,5 +1002,15 @@ public static void LockCursorToWindow(Form form)
form.Activated += (sender, e) => Cursor.Clip = form.Bounds; form.Activated += (sender, e) => Cursor.Clip = form.Bounds;
form.Deactivate += (sender, e) => Cursor.Clip = Rectangle.Empty; form.Deactivate += (sender, e) => Cursor.Clip = Rectangle.Empty;
} }
public static bool IsDefaultSettings<T>(IEnumerable<T> current, IEnumerable<T> source, Func<T, T, bool> predicate)
{
if (current != null && current.Count() > 0)
{
return current.All(x => source.Any(y => predicate(x, y)));
}
return true;
}
} }
} }

View file

@ -152,26 +152,26 @@ public Color BorderColor
private ShareXTheme() private ShareXTheme()
{ {
Name = "Dark";
BackgroundColor = Color.FromArgb(42, 47, 56);
LightBackgroundColor = Color.FromArgb(52, 57, 65);
DarkBackgroundColor = Color.FromArgb(28, 32, 38);
TextColor = Color.FromArgb(235, 235, 235);
BorderColor = Color.FromArgb(28, 32, 38);
CheckerColor = Color.FromArgb(60, 60, 60);
CheckerColor2 = Color.FromArgb(50, 50, 50);
CheckerSize = 15;
LinkColor = Color.FromArgb(166, 212, 255);
MenuHighlightColor = Color.FromArgb(30, 34, 40);
MenuHighlightBorderColor = Color.FromArgb(116, 129, 152);
MenuBorderColor = Color.FromArgb(22, 26, 31);
MenuCheckBackgroundColor = Color.FromArgb(56, 64, 75);
ContextMenuOpacity = 100;
SeparatorLightColor = Color.FromArgb(56, 64, 75);
SeparatorDarkColor = Color.FromArgb(22, 26, 31);
} }
public static ShareXTheme DarkTheme => new ShareXTheme(); public static ShareXTheme DarkTheme => new ShareXTheme()
{
Name = "Dark",
BackgroundColor = Color.FromArgb(39, 39, 39),
LightBackgroundColor = Color.FromArgb(46, 46, 46),
DarkBackgroundColor = Color.FromArgb(34, 34, 34),
TextColor = Color.FromArgb(231, 233, 234),
BorderColor = Color.FromArgb(31, 31, 31),
CheckerColor = Color.FromArgb(46, 46, 46),
CheckerColor2 = Color.FromArgb(39, 39, 39),
LinkColor = Color.FromArgb(166, 212, 255),
MenuHighlightColor = Color.FromArgb(46, 46, 46),
MenuHighlightBorderColor = Color.FromArgb(63, 63, 63),
MenuBorderColor = Color.FromArgb(63, 63, 63),
MenuCheckBackgroundColor = Color.FromArgb(51, 51, 51),
SeparatorLightColor = Color.FromArgb(44, 44, 44),
SeparatorDarkColor = Color.FromArgb(31, 31, 31)
};
public static ShareXTheme LightTheme => new ShareXTheme() public static ShareXTheme LightTheme => new ShareXTheme()
{ {
@ -183,17 +183,34 @@ private ShareXTheme()
BorderColor = Color.FromArgb(201, 201, 201), BorderColor = Color.FromArgb(201, 201, 201),
CheckerColor = Color.FromArgb(247, 247, 247), CheckerColor = Color.FromArgb(247, 247, 247),
CheckerColor2 = Color.FromArgb(235, 235, 235), CheckerColor2 = Color.FromArgb(235, 235, 235),
CheckerSize = 15,
LinkColor = Color.FromArgb(166, 212, 255), LinkColor = Color.FromArgb(166, 212, 255),
MenuHighlightColor = Color.FromArgb(247, 247, 247), MenuHighlightColor = Color.FromArgb(247, 247, 247),
MenuHighlightBorderColor = Color.FromArgb(96, 143, 226), MenuHighlightBorderColor = Color.FromArgb(96, 143, 226),
MenuBorderColor = Color.FromArgb(201, 201, 201), MenuBorderColor = Color.FromArgb(201, 201, 201),
MenuCheckBackgroundColor = Color.FromArgb(225, 233, 244), MenuCheckBackgroundColor = Color.FromArgb(225, 233, 244),
ContextMenuOpacity = 100,
SeparatorLightColor = Color.FromArgb(253, 253, 253), SeparatorLightColor = Color.FromArgb(253, 253, 253),
SeparatorDarkColor = Color.FromArgb(189, 189, 189) SeparatorDarkColor = Color.FromArgb(189, 189, 189)
}; };
public static ShareXTheme NightTheme => new ShareXTheme()
{
Name = "Night",
BackgroundColor = Color.FromArgb(42, 47, 56),
LightBackgroundColor = Color.FromArgb(52, 57, 65),
DarkBackgroundColor = Color.FromArgb(28, 32, 38),
TextColor = Color.FromArgb(235, 235, 235),
BorderColor = Color.FromArgb(28, 32, 38),
CheckerColor = Color.FromArgb(60, 60, 60),
CheckerColor2 = Color.FromArgb(50, 50, 50),
LinkColor = Color.FromArgb(166, 212, 255),
MenuHighlightColor = Color.FromArgb(30, 34, 40),
MenuHighlightBorderColor = Color.FromArgb(116, 129, 152),
MenuBorderColor = Color.FromArgb(22, 26, 31),
MenuCheckBackgroundColor = Color.FromArgb(56, 64, 75),
SeparatorLightColor = Color.FromArgb(56, 64, 75),
SeparatorDarkColor = Color.FromArgb(22, 26, 31)
};
// https://www.nordtheme.com // https://www.nordtheme.com
public static ShareXTheme NordDarkTheme => new ShareXTheme() public static ShareXTheme NordDarkTheme => new ShareXTheme()
{ {
@ -205,13 +222,11 @@ private ShareXTheme()
BorderColor = Color.FromArgb(30, 38, 54), BorderColor = Color.FromArgb(30, 38, 54),
CheckerColor = Color.FromArgb(46, 52, 64), CheckerColor = Color.FromArgb(46, 52, 64),
CheckerColor2 = Color.FromArgb(36, 42, 54), CheckerColor2 = Color.FromArgb(36, 42, 54),
CheckerSize = 15,
LinkColor = Color.FromArgb(136, 192, 208), LinkColor = Color.FromArgb(136, 192, 208),
MenuHighlightColor = Color.FromArgb(36, 42, 54), MenuHighlightColor = Color.FromArgb(36, 42, 54),
MenuHighlightBorderColor = Color.FromArgb(24, 30, 42), MenuHighlightBorderColor = Color.FromArgb(24, 30, 42),
MenuBorderColor = Color.FromArgb(24, 30, 42), MenuBorderColor = Color.FromArgb(24, 30, 42),
MenuCheckBackgroundColor = Color.FromArgb(59, 66, 82), MenuCheckBackgroundColor = Color.FromArgb(59, 66, 82),
ContextMenuOpacity = 100,
SeparatorLightColor = Color.FromArgb(59, 66, 82), SeparatorLightColor = Color.FromArgb(59, 66, 82),
SeparatorDarkColor = Color.FromArgb(30, 38, 54) SeparatorDarkColor = Color.FromArgb(30, 38, 54)
}; };
@ -227,13 +242,11 @@ private ShareXTheme()
BorderColor = Color.FromArgb(207, 216, 233), BorderColor = Color.FromArgb(207, 216, 233),
CheckerColor = Color.FromArgb(229, 233, 240), CheckerColor = Color.FromArgb(229, 233, 240),
CheckerColor2 = Color.FromArgb(216, 222, 233), CheckerColor2 = Color.FromArgb(216, 222, 233),
CheckerSize = 15,
LinkColor = Color.FromArgb(106, 162, 178), LinkColor = Color.FromArgb(106, 162, 178),
MenuHighlightColor = Color.FromArgb(236, 239, 244), MenuHighlightColor = Color.FromArgb(236, 239, 244),
MenuHighlightBorderColor = Color.FromArgb(207, 216, 233), MenuHighlightBorderColor = Color.FromArgb(207, 216, 233),
MenuBorderColor = Color.FromArgb(216, 222, 233), MenuBorderColor = Color.FromArgb(216, 222, 233),
MenuCheckBackgroundColor = Color.FromArgb(229, 233, 240), MenuCheckBackgroundColor = Color.FromArgb(229, 233, 240),
ContextMenuOpacity = 100,
SeparatorLightColor = Color.FromArgb(236, 239, 244), SeparatorLightColor = Color.FromArgb(236, 239, 244),
SeparatorDarkColor = Color.FromArgb(207, 216, 233) SeparatorDarkColor = Color.FromArgb(207, 216, 233)
}; };
@ -249,20 +262,18 @@ private ShareXTheme()
BorderColor = Color.FromArgb(33, 35, 43), BorderColor = Color.FromArgb(33, 35, 43),
CheckerColor = Color.FromArgb(40, 42, 54), CheckerColor = Color.FromArgb(40, 42, 54),
CheckerColor2 = Color.FromArgb(36, 38, 48), CheckerColor2 = Color.FromArgb(36, 38, 48),
CheckerSize = 15,
LinkColor = Color.FromArgb(98, 114, 164), LinkColor = Color.FromArgb(98, 114, 164),
MenuHighlightColor = Color.FromArgb(36, 38, 48), MenuHighlightColor = Color.FromArgb(36, 38, 48),
MenuHighlightBorderColor = Color.FromArgb(255, 121, 198), MenuHighlightBorderColor = Color.FromArgb(255, 121, 198),
MenuBorderColor = Color.FromArgb(33, 35, 43), MenuBorderColor = Color.FromArgb(33, 35, 43),
MenuCheckBackgroundColor = Color.FromArgb(45, 47, 61), MenuCheckBackgroundColor = Color.FromArgb(45, 47, 61),
ContextMenuOpacity = 100,
SeparatorLightColor = Color.FromArgb(45, 47, 61), SeparatorLightColor = Color.FromArgb(45, 47, 61),
SeparatorDarkColor = Color.FromArgb(33, 35, 43) SeparatorDarkColor = Color.FromArgb(33, 35, 43)
}; };
public static List<ShareXTheme> GetDefaultThemes() public static List<ShareXTheme> GetDefaultThemes()
{ {
return new List<ShareXTheme>() { DarkTheme, LightTheme, NordDarkTheme, NordLightTheme, DraculaTheme }; return new List<ShareXTheme>() { DarkTheme, LightTheme, NightTheme, NordDarkTheme, NordLightTheme, DraculaTheme };
} }
public override string ToString() public override string ToString()

View file

@ -26,7 +26,6 @@
using ShareX.HelpersLib; using ShareX.HelpersLib;
using ShareX.HistoryLib; using ShareX.HistoryLib;
using ShareX.Properties; using ShareX.Properties;
using ShareX.ScreenCaptureLib;
using ShareX.UploadersLib; using ShareX.UploadersLib;
using ShareX.UploadersLib.FileUploaders; using ShareX.UploadersLib.FileUploaders;
using System; using System;
@ -192,39 +191,42 @@ public static void LoadAllSettings()
private static void ApplicationConfigBackwardCompatibilityTasks() private static void ApplicationConfigBackwardCompatibilityTasks()
{ {
if (Settings.IsUpgradeFrom("11.4.1"))
{
RegionCaptureOptions regionCaptureOptions = DefaultTaskSettings.CaptureSettings.SurfaceOptions;
regionCaptureOptions.AnnotationOptions = new AnnotationOptions();
regionCaptureOptions.LastRegionTool = ShapeType.RegionRectangle;
regionCaptureOptions.LastAnnotationTool = ShapeType.DrawingRectangle;
}
if (Settings.IsUpgradeFrom("11.5.0"))
{
if (File.Exists(Program.ChromeHostManifestFilePath))
{
IntegrationHelpers.CreateChromeExtensionSupport(true);
}
}
if (Settings.IsUpgradeFrom("13.0.2")) if (Settings.IsUpgradeFrom("13.0.2"))
{ {
Settings.UseCustomTheme = Settings.UseDarkTheme; Settings.UseCustomTheme = Settings.UseDarkTheme;
} }
if (Settings.IsUpgradeFrom("13.3.1") && Settings.Themes != null)
{
Settings.Themes.Add(ShareXTheme.NordDarkTheme);
Settings.Themes.Add(ShareXTheme.NordLightTheme);
Settings.Themes.Add(ShareXTheme.DraculaTheme);
}
if (Settings.IsUpgradeFrom("13.4.0")) if (Settings.IsUpgradeFrom("13.4.0"))
{ {
DefaultTaskSettings.GeneralSettings.ShowToastNotificationAfterTaskCompleted = DefaultTaskSettings.GeneralSettings.ShowToastNotificationAfterTaskCompleted =
DefaultTaskSettings.GeneralSettings.PopUpNotification != PopUpNotificationType.None; DefaultTaskSettings.GeneralSettings.PopUpNotification != PopUpNotificationType.None;
} }
if (Settings.IsUpgradeFrom("14.1.1"))
{
if (Helpers.IsDefaultSettings(Settings.Themes, ShareXTheme.GetDefaultThemes(), (x, y) => x.Name == y.Name))
{
if (!Settings.Themes.IsValidIndex(Settings.SelectedTheme))
{
Settings.SelectedTheme = 0;
}
ShareXTheme selectedTheme = Settings.Themes[Settings.SelectedTheme];
Settings.Themes = ShareXTheme.GetDefaultThemes();
int index = Settings.Themes.FindIndex(x => x.Name.Equals(selectedTheme.Name, StringComparison.OrdinalIgnoreCase));
if (index >= 0)
{
Settings.SelectedTheme = index;
}
else
{
Settings.SelectedTheme = 0;
}
}
}
} }
private static void MigrateHistoryFile() private static void MigrateHistoryFile()

View file

@ -84,7 +84,7 @@ public OCRForm(Bitmap bmp, OCROptions options)
nudScaleFactor.SetValue((decimal)Options.ScaleFactor); nudScaleFactor.SetValue((decimal)Options.ScaleFactor);
cbSingleLine.Checked = Options.SingleLine; cbSingleLine.Checked = Options.SingleLine;
if (Options.ServiceLinks == null || Options.IsDefaultServiceLinks()) if (Helpers.IsDefaultSettings(Options.ServiceLinks, OCROptions.DefaultServiceLinks, (x, y) => x.Name == y.Name))
{ {
Options.ServiceLinks = OCROptions.DefaultServiceLinks; Options.ServiceLinks = OCROptions.DefaultServiceLinks;
} }

View file

@ -24,7 +24,6 @@
#endregion License Information (GPL v3) #endregion License Information (GPL v3)
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
namespace ShareX namespace ShareX
{ {
@ -38,17 +37,6 @@ public class OCROptions
public List<ServiceLink> ServiceLinks { get; set; } = DefaultServiceLinks; public List<ServiceLink> ServiceLinks { get; set; } = DefaultServiceLinks;
public int SelectedServiceLink { get; set; } = 0; public int SelectedServiceLink { get; set; } = 0;
public bool IsDefaultServiceLinks()
{
if (ServiceLinks != null && ServiceLinks.Count > 0)
{
List<ServiceLink> defaultServiceLinks = DefaultServiceLinks;
return ServiceLinks.All(x => defaultServiceLinks.Any(y => x.Name == y.Name));
}
return false;
}
public static List<ServiceLink> DefaultServiceLinks => new List<ServiceLink>() public static List<ServiceLink> DefaultServiceLinks => new List<ServiceLink>()
{ {
new ServiceLink("Google Translate", "https://translate.google.com/?sl=auto&tl=en&text={0}&op=translate"), new ServiceLink("Google Translate", "https://translate.google.com/?sl=auto&tl=en&text={0}&op=translate"),