Merge branch 'develop' into feature-installed-programs

This commit is contained in:
Terry MacDonald 2022-07-03 20:07:57 +12:00
commit bd619a131e
7 changed files with 44 additions and 37 deletions

View File

@ -26,8 +26,8 @@ using System.Resources;
[assembly: Guid("e4ceaf5e-ad01-4695-b179-31168eb74c48")]
// Version information
[assembly: AssemblyVersion("2.4.1.1")]
[assembly: AssemblyFileVersion("2.4.1.1")]
[assembly: AssemblyVersion("2.4.1.4")]
[assembly: AssemblyFileVersion("2.4.1.4")]
[assembly: NeutralResourcesLanguageAttribute( "en" )]
[assembly: CLSCompliant(true)]

View File

@ -348,7 +348,7 @@ namespace DisplayMagician.UIForms
this.lbl_hotkey_assigned.ForeColor = System.Drawing.Color.White;
this.lbl_hotkey_assigned.Location = new System.Drawing.Point(21, 39);
this.lbl_hotkey_assigned.Name = "lbl_hotkey_assigned";
this.lbl_hotkey_assigned.Size = new System.Drawing.Size(57, 16);
this.lbl_hotkey_assigned.Size = new System.Drawing.Size(56, 16);
this.lbl_hotkey_assigned.TabIndex = 36;
this.lbl_hotkey_assigned.Text = "Hotkey: ";
this.lbl_hotkey_assigned.Visible = false;

View File

@ -548,7 +548,7 @@ namespace DisplayMagician.UIForms
// Refresh the profiles to see whats valid
ProfileRepository.IsPossibleRefresh();
// Reload the profiles in case we swapped to another program to change it
ProfileRepository.UpdateActiveProfile();
ProfileRepository.UpdateActiveProfile(false);
// Change to the current selected Profile
ChangeSelectedProfile(ProfileRepository.GetActiveProfile());
// Refresh the Profile UI

View File

