* Remove GetBaseApplicationDirectory() & Move logs directory to user base path We should assume the application directory might be write-protected. * Use Ryujinx.sh in Ryujinx.desktop This desktop file isn't really used right now, so this changes effectively nothing. * Use properties in ReleaseInformation.cs and add ConfigName property * Configure config filename in Github workflows * Add a separate config step for macOS Because they use BSD sed instead of GNU sed * Keep log directory at the old location for dev environments * Add FileSystemUtils since Directory.Move() doesn't work across filesystems Steal CopyDirectory code from https://learn.microsoft.com/en-us/dotnet/standard/io/how-to-copy-directories * Fix "Open Logs folder" button pointing to the wrong directory * Add execute permissions to Ryujinx.sh * Fix missing newlines * AppDataManager: Use FileSystemUtils.MoveDirectory() * Make dotnet format happy * Add a fallback for the logging directory
37 lines
1.3 KiB
C#
37 lines
1.3 KiB
C#
using Gtk;
|
|
using Ryujinx.Common;
|
|
using Ryujinx.Common.Logging;
|
|
using Ryujinx.Ui.Common.Configuration;
|
|
using System.IO;
|
|
|
|
namespace Ryujinx.Ui.Helper
|
|
{
|
|
static class ThemeHelper
|
|
{
|
|
public static void ApplyTheme()
|
|
{
|
|
if (!ConfigurationState.Instance.Ui.EnableCustomTheme)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (File.Exists(ConfigurationState.Instance.Ui.CustomThemePath) && (Path.GetExtension(ConfigurationState.Instance.Ui.CustomThemePath) == ".css"))
|
|
{
|
|
CssProvider cssProvider = new();
|
|
|
|
cssProvider.LoadFromPath(ConfigurationState.Instance.Ui.CustomThemePath);
|
|
|
|
StyleContext.AddProviderForScreen(Gdk.Screen.Default, cssProvider, 800);
|
|
}
|
|
else
|
|
{
|
|
Logger.Warning?.Print(LogClass.Application, $"The \"custom_theme_path\" section in \"{ReleaseInformation.ConfigName}\" contains an invalid path: \"{ConfigurationState.Instance.Ui.CustomThemePath}\".");
|
|
|
|
ConfigurationState.Instance.Ui.CustomThemePath.Value = "";
|
|
ConfigurationState.Instance.Ui.EnableCustomTheme.Value = false;
|
|
ConfigurationState.Instance.ToFileFormat().SaveConfig(Program.ConfigurationPath);
|
|
}
|
|
}
|
|
}
|
|
}
|