Compare commits

...

4 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
d91ef677f2 Address code review feedback: improve logic and remove redundant code
Co-authored-by: emako <24737061+emako@users.noreply.github.com>
2025-12-08 02:21:31 +00:00
copilot-swe-agent[bot]
9a768b2401 Add remember choice option for protected view notice
Co-authored-by: emako <24737061+emako@users.noreply.github.com>
2025-12-08 02:17:10 +00:00
copilot-swe-agent[bot]
ef17dc5dcc Initial plan 2025-12-08 02:08:39 +00:00
ema
7211c2ebdd Update PowerShell syntax colors in dark theme
Some checks failed
MSBuild / build (push) Has been cancelled
MSBuild / publish (push) Has been cancelled
Changed the color values for Keywords2 and Keywords3 in the PowerShell.xshd dark theme file to use specific hex codes instead of named colors for improved consistency and appearance.
2025-12-05 13:40:57 +08:00
4 changed files with 130 additions and 13 deletions

View File

@@ -108,19 +108,32 @@ public class Plugin : IViewer
{
context.Title = $"[PROTECTED VIEW] {Path.GetFileName(path)}";
MessageBoxResult result = MessageBox.Show(
"""
Be careful - files from the Internet can contain viruses.
The Office interface prevents loading in Protected View.
// Check if user has a saved preference
var savedPreference = SettingHelper.Get<bool?>("AlwaysUnblockProtectedView", null, "QuickLook.Plugin.OfficeViewer");
Would you like OfficeViewer-Native to unblock the ZoneIdentifier of Internet?
""",
"PROTECTED VIEW",
MessageBoxButton.YesNo,
MessageBoxImage.Question
);
bool shouldUnblock;
if (result == MessageBoxResult.Yes)
if (savedPreference.HasValue)
{
// Use saved preference
shouldUnblock = savedPreference.Value;
}
else
{
// Show dialog to ask user
var dialog = new ProtectedViewDialog();
var dialogResult = dialog.ShowDialog();
shouldUnblock = dialogResult == true;
// Save preference if user checked "Remember my choice"
if (dialog.RememberChoice)
{
SettingHelper.Set("AlwaysUnblockProtectedView", shouldUnblock, "QuickLook.Plugin.OfficeViewer");
}
}
if (shouldUnblock)
{
_ = ZoneIdentifierManager.UnblockZone(path);
}

View File

@@ -0,0 +1,60 @@
<Window x:Class="QuickLook.Plugin.OfficeViewer.ProtectedViewDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="PROTECTED VIEW"
Width="500"
Height="250"
WindowStartupLocation="CenterScreen"
ResizeMode="NoResize"
ShowInTaskbar="False">
<Grid Margin="20">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0"
TextWrapping="Wrap"
FontSize="14"
Margin="0,0,0,10">
<Run FontWeight="Bold">Be careful - files from the Internet can contain viruses.</Run>
</TextBlock>
<TextBlock Grid.Row="1"
TextWrapping="Wrap"
Margin="0,0,0,10">
The Office interface prevents loading in Protected View.
</TextBlock>
<TextBlock Grid.Row="2"
TextWrapping="Wrap"
Margin="0,0,0,20">
Would you like OfficeViewer-Native to unblock the ZoneIdentifier of Internet?
</TextBlock>
<StackPanel Grid.Row="3">
<CheckBox x:Name="RememberCheckBox"
Content="Remember my choice"
Margin="0,0,0,15" />
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Right">
<Button x:Name="YesButton"
Content="Yes"
Width="80"
Height="30"
Margin="0,0,10,0"
IsDefault="True"
Click="YesButton_Click" />
<Button x:Name="NoButton"
Content="No"
Width="80"
Height="30"
IsCancel="True"
Click="NoButton_Click" />
</StackPanel>
</StackPanel>
</Grid>
</Window>

View File

@@ -0,0 +1,44 @@
// Copyright © 2017-2025 QL-Win Contributors
//
// This file is part of QuickLook program.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
using System.Windows;
namespace QuickLook.Plugin.OfficeViewer;
public partial class ProtectedViewDialog : Window
{
public bool RememberChoice => RememberCheckBox.IsChecked ?? false;
public bool UserSelectedYes { get; private set; }
public ProtectedViewDialog()
{
InitializeComponent();
}
private void YesButton_Click(object sender, RoutedEventArgs e)
{
UserSelectedYes = true;
DialogResult = true;
Close();
}
private void NoButton_Click(object sender, RoutedEventArgs e)
{
DialogResult = false;
Close();
}
}

View File

@@ -93,7 +93,7 @@
<Key word="workflow"/>
</KeyWords>
<KeyWords name="Keywords2" color="Purple" bold="false" italic="false">
<KeyWords name="Keywords2" color="#D8A0DF" bold="false" italic="false">
<Key word="Add-Computer"/>
<Key word="Add-Content"/>
<Key word="Add-History"/>
@@ -439,7 +439,7 @@
<Key word="Write-Zip"/>
</KeyWords>
<KeyWords name="Keywords3" color="Teal" bold="false" italic="false">
<KeyWords name="Keywords3" color="#80CBC4" bold="false" italic="false">
<Key word="ac"/>
<Key word="asnp"/>
<Key word="cat"/>