@ -127,7 +127,7 @@
<data name="pb_down_arrow.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJ
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAB3RJ
TUUH5AUIFiwD9MaxfQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAXHSURBVHhe
7dy7il1VHMfxHQWJrYpYBBwtktlnJ7EQ8QHURrARfAFBwbcQQdTCQtF3EIlaWNkpqBgrczLjBQMpLIKV
hTfQJOPeM3uZzMnJ5MycfVlr7c8HviSZc6ny++fADCkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
@ -160,7 +160,7 @@
<value>248, 17</value>
</metadata>
<data name="lbl_save_profile.Text" xml:space="preserve">
<value>Setup your display layout in NVIDIA Control Panel, AMD Radeon Adrenaline or Windows Display Settings, then return to DisplayMagician and click 'Save' to store this Display Profile for later use. If you make any Taskbar changes please press 'View Current Display' button after waiting 5 seconds.</value>
<value>Setup your display layout in NVIDIA Control Panel, AMD Radeon Adrenaline or Windows Display Settings, then return to DisplayMagician and click 'Save' to store this Display Profile for later use. It may take up to 20 seconds to save the Display Profile.</value>
</data>
<metadata name="dialog_save.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>358, 17</value>
@ -174,7 +174,7 @@
L6wlizhexCplZoSlcvyZ9LL6fY9biU/PTk3K2iKzGYsIw4TRGGWQAUJ00yc+RCdBumRHifhALn6CJYlV
4g1WMVkkSQpbequxLNl1WROi6zLSrLr9/9tXK9ETzGf3haHiyXHeWqFyC743Hefz0HG+j8D7CBfZQvzS
AfS+i75Z0Pz7ULcOZ5cFLb4D5xvQ9GDEzFhO8sr0JBLwegK1M9BwDdVz+Z79nnN8D9E1+aor2N2DNrlf
N/8DYltn5LNebX8AAAAJcEhZcwAADsQAAA7EAZUrDhsAAP40SURBVHhe5P0HYBVHsvcNs+v12jhgAyYr
N/8DYltn5LNebX8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAP40SURBVHhe5P0HYBVHsvcNs+v12jhgAyYr
J3LGNs4mZ5FEFgiBEBKSyDmDcc4552wcyTlHgRASklDO0pFOzkcJ+H49Jc5yd5/nvs997t57932/drmp
qa6urg4zU3/1zJwmvoHd/YJ6BIb2Du7YNyCkl09AN//gnvDk7f26yCF5B/+uwqMMQy2qwMOIkCpiJCis
D8qt24dJFU2HKl19A7uRQ0iogjJ1IRpFwiEVkXMIT10Rcgjf1qcTh5opVQWz4oM0QUWK0BGzCKVKO9/O
@ -26303,7 +26303,7 @@
L6wlizhexCplZoSlcvyZ9LL6fY9biU/PTk3K2iKzGYsIw4TRGGWQAUJ00yc+RCdBumRHifhALn6CJYlV
4g1WMVkkSQpbequxLNl1WROi6zLSrLr9/9tXK9ETzGf3haHiyXHeWqFyC743Hefz0HG+j8D7CBfZQvzS
AfS+i75Z0Pz7ULcOZ5cFLb4D5xvQ9GDEzFhO8sr0JBLwegK1M9BwDdVz+Z79nnN8D9E1+aor2N2DNrlf
N/8DYltn5LNebX8AAAAJcEhZcwAADsQAAA7EAZUrDhsAAP40SURBVHhe5P0HYBVHsvcNs+v12jhgAyYr
N/8DYltn5LNebX8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAP40SURBVHhe5P0HYBVHsvcNs+v12jhgAyYr
J3LGNs4mZ5FEFgiBEBKSyDmDcc4552wcyTlHgRASklDO0pFOzkcJ+H49Jc5yd5/nvs997t57932/drmp
qa6urg4zU3/1zJwmvoHd/YJ6BIb2Du7YNyCkl09AN//gnvDk7f26yCF5B/+uwqMMQy2qwMOIkCpiJCis
D8qt24dJFU2HKl19A7uRQ0iogjJ1IRpFwiEVkXMIT10Rcgjf1qcTh5opVQWz4oM0QUWK0BGzCKVKO9/O
@ -52432,7 +52432,7 @@
L6wlizhexCplZoSlcvyZ9LL6fY9biU/PTk3K2iKzGYsIw4TRGGWQAUJ00yc+RCdBumRHifhALn6CJYlV
4g1WMVkkSQpbequxLNl1WROi6zLSrLr9/9tXK9ETzGf3haHiyXHeWqFyC743Hefz0HG+j8D7CBfZQvzS
AfS+i75Z0Pz7ULcOZ5cFLb4D5xvQ9GDEzFhO8sr0JBLwegK1M9BwDdVz+Z79nnN8D9E1+aor2N2DNrlf
N/8DYltn5LNebX8AAAAJcEhZcwAADsQAAA7EAZUrDhsAAP40SURBVHhe5P0HYBVHsvcNs+v12jhgAyYr
N/8DYltn5LNebX8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAP40SURBVHhe5P0HYBVHsvcNs+v12jhgAyYr
J3LGNs4mZ5FEFgiBEBKSyDmDcc4552wcyTlHgRASklDO0pFOzkcJ+H49Jc5yd5/nvs997t57932/drmp
qa6urg4zU3/1zJwmvoHd/YJ6BIb2Du7YNyCkl09AN//gnvDk7f26yCF5B/+uwqMMQy2qwMOIkCpiJCis
D8qt24dJFU2HKl19A7uRQ0iogjJ1IRpFwiEVkXMIT10Rcgjf1qcTh5opVQWz4oM0QUWK0BGzCKVKO9/O

View File

