Commit Graph

7814 Commits

Author SHA1 Message Date
Mike Griese
eb76898d2c Fix a layout cycle crash in the prototype (#156)
Resurrects the Pokedex extension I was working on before Luca was born.

This is a simple sample of a list with a _lot_ of items, and tags tags tags. It helps to repro a E_LAYOUT_CYCLE that we were seeing. 

This also fixes that layout cycle, by removing that unneeded `StackPanel`


Fixes #WaitItLooksLikeINeverFiledThis
2024-11-15 05:31:46 -08:00
Mike Griese
1e7cc5cbda Spec, basic impl for TextToSuggest (#145)
As discussed in #121. 

Adds a new `IListItem.TextToSuggest` property. If an extension populates that, and the user hits right-arrow when the item is selected, we'll set the `SearchText` to that text. 

I didn't give it a UI treatment, because 
1. I'm not good at XAML
2. As noted in https://github.com/zadjii-msft/PowerToys/issues/121#issuecomment-2464704543, there's complicated edge cases here. You have to track what's actually been typed, and then also have a ghost suggestion for the very first item (before the user types/up/downs at all). 

I didn't think it was valuable to implement that right now before we have A Real App. 

* targets #144 
  * which targets #142 
    * which targets #141 

and those guys are all merged as of #150
2024-11-12 05:58:43 -08:00
Mike Griese
a41e7e7d00 MAIN: Update lists for better dynamic lists, pagination, async (#150)
Originally in #142 and #144, but github didn't automatically change the base branch 😨 

----- 

As discussed in #77. 

Biggest change is that `IDynamicListPage` doesn't have `GetItems(String query)` anymore. Instead, the host will call the `SearchText` setter, and the list can raise `ItemsChanged` to let the host know to call `GetItems` again

See src/modules/cmdpal/Exts/EverythingExtension/Pages/EverythingExtensionPage.cs for an example of how to update dynamic extensions. 

Closes #131 
Closes #77 

----

* I put the sample pages into a single top-level command, so deploying that extension didn't add 5 top-level commands to your palette
* I tightened up some of the phrasing for the samples, and the builtins, to be less repetitive
* I added a few icons
* I made the markdown sample longer (and work more reliably)
* and also thank you Hawker for auto-format on save, you the man
2024-11-12 05:55:40 -08:00
Mike Griese
b96ab5e871 Add helper classes for very simple settings (#141)
This updates the spec to enable CmdPal to host settings for extensions. Extensions can provide us essentially, a FormPage, and we'll give that special treatment as _the settings_ for the extension. We're gonna use this in #100 in the future.

For now, I also added a helper set of classes for quickly constructing a `Settings` object, which is basically just a dictionary. Notably though, it lets us define simple control types for each of these settings, which we can then turn into the `IFormPage` on the developer's behalf.

See the [`SampleSettingsPage.cs`](https://github.com/zadjii-msft/PowerToys/compare/main...dev/migrie/s/settings-for-extensions#diff-ac06e39258579222e94539315ad59e0bf04f3b0f3e83a2f8a11aa5a42d569ebe) for an example.


Closes #123
2024-11-12 05:37:51 -08:00
Stefan Markovic
4a23ba25ac Merge upstream main (#149)
* [Settings]Fix release cycle links in OOBE What's New page (#35801)

* Fix release cycle link in OOBE

Previously it would point to the 5ft last release instead.

* Adressed feedback

* [Deps]Upgrade System.IO.Abstractions (#35656)

* Upgrade System.IO.Abstractions to the latest stable release
2024-11-12 05:37:23 -08:00
Mike Griese
8344fe77a6 Fix the build (#146)
Whoops. 

We were accidentally deploying all the extension packages to the _same_ directory. That meant we could only ever register one at a time - including the extension host. yikes.
2024-11-11 05:36:16 -08:00
Stefan Markovic
b10325430c Integrate into PowerToys.sln (#140)
## Summary of the Pull Request
 - integrate all projects into PowerToys.sln
 - remove all other .sln files
 - remove unneeded files IMO (LET ME KNOW IF SOME OF THOES FILES ARE ACTUALLY NEEDED!)
2024-11-08 10:02:07 -08:00
Mike Griese
c319a74e74 Create an IExtensionHost class, to enable logging (#137)
Allow extensions to send status messages to the host app.

As an example, you can now:

```cs
ExtensionHost.LogMessage(new LogMessage() { Message = "This is a test, from the HackerNews sample" });
```

And have that appear in the host apps debug console. 

Closes #134 
Closes #118 

Should also make resolving #87 and #135 easier. 

We don't have the design of these status messages totally planned out yet. But this should at least make it possible. For those in the back, **this does not actually display these messages anywhere in the host UX currently**. 

-----

Other information that's currently included:
* The host app's HWND. Way too many times does the Windows API need an HWND, which extensions won't have, but the host app does. 
* The `LanguageOverride`. This is in case we ever want to support `PrimaryLanguageOverride` in the host app.
2024-11-05 10:22:15 -06:00
Mike Griese
6ee3ad68b0 Implement the "explore" page from mastodon (#132)
Actually implements the mastodon extension. Open APIs are great. My baby sleeping for four hours is even better. 

This sample has a list of posts. Each item has Details, which are the post bodies. viewing the post opens a form page with the whole thread of that post and any replies on it. 

* closes #101 
* closes #79 
* Also removes the space for the `HeroImage` if we don't need it. 
* Fixes an issue where forms straight up didn't work (they weren't loading on the main thread)
* Adds a helper `OpenUrl` command (does what it says on the tin)

This extension covers a lot of concepts so I think it's a valuable test. I'm hoping to do auth for allowing you to post/comment/favorite/boost/etc in the future. 

Also helped understand what we need for pagination. 

Also revealed that ItemsRepeaters are cursed.
2024-11-05 10:21:39 -06:00
Jaime Bernardo
40dc46b6e1 Merge upstream main into zadjii-msft/stefan/merge_pt_main
Merge PT main
2024-11-05 13:29:33 +00:00
Stefan Markovic
20914094a9 Merge remote-tracking branch 'mainPT/main' into stefan/merge_pt_main 2024-11-05 14:12:01 +01:00
Jaime Bernardo
eed39e5d13 [Docs]Fix 0.86.0 release hashes in README (#35767) 2024-11-05 11:42:43 +00:00
Jaime Bernardo
da58b83a88 0.86 changelog (#35693)
* 0.86 changelog

* Fix spellcheck

* Update README.md

Co-authored-by: PesBandi <127593627+PesBandi@users.noreply.github.com>

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Update installer hashes

* 0.86 tweaks proposals (#35749)

* tweaks

* added callout for pwa

* Update README.md

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update README.md

tweaks for clarity

* Fix current release work link

---------

Co-authored-by: PesBandi <127593627+PesBandi@users.noreply.github.com>
Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Ethan Fang <117125208+ethanfangg@users.noreply.github.com>
2024-11-04 12:47:01 -06:00
Mike Griese
878692650a Removed sections from the spec, prototype (#129)
As discussed. 

I'm getting rid of  ``ISection[]`` and replacing that with just a `String Section { get; }`[^1] property on `ListItem`'s themselves. 
 
I didn't want to bother wasting engineering resurrecting the `SectionListView` thing in the prototype without `ISection`s, so I'll just leave that for us to implement The Right Way in the MVVM exe. 
 
This should keep the prototype running, and keep us moving forward

[^1]: we discussed making this an object. I didn't here, but we probably can in the future.
2024-11-03 10:38:18 -06:00
Jordi Adoumie
3ef20c5b23 Adding Windows Settings from PT Plugin (#128)
* first pass for windows services core ext

* added Windows Registry Plugin

* updated PR to reflect wt profiles, registry, and services extensions and incorporating feedback

* first pass for windows settings

* Added gh issues for TODOs

* fixed placeholder text for open command and added additional GH issue refs

* move list page and command to ctor to avoid new allocation each time TopLevelCommands is invoked

* change KeepOpen to Dismiss on CommandResult for OpenSettingsCommand

---------

Co-authored-by: Mike Griese <migrie@microsoft.com>
2024-11-03 08:47:15 -06:00
Jaime Bernardo
ce5e5647b3 [ci][Arm64]Manually copy WebView2 core dll after publishing (#35711)
After we upgraded Windows App SDK to 1.6, Dev Files Preview on Peek has been broken on ARM64.
For .86, we've added WebView2 to Registry Preview in order to have Monaco Editor as the text editor, which is also broken on ARM64.
After a lengthy investigation, it seems we've found the core issue, PowerToys has been shipping with a x64 Microsoft.Web.WebView2.Core.dll in the ARM64 installer, which fails at runtime.
We seem to have hit a version of https://github.com/microsoft/WindowsAppSDK/issues/4826

When we build PowerToys in Dart for release, we publish some of the C# WinUI3Apps after building PowerToys and before signing / building the install. This means that the WindowsAppSDK build will recopy its WebView2 dependency, which for some reason is ARM64. On local builds of PowerToys, PowerRename, a C++ WinAppSDK application finished last, which copies the right dll and it's the reason we weren't being able to repro the issue on local builds of ARM64 PowerToys.

This PR solves the issue by including a short time hack in the CI to copy the right dll after publishing the C# WinUI3Apps when building for ARM64.

## Validation Steps Performed
Waiting for 4 concurrent builds of ARM64 from Dart to test whether the problem is solved.
v0.86.0
2024-11-01 15:18:33 -05:00
Jordi Adoumie
580fe99094 Adding Windows Services, Registry Core Ext from PT Run (#120)
* first pass for windows services core ext

* added Windows Registry Plugin

* updated PR to reflect wt profiles, registry, and services extensions and incorporating feedback

* fixing dead code
2024-10-31 10:56:00 -05:00
Davide Giacometti
7382f1836f [Settings]Fix "Diagnostic Data Viewer" UI freeze (#35681)
fix UI freeze
2024-10-31 08:15:42 +00:00
Clint Rutkas
9e3a19804c Update DATA_AND_PRIVACY.md (#35678)
* Update DATA_AND_PRIVACY.md

* Update DATA_AND_PRIVACY.md
2024-10-30 18:45:14 -07:00
Ethan Fang
a3018b0f7d Adding in our "Data and Privacy" documentation (#35601)
* adding in our data and privacy documentation

* Spellcheck

* updated missing descriptions

* Description update

* adding in additional descriptions

---------

Co-authored-by: Stefan Markovic <stefan@janeasystems.com>
2024-10-30 11:53:19 -07:00
Ethan Fang
c04b4a761f [New+]Update icons to PowerToys Style (#35658) 2024-10-30 16:10:24 +00:00
Laszlo Nemeth
369a147a80 [Workspaces]Fix launcher restart for admin users (#35652)
* [Workspaces] fix endless restarting of the launcher

* Fixing restart, creating mutex after restart.
2024-10-30 14:52:15 +00:00
Stefan Markovic
00c86fef4f [Hosts]Reset Terminate event after closing (#35663) 2024-10-30 14:51:51 +00:00
Stefan Markovic
72a481b17c [General]Use background threads in NativeEventWaiters to prevent dangling threads (#35637)
* Use Tasks in NativeEventWaiters to prevent dangling threads

* Use background threads instead
2024-10-29 15:31:13 +00:00
Stefan Markovic
b204353308 [Settings]Fix crash on View Diagnostic data click (#35635) 2024-10-29 14:20:24 +00:00
gokcekantarci
da52d485a6 [runner]Fix opening settings through the update notification (#35429) 2024-10-28 12:10:18 +00:00
Stefan Markovic
515f2386d9 [Telemetry]Re-add preview handlers telemetry logs and add tracers (#35597) 2024-10-28 12:09:08 +00:00
Clint Rutkas
64845b7fd8 Updating navigation tree for settings with groupings (#35559)
* adjusting stuff from here to there

* No longer crashing!  a win!

* Resources now

* spelling

* adjusting comments for xaml formatting

* added in new top level icons

* Fixing

* adjusting the core container logic based on feedback.  this is actually simplier and just leverages the builti in stuff as well

* getting frame_nav functional again, thanks @davidegiacometti

* making a one time hit for union

* Update src/settings-ui/Settings.UI/ViewModels/ShellViewModel.cs

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* expanding code that @davidegiacometti suggestedion.  🔥

* ensure parent is always expanded when page is changed

* don't use static

---------

Co-authored-by: Ethan Fang <ethanfang@microsoft.com>
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>
Co-authored-by: Davide Giacometti <davide.giacometti@outlook.it>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2024-10-27 15:21:27 -07:00
Stefan Markovic
83d3c85f3e [Settings]Fix crash caused by dangling thread (#35603)
* Fix crash caused by dangling thread

* Fix process access to be able to WaitForSingleObject it
2024-10-27 20:51:11 +00:00
Jaime Bernardo
a0138cec5e [MouseJump]Bring back telemetry events (#35582) 2024-10-25 13:28:01 +01:00
Stefan Markovic
133aa85f2b [General]Add an option for telemetry opt-in and visualization(#34078)
* Data diagnostics opt-in

* [c++] Drop DROP_PII flag

* Bump telemtry package to 2.0.2

* Drop DropPii from custom actions

* Cleanup

* Do not start manually C# EtwTrace. FZ engine exit event.

* ImageResizer, PowerRename, FileLocksmith prev handlers

* Revert C# handlers exe logging

* Revert "Revert C# handlers exe logging"

This reverts commit 4c75a3953b.

* Do not recreate EtwTrace

* consume package

* xaml formatting

* Fix deps.json audit

* Update telem package paths

* Address PR comments

* Fix AdvancedPaste close on PT close

* Override etl file name for explorer loaded dlls
Start/stop tracer when needed for explorer loaded dlls to prevent explorer overload

* Fix setting desc

* Fix missing events

* Add infobar to restart when enable data viewing

* Flush on timer every 30s

* [Settings] Update View Data diagnostic description text
[New+] Add tracer

* Show Restart info bar for both enable/disable data viewer

* Fix newplus

* Fix stuck on restart and terminate AdvPaste exe on destroy()

* [Installer] Add tracer

* Address PR comment

* Add missing tracers

* Exclude etw dir from BugReport

* Fix bad merge

* [Hosts] Proper exit on initial dialog

* [OOBE] Make Data diagnostic setting visible without scroll

* [OOBE] Add hiperlynk to open general settings

* Disable data view on disabling data diagnostics

* Don't disable View data button

* Fix disabling data viewing

* Add missing dot

* Revert formatting
2024-10-24 21:04:32 +01:00
Davide Giacometti
f9127b63a5 [RegistryPreview] Adopt Monaco Editor (#35122) 2024-10-24 21:55:51 +02:00
Mike Griese
ae5e6ed594 Add Connor's Everything extension (#106)
This is his Everything extension from the Hackathon. I'm merging this in as-is, to use as a base for future testing. I don't want to have a bunch of prototypes that are totally orphaned

It requires Everything to be running in the background.

My changes are
* 0e2d9edfcec65b032adc860ffb5be04bb3076f07: merge main
* 7d1e4dfeb54e58838c75a2209bd85dc2ccf14448: don't use an absolute path to everything64.dll
* 3f71bd5670e98d508291516db34c583a2d2d9e13: Add a `Details` to the error element that's displayed when there's an exception from an extension. 
* 67453d732f0e825913f232e04d05d934306518c7: Add actual error messages specific to Everything
* a69f811594aa4f18756e60293e7bcd9cee16341a: Use the x86 path to the icon, if needed




---------

Co-authored-by: Connor Plante <connor.plante@gmail.com>
2024-10-23 14:54:46 -05:00
Jordi Adoumie
2c8e24ad65 Merge pull request #119 from zadjii-msft/joadoumie/windows-terminal
Adding Windows Terminal Plugin from PT Run
2024-10-23 15:03:47 -04:00
Jordi Adoumie
4db1cc8fcc Added runas admin to Context Menu 2024-10-23 15:00:20 -04:00
Jordi Adoumie
63dcead687 Added terminal icon for profiles 2024-10-23 14:35:51 -04:00
Jordi Adoumie
f878b42abe launching works for profiles 2024-10-23 11:36:02 -04:00
Jordi Adoumie
8e9e9f1a66 terminal profiles showing up 2024-10-23 10:25:21 -04:00
Laszlo Nemeth
b0be69a1b7 [Workspaces] eliminate crash threat (#35535)
Co-authored-by: Seraphima <zykovas91@gmail.com>
2024-10-23 15:00:56 +02:00
Laszlo Nemeth
c3fe541139 [Workspaces] snapshot: fix coordinates for the minimized apps. (#35455) 2024-10-23 11:34:20 +02:00
Laszlo Nemeth
f33855aaaa [Workspaces] re-implementing Monitor ID usage (#35427) 2024-10-23 11:33:35 +02:00
Jaime Bernardo
04795c6d3a [ci]Fail when a step in multiline powershell fails (#35520) 2024-10-23 08:52:47 +01:00
Jaime Bernardo
5af2f6f825 [Deps]Upgrade MessagePack to 2.5.187 and SteamJsonRpc to 2.19.27 (#35528)
* Add updated MessagePack dependency for StreamJsonRpc

* Also update StreamJsonRpc to latest

* Add hack for dll version matching
2024-10-22 19:02:38 +01:00
Sergey Chernyaev
e88b22937e [QuickAccent]Add support for Serbian Cyrillic (#35500)
* **Languages.cs**
  - Add `GetDefaultLetterKeySRCyrillic` method for Serbian Cyrillic letters.
  - Add `SR_CYRL` entry to `Language` enum.
  - Update `GetDefaultLetterKey` method to include `Language.SR_CYRL`.

* **PowerAccentPage.xaml**
  - Add `ComboBoxItem` for Serbian Cyrillic in `SelectedLanguage` `ComboBox`.

* **Resources.resw**
  - Add entry for Serbian Cyrillic.

* **PowerAccentViewModel.cs**
  - Add `SR_CYRL` to the list of supported languages.
2024-10-22 08:01:15 -07:00
Clint Rutkas
7b0b298f00 Merge pull request #105 from microsoft/main
sync to main
2024-10-21 20:30:56 -07:00
Clint Rutkas
950f6afdda Merge branch 'main' into main 2024-10-21 20:29:41 -07:00
Michael Clayton
dc7c7ef2b7 [MouseJump][CQ]Refactor "common" classes into a separate project (#34333)
* [Mouse Jump] - moving common code to MouseJump.Common project - #25482

* [Mouse Jump] - fixing warnings in MouseJump.Common - #25482

* [MouseJump] - cherrypick 5653b4 - Exclude MouseJump Common tests from the checks

# Conflicts:
#	src/modules/MouseUtils/MouseJump.Common.UnitTests/MouseJump.Common.UnitTests.csproj

* [mOuSEjUMP] - cherry pick 61aab9 - Fix ci build issues

# Conflicts:
#	src/modules/MouseUtils/MouseJump.Common.UnitTests/MouseJump.Common.UnitTests.csproj

* [Mouse Jump] - remove project type guids - #25482

* [Mouse Jump] - simplify mousejump *.csproj files - #25482

* [Mouse Jump] - fixing broken tests - #25482

* [Mouse Jump] - fixing broken build - #25482

* [Mouse Jump] - editing MouseJump.Common.UnitTests.csproj - #25482

* [Mouse Jump] - editing MouseJump.Common.csproj (UseWindowsForms=true) - #25482

* [Mouse Jump] - fixing spellcheck - #25482

* [MouseJump] - enabled implicit usings - #25482

* [Mouse Jump] - re-add csproj attributes - #27511

* ci: Fix signing of Common dll

---------

Co-authored-by: Clayton <mike.clayton@delinian.com>
2024-10-21 17:38:07 +01:00
PesBandi
db3c8e621e [PTRun]Improve copying error handling on plugins (#35459) 2024-10-21 13:42:11 +01:00
Christian Gaarden Gaardmark
5d2bb16e92 [New+]When new folder name collides, create copy instead of creating inside existing (#35464)
* Fixed target folder path when source is a folder
2024-10-21 11:51:14 +01:00
Christian Gaarden Gaardmark
3a6536ce54 [New+]Fix for bug when creating folders or files rhat contain Unicode characters (#35465)
wstring all the way
2024-10-21 11:38:25 +01:00