From b129e9b111dd9634434eb84ef3bae3c4dfa9920c Mon Sep 17 00:00:00 2001
From: MaxED <j.maxed@gmail.com>
Date: Wed, 3 Dec 2014 23:30:58 +0000
Subject: [PATCH] Texture Browser Control: "Long texture names" and "Show image
 size" values are now stored in program configuration.

---
 Source/Core/Controls/ImageBrowserControl.cs |  7 ++++---
 Source/Core/Windows/TextureBrowserForm.cs   | 10 ++++++++--
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/Source/Core/Controls/ImageBrowserControl.cs b/Source/Core/Controls/ImageBrowserControl.cs
index 87a4bfa0c..52258afce 100644
--- a/Source/Core/Controls/ImageBrowserControl.cs
+++ b/Source/Core/Controls/ImageBrowserControl.cs
@@ -51,8 +51,8 @@ namespace CodeImp.DoomBuilder.Controls
 		private bool updating;
 		private int keepselected;
 		private bool browseFlats; //mxd
-		private static bool uselongtexturenames = (General.Map != null && General.Map.Config.UseLongTextureNames); //mxd
-		private static bool showtexturesizes = (General.Settings != null && General.Settings.ShowTextureSizes); //mxd
+		private static bool uselongtexturenames; //mxd
+		private static bool showtexturesizes; //mxd
 		
 		// All items
 		private readonly List<ImageBrowserItem> items;
@@ -70,7 +70,8 @@ namespace CodeImp.DoomBuilder.Controls
 		public bool PreventSelection { get { return preventselection; } set { preventselection = value; } }
 		public bool HideInputBox { get { return splitter.Panel2Collapsed; } set { splitter.Panel2Collapsed = value; } }
 		public bool BrowseFlats { get { return browseFlats; } set { browseFlats = value; } } //mxd
-		public static bool ShowTextureSizes { get { return showtexturesizes; } } //mxd
+		public static bool ShowTextureSizes { get { return showtexturesizes; } internal set { showtexturesizes = value; } } //mxd
+		public static bool UseLongTextureNames { get { return uselongtexturenames; } internal set { uselongtexturenames = value; } } //mxd
 		public ListViewItem SelectedItem { get { if(list.SelectedItems.Count > 0) return list.SelectedItems[0]; else return null; } }
 		
 		#endregion
diff --git a/Source/Core/Windows/TextureBrowserForm.cs b/Source/Core/Windows/TextureBrowserForm.cs
index abfdba9d4..7c1f9bcd3 100644
--- a/Source/Core/Windows/TextureBrowserForm.cs
+++ b/Source/Core/Windows/TextureBrowserForm.cs
@@ -62,6 +62,9 @@ namespace CodeImp.DoomBuilder.Windows
 			string imgType = (browseFlats ? "flats" : "textures");
 			this.Text = "Browse " + imgType;
 
+			// Setup texture browser
+			ImageBrowserControl.ShowTextureSizes = General.Settings.ReadSetting("browserwindow.showtexturesizes", General.Settings.ShowTextureSizes);
+			ImageBrowserControl.UseLongTextureNames = General.Map.Config.UseLongTextureNames && General.Settings.ReadSetting("browserwindow.uselongtexturenames", true);
 			browser.BrowseFlats = browseFlats;
 			browser.ApplySettings();
 			
@@ -441,6 +444,10 @@ namespace CodeImp.DoomBuilder.Windows
 			//mxd. Save last selected texture set
 			if(this.DialogResult == DialogResult.OK && tvTextureSets.SelectedNode != null)
 				General.Settings.WriteSetting("browserwindow.textureset", tvTextureSets.SelectedNode.Name);
+
+			//mxd. Save ImageBrowserControl settings
+			General.Settings.WriteSetting("browserwindow.showtexturesizes", ImageBrowserControl.ShowTextureSizes);
+			General.Settings.WriteSetting("browserwindow.uselongtexturenames", ImageBrowserControl.UseLongTextureNames);
 			
 			// Clean up
 			browser.CleanUp();
@@ -451,8 +458,7 @@ namespace CodeImp.DoomBuilder.Windows
 		public static string Browse(IWin32Window parent, string select, bool browseFlats)
 		{
 			TextureBrowserForm browser = new TextureBrowserForm(select, browseFlats);
-			if(browser.ShowDialog(parent) == DialogResult.OK)
-				return browser.SelectedName; // Return result
+			if(browser.ShowDialog(parent) == DialogResult.OK) return browser.SelectedName; // Return result
 			
 			// Cancelled
 			return select;
-- 
GitLab