Removing MultiSliderView's border?

Is there a method-way to remove MultiSliderView’s border?

this has no left border:

(
    w = Window.new;
    m = MultiSliderView(w, Rect(0, 0, 350, 100));
    w.front;
)

If you are copy pasting from the examples in the help this line:

        w.view.decorator = FlowLayout( w.view.bounds, 10@10, 10@2 );

is where the padding is coming from

There’s a CompositeView behind it (on screenshot), forgot to remove it for keeping it clean. I meant the dark grey border

Screenshot 2023-10-12 at 15.57.27

I thought QPalette might work here but unfortunately it doesn’t seem to.
It sets the border fine for NumberBox, but not for Slider or MultiSliderView:

(
p = QPalette();
p.setColor(Color.clear, \window, \active);
p.setColor(Color.clear, \highlight, \active);
q = QPalette();
q.setColor(Color.red, \window, \active);
q.setColor(Color.red, \highlight, \active);
w = Window.new;
m = MultiSliderView(w, Rect(0, 0, 350, 90)).elasticMode_(1).size_(25);
n = NumberBox(w, Rect(10, 110, 50, 20));
o = NumberBox(w, Rect(10, 140, 50, 20));
x = Slider(w, Rect(70, 110, 150, 20));
y = Slider(w, Rect(70, 140, 150, 20));

m.value = {1.0.rand} ! 25;
n.value = 1.0.rand;
o.value = 1.0.rand;
x.value = 1.0.rand;
y.value = 1.0.rand;

m.palette = p;
n.palette = p;
o.palette = q;
x.palette = p;
y.palette = q;

w.front;
)
1 Like

I think this question was already asked a couple years ago, without any given solution.

You’d have to go down the rabbit hole to see how the MultiSlider is effectively implemented, and this might go down to QT’s code itself. And maybe the property setter exists but it is inaccessible from SC.

I was bothered by those kind of details, and the general ‘ugliness’ of QT’s default implementation. This is a personal judgement, but QT’s interfaces kind of reminds me playing Mine Sweeper on my grandfather’s Windows 98, 20 years ago.

I started working on a Quark that would get rid of those things and allow deeper customisation of SC’s basic views, along with other views that I feel are missing when dealing with musical software. But this is in Beta, and poorly coded, so I’m not willing to distribute it any time soon.

The idea is you can reconstruct any basic view using UserView’s .drawFunc to suit the aspect you’d like it to have. But you need to code the logic of the widget again.

So I have the basic code components for reconstructing the MultiSlider view if you want to. They’re scattered across several files (I’m using inheritance and a ‘palette’ system) but can be put back together with a little bit of work.

1 Like

That is what I was intuitively thought of. I think it is not worth for me to dive that deep into fixing things for just removing a border. I’ll just admit the functionality/aesthetics of GUI classes as they are at this stage or use other options for making GUI a bit later. Thank you for your research on that question