Skip to content

Commit d3c9d69

Browse files
committed
v0.2.2.0 ファイル名フィルタを新規作成時にデフォルトで埋めるようにした
1 parent 1f3d4d6 commit d3c9d69

5 files changed

Lines changed: 132 additions & 74 deletions

File tree

GhostDist/Forms/ProjectEditForm.Designer.cs

Lines changed: 56 additions & 27 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

GhostDist/Forms/ProjectEditForm.cs

Lines changed: 37 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public ProjectEditForm()
1919
InitializeComponent();
2020
Settings = new ProjectSettings();
2121
InitializeForm();
22+
LoadSettings();
2223
}
2324

2425
public ProjectEditForm(ProjectSettings settings)
@@ -128,11 +129,11 @@ private void UpdateControlsState()
128129
narNameEdit.Enabled = needsNar;
129130
narLocateButton.Enabled = needsNar;
130131

131-
// アップロード先選択(FTP/ななろだ)はUploadモード時のみ表示
132+
// アップロード先選択(FTP/ななろだ)はUploadモード時のみ有効
132133
bool isFtpUpload = isUpload && ftpRadio.Checked;
133134
bool isNarNaLoaderUpload = isUpload && nanaloaderRadio.Checked;
134-
ftpRadio.Visible = isUpload;
135-
nanaloaderRadio.Visible = isUpload;
135+
ftpRadio.Enabled = isUpload;
136+
nanaloaderRadio.Enabled = isUpload;
136137

137138
// FTP固有設定: ネットワーク更新 OR FTPアップロード時に有効
138139
bool needsFtpSettings = (isNetwork || isFtpUpload);
@@ -148,47 +149,13 @@ private void UpdateControlsState()
148149
useDefaultFTPCheck.Enabled = needsAuth;
149150
setDefaultButton.Enabled = needsAuth;
150151

151-
// ななろだ設定はNarNaLoaderアップロード時のみ表示・有効
152-
ghostIdLabel.Visible = isUpload;
153-
ghostIdEdit.Visible = isUpload;
154-
uploadUrlLabel.Visible = isUpload;
155-
uploadUrlEdit.Visible = isUpload;
152+
// ななろだ設定の有効/無効制御
153+
// ラベルはUploadモード時に有効化
154+
ghostIdLabel.Enabled = isUpload;
155+
uploadUrlLabel.Enabled = isUpload;
156+
// テキストボックスはNarNaLoaderアップロード時のみ有効
156157
ghostIdEdit.Enabled = isNarNaLoaderUpload && !useDefaultFTPCheck.Checked;
157158
uploadUrlEdit.Enabled = isNarNaLoaderUpload && !useDefaultFTPCheck.Checked;
158-
159-
// アーカイブ生成時の必須ファイル追加
160-
if (needsNar)
161-
{
162-
EnsurePatternExists(processNameMemo, "install.txt");
163-
EnsurePatternExists(processNameMemo, "updates2.dau");
164-
EnsurePatternExists(processNameMemo, "ghost/master/updates2.dau");
165-
}
166-
else
167-
{
168-
// ネットワーク更新時は不要なパターンを削除
169-
RemovePattern(processNameMemo, "install.txt");
170-
RemovePattern(processNameMemo, "updates2.dau");
171-
RemovePattern(processNameMemo, "ghost/master/updates2.dau");
172-
}
173-
}
174-
175-
private void EnsurePatternExists(TextBox textBox, string pattern)
176-
{
177-
var lines = textBox.Lines;
178-
foreach (var line in lines)
179-
{
180-
if (line.Trim() == pattern)
181-
return;
182-
}
183-
184-
textBox.AppendText(Environment.NewLine + pattern);
185-
}
186-
187-
private void RemovePattern(TextBox textBox, string pattern)
188-
{
189-
var lines = new System.Collections.Generic.List<string>(textBox.Lines);
190-
lines.RemoveAll(line => line.Trim() == pattern);
191-
textBox.Lines = lines.ToArray();
192159
}
193160

