Skip to content

added easy7zip features#490

Open
3V0S8N wants to merge 4 commits into
mcmilk:masterfrom
3V0S8N:master
Open

added easy7zip features#490
3V0S8N wants to merge 4 commits into
mcmilk:masterfrom
3V0S8N:master

Conversation

@3V0S8N

@3V0S8N 3V0S8N commented May 15, 2026

Copy link
Copy Markdown

Port abandoned Easy 7-Zip features (e7z.org, LGPL)

UI features: free-space labels, "Open" button + path-history sharing in Extract/Copy dialogs, post-extract checkboxes (Open / Delete source / Close 7-Zip), tray background mode with animated icon, resizable progress

  • dialogs, percent label, context menu icons default on.

Generic vanilla extensions used by these features:

  • CDialog: OnGetMinMaxInfo virtual + _minTrackSize + helper
  • NDir::DeleteFileIfArchive
  • BrowseDialog: FreeSpace_ConvertSizeToString + FormatPathFreeSpace
  • ViewSettings: SaveBoolVal / ReadBoolVal

Port abandoned Easy 7-Zip features (e7z.org, LGPL)

UI features: free-space labels, "Open" button + path-history sharing
in Extract/Copy dialogs, post-extract checkboxes (Open / Delete source /
Close 7-Zip), tray background mode with animated icon, resizable progress
+ dialogs, percent label, context menu icons default on.

Generic vanilla extensions used by these features:
- CDialog: OnGetMinMaxInfo virtual + _minTrackSize + helper
- NDir::DeleteFileIfArchive
- BrowseDialog: FreeSpace_ConvertSizeToString + FormatPathFreeSpace
- ViewSettings: SaveBoolVal / ReadBoolVal
@3V0S8N 3V0S8N marked this pull request as draft May 15, 2026 10:44
@3V0S8N 3V0S8N marked this pull request as ready for review May 15, 2026 10:49
@mcmilk

mcmilk commented May 15, 2026

Copy link
Copy Markdown
Owner

Hello @3V0S8N - it looks like you added some UI changes, can you add some screenshots of the new things?

SonarQube: trivial fixes (nullptr, in-class init, static const, explicit ctor)
@3V0S8N

3V0S8N commented May 15, 2026

Copy link
Copy Markdown
Author

Hello @3V0S8N - it looks like you added some UI changes, can you add some screenshots of the new things?
Hey yes: since I ported them from the e7z fork http://www.e7z.org/

grafik grafik grafik grafik grafik

@3V0S8N 3V0S8N marked this pull request as draft May 15, 2026 11:51
@3V0S8N 3V0S8N marked this pull request as ready for review May 15, 2026 12:15
* ZipRegistry: MenuIcons defaults ON when no registry value
  (Key_Get_BoolPair_true, matches Cascaded/ElimDup).
* ContextMenu.cpp: drop the ci.MenuIcons.Val conditional — shell
  context-menu icons are now unconditional.
* g_bProcessError -> ProgressDialog_SetError()/HadError() pair backed
  by a function-local static in an anonymous namespace (3x S5421).
  Callers in App.cpp and ExtractGUI.cpp updated.
* CProgressDialog: extract 3 SysTray methods + state into a CSysTray
  helper struct (Icons, IconArrayId, Menu, LoadIcons, UpdateIcon,
  BuildPopupMenu). Class falls 38 -> 35 methods, fixes S1448.
  In-class default-init for Icons{}, IconArrayId, Menu;
  CSysTray() = default replaces out-of-line ctor (2x S3230).
  UpdateIcon: int newIconId -> const auto + static_cast<int> (S5827).
  Behavior unchanged.
* wchar_t buf[N] -> std::array<wchar_t, N> in BrowseDialog (szFree,
  szTotal), ProgressDialog2 (szPercent, tip): 4x S5945.
* HICON[] -> std::array<HICON, N> (S5945), std::size for szTip
  (S7127), range-for loops for icon arrays (2x S5566).
* CopyDialog.h: CCopyDialog() = default (S3490).
* ExtractDialog.h: PathMode_Force in-class init, ctor body-only (S3230).
* App.cpp + BrowseDialog.cpp: collapse local DWORD into if-init-statement
  (2x S6004).
* *Res.h headers: NOSONAR cpp:S5028 — Win32 rc.exe only parses #define
  macros, so const/constexpr/enum are not valid for resource IDs.
  Affects CopyDialogRes, ProgressDialog2IconRes, ProgressDialog2Res,
  ExtractDialogRes (28 lines, all Easy-additions).
@3V0S8N

3V0S8N commented May 18, 2026

Copy link
Copy Markdown
Author

this should be fine now

@sebres

sebres commented May 18, 2026

Copy link
Copy Markdown
Collaborator

Would we have certain "conflict" with 36ae34f?

@3V0S8N

3V0S8N commented May 18, 2026

Copy link
Copy Markdown
Author

Would we have certain "conflict" with 36ae34f?

IDX_EXTRACT_OPEN_TRG_FLD 104 the e7z stuff is 105, 107, 108,109. I think I took care of all issues. But let me know if I'm wrong

@sebres

sebres commented May 18, 2026

Copy link
Copy Markdown
Collaborator

I didn't mean a conflict by ID of some resource, I meant the feature "Open target folder" which seems to be (re)implemented as "Open output folder"... so we shall not have 2 different things doing the same.

* ZipRegistry: add standalone Save_OpnTrgFold/Read_OpnTrgFold helpers
  in NExtract (analog to Save_ShowPassword/Read_ShowPassword), backed
  by Igor's existing kOpnTrgFold registry value in the Extraction key.
* CopyDialog: route OpenOutputFolder through NExtract::Save_OpnTrgFold
  /Read_OpnTrgFold instead of Easy's FM-key Save_OpenOutputFolder
  /Read_OpenOutputFolder.
* ViewSettings: drop now-dead Save_OpenOutputFolder/Read_OpenOutputFolder
  and kOpenOutputFolderValueName.

Effect: the Extract dialog (vanilla, Igor's checkbox) and the FM Copy/
Move dialog (F5/F6) now share one persisted setting at HKCU\...\
Extraction\OpnTrgFold instead of two parallel registry values. Addresses
maintainer feedback on duplicated "Open output folder" semantics.
@3V0S8N

3V0S8N commented May 18, 2026

Copy link
Copy Markdown
Author

I didn't mean a conflict by ID of some resource, I meant the feature "Open target folder" which seems to be (re)implemented as "Open output folder"... so we shall not have 2 different things doing the same.

Ok yes thats stupid, I ported most of the stuff over as is without thinking about it. I'm currently at work I let the clanker do the commit. At a glance it looks good.

@sonarqubecloud

Copy link
Copy Markdown

@mcmilk mcmilk force-pushed the master branch 2 times, most recently from 7ea09d4 to 4d79dd7 Compare June 7, 2026 11:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants