moudey / Shell

Powerful context menu manager for Windows File Explorer
https://nilesoft.org
MIT License
2.9k stars 96 forks source link

Best practices for a large number of SendTo targets? #400

Open UNIVAC-Colonel-Panic opened 5 months ago

UNIVAC-Colonel-Panic commented 5 months ago

Shell v1.9.10 on Microsoft Windows 11 Pro, v10.0.22621, build 22621

The screen captures below are meant to be simplified examples of the main issue I'm having with the normal Windows 11 context menu. (I also hope to find a solution for a Windows 10 PC I frequently use.) I actually have 117 targets in total and Windows does not scroll the list to show all of them and instead just truncates the list. It is the non-scrolling bug (feature!) in Windows that led me to find Nilesoft Shell in hopes it would do scrolling of the overflow, but Nilesoft Shell also doesn't. Here's an example of the non-scrolling issue:

All 46 targets are shown when font.size=11. Notice how the last two shown are "file-today-cptoday" and "file-today-mvtoday":

Screenshot - 1_15_2024 , 3_57_07 PM - 887x1027_ver001

If I increase the font size from 11 to 12, the list is truncated at "file-today-cptoday" and I can't scroll down past it to select "file-today-mvtoday":

Screenshot - 1_15_2024 , 3_58_40 PM - 887x1027_ver001

Keep in mind, there's still another 71 more targets that I want to have appear in the SendTo menu (most of those are not displaying due to #319 , #364 and #392 . If scrolling is not a feature that could be added to Nilesoft Shell, then as far as I can tell my only choice is to further reduce the font size, but that is impractical for my aging eyes. :(

HERE ARE MY QUESTIONS:

  1. Can a SendTo overflow scrolling feature be added to Nilesoft Shell?

  2. Ideally I'd like to have submenus in SendTo to break all 117 targets into categories, like SendTo Image Tools, SendTo File Targets, SendTo Folder Targets, but does Windows limit SendTo to being only ONE, i.e., the main SendTo folder?

Something like this:

Compressed (zipped) folder
Desktop (create shortcut)
Documents
File Targets->
     Extract PDF to TXT
     Extract HTML to TXT
     Increase audio speed 1.5x
     Increase audio speed 2.0x
     Sort INI sections
Folder Targets->
     Archived Voicemails
     Archived PDFs
     Screenshots
Image Tools->
     PNG to GIF
     PNG to JPG
     Resize by 50%
     SVG to JPG
     SVG to PNG
  1. Is there a better way to handle so many SendTo targets?
albino1 commented 5 months ago

I'm also interested in this. In addition to general cleanup, my ideal use for Shell would be in sub-dividing my Send To into submenus.

The first thing I did was move Send To out of More Options so I could access it more easily, but I'm unable to figure out a way to split it into smaller folders. Is there an easy way to do that?

If not, is it maybe possible to recreate the Send To functionality by creating my own Shell menus? Something like:

menu(title = 'Image Tools')
{
    item(title = 'PNG to GIF' <send file(s) to abc.exe>)
    item(title = 'PNG to JPG' <send to file(s) xyz.bat>)
}

EDIT:

Based on https://github.com/moudey/Shell/issues/276#issuecomment-1680087197 It seems like it should be possible using cmd and args.

I've got a working example using Notepad, though it only works for 1 file:

menu(title = 'Text Tools')
{
        item(title='Notepad' cmd='Notepad' args=sel.file.name)
}

A lot of this stuff is hard to find in the docs, so this is mostly guesswork based on other people's code examples. Like I can find documentation for sel, but not for things like back or file:

https://nilesoft.org/docs/functions/sel

The docs need a search function besides Googling site:https://nilesoft.org/ "sel", hah.

With all that said, ideally we would just be able to move the Send To stuff around into submenus without having to recreate them from scratch.

RubicBG commented 5 months ago

can help more at https://discord.com/channels/1106387012707168318/