-
-
Notifications
You must be signed in to change notification settings - Fork 395
Add private mode option to WebSearch plugin items #3891
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Add private mode option to WebSearch plugin items #3891
Conversation
🥷 Code experts: jjw24 jjw24, Jack251970 have most 👩💻 activity in the files. See details
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame:
Activity based on git-commit:
Knowledge based on git-blame: ✨ Comment |
Be a legend 🏆 by adding a before and after screenshot of the changes you made, especially if they are around UI/UX. |
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. 📝 WalkthroughWalkthroughAdded a per-search-source Private Mode flag: new SearchSource.IsPrivateMode property, UI to set and display it, localization entries for the "Private Mode" label across WebSearch languages, and updated OpenWebUrl calls to pass the private-mode flag. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant SettingsUI
participant SearchSource
participant MainPlugin
participant WebBrowser
User->>SettingsUI: Open source settings / toggle Private Mode
SettingsUI->>SearchSource: Set IsPrivateMode
SearchSource-->>SettingsUI: Persist IsPrivateMode
User->>MainPlugin: Trigger search or select suggestion
MainPlugin->>SearchSource: Read IsPrivateMode
MainPlugin->>WebBrowser: OpenWebUrl(url, IsPrivateMode)
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Suggested reviewers
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 7
🔭 Outside diff range comments (1)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/vi.xaml (1)
1-53
: Translate the “Private mode” label in remaining language filesWe’ve identified that the
flowlauncher_plugin_websearch_private_mode_label
key is still using the English fallback in the following locales. Please update each entry to the correct translation:• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/vi.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/uk-UA.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/tr.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sr.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sk.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-pt.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-br.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pl.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nb.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es-419.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/cs.xaml
• Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ar.xamlEach file, at line 14, currently has:
<system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String>Please replace
Private mode
with the appropriate localized string.
🧹 Nitpick comments (20)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml (1)
14-14
: Localize the new label (Italian).Value is still in English. Suggest Italian translation.
Apply:
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Modalità privata</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es.xaml (1)
14-14
: Localize the new label (Spanish).Value is still in English. Suggest Spanish translation.
Apply:
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Modo privado</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml (1)
14-14
: Localize the new label (French).Value is still in English. Suggest French translation.
Apply:
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Mode privé</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml (1)
14-14
: Localize the new label (Hebrew).Value is still in English. Suggest Hebrew translation.
Apply:
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">מצב פרטי</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml (1)
14-14
: Localize label to Danish instead of English placeholderUse a proper Danish translation to avoid mixed-language UI.
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Privat tilstand</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml (1)
14-14
: Localize label to Japanese instead of English placeholderAdopt a common Japanese phrasing for the feature name.
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">プライベート モード</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es-419.xaml (1)
14-14
: Localize label to Spanish (LATAM) instead of English placeholderUse neutral Latin American Spanish.
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Modo privado</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ar.xaml (1)
14-14
: Localize label to Arabic instead of English placeholderProvide an Arabic translation for consistency.
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">الوضع الخاص</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml (1)
14-14
: Localize label to Dutch instead of English placeholderUse the commonly used Dutch term.
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Privémodus</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml (1)
14-14
: Localize “Private mode” to KoreanUse a native label for consistency with the rest of this file.
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">시크릿 모드</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/tr.xaml (1)
14-14
: Translate “Private mode” to TurkishKeep language consistency within the resource file.
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Gizli mod</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml (1)
14-14
: Translate “Private mode” to GermanUse localized wording to match the rest of the resource file.
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Privater Modus</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml (1)
14-14
: Translate “Private mode” to RussianUse a commonly recognized term to match the file’s language.
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Режим инкогнито</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/vi.xaml (1)
14-14
: Localize label: translate “Private mode” to VietnameseUse a proper Vietnamese translation for consistency with the rest of this file.
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Chế độ riêng tư</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/cs.xaml (1)
14-14
: Localize label: translate “Private mode” to CzechUse a localized term commonly used in browsers (e.g., “Anonymní režim”).
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Anonymní režim</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pl.xaml (1)
14-14
: Localize label: translate “Private mode” to PolishSuggested translation: “Tryb prywatny”.
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Tryb prywatny</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml (1)
14-14
: 本地化标签:将 “Private mode” 翻译为简体中文推荐用词:”隐私模式“(或“无痕模式”,任选其一;此处采用“隐私模式”)。
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">隐私模式</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml (1)
14-14
: 在地化標籤:將 “Private mode” 翻譯為繁體中文建議用詞:「無痕模式」(或「隱私模式」;此處採用「無痕模式」)。
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private mode</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">無痕模式</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/SettingsControl.xaml (1)
99-112
: UI OK; minor accessibility and visual tweak for read-only checkboxThe read-only CheckBox communicates state, but disabling it greys the control, which can reduce readability and negatively affect accessibility. Prefer keeping it enabled but non-interactive.
Use this tweak:
- <CheckBox - HorizontalAlignment="Center" - VerticalAlignment="Center" - IsChecked="{Binding IsPrivateMode}" - IsEnabled="False" - /> + <CheckBox + HorizontalAlignment="Center" + VerticalAlignment="Center" + IsChecked="{Binding IsPrivateMode}" + Focusable="False" + IsHitTestVisible="False" />Also consider aligning boolean columns (Enabled vs Private mode) to a consistent visual style (both text or both checkboxes) for uniformity.
Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml (1)
186-191
: Add a tooltip to clarify dependency on global browser settingTo reduce confusion, clarify that per-item Private mode takes effect only when the default browser is configured to launch in private mode in General settings.
- <CheckBox + <CheckBox Grid.Row="4" Grid.Column="1" Margin="10 10 10 15" VerticalAlignment="Center" - IsChecked="{Binding SearchSource.IsPrivateMode}" /> + IsChecked="{Binding SearchSource.IsPrivateMode}" + ToolTip="{DynamicResource flowlauncher_plugin_websearch_private_mode_tooltip}" />Follow-up: If
flowlauncher_plugin_websearch_private_mode_tooltip
doesn't exist, either add it to languages or inline a brief tooltip string.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (29)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ar.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/cs.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/en.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es-419.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nb.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pl.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-br.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-pt.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sk.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sr.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/tr.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/uk-UA.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/vi.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs
(2 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/SearchSource.cs
(3 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml
(2 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/SettingsControl.xaml
(1 hunks)
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2024-11-03T07:40:11.014Z
Learnt from: Yusyuriv
PR: Flow-Launcher/Flow.Launcher#3057
File: Flow.Launcher.Core/Plugin/JsonRPCPluginSettings.cs:0-0
Timestamp: 2024-11-03T07:40:11.014Z
Learning: In Flow Launcher, when using Windows Forms dialogs (e.g., in `JsonRPCPluginSettings.cs`), path validation is enabled by default in `OpenFileDialog` and `FolderBrowserDialog`, preventing users from selecting invalid paths, but it's possible to opt out of this validation on individual dialogs.
Applied to files:
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sr.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nb.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/en.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/uk-UA.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-br.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-pt.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml
📚 Learning: 2025-03-28T21:12:13.386Z
Learnt from: onesounds
PR: Flow-Launcher/Flow.Launcher#3394
File: Flow.Launcher/Themes/Darker Glass.xaml:134-141
Timestamp: 2025-03-28T21:12:13.386Z
Learning: In Flow.Launcher, hotkey styling is implemented with a two-component structure: a Border element with style `ItemHotkeyBGStyle` that provides background and border styling, containing a TextBlock with style `ItemHotkeyStyle` that handles the text styling.
Applied to files:
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/en.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-br.xaml
Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml
📚 Learning: 2025-07-01T05:46:13.251Z
Learnt from: Jack251970
PR: Flow-Launcher/Flow.Launcher#3791
File: Flow.Launcher.Core/Plugin/PluginManager.cs:293-295
Timestamp: 2025-07-01T05:46:13.251Z
Learning: In Flow.Launcher.Core/Plugin/PluginManager.cs, when checking if a plugin is modified within the PluginManager class itself, prefer using the internal static PluginModified(string id) method directly rather than going through API.PluginModified() for better performance and architectural design.
Applied to files:
Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs
Plugins/Flow.Launcher.Plugin.WebSearch/SearchSource.cs
📚 Learning: 2025-03-28T21:20:54.978Z
Learnt from: onesounds
PR: Flow-Launcher/Flow.Launcher#3394
File: Flow.Launcher/Themes/Darker Glass.xaml:134-141
Timestamp: 2025-03-28T21:20:54.978Z
Learning: In WPF applications like Flow.Launcher, Border elements cannot directly display text content and require a child element like TextBlock to handle text rendering. This separation of concerns (Border for visual container styling, TextBlock for text display) follows WPF best practices and provides greater styling flexibility.
Applied to files:
Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml
🧬 Code Graph Analysis (1)
Plugins/Flow.Launcher.Plugin.WebSearch/SearchSource.cs (1)
Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs (1)
Main
(12-209)
🔇 Additional comments (5)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml (1)
14-14
: All WebSearch language files include the new key
Verified with a script across all 26.xaml
dictionaries underPlugins/Flow.Launcher.Plugin.WebSearch/Languages
; no missingflowlauncher_plugin_websearch_private_mode_label
entries were found.Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs (1)
74-74
: OpenWebUrl(string, bool?) overload verified and private-mode flag propagation is correctVerified:
- IPublicAPI.cs declares
•public void OpenWebUrl(string url, bool? inPrivate = null)
- PublicAPIInstance.cs implements it via
OpenUri(url, inPrivate, true)
- Calls in Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs (lines 74 and 138) match this overload, with
searchSource.IsPrivateMode
(bool) implicitly converting tobool?
- No remaining single-argument
OpenWebUrl
usages were foundThe nullable
inPrivate
parameter will fall back to the global “Default Web Browser → Private mode” setting when null, and explicitly open in (or out of) private mode whentrue
(orfalse
). No changes required.Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml (1)
199-199
: No missing localization key forflowlauncher_plugin_websearch_enabled_label
I’ve verified that
flowlauncher_plugin_websearch_enabled_label
is defined in every language file alongside the existingflowlauncher_plugin_websearch_enable
key. No changes needed here.Plugins/Flow.Launcher.Plugin.WebSearch/SearchSource.cs (2)
23-25
: IconPath expression-bodied refactor looks goodThe simplification is clear and correct, using the appropriate directory based on CustomIcon. No behavior change.
32-33
: IsPrivateMode property and DeepCopy inclusion are correctProperty naming/binding matches XAML; default false ensures backward-compatible deserialization. DeepCopy includes the new field.
Also applies to: 45-45
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds granular private mode control to the WebSearch plugin, allowing users to configure private browsing on a per-search-source basis rather than globally.
- Adds a new
IsPrivateMode
boolean property to individual search sources - Updates the UI to include private mode checkboxes in both the settings list and individual source configuration
- Modifies the web URL opening logic to respect the per-source private mode setting
Reviewed Changes
Copilot reviewed 29 out of 29 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
SearchSource.cs | Adds IsPrivateMode property and includes it in the DeepCopy method |
Main.cs | Updates OpenWebUrl calls to pass the private mode parameter |
SettingsControl.xaml | Adds private mode column to the search sources list view |
SearchSourceSetting.xaml | Adds private mode checkbox to individual source settings |
Languages/*.xaml | Adds localization key for "Private mode" label across all language files |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🔭 Outside diff range comments (1)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-pt.xaml (1)
8-8
: Fix resource key typo in all WebSearch translation filesThe resource key prefix is misspelled (
flowlaucnher_…
) in every.xaml
under Plugins/Flow.Launcher.Plugin.WebSearch/Languages, making theset_browser_path
string unreachable at runtime. All occurrences of
flowlaucnher_plugin_websearch_set_browser_path
should be updated to
flowlauncher_plugin_websearch_set_browser_path
.Affected files (line 8 in each):
- de.xaml
- pl.xaml
- zh-tw.xaml
- vi.xaml
- zh-cn.xaml
- tr.xaml
- he.xaml
- sk.xaml
- ru.xaml
- uk-UA.xaml
- pt-br.xaml
- nl.xaml
- pt-pt.xaml
- nb.xaml
- ko.xaml
- ja.xaml
- fr.xaml
- es.xaml
- es-419.xaml
- it.xaml
- en.xaml
- da.xaml
- cs.xaml
- ar.xaml
- sr.xaml
Example diff (pt-pt.xaml):
- <system:String x:Key="flowlaucnher_plugin_websearch_set_browser_path">Caminho do navegador:</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_set_browser_path">Caminho do navegador:</system:String>Please apply the same change across all translation files.
♻️ Duplicate comments (2)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nb.xaml (1)
14-14
: Use Norwegian Bokmål: “Privat modus” (not “Private modus”)Replace the English adjective with the correct Norwegian one.
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Private modus</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Privat modus</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sr.xaml (1)
14-14
: Use sentence-case in Serbian: “Privatni režim” (lowercase ‘r’).Serbian UI strings typically capitalize only the first word unless it’s a title/proper noun. Adjust casing for consistency.
Apply this diff:
- <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Privatni Režim</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_private_mode_label">Privatni režim</system:String>Optionally re-verify presence of the new key across all language files:
#!/bin/bash set -euo pipefail base_dir='Plugins/Flow.Launcher.Plugin.WebSearch/Languages' echo "Checking for presence of 'flowlauncher_plugin_websearch_private_mode_label' in all language files..." fd -e xaml . "$base_dir" | while read -r f; do if rg -q 'x:Key="flowlauncher_plugin_websearch_private_mode_label"' "$f"; then echo "OK: $f" else echo "MISSING: $f" fi done echo echo "Collected values for quick review:" rg -n -S 'x:Key="flowlauncher_plugin_websearch_private_mode_label"' "$base_dir"
🧹 Nitpick comments (3)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-pt.xaml (2)
4-4
: Nit: Prefer “Definições” (plural) for “Settings” window titleIn PT-PT, “Definições” is the conventional plural for a settings window label.
- <system:String x:Key="flowlauncher_plugin_websearch_window_title">Definição do motor de pesquisa</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_window_title">Definições do motor de pesquisa</system:String>
48-48
: Nit: Standardize ‘web’ capitalizationElsewhere in this file “web” is lowercase. Align this line for consistency.
- <system:String x:Key="flowlauncher_plugin_websearch_iconpath_hint">Dica: não é preciso colocar imagens personalizadas nesta pasta pois se Flow Launcher for atualizado, serão perdidas. Flow irá copiar todas as imagens que estejam fora desta pasta em todas as pesquisas Web.</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_iconpath_hint">Dica: não é preciso colocar imagens personalizadas nesta pasta pois se Flow Launcher for atualizado, serão perdidas. Flow irá copiar todas as imagens que estejam fora desta pasta em todas as pesquisas web.</system:String>Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml (1)
21-21
: Optional: translate remaining English strings for consistencyThese entries are still in English; consider translating for a consistent Italian UX.
Apply this diff if desired:
- <system:String x:Key="flowlauncher_plugin_websearch_enable_suggestion">Use Search Query Autocomplete</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_enable_suggestion">Usa l'autocompletamento della ricerca</system:String> - <system:String x:Key="flowlauncher_plugin_websearch_copyurl_title">Copy URL</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_copyurl_title">Copia URL</system:String> - <system:String x:Key="flowlauncher_plugin_websearch_copyurl_subtitle">Copy search URL to clipboard</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_copyurl_subtitle">Copia l'URL di ricerca negli appunti</system:String>Also applies to: 33-34
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (25)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ar.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/cs.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/en.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es-419.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nb.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pl.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-br.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-pt.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sk.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sr.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/tr.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/uk-UA.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/vi.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml
(1 hunks)
✅ Files skipped from review due to trivial changes (2)
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pl.xaml
🚧 Files skipped from review as they are similar to previous changes (18)
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/tr.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-br.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/en.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ar.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/uk-UA.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/cs.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es-419.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/sk.xaml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: gitStream.cm
- GitHub Check: gitStream.cm
- GitHub Check: gitStream.cm
- GitHub Check: gitStream.cm
🔇 Additional comments (2)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pt-pt.xaml (1)
14-14
: All languages include the private mode label keyI ran a verification across every
.xaml
file inPlugins/Flow.Launcher.Plugin.WebSearch/Languages
—each one contains theflowlauncher_plugin_websearch_private_mode_label
entry. “Modo privado” is concise, accurate, and consistent with the existing localization style.Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml (1)
8-8
: Verify the resource key spelling before sweeping fixes
A search showed that the typo’d keyflowlaucnher_plugin_websearch_set_browser_path
appears in every XAML under
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/*.xaml (line 8), and no occurrences of the correctly-spelledflowlauncher_plugin_websearch_set_browser_path
were found anywhere in code or UI XAML. It’s unclear which key the plugin actually looks up at runtime.Please confirm which key your code/UI references, then:
- If it uses the typo’d key, keep the existing x:Key values unchanged.
- If it expects the correct spelling, update all language files’ x:Key from
flowlaucnher_plugin_websearch_set_browser_path
to
flowlauncher_plugin_websearch_set_browser_path
and adjust any code or XAML lookups accordingly.
…zoltanvi/Flow.Launcher into feature/web_search_private_mode
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🔭 Outside diff range comments (1)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml (1)
8-8
: Rename resource key across all language filesThe resource key
flowlaucnher_plugin_websearch_set_browser_path
is misspelled in every XAML language file and no correctly spelled variant exists in the repo. To fix this safely:• Files to update:
‑ All files underPlugins/Flow.Launcher.Plugin.WebSearch/Languages/*.xaml
• Apply this change in each file:
- <system:String x:Key="flowlaucnher_plugin_websearch_set_browser_path">…</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_set_browser_path">…</system:String>• Also update any UI XAML or code references (e.g.
{DynamicResource}
,FindResource("…")
, translation lookups) to use the new key.• Optional deprecation strategy: keep the old key as an alias for one release before removal.
🧹 Nitpick comments (1)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml (1)
4-4
: Fix existing Hebrew typos (unrelated to this PR, but worth correcting)Several existing entries appear truncated. Suggest correcting for clarity and professionalism. Optional and can be done in a follow-up.
Apply the following diff to fix obvious typos:
- <system:String x:Key="flowlauncher_plugin_websearch_window_title">הגדרת מקור חיפו</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_window_title">הגדרת מקור חיפוש</system:String> - <system:String x:Key="flowlauncher_plugin_websearch_new_window">חלון חד</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_new_window">חלון חדש</system:String> - <system:String x:Key="flowlauncher_plugin_websearch_choose">בח</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_choose">בחר</system:String> - <system:String x:Key="flowlauncher_plugin_websearch_edit">ערו</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_edit">ערוך</system:String> - <system:String x:Key="flowlauncher_plugin_websearch_confirm">אישו</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_confirm">אישור</system:String> - <system:String x:Key="flowlauncher_plugin_websearch_search">חיפו</system:String> + <system:String x:Key="flowlauncher_plugin_websearch_search">חיפוש</system:String>If you want, I can scan all he.xaml entries and propose a comprehensive cleanup in a separate PR.
Also applies to: 6-6, 9-9, 11-11, 17-17, 20-20
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (18)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ar.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/cs.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es-419.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pl.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/tr.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/vi.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml
(1 hunks)Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml
(1 hunks)
✅ Files skipped from review due to trivial changes (2)
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ko.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/tr.xaml
🚧 Files skipped from review as they are similar to previous changes (13)
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/cs.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ja.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/vi.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/de.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-cn.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/zh-tw.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/da.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ar.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/es-419.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/nl.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/it.xaml
- Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: build
🔇 Additional comments (4)
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/fr.xaml (2)
14-14
: Translation and key addition look good“Mode privé” is correct and consistent with existing label casing. Key name aligns with established naming convention.
14-14
: Localization key is present in all languages and correctly referenced in the UIAll 24
.xaml
language files defineflowlauncher_plugin_websearch_private_mode_label
, and you’re using it via DynamicResource in:
- Plugins/Flow.Launcher.Plugin.WebSearch/SettingsControl.xaml (Header)
- Plugins/Flow.Launcher.Plugin.WebSearch/SearchSourceSetting.xaml (Text)
The IsPrivateMode binding and its use in Main.cs also look correct. No further action needed.
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/pl.xaml (1)
14-14
: Polish translation is correct and consistent“Tryb prywatny” is accurate. Key naming is consistent with the rest of the resource dictionary.
Plugins/Flow.Launcher.Plugin.WebSearch/Languages/he.xaml (1)
14-14
: Hebrew translation for the new label is correct“מצב פרטי” is accurate and consistent with existing labels.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please revert changes in all other language xaml files. Thanks!
…zoltanvi/Flow.Launcher into feature/web_search_private_mode
This PR adds a "Private mode" option to individual setting items in the WebSearch plugin.
When enabled, and if Private mode is also configured in
Flow Launcher → General → Default Web Browser
, links from theseitems will open in a private browsing window — independently of other items’ settings.
This allows finer control over which links open in private mode,
without requiring all links to follow the same browser privacy
setting.
I'm not sure if I need to add the placeholders for the localization files or not.
Some screenshots: