Skip to content

[Feature request] Native feature to hide selected toolbar buttons #16000

@ThioJoe

Description

@ThioJoe

Is there an existing issue for this?

  • I have searched the existing issues

Description of the Issue

This issue/request is also to get feedback on my pull request which I kind of jumped the gun on submitting already.

Feature Request:

It would be very nice to have the ability to reduce the amount of toolbar buttons, since many plugins just slap on a bunch of additional buttons with no built-in way to stop them from doing so, or choose which ones show.


There is the Customize Toolbar plugin which can do this, but it has several drawbacks in my experience:

  • Its configuration gets reset all the time and sometimes breaks for no apparent reason (especially when working with multiple instances I've found)
  • Its configuration settings are stored in a .dat file that is not human readable so you can't edit it directly to fix the issue
  • The .dat file format also means you are required to customize it using the GUI, which uses the ancient Customization Dialog Box built into the Windows API. Which requires adding/removing buttons one by one, is tiny and can't be resized, and is generally a pain.
  • The plugin hasn't been updated in a few years and apparently has compatibility issues with more recent versions as seen in [BUG] Notepad++ 6.8.9 disrupts the CustomizeToolbar plugin #15440

Describe the solution you'd like.

Proposed Solution (Feedback wanted)

Example - Before (Default everything showing):

image

Example - After: First several built in buttons hidden:

image

Thoughts on Possible Further Enhancements:

I admit I'm not super familiar with C++ so my implementation was essentially the most simple one I could come up with, and therefore only allows hiding buttons, not adding additional ones. Though I'm not confident enough in my skills to fully implement an "add custom button" feature, I'd be welcome to suggestions on how I could adjust the current implementation to ensure enough "scaffolding" is there if someone wanted to add that ability later.

For example right now the way my feature implementation works, is it detects whether or not it needs to update the xml config file by detecting differences between the commands in the xml file and those in memory. But if we wanted to add the ability to knowingly add new buttons using the same xml file, that approach might need adjustment. However I will say that the way my implementation works is pretty compartmentalized and isolated, so it should be easy enough to say, keep the current implementation for handling the built-in and plugin buttons, and then just deal with any new additional buttons totally separately.

Debug Information

Notepad++ v8.7.4   (64-bit)
Build time : Dec  4 2024 - 23:50:05
Path : C:\Program Files\Notepad++\notepad++.exe
Command Line : 
Admin mode : OFF
Local Conf mode : OFF
Cloud Config : B:\Dropbox\Backup\Program Settings and Configurations\Notepad++ Cloud Settings
Periodic Backup : ON
Placeholders : OFF
DirectWrite : ON
Multi-instance Mode : multiInstOnSession
File Status Auto-Detection : cdEnabledNew (for current file/tab only)
Dark Mode : OFF
OS Name : Windows 11 Pro for Workstations (64-bit)
OS Version : 24H2
OS Build : 26100.2605
Current ANSI codepage : 1252
Plugins : 
    ComparePlus (1.2)
    HexEditor (0.9.12)
    JsonTools (7.1)
    mimeTools (3.1)
    NppConverter (4.6)
    NppExport (0.4)
    NppFavorites (1.0.0.1)
    XMLTools (3.1.1.13)

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions