Commit graph

284 commits

Author SHA1 Message Date
Whindmar Saksit
11ea1d6198
[BROWSEUI][COMCTL32] Handle rename on other folders in Explorer bar tree (#6832)
IContextMenu (CDefaultContextMenu) only knows how to rename when its site is an IShellView. The tree must detect the rename operation and perform it in the TreeView instead.

Fixed a bug in the ListView that is triggered by activating DefView (to complete the rename): Just after DefView has been activated, the tree performs a navigation to the newly renamed folder, this causes DefView to be destroyed and in turn the ListView. The ListView tries to handle a selection change during destruction of the ListView and ends up accessing an invalid pointer.

CORE-19557
2024-05-22 00:06:46 +02:00
Whindmar Saksit
9e8214fa13
[BROWSEUI] GetControlWindow must support FCW_TREE for DefView usage (#6781)
Support GetControlWindow, ShowControlWindow and IsControlWindowShown for TREE and STATUS in the Shell Browser so DefView can set CMF_EXPLORE correctly.
2024-05-09 18:56:19 +02:00
Katayama Hirofumi MZ
1b85a5fa06
[BROWSEUI] SHExplorerParseCmdLine: Fix parsing of /root (#6752)
Remove excessive (!pInfo->pidlPath) check in SHExplorerParseCmdLine
function.
JIRA issue: CORE-16939
2024-04-15 09:41:01 +09:00
Katayama Hirofumi MZ
2f6b17593f
[BROWSEUI] Delete WS_BORDER and owner-drawing from IDC_SEARCH_COMBOBOX (#6610)
Related to #6609.
Delete WM_BORDER and CBS_OWNERDRAWFIXED
styles from IDC_SEARCH_COMBOBOX.
JIRA issue: N/A
2024-03-13 20:04:39 +09:00
Katayama Hirofumi MZ
9c8924c173
[BROWSEUI] Search: Add WS_BORDER to IDC_SEARCH_COMBOBOX (#6609)
Fix a minor UI problem. IDC_SEARCH_COMBOBOX was border-less.
It was wrong.
JIRA issue: N/A
- Add WS_BORDER window style to IDC_SEARCH_COMBOBOX
  combo box in IDD_SEARCH_DLG dialog resource.
2024-03-12 20:06:24 +09:00
Katayama Hirofumi MZ
361bf39872
[BROWSEUI] Fix CExplorerBand Right-Dragging menu (#6579)
Display correct menu on right-dragging
an item in Folder explorer bar to Desktop.
JIRA issue: CORE-19474
In CExplorerBand::OnTreeItemDragging
method:
- Use GetAttributesOf to get the
  attributes of a folder item.
- Use correct dwEffect value for
  DoDragDrop call.
2024-03-06 08:11:32 +09:00
Katayama Hirofumi MZ
bb297bc351
[BROWSEUI] Use STDMETHOD macro and keyword override (#6569)
For simplicity and short typing.
JIRA issue: CORE-19469
- Replace "virtual HRESULT 
  STDMETHODCALLTYPE m"
  with "STDMETHOD(m)"
  (m is a method name).
- Replace "virtual t
  STDMETHODCALLTYPE m"
  with "STDMETHOD_(t, m)"
 (t is a type. m is a method name).
- Use "override" keyword as possible.
2024-03-05 00:53:11 +09:00
Katayama Hirofumi MZ
281f7c4e38
[BROWSEUI] Implement 'Add to Favorites' (#6543)
Implement Explorer's "Add to Favorites" feature.
JIRA issue: CORE-16857
- Add CreateShortcut helper function.
- Add CShellBrowser::OnAddToFavorites.
2024-02-27 19:55:57 +09:00
Katayama Hirofumi MZ
8209aa528b
[BROWSEUI] Enable Address bar access key (Alt+D) (#6534)
Retrial of #5052. Improve keyboard
interface usability.
JIRA issue: CORE-18823
- Add GetAddressBarAccessKey
  helper function to get the
  accelerator of Address bar from
  resource string
  IDS_ADDRESSBANDLABEL.
- Implement Alt+D (or something)
  accelerator in CAddressBand::
  TranslateAcceleratorIO method by
  handling WM_SYSKEYDOWN and
  WM_SYSCHAR messages.
2024-02-26 21:54:51 +09:00
Andrei Miloiu
b4217c1db4
[BROWSEUI] Update Romanian (ro-RO) translation (#6480) 2024-02-11 23:20:29 +01:00
Andrei Miloiu
0b22bf25fc
[BROWSEUI] Update Romanian translation (#6378) 2024-01-21 22:10:39 +01:00
Katayama Hirofumi MZ
ac1a96477b
[BROWSEUI] Clear pidlLastParsed on CAddressEditBox::Execute (#6183)
Based on KRosUser's gopidlparsed.patch.
Clear pidlLastParsed if necessary.
CORE-19019
2023-12-23 08:16:01 +09:00
Katayama Hirofumi MZ
96d525959b
[BROWSEUI] Load settings on CInternetToolbar::OnContextMenu (#6182)
Based on KRosUser's go.patch.
CORE-19145
2023-12-22 06:57:33 +09:00
Николай Димитров
4514e91dd6
[TRANSLATION] Update and fix Bulgarian (bg-BG) translation (#5581)
NOTE: IDS_ADMINISTRATOR_NAME translation excluded for the time being.

It should be "Администратор", but bg-BG translation missing in samsrv.dll,
therefore don't translate it because otherwise this would introduce a mismatch
(samsrv falls back into english when translation is missing).

Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2023-12-21 18:09:34 +01:00
Whindmar Saksit
5be53f553c
[BROWSEUI] Don't call SHOpenFolderAndSelectItems with full pidls and don't leak them (#6153)
- The children passed to SHOpenFolderAndSelectItems are not supposed to be full pidls.
- Don't leak the array from IShellFolderView::GetSelectedObjects.
2023-12-17 22:16:19 +01:00
Hermès Bélusca-Maïto
231ac99414
[BROWSEUI] Fix item deletion in CExplorerBand::OnTreeItemDeleted().
Addendum to commit 1b634b38e (r73706)
CORE-10838

The TVN_DELETEITEM notification sends the info about the item to be
deleted in the itemOld member of the NMTREEVIEW structure, and not in
the itemNew one!
2023-12-16 15:25:52 +01:00
Hermès Bélusca-Maïto
46ab34662d
[BROWSEUI] Some parenthesizing clarification around "xxx & YYY" expressions in conditionals 2023-10-28 17:56:55 +02:00
Hermès Bélusca-Maïto
64f40e7f30
[BROWSEUI] Fix MSVC compilation warning C4805
internettoolbar.cpp(714): warning C4805: '!=': unsafe mix of type 'bool' and type 'BOOL' in operation
2023-10-28 17:50:26 +02:00
Carl J. Bialorucki
f744bb2994
[BROWSEUI] More settings and window refresh (#5584)
Adds the option to set the address edit box to use the display name or the full path. Also refreshes the window title and edit box in all open explorer windows when changing these settings using the folder options dialog.

## PROPOSED CHANGES ##
- Create a new CabinetStateSettings type that inherits from the CABINETSTATE type. This allows us to add additional cabinet state settings not exposed in the CABINETSTATE type as well as adding a Load() method to easily populate the cabinet state settings.

- Add a global cabinet state settings object. While most settings in browseui are stored independently in each shellbrowser window, cabinet state settings are global and apply to every shellbrowser window. This can be confirmed on Windows Server 2003 and Windows 7.

- When receiving the WM_SETTINGCHANGE window message from the folder options dialog, refresh the title of the window and the text in the address edit box. This is the same behavior as Windows Server 2003 and Windows 7.
Add a DWORD registry value to HKCU\...\Explorer\CabinetState\FullPathAddress to allow users to toggle this setting on or off in our folder options.

CORE-9277
2023-10-02 22:43:00 +02:00
Tibor Lajos Füzi
3068422d51
[TRANSLATION] Update hungarian translation for mspaint, notepad, taskmgr, explorer, appwiz, browseui, msgina, shell32 (#5645) 2023-09-03 17:46:38 +02:00
Katayama Hirofumi MZ
4814dfea01
[BROWSEUI][SDK] Half-implement CShellBrowser::GetPropertyBag (#5635)
- Implement CShellBrowser::GetPropertyBag
  a little by using SHGetViewStatePropertyBag.
- Add SHGetPathFromIDListWrapW prototype to
<shlwapi_undoc.h>.
CORE-9283
2023-09-03 12:09:55 +09:00
Katayama Hirofumi MZ
ff63d06406
[BROWSEUI] Support mouse back and forward buttons (#5623)
Add WM_APPCOMMAND handling to the
shell browser. CORE-16776
2023-08-28 00:12:47 +09:00
Carl J. Bialorucki
43b3dc2034
[BROWSEUI] Refactor settings and sync them between windows (#5496)
This works similarly to how our shell stores its settings from a software design standpoint.

- Add settings.cpp file and ShellSettings structure to load and save settings.
- Add a registry value to hivedef.inf for the locked toolbar state.
  This prevents a bug where the associated registry key cannot be opened or saved to.
- Add new BWM_SETTINGCHANGE window message to refresh the UI on setting changes
  and send it to every open window when saving settings to the registry.
- Add new BWM_GETSETTINGSPTR window message to share the shellbrowser settings
  structure pointer with child windows and toolbars.
2023-08-17 12:14:41 +03:00
Katayama Hirofumi MZ
0aa2e82c06
[BROWSEUI] Don't forget to CoInitializeEx on COM thread (#5552)
Use CoInitializeEx and CoUninitialize in
CFindFolder::SearchThreadProc.
CORE-19110
2023-08-10 22:16:30 +09:00
Carl J. Bialorucki
d70e798977
[BROWSEUI] Use details view by default (#5452) CORE-18904
* Detail view by default, except in special folders
* Added hack/fixme disclaimer
2023-07-28 21:20:00 +02:00
Carl J. Bialorucki
6d37456542
[BROWSEUI] Add an option to use full folder path in the window title (#5468)
- Set `HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CabinetState\FullPath` to 0 by default.
  Adding this registry value also enables the "Display the full path in the title bar" option in our folder options window.
- Query the same registry key when the file explorer is started to determine whether to use the full path or the display name in the window title.

CORE-19046 CORE-18904
2023-07-22 17:50:39 +03:00
Carl J. Bialorucki
bfadb22da1
[BROWSEUI] Respect status bar display state in Folders/Search panes (#5445)
- Use proper window styles when creating status bar window.
- Specify WS_VISIBLE style only when status bar display is enabled.
- Use ::CreateWindowExW() with a global namespace scope operator.
- Fix some magic constants.

CORE-19027
2023-07-17 01:14:33 +03:00
Katayama Hirofumi MZ
b4e946f5b0
[BROWSEUI] Fix pos of taskbar toolbar right-click menu (#5421)
Don't call ClientToScreen in handling NM_RCLICK message because NMMOUSE.pt is already in screen coordinates.
CORE-18966
2023-07-11 05:28:50 +09:00
Carl J. Bialorucki
209439a5ae
[BROWSEUI] Add status bar view state persistence (#5366)
- Use `HKCU\Software\Microsoft\Internet Explorer\Main\StatusBarOther` registry key for the setting persistence.
- Set its value to 1 when the status bar is visible, and to 0 when the status bar is hidden.
- Query it when the file browser is initialized to set the correct view state for the status bar.
- Set the default state of the status bar to hidden if the registry key does not exist, matching the behavior of Windows Server 2003.

CORE-19010
2023-06-29 18:50:43 +03:00
Carl J. Bialorucki
f203ad5cf4
[BROWSEUI] Add locked toolbar state persistence (#5350)
Store the state of the explorer toolbar, locked or unlocked, in the proper
registry location and set the proper toolbar state when initialized.

CORE-9094

- Set `HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\Locked`
  to 1 when the explorer toolbar is locked, 0 when the toolbar is unlocked.
- Query `HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\Locked`
  when the toolbar is initialized to set the correct locked state.
- Set the default state of the toolbar to locked if the registry key does not
  exist, matching the behavior of Windows Server 2003.
2023-06-20 11:16:23 +02:00
Andrei Miloiu
b59bae8bb9
[BROWSEUI] Update Romanian translation (#5299) 2023-05-21 14:41:59 +02:00
Philippe Morin
8b4572c159
[TRANSLATION][BROWSEUI] Improve French (fr-FR) translation (#5295)
CORE-18914
2023-05-20 20:45:05 +02:00
Katayama Hirofumi MZ
bb67913156
[BROWSEUI] Add CAddressEditBox::RefreshAddress and use it (#5062)
Follow-up of #5026 [BROWSEUI] Execute command line from address bar. Elegantly reset the address bar after command line execution. CORE-15453
2023-02-17 12:29:30 +09:00
Mark Jansen
460a01b167
[BROWSEUI] Fix crash while editing a label in the folder tree
+ Add a missing break
CORE-18646
2023-02-13 23:20:20 +01:00
Atharva Kulkarni
2f6f24d0f6
[BROWSEUI] Don't show file names in Relevance column in search results (#5072)
* Dont show file names in Relevance column
* Define new column names
* Update CompareIDs to use newer defines
2023-02-13 20:49:45 +01:00
Atharva Kulkarni
a777cc2cc4
[EXPLORER] Fix crash on backspace while editing a label in the folder panel (#5059)
While editing a label, accelerator events should not be propagated.
2023-02-13 20:45:39 +01:00
Joachim Henze
a38d19ebce [BROWSEUI] Update de-DE.rc German translation
German accelerator for "&Datei" collided with "A&dresse".
Fix by switching to what MS uses in german XPSP3.

see the before-state with the [BROWSEUI] collision here:
https://jira.reactos.org/secure/attachment/65116/ros.png

Please note that in current master head the accelerators in
[BROWSEUI] filebrowser are generally broken for other reasons.
So this commit will not entirely fix CORE-18824

Also update to new-style header (inspired by es-ES.rc) and
https://reactos.org/wiki/Coding_Style
and add a missing translation.
2023-02-11 21:35:57 +01:00
Ratin Gao
2f70f79904
[TRANSLATION] Improve Simplified Chinese (zh-CN) translation (#4979)
- Add and improve translation
- Fix mistakes
2023-02-10 23:15:25 +09:00
Joachim Henze
06b25bc9dd [EXPLORER][BROWSEUI] de-DE.rc fix 3 german keyboard accelerators
[BROWSEUI] German accelerator for "F&avoriten" collided with "&Ansicht".
[EXPLORER] German accelerator for "F&avoriten" must be "&Favoriten" also in the startmenu.
[BROWSEUI] German accelerator for "S&chnellstartleiste" was missing.
Fix all 3 by switching to what MS uses in german XPSP3.

see the before-state with the [BROWSEUI] collision here:
https://jira.reactos.org/secure/attachment/65116/ros.png

Please note that in current master head the accelerators in
[BROWSEUI] filebrowser are generally broken for other reasons.
So this commit will not entirely fix CORE-18824 yet, but just
rules out the small related glitches in the german rc-files.
2023-02-08 10:05:04 +01:00
Joachim Henze
09dde2cff9
[REACTOS] "http://www.reactos" -> "https://reactos" (#5043)
To harmonize, to save some bytes, and last but not least for security reasons.
This can be understood as an addendum to (#2619).
2023-02-06 17:01:52 +03:00
Katayama Hirofumi MZ
7ce58e177c
[BROWSEUI] Execute command line from address bar (#5026)
CORE-15453
2023-02-06 22:46:26 +09:00
Mark Jansen
a06f10d0c0
[BROWSEUI] Fix CAutoComplete use after free
CORE-18395
2022-10-27 23:45:18 +02:00
Konrad Dybcio
97a61654c5
[BROWSEUI] Update Polish (pl-PL) translation (#4813) 2022-10-26 16:22:56 +03:00
Katayama Hirofumi MZ
337cbf5888 [BROWSEUI] Follow-up of 2e67c18 (#4767); Also check 'MenuText'
CORE-18394
2022-10-13 11:07:03 +09:00
Stanislav Motylkov
e63be36c68
[BROWSEUI] Update Russian (ru-RU) translation
Addendum to 2e67c18d. CORE-18394
2022-10-11 00:48:31 +03:00
Katayama Hirofumi MZ
2e67c18d2b
[BROWSEUI][INCLUDE] Localize 'Address' on CBandSiteMenu (#4767)
- Add IDS_ADDRESSMENUTEXT resource string (whose ID matchs the string of addressband.rgs).
- Add SHLoadRegUIStringA/W function prototype to <shlwapi_undoc.h>.
- Use SHLoadRegUIStringW to load MenuTextPUI.
CORE-18394
2022-10-11 06:15:28 +09:00
Mark Jansen
cd2d284142
[EXPLORER][BROWSEUI][SHELL32][NETSHELL] Fix wrong usage of CComPtr 2022-10-02 00:38:23 +02:00
Luke Luo
de972e2bc2
[TRANSLATION] Improve Simplified Chinese (zh-CN) translation (#4513)
- Changed some wording according to the translation requirements.
- Fixed some mistakes.
- Changed my name.

Reviewed-by: He Yang <1160386205@qq.com>
Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
2022-05-20 15:38:24 +03:00
Serge Gautherie
beefb07d18
[BROWSEUI] Remove useless variable and unreachable code (#4483)
Addendum to 0c47416 (r72003).
CORE-12804

Co-authored-by: Victor Martinez Calvo <vicmarcal@gmail.com>
2022-05-05 16:45:56 +02:00
Serge Gautherie
7e22dc05ca
[BROWSEUI][BROWSEUI_APITEST] SHExplorerParseCmdLine(): Sync and improve (#3231)
ROSTESTS-302

- SHCreateFromDesktop(): Sync declaration and spec.
- SHExplorerParseCmdLine(): Sync declaration, header and spec.
- SHExplorerParseCmdLine: Enforce 'UINT_PTR' return type.
Addendum to e39876d and 0f8439a.

- SHExplorerParseCmdLine: Replace '*EXPLORER_INFO'
- SHExplorerParseCmdLine: Fix x64 support; Fix some results.
2022-05-03 16:32:14 +02:00