[linux-audio-dev] [ANN] SkinDial QDial compatible class for eyecandy knobs

Benno Senoner sbenno at gardena.net
Sat Jun 11 21:01:32 UTC 2005


Arnold Krille wrote:

>On Saturday 11 June 2005 20:44, Benno Senoner wrote:
>  
>
>>The SkinDial class is written in Qt [1] provides flexible pixmap based
>>dial/knob widget
>>compatible with QDial [2].
>>The idea was to make it using Qt's QDial API so that apps (mainly audio
>>apps) using this class can make
>>use of eyecandy knobs without changing the code. (except for the
>>constructor).
>>    
>>
><snip>
>  
>
>>What do you think of making a web page that collects all those ready to
>>use skinnable widgets
>>so that users avoid reinventing the wheel (the knob :) ) all over again ?
>>    
>>
>
>Actually you just reinvented (reimplemented?) it: There is a scalable version 
>in kdemultimedia/arts/gui since 2-3 years. And it works exactly as the Qt 
>one, except its for float from the beginning...
>  
>
I never stated that I invented the skinned knob. You find all sorts of 
knobs in various linux audio apps.
(eg hydrogen etc .. but they are too specific and not flexible enough 
for general purpose use).

Of course I reimplented my own version. It was based on ideas of various 
LADers and people on #qt.
The purpose of SkinDial is to have an easy to use, flexible skinnable 
knob that works like QDial.
Did you take the time to try the example andcheck out the HTML docs in 
the tgz before saying there's such a version in kde since years etc ... ?

do you mean kpoti of
http://webcvs.kde.org/kdemultimedia/arts/gui/kde/
?
it's not pixmap based.

And certainly those widgets you mentioned don't come with extensive 
docs, example code and
multiple mouse movement methods (Y/X/Radial), configurable pixmap angles 
etc.

Adding float support so that you can do eg. setMinValue(0.1) ; 
setMaxValue(0.9) and setValue(0.5) is trivial.
I'll add it to the next version to make anyone happy. (and new skins are 
in the works by Thorsten and Peter).

>Your's doesn't scale...
>  
>
It does.
if you look at the screenshot:
http://www.linuxsampler.org/misc2/skindial/skindialtest.png

the big one (it's even in the text on the GUI :) ) is derived from the 
same small pixmap that is used for the other knobs.
you can resize() it to any dimension. Of course it does not make much 
sense to take a small pixmap and make a big widget out of it.
But doing the viceversa makes sense, since if you reduce the size of the 
knob you don't get the pixellation effect.
Still, I suggest setting the widget to the same dimension as the pixmap.

I might be a bit stupid or naive but I did look around quite a bit 
before starting working on SkinDial, I even asked some KDE developers
if I could recycle some code but they confirmed that nothing as flexible 
as SkinDial existed. That's why I started writing it.
The main purpose for SkinDial was to have some nice knobs in qsampler, 
the LinuxSampler GUI. But I thought making a generally
usable knob widget with extensive docs and example code was better than 
implementing yet another application specific knob.
The code is here and people are free to use or not use it in their 
applications.
It will be used at least in qsampler and this was the motivation writing 
it. Then if it comes it comes with full documentation and example code
and blender source files it's only a positive sideeffect.  :)

So please next time before writing such comments, please try out the 
code and read all the docs.
I accept any kind of criticism since constructive criticism leads to 
improvement of code and applications but your message
sounds a bit that I simply wasted my time since I reinvented something 
that's available since years, without me knowing this :)

As said I'm not upset in anyway but I just want to get the facts right 
so that people get informed that's the state of art regarding
skinnable knob widgets.

cheers,
Benno
http://www.linuxsampler.org


>Arnold
>
>  
>




More information about the Linux-audio-dev mailing list