@ -478,7 +478,7 @@ namespace DisplayMagicianShared
}
public bool CreateProfileFromCurrentDisplaySettings()
public bool CreateProfileFromCurrentDisplaySettings(bool fastScan = true)
{
// Calling the 3 different libraries automatically gets the different configs from each of the 3 video libraries.
// If the video library isn't in use then it also fills in the defaults so that the JSON file can save properly
@ -495,16 +495,16 @@ namespace DisplayMagicianShared
if (VideoMode == VIDEO_MODE.NVIDIA && nvidiaLibrary.IsInstalled)
{
nvidiaLibrary.UpdateActiveConfig();
winLibrary.UpdateActiveConfig();
winLibrary.UpdateActiveConfig(fastScan);
}
else if (VideoMode == VIDEO_MODE.AMD && amdLibrary.IsInstalled)
{
amdLibrary.UpdateActiveConfig();
winLibrary.UpdateActiveConfig();
winLibrary.UpdateActiveConfig(fastScan);
}
else
{
winLibrary.UpdateActiveConfig();
winLibrary.UpdateActiveConfig(fastScan);
}
// Grab the profile data from the current stored config (that we just updated)

View File

@ -696,7 +696,7 @@ namespace DisplayMagicianShared
}
}
public static void UpdateActiveProfile()
public static void UpdateActiveProfile(bool fastScan = true)
{
SharedLogger.logger.Debug($"ProfileRepository/UpdateActiveProfile: Updating the profile currently active (in use now).");
@ -751,7 +751,7 @@ namespace DisplayMagicianShared
//ShellHelper.TellShellToWriteSettings();
//WinLibrary.RefreshTaskBars();
profile.CreateProfileFromCurrentDisplaySettings();
profile.CreateProfileFromCurrentDisplaySettings(fastScan);
if (_profilesLoaded && _allProfiles.Count > 0)
{

View File

@ -473,12 +473,12 @@ namespace DisplayMagicianShared.Windows
}
public bool UpdateActiveConfig()
public bool UpdateActiveConfig(bool fastScan = true)
{
SharedLogger.logger.Trace($"WinLibrary/UpdateActiveConfig: Updating the currently active config");
try
{
_activeDisplayConfig = GetActiveConfig();
_activeDisplayConfig = GetActiveConfig(fastScan);
_allConnectedDisplayIdentifiers = GetAllConnectedDisplayIdentifiers();
}
catch (Exception ex)
@ -490,14 +490,14 @@ namespace DisplayMagicianShared.Windows
return true;
}
public WINDOWS_DISPLAY_CONFIG GetActiveConfig()
public WINDOWS_DISPLAY_CONFIG GetActiveConfig(bool fastScan = true)
{
SharedLogger.logger.Trace($"WinLibrary/GetActiveConfig: Getting the currently active config");
// We'll leave virtual refresh rate aware until we can reliably detect Windows 11 versions.
return GetWindowsDisplayConfig(QDC.QDC_ONLY_ACTIVE_PATHS);
return GetWindowsDisplayConfig(QDC.QDC_ONLY_ACTIVE_PATHS, fastScan);
}
private WINDOWS_DISPLAY_CONFIG GetWindowsDisplayConfig(QDC selector = QDC.QDC_ONLY_ACTIVE_PATHS)
private WINDOWS_DISPLAY_CONFIG GetWindowsDisplayConfig(QDC selector = QDC.QDC_ONLY_ACTIVE_PATHS, bool fastScan = true)
{
// Prepare the empty windows display config
@ -909,25 +909,32 @@ namespace DisplayMagicianShared.Windows
// Check whether Windows has actually added the registry keys that outline the taskbar position
if (retryNeeded)
{
// We wait until the reg key is populated
for (int count = 1; count <= 4; count++)
if (fastScan)
{
SharedLogger.logger.Trace($"WinLibrary/GetWindowsDisplayConfig: We were unable to get all the Windows Taskbar Layouts! So we need to try again. Attempt {count} of 4.");
// Wait 5 seconds
System.Threading.Thread.Sleep(5000);
// then try again
retryNeeded = false;
taskBarStuckRectangles = TaskBarLayout.GetAllCurrentTaskBarLayouts(windowsDisplayConfig.DisplaySources, out retryNeeded);
if (!retryNeeded)
{
SharedLogger.logger.Trace($"WinLibrary/GetWindowsDisplayConfig: We successfully got the Windows Taskbar Layouts on attempt {count}! So we can stop trying to get them");
break;
}
SharedLogger.logger.Trace($"WinLibrary/GetWindowsDisplayConfig: Skipping retrying Windows Taskbar Layouts and just accepting the first locations");
}
}
else
{
// We wait until the reg key is populated
for (int count = 1; count <= 4; count++)
{
SharedLogger.logger.Trace($"WinLibrary/GetWindowsDisplayConfig: We were unable to get all the Windows Taskbar Layouts! So we need to try again. Attempt {count} of 4.");
// Wait 5 seconds
System.Threading.Thread.Sleep(5000);
// then try again
retryNeeded = false;
taskBarStuckRectangles = TaskBarLayout.GetAllCurrentTaskBarLayouts(windowsDisplayConfig.DisplaySources, out retryNeeded);
if (!retryNeeded)
{
SharedLogger.logger.Trace($"WinLibrary/GetWindowsDisplayConfig: We successfully got the Windows Taskbar Layouts on attempt {count}! So we can stop trying to get them");
break;
}
}
}
}
// Now we try to get the taskbar settings too
SharedLogger.logger.Trace($"WinLibrary/GetWindowsDisplayConfig: Attempting to get the Windows Taskbar Settings.");