- If the Right-dropped item was a drive, then get the display name of the drive and use it.
- Use FAILED_UNEXPECTEDLY instead of FAILED macro.
- Accept ::{GUID}.
CORE-17813
- Add registry handling of two keys to COpenWithMenu.cpp
- Add code to stop OpenWith from using registry entries that should be excluded
- Stop logspam when right-click menu testing for OpenWith is done
CORE-17816
Logspam started during 0.4.9-dev'ing when zipfldr got committed, logspam became much worse by
0.4.10-dev-599-g 932df378bf
But the actual bug of 'calling those functions when not needed' is much older than that.
I do intend to port this improvement back into older rls-branches.
- usetup: New bootsector page.
- shell32: Copy and paste, and moving elements.
Also, some strings related to the shutdown and logoff.
- Minor Spanish grammar fix - some female words and minor latin american typos.
- First revision of the .inf, that includes the translation of the Services,
audio, processors and other drivers and minor things.
Improve performance of Start-Run Dialog Box Options
This will fix:
CORE-17351 'RunDlg fails calling URL without http'
and
CORE-16898 'RunCommand "iexplore" fails to open Wine IE'
Both regressed by 0.4.10-dev-419-g bfcbda227f
- Add as well the undocumented 0x40 dwFlags value from shlwapi!PathFileExistsDefExtW()
to the list.
- Fix a bug (also present in Win2k3) in PathResolveW() where, specifying
the PRF_DONTFINDLNK flag, would also erroneously exclude checking for
the .cmd extension as well (which was obviously NOT the original
intention, from the name of the flag and the documentation as well:
https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-pathresolve
).
Addendum to 3a822e4f.
The About dialog banner will now show the correspondent Product version selected on install.
This will make it easier to tell which edition of ReactOS is installed.
Implement a sanity check helper which determines if the partition is a system drive or not based on the %SystemDrive% environment variable, preventing the user from nuking accidentally the partition with ReactOS system files installed. :P
NOTE: This code serves as a temporary measure to prevent accidental formatting of the system drive. In the future most of this code has to be totally rewritten (and stopping syncing with WINE altogether) as well as FMIFS library code so that we're on par in terms of compatibility with Windows.
CORE-17506
- Convert some judgements against BIF_NEWDIALOGSTYLE to judgements against BIF_USENEWUI. Here BIF_USENEWUI == (BIF_NEWDIALOGSTYLE | BIF_EDITBOX).
- Remove WS_SIZEBOX window style from new UI dialog resource (IDD_BROWSE_FOR_FOLDER_NEW).
- Fix header layout.h for resizing without WS_SIZEBOX.
We are not ready for enabling ATLASSERT. Enabling ATL assertions takes time to realize. CORE-17505
- Disable ATLASSERT by undefining _DEBUG.
- Revert currently non-fixable codes.
This is a slight refactor of InsertDefaultClusterSizeForFs() code with the goal to avoid having the same code for FAT-related and EXT2/BtrFS filesystems.
FATX is listed as a filesystem for format within the list but it's classed out from current proposed filesystems, thus spamming the debug output and not allowing to actually format a storage drive with this FS.
CORE-17272
Implement the re-worked shut down dialog box as well as implementing fancy log off dialog box.
- Fancy shut down dialog box has been redesigned to be more comparable to of XP.
- Implement features that were missing earlier.
- Implement the fancy log off dialog which is more comparable to of XP.
CORE-17445
Fixing the bug where open with menu where OpenWithMenu does not handle handler's path when there are spaces in the path string, by adding the missing quote marks around %1 when recording the registry entry for file handler.
When the system is not installed yet (e.g. LiveCD or 2nd installation stage)
there is no registered user and organization, so no need to show this text
label in the shell about dialog.
Co-authored-by: Stanislav Motylkov <x86corez@gmail.com>
- SHELL32: Improve Portuguese (PT) translation.
Minor objects adjustments to the text
and minor improvements to translation.
- SHELLEXT: Improve Portuguese (PT) translation to acppage rc file.
in favor of add_compile_options and the like with generator expressions
Also take this as an opportunity to remove the C++11 standard hack, GCC 8 now defaults to C++14
Instead of messing with global variables and the like, we introduce two target properties:
- WITH_CXX_EXCEPTIONS: if you want to use C++ exceptions
- WITH_CXX_RTTI: if you need RTTI in your module
You can use the newly introduced set_target_cpp_properties function, with WITH_EXCEPTIONS and WITH_RTTI arguments
We also introduce two libraries :
- cpprt: for C++ runtime routines
- cppstl: for the C++ standard template library
NB: On GCC, this requires to create imported libraries with the related built-in libraries:libsupc++, limingwex, libstdc++
Finally, we manage the relevant flags with the ad-hoc generator expressions
So, if you don't need exceptions, nor RTTI, nor use any runtime at all: you simply have nothing else to do than add your C++ file to your module
shell32.ShellMessageBoxW redirects to shlwapi.ShellMessageBoxWrapW.
However the latter one (shlwapi) is exported by ordinal only.
Trying to use in shell32.spec file the following syntax:
182 varargs ShellMessageBoxW() shlwapi.ShellMessageBoxWrapW
will therefore fail at runtime, because Windows/ReactOS will fail to
snap shlwapi.ShellMessageBoxWrapW.
Using instead an export by orginal:
182 varargs ShellMessageBoxW() shlwapi.#388
actually fails as well, but at link time, by both MSVC' LINK and GNU's
dlltool.
This generates a .def file containing the line:
ShellMessageBoxW=shlwapi.#388 @182
It is not clear why it fails, because according to:
https://docs.microsoft.com/en-us/cpp/build/reference/exports?view=vs-2019
and
https://devblogs.microsoft.com/oldnewthing/20121116-00/?p=6073
this should be possible.
However one encounters the same errors as those described at:
https://groups.google.com/forum/#!topic/microsoft.public.vc.language/AVnx-EnYdsY
and
https://www.xspdf.com/questions/22333.shtml
...
So instead we use another trick, that appears to be already in use in
the shell32.spec. Since the shlwapi functions are imported because we
link to it, this means that ShellMessageBoxWrapW() is already available
through this import. So we can specify it in the .spec file as is,
without a full name prefixed with "shlwapi." .
Therefore the associated shell32.ShellMessageBoxW function will instead
link to the small ShellMessageBoxWrapW() import stub that is generated
automatically.
This makes ShellMessageBoxW use the correct implementation where the
text buffer size is dynamic, instead of having a too small hardcoded
size.
Fixes CORE-17271.
See also PR #3172 by Kyle Katarn, supplemented with some ideas from
Mark Jansen.
However we cannot straightforwardly implement ShellMessageBoxA around
ShellMessageBoxW, by converting some parameters from ANSI to UNICODE,
because there may be some variadic ANSI strings, associated with '%s'
printf-like formatters inside the format string, that would also need
to be converted; however there is no way for us to find these and perform
the conversion ourselves.
Therefore, we re-implement ShellMessageBoxA by doing a copy-paste ANSI
adaptation of the shlwapi.ShellMessageBoxWrapW function.
Note that, on Vista+ onwards, shlwapi implements both ShellMessageBoxA/W,
and shell32 directly forwards these exports to shlwapi, thus avoiding
these workarounds.
[PSDK] Explicily use WINAPIV for the variadic ShellMessageBoxA/W functions.
[INCLUDE/REACTOS] Add ShellMessageBoxWrapW in shlwapi_undoc.h .
The sorting in explorer broke by
SVN r73128 == git
24fcf531e7
Thanks to Doug Lyons for providing this patch.
I do intend to port it back into 0.4.14RC.
Those 2 did spam heavily when browsing folders with
many .zip files within. Mark Jansen confirmed that
this is good-path-logging and was just forgotten
to be disabled earlier.
- The user can enter the full path of a directory in "Copy To Folder" and "Move To Folder" features.
- Fix two bugs in SHBrowseForFolder function. One is disability of text box to enter a full path. Another one is disability to choose the root item in BFFM_SETSELECTION.
- Add ES_AUTOHSCROLL style to text box. This enables the user to enter a long text.
CORE-11132
- Add context menu item "Mo&ve to folder..." and implement the action.
- Implement the "Mo&ve to folder..." menu item of "Edit" menu of Explorer.
CORE-11132
- Add context menu item "Copy to &folder..." and implement the action.
- Implement the "Copy to &folder..." menu item of "Edit" menu of Explorer.
CORE-11132
Improve human readability of filesystem change notification.
- Rename the identifiers for human readabilities.
- Split the code into CFilePathList and CDirectoryWatcher classes.
- Encapsulation of code.
CORE-13950
Notify filesystem change notifications by using ReadDirectoryChangesW function. Creating/Deleting files/folders will be responsive in Explorer. CORE-13950
CORE-16981
The problem:
============
- When opening "Open With..." dialog for a given file format, multiple MRU items are appended to registry : 2 items written, even if dialog is closed "cancel".
- Expected behavior : 1 MRU item if execute is selected and 0 MRU if cancel is selected.
Fix:
====
- MRU item to be added when "Execute" is selected only.
- Once added, set the presence flag to avoid multiple MRU items being added later.
This occurred in the file explorer because the menu isn't destroyed and recreated each time, so the menu item, once checked, will stay checked forever. We must call CheckMenuItem with MF_UNCHECKED to clear the check when necessary
-Avoid text truncations regarding the checkbox
in a uniform way
-Reduce chance of text truncations for a button
in a uniform way
-Fix es-ES dlg layout and harmonize its dlg Size
with other languages
-de-DE fix double accelerator
-Some inspiration from de-DE which I improved years ago
-Avoid text truncations and control overlapping that
happened in almost all other languages
-Increase the size of the listView for all except es-ES & pt-PT
-es-ES & pt-PT had different dlgs sizes, I only slightly tweaked
those therefore
-In sum this brings the RCs much closer to each other
-Unrelated: fix a white-space-typo we had in some but not all RCs
Translations for:
- Applications: clipbrd, dxdiag, rapps,
- cmdutils: attrib, find, help, label, reg, xcopy
- usetup
- dlls: browseui, shell32, syssetup
- Add Spanish translation for Accesibility Utility (utilman).
Update for the "Choose product options" strings in syssetup:
Originally "ProductType" and "ProductSuite" (typesetted without spaces) were the registry value names where these settings would go, but since it's meaningless to show these values it's better instead to use human-readable names with correct translation and spacing.
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
Shell change notification has been implemented in #2432. But as @yagoulas said, source code structure is in mess. We improved simplicity and human readability of our source code.
- Move wine/changenotify.c code into changenotify.c and shelldesktop/CChangeNotify.cpp.
- Simplify code and rename the identifiers and add many comments. CORE-13950
- On desktop view, we have to watch both the common desktop and the private desktop.
- In Windows, IShellLink::Save (shortcut creation) sends SHCNE_CREATE or SHCNE_UPDATEITEM notification.
- Simplify CChangeNotify::ShouldNotify.
CORE-10391
Updating translation for:
notepad, reactos, usetup, explorer, netshell, msgina, setupapi, shell32.
- Complete and Fix the SPANISH TRANSLATION on Setup
- Correct the random names, fixing the denominations, translate of the English words, and fixing random and incorrect denominations like "Cabinet" or "distribuciones".
- Fixed the notepad shortcuts of "Save" (Ctrl+g) and "Replace".
Fix SHAppBarMessage (not perfect) by adapting wine code. See CORE-14439.
More work is required. Kept the original code for reference.
Example : SetWindowPos should be called via Post Message.
Code commit is to wake up other developers.
* [SHELL32] Add shortcut to rename folders with the F2 key.
Sync Wine Commit 2e25a43f3fb6230460447bae6fb5db2edbd4a42f by Fabian Maurer
* [SHELL32] Add shortcut to delete folders with the delete key.
Sync Wine Commit 43f44ffb3779ff23c863d9b3297f92720e7e3733 by Fabian Maurer
* Disable the code for file deletion. The Wine way doesn't work on ROS. Add an explaining comment why we can't use the Wine code, as requested by Amine
Set read-only attribute instead of system attribute for some shell folders that has a folder icon.
Delete desktop.ini files in Desktop and Program Files. CORE-16711
Don't hardcode My Documents path in some translations of My Music, My Pictures and My Videos folders in Shell32. It fixes incorrect location of that folders when install ReactOS as Workstation.
Currently they are located in one more My Documents subfolder, which is, in its turn, in the correct My Documents directory. After this fix, they are directly in the 2nd one, as they should be.
CORE-16698
The version string kernel number and the localized "version" word were too near in translation files. The patch fixes the problem introduced by #2276.
Addendum to commit a57f7b50.
Rewrite shell32!SHAddToRecentDocs and use it in some applications.
Wine's SHAddToRecentDocs was not Unicode supported and unusable. I will dare to rewrite.
CORE-3588
Reject invalid input filename characters by using shell32!SHLimitInputEdit function and IItemNameLimits interface. Improve SHLimitInputEdit to sanitize paste.
CORE-11701