diff --git a/src/modules/peek/Peek.Common/Helpers/Logger.cs b/src/modules/peek/Peek.Common/Helpers/Logger.cs
deleted file mode 100644
index 14b278358f0..00000000000
--- a/src/modules/peek/Peek.Common/Helpers/Logger.cs
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright (c) Microsoft Corporation
-// The Microsoft Corporation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using System;
-using System.Diagnostics;
-using System.Globalization;
-using System.IO;
-using Scripting;
-
-namespace Peek.Common.Helpers
-{
- public static class Logger
- {
- private static readonly IFileSystem _fileSystem = new FileSystemObject();
- private static readonly string ApplicationLogPath = Path.Combine(interop.Constants.AppDataPath(), "Peek\\Logs");
-
- static Logger()
- {
- if (!_fileSystem.FolderExists(ApplicationLogPath))
- {
- _fileSystem.CreateFolder(ApplicationLogPath);
- }
-
- // Using InvariantCulture since this is used for a log file name
- var logFilePath = _fileSystem.BuildPath(ApplicationLogPath, "Log_" + DateTime.Now.ToString(@"yyyy-MM-dd", CultureInfo.InvariantCulture) + ".txt");
-
- Trace.Listeners.Add(new TextWriterTraceListener(logFilePath));
-
- Trace.AutoFlush = true;
- }
-
- public static void LogError(string message)
- {
- Log(message, "ERROR");
- }
-
- public static void LogError(string message, Exception ex)
- {
- Log(
- message + Environment.NewLine +
- ex?.Message + Environment.NewLine +
- "Inner exception: " + Environment.NewLine +
- ex?.InnerException?.Message + Environment.NewLine +
- "Stack trace: " + Environment.NewLine +
- ex?.StackTrace,
- "ERROR");
- }
-
- public static void LogWarning(string message)
- {
- Log(message, "WARNING");
- }
-
- public static void LogInfo(string message)
- {
- Log(message, "INFO");
- }
-
- private static void Log(string message, string type)
- {
- Trace.WriteLine(type + ": " + DateTime.Now.TimeOfDay);
- Trace.Indent();
- Trace.WriteLine(GetCallerInfo());
- Trace.WriteLine(message);
- Trace.Unindent();
- }
-
- private static string GetCallerInfo()
- {
- StackTrace stackTrace = new StackTrace();
-
- var methodName = stackTrace.GetFrame(3)?.GetMethod();
- var className = methodName?.DeclaringType?.Name ?? string.Empty;
- return "[Method]: " + methodName?.Name + " [Class]: " + className;
- }
- }
-}
diff --git a/src/modules/peek/Peek.Common/Models/FileItem.cs b/src/modules/peek/Peek.Common/Models/FileItem.cs
index da146f3e474..4714d30f6e6 100644
--- a/src/modules/peek/Peek.Common/Models/FileItem.cs
+++ b/src/modules/peek/Peek.Common/Models/FileItem.cs
@@ -3,10 +3,8 @@
// See the LICENSE file in the project root for more information.
using System;
-using System.Runtime.InteropServices;
using System.Threading.Tasks;
-using Peek.Common.Extensions;
-using Peek.Common.Helpers;
+using ManagedCommon;
using Windows.Storage;
#nullable enable
diff --git a/src/modules/peek/Peek.Common/Models/FolderItem.cs b/src/modules/peek/Peek.Common/Models/FolderItem.cs
index 77780fb5759..a270ff0c7b4 100644
--- a/src/modules/peek/Peek.Common/Models/FolderItem.cs
+++ b/src/modules/peek/Peek.Common/Models/FolderItem.cs
@@ -3,10 +3,8 @@
// See the LICENSE file in the project root for more information.
using System;
-using System.Runtime.InteropServices;
using System.Threading.Tasks;
-using Peek.Common.Extensions;
-using Peek.Common.Helpers;
+using ManagedCommon;
using Windows.Storage;
#nullable enable
diff --git a/src/modules/peek/Peek.Common/Peek.Common.csproj b/src/modules/peek/Peek.Common/Peek.Common.csproj
index 9612f2273dd..cd2ccb540c9 100644
--- a/src/modules/peek/Peek.Common/Peek.Common.csproj
+++ b/src/modules/peek/Peek.Common/Peek.Common.csproj
@@ -32,6 +32,7 @@
+
diff --git a/src/modules/peek/Peek.FilePreviewer/Controls/BrowserControl.xaml.cs b/src/modules/peek/Peek.FilePreviewer/Controls/BrowserControl.xaml.cs
index 08412489718..70960ab0f2f 100644
--- a/src/modules/peek/Peek.FilePreviewer/Controls/BrowserControl.xaml.cs
+++ b/src/modules/peek/Peek.FilePreviewer/Controls/BrowserControl.xaml.cs
@@ -4,12 +4,12 @@
using System;
using System.Threading.Tasks;
+using ManagedCommon;
using Microsoft.UI;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.Web.WebView2.Core;
using Peek.Common.Constants;
-using Peek.Common.Helpers;
using Windows.ApplicationModel.DataTransfer;
using Windows.System;
using Windows.UI;
diff --git a/src/modules/peek/Peek.FilePreviewer/FilePreview.xaml.cs b/src/modules/peek/Peek.FilePreviewer/FilePreview.xaml.cs
index bfa8c34d999..aef380e9ecd 100644
--- a/src/modules/peek/Peek.FilePreviewer/FilePreview.xaml.cs
+++ b/src/modules/peek/Peek.FilePreviewer/FilePreview.xaml.cs
@@ -8,6 +8,7 @@
using System.Threading;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.ComponentModel;
+using ManagedCommon;
using Microsoft.PowerToys.Telemetry;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
diff --git a/src/modules/peek/Peek.FilePreviewer/Previewers/Archives/Helpers/IconCache.cs b/src/modules/peek/Peek.FilePreviewer/Previewers/Archives/Helpers/IconCache.cs
index d9e3c009c98..f07eecc7b29 100644
--- a/src/modules/peek/Peek.FilePreviewer/Previewers/Archives/Helpers/IconCache.cs
+++ b/src/modules/peek/Peek.FilePreviewer/Previewers/Archives/Helpers/IconCache.cs
@@ -8,9 +8,9 @@
using System.Runtime.InteropServices;
using System.Threading;
using System.Threading.Tasks;
+using ManagedCommon;
using Microsoft.UI.Xaml.Media.Imaging;
using Peek.Common;
-using Peek.Common.Helpers;
using Peek.Common.Models;
using Peek.FilePreviewer.Previewers.Helpers;
diff --git a/src/modules/peek/Peek.FilePreviewer/Previewers/MediaPreviewer/ImagePreviewer.cs b/src/modules/peek/Peek.FilePreviewer/Previewers/MediaPreviewer/ImagePreviewer.cs
index f02f703c047..d01a60e56e3 100644
--- a/src/modules/peek/Peek.FilePreviewer/Previewers/MediaPreviewer/ImagePreviewer.cs
+++ b/src/modules/peek/Peek.FilePreviewer/Previewers/MediaPreviewer/ImagePreviewer.cs
@@ -8,6 +8,7 @@
using System.Threading;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.ComponentModel;
+using ManagedCommon;
using Microsoft.UI.Dispatching;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Media.Imaging;
diff --git a/src/modules/peek/Peek.UI/Extensions/IShellItemExtensions.cs b/src/modules/peek/Peek.UI/Extensions/IShellItemExtensions.cs
index 753b7a61ce5..3d2fd2e57fc 100644
--- a/src/modules/peek/Peek.UI/Extensions/IShellItemExtensions.cs
+++ b/src/modules/peek/Peek.UI/Extensions/IShellItemExtensions.cs
@@ -4,8 +4,7 @@
using System;
using System.IO;
-using System.Runtime.CompilerServices;
-using Peek.Common.Helpers;
+using ManagedCommon;
using Peek.Common.Models;
namespace Peek.UI.Extensions
diff --git a/src/modules/peek/Peek.UI/Helpers/DefaultAppHelper.cs b/src/modules/peek/Peek.UI/Helpers/DefaultAppHelper.cs
index 8796157cd92..2938c70e012 100644
--- a/src/modules/peek/Peek.UI/Helpers/DefaultAppHelper.cs
+++ b/src/modules/peek/Peek.UI/Helpers/DefaultAppHelper.cs
@@ -4,7 +4,7 @@
using System.Runtime.InteropServices;
using System.Text;
-using Peek.Common.Helpers;
+using ManagedCommon;
using Peek.Common.Models;
using Peek.UI.Native;
@@ -30,7 +30,7 @@ public static string TryGetDefaultAppName(string extension)
ret = NativeMethods.AssocQueryString(NativeMethods.AssocF.Verify, NativeMethods.AssocStr.FriendlyAppName, extension, null, sb, ref length);
if (ret != HResult.Ok)
{
- Logger.LogError($"Error when getting accessString for {extension} file: {Marshal.GetExceptionForHR((int)ret)!.Message}" );
+ Logger.LogError($"Error when getting accessString for {extension} file: {Marshal.GetExceptionForHR((int)ret)!.Message}");
return appName;
}
diff --git a/src/modules/peek/Peek.UI/MainWindowViewModel.cs b/src/modules/peek/Peek.UI/MainWindowViewModel.cs
index c7d57bd83e8..d5c442c3c2f 100644
--- a/src/modules/peek/Peek.UI/MainWindowViewModel.cs
+++ b/src/modules/peek/Peek.UI/MainWindowViewModel.cs
@@ -5,6 +5,7 @@
using System;
using System.Linq;
using CommunityToolkit.Mvvm.ComponentModel;
+using ManagedCommon;
using Microsoft.UI.Xaml;
using Peek.Common.Helpers;
using Peek.Common.Models;
@@ -15,6 +16,7 @@ namespace Peek.UI
{
public partial class MainWindowViewModel : ObservableObject
{
+ private static readonly string _defaultWindowTitle = ResourceLoaderInstance.ResourceLoader.GetString("AppTitle/Title");
private const int NavigationThrottleDelayMs = 100;
[ObservableProperty]
@@ -23,6 +25,16 @@ public partial class MainWindowViewModel : ObservableObject
[ObservableProperty]
private IFileSystemItem? _currentItem;
+ partial void OnCurrentItemChanged(IFileSystemItem? value)
+ {
+ WindowTitle = value != null
+ ? ReadableStringHelper.FormatResourceString("WindowTitle", value.Name)
+ : _defaultWindowTitle;
+ }
+
+ [ObservableProperty]
+ private string _windowTitle;
+
[ObservableProperty]
private NeighboringItems? _items;
@@ -36,6 +48,7 @@ public partial class MainWindowViewModel : ObservableObject
public MainWindowViewModel(NeighboringItemsQuery query)
{
NeighboringItemsQuery = query;
+ WindowTitle = _defaultWindowTitle;
NavigationThrottleTimer.Tick += NavigationThrottleTimer_Tick;
NavigationThrottleTimer.Interval = TimeSpan.FromMilliseconds(NavigationThrottleDelayMs);
diff --git a/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml b/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml
index e3c8c7d4ec8..1a5762d7544 100644
--- a/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml
+++ b/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml
@@ -10,6 +10,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:views="using:Peek.UI.Views"
xmlns:winuiex="using:WinUIEx"
+ Title="{x:Bind ViewModel.WindowTitle, Mode=OneWay}"
MinWidth="450"
MinHeight="400"
mc:Ignorable="d">
diff --git a/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs b/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs
index 7fc54a55201..e9b5cc83c95 100644
--- a/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs
+++ b/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs
@@ -47,6 +47,7 @@ public MainWindow()
ViewModel = Application.Current.GetService();
TitleBarControl.SetTitleBarToWindow(this);
+ AppWindow.SetIcon("Assets/Peek/Icon.ico");
AppWindow.Closing += AppWindow_Closing;
}
diff --git a/src/modules/peek/Peek.UI/PeekXAML/Views/TitleBar.xaml.cs b/src/modules/peek/Peek.UI/PeekXAML/Views/TitleBar.xaml.cs
index 68ad63dd48d..f24aedaf751 100644
--- a/src/modules/peek/Peek.UI/PeekXAML/Views/TitleBar.xaml.cs
+++ b/src/modules/peek/Peek.UI/PeekXAML/Views/TitleBar.xaml.cs
@@ -21,7 +21,6 @@
using Windows.Graphics;
using Windows.Storage;
using Windows.System;
-using WinUIEx;
namespace Peek.UI.Views
{
@@ -123,11 +122,6 @@ public void SetTitleBarToWindow(MainWindow mainWindow)
var hWnd = WinRT.Interop.WindowNative.GetWindowHandle(this);
ThemeHelpers.SetImmersiveDarkMode(hWnd, ThemeHelpers.GetAppTheme() == AppTheme.Dark);
Visibility = Visibility.Collapsed;
-
- // Set window icon
- WindowId windowId = Win32Interop.GetWindowIdFromWindow(hWnd);
- AppWindow appWindow = AppWindow.GetFromWindowId(windowId);
- appWindow.SetIcon("Assets/Peek/Icon.ico");
}
}
diff --git a/src/modules/peek/Peek.UI/Strings/en-us/Resources.resw b/src/modules/peek/Peek.UI/Strings/en-us/Resources.resw
index b711a9e26f2..726796babb8 100644
--- a/src/modules/peek/Peek.UI/Strings/en-us/Resources.resw
+++ b/src/modules/peek/Peek.UI/Strings/en-us/Resources.resw
@@ -261,4 +261,8 @@
({1:N0} byte)
Displays unit byte. Don't localize the "{1:N0}" part.
+
+ {0} - Peek
+ Title of the Peek window. {0} is the name of the currently previewed item."Peek" is the name of the utility.
+
\ No newline at end of file