mirror of
https://github.com/riegera2412/UVtools.git
synced 2026-07-12 03:22:32 +02:00
b2bd1c41f1
* (Add) PrusaSlicer Printer: Elegoo Mars 2 Pro * (Add) PrusaSlicer Printer: Creality LD-002H * (Add) PrusaSlicer Printer: Voxelab Polaris * (Add) File Format: UVJ (#8) * (Add) Mutataor: Pixel Dimming * (Add) Pixel Editor tab with new drawing functions * (Add) Pixel Editor: Bursh area and shape * (Add) Pixel Editor: Supports * (Add) Pixel Editor: Drain holes * (Add) Settings for pixel editor * (Add) Setting: File open default directory * (Add) Setting: File save default directory * (Add) Setting: File extract default directory * (Add) Setting: File convert default directory * (Add) Setting: File save prompt for overwrite (#10) * (Add) Setting: File save preffix and suffix name * (Add) Setting: UVtools version to the title bar * (Improvement) Force same directory as input file on dialogs * (Improvement) Pattern: Better positioning when not using an anchor, now it's more center friendly * (Change) Setting: Start maximized defaults to true * (Fix) Pattern: Calculated volume was appending one margin width/height more * (Fix) When cancel a file load, some shortcuts can crash the program as it assume file is loaded * (Fix) pws: Encode using the same count-of-threshold method as CBDDLP (ezrec/uv3dp#79)
54 lines
1.9 KiB
C#
54 lines
1.9 KiB
C#
/*
|
|
* GNU AFFERO GENERAL PUBLIC LICENSE
|
|
* Version 3, 19 November 2007
|
|
* Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
|
* Everyone is permitted to copy and distribute verbatim copies
|
|
* of this license document, but changing it is not allowed.
|
|
*/
|
|
|
|
using System;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace UVtools.Core.Extensions
|
|
{
|
|
public static class StringExtensions
|
|
{
|
|
/// <summary>
|
|
/// Upper the first character in a string
|
|
/// </summary>
|
|
/// <param name="input">Input string</param>
|
|
/// <returns>Modified string with fist character upper</returns>
|
|
public static string FirstCharToUpper(this string input)
|
|
{
|
|
switch (input)
|
|
{
|
|
case null: throw new ArgumentNullException(nameof(input));
|
|
case "": throw new ArgumentException($"{nameof(input)} cannot be empty", nameof(input));
|
|
default: return input.First().ToString().ToUpper() + input.Substring(1);
|
|
}
|
|
}
|
|
|
|
public static string Repeat(this string s, int n)
|
|
=> n <= 0 ? string.Empty : new StringBuilder(s.Length * n).Insert(0, s, n).ToString();
|
|
|
|
/// <summary>
|
|
/// Converts a string into a target type
|
|
/// </summary>
|
|
/// <typeparam name="T">Target type to convert into</typeparam>
|
|
/// <param name="input">Value</param>
|
|
/// <returns>Converted value into target type</returns>
|
|
public static T Convert<T>(this string input)
|
|
{
|
|
var converter = TypeDescriptor.GetConverter(typeof(T));
|
|
if (converter != null)
|
|
{
|
|
//Cast ConvertFromString(string text) : object to (T)
|
|
return (T)converter.ConvertFromString(input);
|
|
}
|
|
return default(T);
|
|
}
|
|
}
|
|
}
|