194161
private void networkRadio_CheckedChanged(object sender, EventArgs e)
@@ -429,5 +396,33 @@ private void LoadUploadSettings()
429396
ghostIdEdit.Text = Settings.NarNaLoaderGhostId;
430397
uploadUrlEdit.Text = config.NarNaLoaderUploadUrl;
431398
}
399+
400+
private void resetProcessNameButton_Click(object sender, EventArgs e)
401+
{
402+
var result = MessageBox.Show(
403+
"処理ファイル名条件をデフォルト値にリセットしますか?",
404+
"確認",
405+
MessageBoxButtons.YesNo,
406+
MessageBoxIcon.Question);
407+
408+
if (result == DialogResult.Yes)
409+
{
410+
processNameMemo.Text = ProjectSettings.GetDefaultProcessPatterns();
411+
}
412+
}
413+
414+
private void resetEscapeNameButton_Click(object sender, EventArgs e)
415+
{
416+
var result = MessageBox.Show(
417+
"除外ファイル名条件をデフォルト値にリセットしますか?",
418+
"確認",
419+
MessageBoxButtons.YesNo,
420+
MessageBoxIcon.Question);
421+
422+
if (result == DialogResult.Yes)
423+
{
424+
escapeNameMemo.Text = ProjectSettings.GetDefaultExcludePatterns();
425+
}
426+
}
432427
}
433428
}

GhostDist/Models/ProjectSettings.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public ProjectSettings()
8787
/// <summary>
8888
/// デフォルトの処理対象パターン
8989
/// </summary>
90-
private string GetDefaultProcessPatterns()
90+
public static string GetDefaultProcessPatterns()
9191
{
9292
return string.Join(Environment.NewLine, new[]
9393
{
@@ -130,7 +130,7 @@ private string GetDefaultProcessPatterns()
130130
/// <summary>
131131
/// デフォルトの除外パターン
132132
/// </summary>
133-
private string GetDefaultExcludePatterns()
133+
public static string GetDefaultExcludePatterns()
134134
{
135135
return string.Join(Environment.NewLine, new[]
136136
{

GhostDist/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@
1515

1616
[assembly: Guid("a1b2c3d4-e5f6-7890-abcd-ef1234567890")]
1717

18-
[assembly: AssemblyVersion("0.2.1.5")]
19-
[assembly: AssemblyFileVersion("0.2.1.5")]
18+
[assembly: AssemblyVersion("0.2.2.0")]
19+
[assembly: AssemblyFileVersion("0.2.2.0")]

GhostDist/Services/NarCreationService.cs

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ public string CreateNar(ProjectSettings settings)
3232

3333
// ファイルリスト生成
3434
OnLogMessage("ファイルリストを生成します。");
35-
if (!updates.Make(settings.ProcessName, settings.ExcludeName))
35+
36+
// NAR作成に必須のファイルパターンを追加
37+
var processPatterns = AddRequiredPatternsForNar(settings.ProcessName);
38+
39+
if (!updates.Make(processPatterns, settings.ExcludeName))
3640
{
3741
OnLogMessage($"delete.txtに問題となる可能性のある記述を検出しました。");
3842
OnLogMessage(updates.DeleteTxtError);
@@ -271,6 +275,36 @@ private byte[] CombineExtraFields(List<byte[]> extraFields)
271275
return combined;
272276
}
273277

278+
/// <summary>
279+
/// NAR作成に必須のファイルパターンを追加
280+
/// </summary>
281+
/// <param name="processPatterns">元の処理対象パターン</param>
282+
/// <returns>必須パターンを含む処理対象パターン</returns>
283+
private string AddRequiredPatternsForNar(string processPatterns)
284+
{
285+
var requiredPatterns = new[] { "install.txt", "updates2.dau", "ghost/master/updates2.dau" };
286+
var patterns = new List<string>();
287+
288+
// 既存のパターンを追加
289+
if (!string.IsNullOrEmpty(processPatterns))
290+
{
291+
patterns.AddRange(processPatterns.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries)
292+
.Select(p => p.Trim())
293+
.Where(p => !string.IsNullOrEmpty(p)));
294+
}
295+
296+
// 必須パターンを追加(重複チェック)
297+
foreach (var required in requiredPatterns)
298+
{
299+
if (!patterns.Any(p => p.Equals(required, StringComparison.OrdinalIgnoreCase)))
300+
{
301+
patterns.Add(required);
302+
}
303+
}
304+
305+
return string.Join(Environment.NewLine, patterns);
306+
}
307+
274308
protected virtual void OnLogMessage(string message)
275309
{
276310
LogMessage?.Invoke(this, message);

0 commit comments

Comments
 (0)