22 Commits

Author SHA1 Message Date
ge0rdi
348d8fa54e ModernSettings: Use proper AllSystemSettings file on newer Win11
It seems that AllSystemSettings file name changed since 24H2.
We will look for new file first and then fall-back to original one.

Fixes #2033.
2024-12-03 10:45:41 +01:00
ge0rdi
9800b03b63 Remove GetDocRelativePath function
Help is always located in the same folder as binary that is using it.
2023-06-10 21:50:46 +02:00
ge0rdi
4377817bef Copy *L10N.ini files to output folder
So that they can be used during debugging.
2023-06-10 21:50:46 +02:00
ge0rdi
714c98130a Simplify project files
Put common build settings into separate props file.
This way it will be much easier to do changes that should affect all
projects in the future.
2023-06-09 17:52:18 +02:00
ge0rdi
2a7fc0034c ModernSettings: Remove duplicates
Windows started to add newer version of settings to settings description
file. These have the same description as older settings, but use
different parameters.

Unfortunately old settings are still present.
This causes our modern settings folder to contain duplicates.
And also we tend to use older setting definitions that no longer work
properly.

Thus we will de-duplicate parsed settings and try to keep newer ones
(that should work better).
New settings tend to have numeric suffix, so we will keep those with
biggest suffix.

Fixes #1031
2022-12-28 19:26:22 +01:00
ge0rdi
658981adf7 ModernSettings: Improve indirect string loading
Defender settings on Win11 use indirect strings in form:
`@{Microsoft.SecHealthUI_8wekyb3d8bbwe?ms-resource://Microsoft.SecHealthUI/Resources/DisplayName}`

`SHLoadIndirectString` is unable to load such indirect string, because it expects full
package name (instead of package family name).

In such case we will convert package family name to full name and try again.
2022-12-28 19:26:22 +01:00
ge0rdi
e25b656275 Use VS2022
Note that `_ATL_MODULES` define is now needed for compatibility with C++
conformance mode (`/permissive-`).
More details here:
https://developercommunity.visualstudio.com/t/Crash-in-ATL-CEnumerator::MoveNext-after/10116823
2022-12-28 19:26:22 +01:00
ge0rdi
0465ac9c1b Use Segoe Fluent Icons font for modern settings icons on Win11
It seems that Windows 11 prefers `Segoe Fluent Icons` over `Segoe MDL2 Assets` font.
https://learn.microsoft.com/en-us/windows/apps/design/style/segoe-fluent-icons-font

Most of settings defined in `AllSystemSettings_{253E530E-387D-4BC2-959D-E6F86122E5F2}.xml` now refer to the new font.
2022-12-06 19:17:18 +01:00
thisismy-github
8031739110 Added option to customize Pinned folder location
Items can be pinned to directories that require administative privileges
(such as Open-Shell's default installation directory), so long as users
take ownership of the pinned folder. Also adds a command to Open-Shell's
context menu that opens the current pinned folder.

Adds general support for directory-based settings by creating a new
setting type called TYPE_DIRECTORY which uses a new bool added to
BrowseLinkHelper, called bFoldersOnly. START_MENU_PINNED_ROOT
has been removed, and all instances of both it and BrowseLinkHelper
have been adjusted accordingly. To create your own directory-based
settings, use CSetting::TYPE_DIRECTORY. Empty directory paths are
reset to their default value as they can cause unexpected behavior.
2022-08-13 16:00:26 -04:00
germanaizek
a20215d9da Replace 'push*' -> 'emplace*' if possible and use std::move() 2022-05-12 20:54:42 +02:00
ge0rdi
80c38d95e9 ModernSettings: Fix crash when invoking with unknown verb 2020-09-26 09:18:42 +02:00
ge0rdi
9752afbebc ModernSettings: Use smart pointers 2020-09-01 19:28:04 +02:00
ge0rdi
6581868336 ModernSettings: Add support for more settings
Based on `HostId`:
* {7E0522FC-1AC4-41CA-AFD0-3610417A9C41}
  execute `shell:::{PageId}`
* {12B1697E-D3A0-4DBC-B568-CCF64A3F934D}
  execute command in `DeepLink`
2020-09-01 19:28:04 +02:00
ge0rdi
1f57c782e5 Modern settings shell folder
Adds virtual shell folder that contains items representing modern settings parsed from
`%windir%\ImmersiveControlPanel\Settings\AllSystemSettings_{253E530E-387D-4BC2-959D-E6F86122E5F2}.xml`.

It can be accessed via `shell:::{82E749ED-B971-4550-BAF7-06AA2BF7E836}` (in explorer).

Item in folder will open given setting page in `Settings` application.
2020-08-29 14:03:59 +02:00
ge0rdi
cc02e38aef StartMenuHelper: Add shell extension to desktop packaged applications
This will allow `Pin to start` for desktop applications downloaded from
Microsoft Store (such as Windows Terminal).
2020-06-07 07:21:19 +02:00
ge0rdi
9c119c6e29 StartMenuHelper: Simplify shell extension registration 2020-06-07 07:21:19 +02:00
ge0rdi
9e297866ed Register server with per-user redirection
Some projects do register COM server in Debug/Release sonfigurations.
We should do it with per-user redirection so that there is no need to
run elevated Visual Studio.

This has no effect on COM server registering in installed Opne-Shell.
It is related only to local development.
2020-06-07 07:21:18 +02:00
ge0rdi
261929f4c3 Don't use obsolete /Gm switch
`cl : command line warning D9035: option 'Gm' has been deprecated and will be removed in a future release`
2020-06-07 07:21:17 +02:00
ge0rdi
f33cd60b84 Use VS2019 2019-10-01 19:07:03 +02:00
ge0rdi
16de25a8b0 Use C++17 by default
Plus C++ standard conformance fixes.
2018-08-18 20:04:21 +02:00
ge0rdi
2fb9448ffd Few improvements (#65)
* Fix naming inconsistencies

'Menu' vs 'StartMenu'

* Installer: Remove Facebook link

* Installer: Remove PayPal donate remnants

* OpenShellReadme: Remove info about product version
2018-08-13 00:28:42 -04:00
Xenhat
f4dd56155b Rebrand to Open-Shell (#36) (#58)
* Rebrand to Open-Shell

* Slight installer branding improvement
2018-08-05 15:22:10 -04:00