mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-26 07:47:54 +01:00
Fixes build warnings recently introduced (#4506)
* Fixed warnings I recently introduced. Replaced nullable App references with null-forgiving operator (!) in MessageBox and dialog calls to suppress nullable warnings. Updated XML docs to use Dim.Fill() and clarified method references. Made Application.Popover registration null-safe. Fixed test output helper usage in ShadowTests. No functional changes. * Fixes Release build warnings
This commit is contained in:
@@ -101,13 +101,13 @@ public class ExampleWindow : Window
|
||||
{
|
||||
if (userNameText.Text == "admin" && passwordText.Text == "password")
|
||||
{
|
||||
MessageBox.Query (App, "Logging In", "Login Successful", "Ok");
|
||||
MessageBox.Query (App!, "Logging In", "Login Successful", "Ok");
|
||||
UserName = userNameText.Text;
|
||||
Application.RequestStop ();
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.ErrorQuery (App, "Logging In", "Incorrect username or password", "Ok");
|
||||
MessageBox.ErrorQuery (App!, "Logging In", "Incorrect username or password", "Ok");
|
||||
}
|
||||
// Anytime Accepting is handled, make sure to set e.Handled to true.
|
||||
e.Handled = true;
|
||||
|
||||
@@ -100,13 +100,13 @@ public class ExampleWindow : Runnable<string>
|
||||
{
|
||||
if (userNameText.Text == "admin" && passwordText.Text == "password")
|
||||
{
|
||||
MessageBox.Query (App, "Logging In", "Login Successful", "Ok");
|
||||
MessageBox.Query (App!, "Logging In", "Login Successful", "Ok");
|
||||
Result = userNameText.Text;
|
||||
App?.RequestStop ();
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.ErrorQuery (App, "Logging In", "Incorrect username or password", "Ok");
|
||||
MessageBox.ErrorQuery (App!, "Logging In", "Incorrect username or password", "Ok");
|
||||
}
|
||||
// When Accepting is handled, set e.Handled to true to prevent further processing.
|
||||
e.Handled = true;
|
||||
|
||||
@@ -78,7 +78,7 @@ public class AnimationScenario : Scenario
|
||||
if (!f.Exists)
|
||||
{
|
||||
Debug.WriteLine ($"Could not find {f.FullName}");
|
||||
MessageBox.ErrorQuery (_imageView?.App, "Could not find gif", $"Could not find\n{f.FullName}", "Ok");
|
||||
MessageBox.ErrorQuery (_imageView?.App!, "Could not find gif", $"Could not find\n{f.FullName}", "Ok");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -153,7 +153,7 @@ public class ConfigurationEditor : Scenario
|
||||
continue;
|
||||
}
|
||||
|
||||
int? result = MessageBox.Query (editor?.App,
|
||||
int? result = MessageBox.Query (editor?.App!,
|
||||
"Save Changes",
|
||||
$"Save changes to {editor?.FileInfo!.Name}",
|
||||
"_Yes",
|
||||
|
||||
@@ -129,7 +129,7 @@ public class ContextMenus : Scenario
|
||||
{
|
||||
Title = "_Configuration...",
|
||||
HelpText = "Show configuration",
|
||||
Action = () => MessageBox.Query (app,
|
||||
Action = () => MessageBox.Query (app!,
|
||||
50,
|
||||
10,
|
||||
"Configuration",
|
||||
@@ -147,7 +147,7 @@ public class ContextMenus : Scenario
|
||||
Title = "_Setup...",
|
||||
HelpText = "Perform setup",
|
||||
Action = () => MessageBox
|
||||
.Query (app,
|
||||
.Query (app!,
|
||||
50,
|
||||
10,
|
||||
"Setup",
|
||||
@@ -161,7 +161,7 @@ public class ContextMenus : Scenario
|
||||
Title = "_Maintenance...",
|
||||
HelpText = "Maintenance mode",
|
||||
Action = () => MessageBox
|
||||
.Query (app,
|
||||
.Query (app!,
|
||||
50,
|
||||
10,
|
||||
"Maintenance",
|
||||
|
||||
@@ -160,7 +160,7 @@ public class DimEditor : EditorBase
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.ErrorQuery (App, "Exception", e.Message, "Ok");
|
||||
MessageBox.ErrorQuery (App!, "Exception", e.Message, "Ok");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -157,7 +157,7 @@ public class PosEditor : EditorBase
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.ErrorQuery (App, "Exception", e.Message, "Ok");
|
||||
MessageBox.ErrorQuery (App!, "Exception", e.Message, "Ok");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -347,7 +347,7 @@ public class Menus : Scenario
|
||||
};
|
||||
|
||||
ContextMenu.EnableForDesign (ref host);
|
||||
Application.Popover.Register (ContextMenu);
|
||||
Application.Popover?.Register (ContextMenu);
|
||||
|
||||
ContextMenu.Visible = false;
|
||||
|
||||
|
||||
@@ -566,6 +566,6 @@ public class Shortcuts : Scenario
|
||||
{
|
||||
e.Handled = true;
|
||||
var view = sender as View;
|
||||
MessageBox.Query ((sender as View)?.App, "Hi", $"You clicked {view?.Text}", "_Ok");
|
||||
MessageBox.Query ((sender as View)?.App!, "Hi", $"You clicked {view?.Text}", "_Ok");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -223,7 +223,7 @@ public class SingleBackgroundWorker : Scenario
|
||||
|
||||
bool Close ()
|
||||
{
|
||||
int? n = MessageBox.Query (App,
|
||||
int? n = MessageBox.Query (App!,
|
||||
50,
|
||||
7,
|
||||
"Close Window.",
|
||||
|
||||
@@ -1032,7 +1032,7 @@ public class TableEditor : Scenario
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.ErrorQuery ((sender as View)?.App, 60, 20, "Failed to set text", ex.Message, "Ok");
|
||||
MessageBox.ErrorQuery ((sender as View)?.App!, 60, 20, "Failed to set text", ex.Message, "Ok");
|
||||
}
|
||||
|
||||
_tableView!.Update ();
|
||||
@@ -1171,7 +1171,7 @@ public class TableEditor : Scenario
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.ErrorQuery (_tableView?.App, "Could not find local drives", e.Message, "Ok");
|
||||
MessageBox.ErrorQuery (_tableView?.App!, "Could not find local drives", e.Message, "Ok");
|
||||
}
|
||||
|
||||
_tableView!.Table = source;
|
||||
@@ -1235,7 +1235,7 @@ public class TableEditor : Scenario
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.ErrorQuery (_tableView.App, 60, 20, "Failed to set", ex.Message, "Ok");
|
||||
MessageBox.ErrorQuery (_tableView.App!, 60, 20, "Failed to set", ex.Message, "Ok");
|
||||
}
|
||||
|
||||
_tableView!.Update ();
|
||||
|
||||
@@ -47,7 +47,7 @@ public sealed class Transparent : Scenario
|
||||
};
|
||||
appButton.Accepting += (sender, args) =>
|
||||
{
|
||||
MessageBox.Query ((sender as View)?.App, "AppButton", "Transparency is cool!", "_Ok");
|
||||
MessageBox.Query ((sender as View)?.App!, "AppButton", "Transparency is cool!", "_Ok");
|
||||
args.Handled = true;
|
||||
};
|
||||
appWindow.Add (appButton);
|
||||
@@ -112,7 +112,7 @@ public sealed class Transparent : Scenario
|
||||
};
|
||||
button.Accepting += (sender, args) =>
|
||||
{
|
||||
MessageBox.Query (App, "Clicked!", "Button in Transparent View", "_Ok");
|
||||
MessageBox.Query (App!, "Clicked!", "Button in Transparent View", "_Ok");
|
||||
args.Handled = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ public sealed class WideGlyphs : Scenario
|
||||
};
|
||||
arrangeableViewAtOdd.Accepting += (sender, args) =>
|
||||
{
|
||||
MessageBox.Query ((sender as View)?.App, "Button Pressed", "You Pressed it!");
|
||||
MessageBox.Query ((sender as View)?.App!, "Button Pressed", "You Pressed it!");
|
||||
};
|
||||
appWindow.Add (arrangeableViewAtOdd);
|
||||
|
||||
|
||||
@@ -83,13 +83,13 @@ public class WizardAsView : Scenario
|
||||
wizard.Finished += (s, args) =>
|
||||
{
|
||||
//args.Cancel = true;
|
||||
MessageBox.Query ((s as View)?.App, "Setup Wizard", "Finished", "Ok");
|
||||
MessageBox.Query ((s as View)?.App!, "Setup Wizard", "Finished", "Ok");
|
||||
Application.RequestStop ();
|
||||
};
|
||||
|
||||
wizard.Cancelled += (s, args) =>
|
||||
{
|
||||
int? btn = MessageBox.Query ((s as View)?.App, "Setup Wizard", "Are you sure you want to cancel?", "Yes", "No");
|
||||
int? btn = MessageBox.Query ((s as View)?.App!, "Setup Wizard", "Are you sure you want to cancel?", "Yes", "No");
|
||||
args.Cancel = btn == 1;
|
||||
|
||||
if (btn == 0)
|
||||
@@ -126,7 +126,7 @@ public class WizardAsView : Scenario
|
||||
{
|
||||
secondStep.Title = "2nd Step";
|
||||
|
||||
MessageBox.Query ((s as View)?.App,
|
||||
MessageBox.Query ((s as View)?.App!,
|
||||
"Wizard Scenario",
|
||||
"This Wizard Step's title was changed to '2nd Step'",
|
||||
"Ok"
|
||||
|
||||
@@ -18,7 +18,6 @@ using System.Diagnostics;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Globalization;
|
||||
using System.Reflection;
|
||||
using System.Reflection.Metadata;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using Microsoft.Extensions.Logging;
|
||||
@@ -57,8 +56,9 @@ public class UICatalog
|
||||
{
|
||||
private static string? _forceDriver;
|
||||
private static string? _uiCatalogDriver;
|
||||
#if DEBUG_IDISPOSABLE
|
||||
private static string? _scenarioDriver;
|
||||
|
||||
#endif
|
||||
public static string LogFilePath { get; set; } = string.Empty;
|
||||
public static LoggingLevelSwitch LogLevelSwitch { get; } = new ();
|
||||
public const string LOGFILE_LOCATION = "logs";
|
||||
@@ -90,13 +90,14 @@ public class UICatalog
|
||||
|
||||
// Add validator separately (not chained)
|
||||
driverOption.AddValidator (result =>
|
||||
{
|
||||
var value = result.GetValueOrDefault<string> ();
|
||||
if (result.Tokens.Count > 0 && !allowedDrivers.Contains (value))
|
||||
{
|
||||
result.ErrorMessage = $"Invalid driver name '{value}'. Allowed values: {string.Join (", ", allowedDrivers)}";
|
||||
}
|
||||
});
|
||||
{
|
||||
var value = result.GetValueOrDefault<string> ();
|
||||
|
||||
if (result.Tokens.Count > 0 && !allowedDrivers.Contains (value))
|
||||
{
|
||||
result.ErrorMessage = $"Invalid driver name '{value}'. Allowed values: {string.Join (", ", allowedDrivers)}";
|
||||
}
|
||||
});
|
||||
|
||||
// Configuration Management
|
||||
Option<bool> disableConfigManagement = new (
|
||||
@@ -137,8 +138,8 @@ public class UICatalog
|
||||
getDefaultValue: () => "none"
|
||||
).FromAmong (
|
||||
UICatalogRunnable.CachedScenarios.Select (s => s.GetName ())
|
||||
.Append ("none")
|
||||
.ToArray ()
|
||||
.Append ("none")
|
||||
.ToArray ()
|
||||
);
|
||||
|
||||
var rootCommand = new RootCommand ("A comprehensive sample library and test app for Terminal.Gui")
|
||||
@@ -146,8 +147,7 @@ public class UICatalog
|
||||
scenarioArgument, debugLogLevel, benchmarkFlag, benchmarkTimeout, resultsFile, driverOption, disableConfigManagement
|
||||
};
|
||||
|
||||
rootCommand.SetHandler (
|
||||
context =>
|
||||
rootCommand.SetHandler (context =>
|
||||
{
|
||||
var options = new UICatalogCommandLineOptions
|
||||
{
|
||||
@@ -179,14 +179,15 @@ public class UICatalog
|
||||
return 0;
|
||||
}
|
||||
|
||||
var parseResult = parser.Parse (args);
|
||||
ParseResult parseResult = parser.Parse (args);
|
||||
|
||||
if (parseResult.Errors.Count > 0)
|
||||
{
|
||||
foreach (var error in parseResult.Errors)
|
||||
foreach (ParseError error in parseResult.Errors)
|
||||
{
|
||||
Console.Error.WriteLine (error.Message);
|
||||
}
|
||||
|
||||
return 1; // Non-zero exit code for error
|
||||
}
|
||||
|
||||
@@ -204,16 +205,16 @@ public class UICatalog
|
||||
public static LogEventLevel LogLevelToLogEventLevel (LogLevel logLevel)
|
||||
{
|
||||
return logLevel switch
|
||||
{
|
||||
LogLevel.Trace => LogEventLevel.Verbose,
|
||||
LogLevel.Debug => LogEventLevel.Debug,
|
||||
LogLevel.Information => LogEventLevel.Information,
|
||||
LogLevel.Warning => LogEventLevel.Warning,
|
||||
LogLevel.Error => LogEventLevel.Error,
|
||||
LogLevel.Critical => LogEventLevel.Fatal,
|
||||
LogLevel.None => LogEventLevel.Fatal, // Default to Fatal if None is specified
|
||||
_ => LogEventLevel.Fatal // Default to Information for any unspecified LogLevel
|
||||
};
|
||||
{
|
||||
LogLevel.Trace => LogEventLevel.Verbose,
|
||||
LogLevel.Debug => LogEventLevel.Debug,
|
||||
LogLevel.Information => LogEventLevel.Information,
|
||||
LogLevel.Warning => LogEventLevel.Warning,
|
||||
LogLevel.Error => LogEventLevel.Error,
|
||||
LogLevel.Critical => LogEventLevel.Fatal,
|
||||
LogLevel.None => LogEventLevel.Fatal, // Default to Fatal if None is specified
|
||||
_ => LogEventLevel.Fatal // Default to Information for any unspecified LogLevel
|
||||
};
|
||||
}
|
||||
|
||||
private static ILogger CreateLogger ()
|
||||
@@ -232,8 +233,7 @@ public class UICatalog
|
||||
.CreateLogger ();
|
||||
|
||||
// Create a logger factory compatible with Microsoft.Extensions.Logging
|
||||
using ILoggerFactory loggerFactory = LoggerFactory.Create (
|
||||
builder =>
|
||||
using ILoggerFactory loggerFactory = LoggerFactory.Create (builder =>
|
||||
{
|
||||
builder
|
||||
.AddSerilog (dispose: true) // Integrate Serilog with ILogger
|
||||
@@ -246,7 +246,8 @@ public class UICatalog
|
||||
|
||||
/// <summary>
|
||||
/// Shows the UI Catalog selection UI. When the user selects a Scenario to run, the UI Catalog main app UI is
|
||||
/// killed and the Scenario is run as though it were Application.TopRunnable. When the Scenario exits, this function exits.
|
||||
/// killed and the Scenario is run as though it were Application.TopRunnable. When the Scenario exits, this function
|
||||
/// exits.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private static Scenario RunUICatalogRunnable ()
|
||||
@@ -257,7 +258,7 @@ public class UICatalog
|
||||
// If the user specified a driver on the command line then use it,
|
||||
// ignoring Config files.
|
||||
|
||||
Application.Init (driverName: _forceDriver);
|
||||
Application.Init (_forceDriver);
|
||||
|
||||
_uiCatalogDriver = Application.Driver!.GetName ();
|
||||
|
||||
@@ -326,10 +327,7 @@ public class UICatalog
|
||||
ThemeManager.ThemeChanged += ThemeManagerOnThemeChanged;
|
||||
}
|
||||
|
||||
private static void ThemeManagerOnThemeChanged (object? sender, EventArgs<string> e)
|
||||
{
|
||||
CM.Apply ();
|
||||
}
|
||||
private static void ThemeManagerOnThemeChanged (object? sender, EventArgs<string> e) { CM.Apply (); }
|
||||
|
||||
private static void StopConfigWatcher ()
|
||||
{
|
||||
@@ -372,11 +370,10 @@ public class UICatalog
|
||||
}
|
||||
|
||||
int item = UICatalogRunnable.CachedScenarios!.IndexOf (
|
||||
UICatalogRunnable.CachedScenarios!.FirstOrDefault (
|
||||
s =>
|
||||
s.GetName ()
|
||||
.Equals (options.Scenario, StringComparison.OrdinalIgnoreCase)
|
||||
)!);
|
||||
UICatalogRunnable.CachedScenarios!.FirstOrDefault (s =>
|
||||
s.GetName ()
|
||||
.Equals (options.Scenario, StringComparison.OrdinalIgnoreCase)
|
||||
)!);
|
||||
UICatalogRunnable.CachedSelectedScenario = (Scenario)Activator.CreateInstance (UICatalogRunnable.CachedScenarios [item].GetType ())!;
|
||||
|
||||
BenchmarkResults? results = RunScenario (UICatalogRunnable.CachedSelectedScenario, options.Benchmark);
|
||||
|
||||
@@ -155,7 +155,7 @@ public class UICatalogRunnable : Runnable
|
||||
"_About...",
|
||||
"About UI Catalog",
|
||||
() => MessageBox.Query (
|
||||
App,
|
||||
App!,
|
||||
"",
|
||||
GetAboutBoxMessage (),
|
||||
wrapMessage: false,
|
||||
|
||||
Reference in New Issue
Block a user