diff --git a/src/ViewModels/CommitDetail.cs b/src/ViewModels/CommitDetail.cs
index 55618897..cf26d529 100644
--- a/src/ViewModels/CommitDetail.cs
+++ b/src/ViewModels/CommitDetail.cs
@@ -213,13 +213,13 @@ namespace SourceGit.ViewModels
var bitmap = fileSize > 0 ? new Bitmap(stream) : null;
var imageType = ext!.Substring(1).ToUpper(CultureInfo.CurrentCulture);
var image = new Models.RevisionImageFile() { Image = bitmap, FileSize = fileSize, ImageType = imageType };
- Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = image);
+ Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = new FileContent(file.Path, image));
}
else
{
var size = new Commands.QueryFileSize(_repo.FullPath, file.Path, _commit.SHA).Result();
var binary = new Models.RevisionBinaryFile() { Size = size };
- Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = binary);
+ Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = new FileContent(file.Path, binary));
}
return;
@@ -233,12 +233,12 @@ namespace SourceGit.ViewModels
var obj = new Models.RevisionLFSObject() { Object = new Models.LFSObject() };
obj.Object.Oid = matchLFS.Groups[1].Value;
obj.Object.Size = long.Parse(matchLFS.Groups[2].Value);
- Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = obj);
+ Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = new FileContent(file.Path, obj));
}
else
{
var txt = new Models.RevisionTextFile() { FileName = file.Path, Content = content };
- Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = txt);
+ Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = new FileContent(file.Path, txt));
}
});
break;
@@ -256,17 +256,17 @@ namespace SourceGit.ViewModels
FullMessage = new Models.CommitFullMessage { Message = body }
};
- Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = submodule);
+ Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = new FileContent(file.Path, submodule));
}
else
{
Dispatcher.UIThread.Invoke(() =>
{
- ViewRevisionFileContent = new Models.RevisionSubmodule()
+ ViewRevisionFileContent = new FileContent(file.Path, new Models.RevisionSubmodule()
{
Commit = new Models.Commit() { SHA = file.SHA },
FullMessage = null,
- };
+ });
});
}
});
diff --git a/src/ViewModels/FileContent.cs b/src/ViewModels/FileContent.cs
new file mode 100644
index 00000000..86f2e2b0
--- /dev/null
+++ b/src/ViewModels/FileContent.cs
@@ -0,0 +1,8 @@
+namespace SourceGit.ViewModels
+{
+ public class FileContent(string path, object content)
+ {
+ public string Path { get; set; } = path;
+ public object Content { get; set; } = content;
+ }
+}
diff --git a/src/ViewModels/FileHistories.cs b/src/ViewModels/FileHistories.cs
index 0e474af2..4927362e 100644
--- a/src/ViewModels/FileHistories.cs
+++ b/src/ViewModels/FileHistories.cs
@@ -12,12 +12,6 @@ using CommunityToolkit.Mvvm.ComponentModel;
namespace SourceGit.ViewModels
{
- public class FileHistoriesRevisionFile(string path, object content)
- {
- public string Path { get; set; } = path;
- public object Content { get; set; } = content;
- }
-
public partial class FileHistoriesSingleRevision : ObservableObject
{
public bool IsDiffMode
@@ -65,7 +59,7 @@ namespace SourceGit.ViewModels
var objs = new Commands.QueryRevisionObjects(_repo.FullPath, _revision.SHA, _file).Result();
if (objs.Count == 0)
{
- ViewContent = new FileHistoriesRevisionFile(_file, null);
+ ViewContent = new FileContent(_file, null);
return;
}
@@ -86,13 +80,13 @@ namespace SourceGit.ViewModels
var bitmap = fileSize > 0 ? new Bitmap(stream) : null;
var imageType = Path.GetExtension(_file)!.TrimStart('.').ToUpper(CultureInfo.CurrentCulture);
var image = new Models.RevisionImageFile() { Image = bitmap, FileSize = fileSize, ImageType = imageType };
- Dispatcher.UIThread.Invoke(() => ViewContent = new FileHistoriesRevisionFile(_file, image));
+ Dispatcher.UIThread.Invoke(() => ViewContent = new FileContent(_file, image));
}
else
{
var size = new Commands.QueryFileSize(_repo.FullPath, _file, _revision.SHA).Result();
var binaryFile = new Models.RevisionBinaryFile() { Size = size };
- Dispatcher.UIThread.Invoke(() => ViewContent = new FileHistoriesRevisionFile(_file, binaryFile));
+ Dispatcher.UIThread.Invoke(() => ViewContent = new FileContent(_file, binaryFile));
}
return;
@@ -106,12 +100,12 @@ namespace SourceGit.ViewModels
var lfs = new Models.RevisionLFSObject() { Object = new() };
lfs.Object.Oid = matchLFS.Groups[1].Value;
lfs.Object.Size = long.Parse(matchLFS.Groups[2].Value);
- Dispatcher.UIThread.Invoke(() => ViewContent = new FileHistoriesRevisionFile(_file, lfs));
+ Dispatcher.UIThread.Invoke(() => ViewContent = new FileContent(_file, lfs));
}
else
{
var txt = new Models.RevisionTextFile() { FileName = obj.Path, Content = content };
- Dispatcher.UIThread.Invoke(() => ViewContent = new FileHistoriesRevisionFile(_file, txt));
+ Dispatcher.UIThread.Invoke(() => ViewContent = new FileContent(_file, txt));
}
});
break;
@@ -128,7 +122,7 @@ namespace SourceGit.ViewModels
Commit = commit,
FullMessage = new Models.CommitFullMessage { Message = message }
};
- Dispatcher.UIThread.Invoke(() => ViewContent = new FileHistoriesRevisionFile(_file, module));
+ Dispatcher.UIThread.Invoke(() => ViewContent = new FileContent(_file, module));
}
else
{
@@ -137,12 +131,12 @@ namespace SourceGit.ViewModels
Commit = new Models.Commit() { SHA = obj.SHA },
FullMessage = null
};
- Dispatcher.UIThread.Invoke(() => ViewContent = new FileHistoriesRevisionFile(_file, module));
+ Dispatcher.UIThread.Invoke(() => ViewContent = new FileContent(_file, module));
}
});
break;
default:
- ViewContent = new FileHistoriesRevisionFile(_file, null);
+ ViewContent = new FileContent(_file, null);
break;
}
}
diff --git a/src/Views/FileContentViewer.axaml b/src/Views/FileContentViewer.axaml
new file mode 100644
index 00000000..716b56d4
--- /dev/null
+++ b/src/Views/FileContentViewer.axaml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Views/FileContentViewer.axaml.cs b/src/Views/FileContentViewer.axaml.cs
new file mode 100644
index 00000000..4f60608c
--- /dev/null
+++ b/src/Views/FileContentViewer.axaml.cs
@@ -0,0 +1,12 @@
+using Avalonia.Controls;
+
+namespace SourceGit.Views
+{
+ public partial class FileContentViewer : UserControl
+ {
+ public FileContentViewer()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/src/Views/FileHistories.axaml b/src/Views/FileHistories.axaml
index e7a5c072..f636ee78 100644
--- a/src/Views/FileHistories.axaml
+++ b/src/Views/FileHistories.axaml
@@ -133,26 +133,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/src/Views/RevisionFiles.axaml b/src/Views/RevisionFiles.axaml
index 6575dc66..03350c04 100644
--- a/src/Views/RevisionFiles.axaml
+++ b/src/Views/RevisionFiles.axaml
@@ -113,7 +113,7 @@
-
+