[Gambas-user] embedding QT/GTK themes or better control of app appearance (was: Re: GAMBAS crash when setting columnview's Sorted property)

kevinfishburne kevinfishburne at ...1887...
Fri Sep 18 22:15:09 CEST 2009



Bugzilla from gambas at ...1... wrote:
> 
> If your data comes from a SQL query, you can redo the query with a
> different 
> "ORDER BY" SQL clause.
> 
> If your query returns a lot of data, just return what you need by using
> the 
> Limit() method ( or the "LIMIT" SQL keyword).
> 
> The DataView control of gb.db.form just does all that. It only fetches 64 
> records of a query, and does its sorting by using "ORDER BY". It works
> well 
> even if there is Internet between the computer and the database.
> 

Unfortunately the data comes from the output of

SHELL "ls -R --sort extension " & "\"" & TextBox_Collection_Path.Text & "\""
& "|grep .sf2 > " & User.Home & "/.LiquidSynth/Collection.data"

which a flat text file I parse with LINE INPUT. I need the user to be able
to sort three columns via the GUI, forward and backward and to be able to
scroll through all the entries in the list at once whether it be 50 or
50000. It's a SoundFont management app basically. I'm going to leave the
columnview to .Sorted=TRUE by default, since most of my app's users wont'
have 10000+ SoundFonts in their collection. Unfortunately for me I have well
over 50000, so I may just have to deal with it for the time being.


Bugzilla from gambas at ...1... wrote:
> 
> What's the problem with the form colors? They should not change if you
> switch 
> between gb.qt and gb.gtk.
> 

It's not so much the form's colors as the colors of the various controls
(sliders, buttons). Though you can change a control's properties to use
colors taken from the user's current GTK/QT theme or choose
static/independent colors, which specific part(s) of the control changes
color and how they change color (shading for example) depend on the current
theme being used by GTK/QT. Each control generally uses one or more colors
from the current GTK/QT theme that there is no property to override in
GAMBAS. This hybrid nature of the form controls makes it very difficult to
customize the look of a GAMBAS app such that a user's particular GTK/QT
theme won't interfere with it.

The only solutions I can think of to allow GAMBAS apps to be better
customized visually are:

1) Find a way to allow a GAMBAS app to embed and use its own GTK or QT theme
separate from what the desktop environment is using. I don't know if GTK and
QT can even do this.

2) Create a separate property for each visual element in a control, allowing
a dev to completely override what colors a control would otherwise be
borrowing from the user's theme.

Here's are a few mild examples of what I'm talking about. The GAMBAS IDE
looks slightly different from the runtime app using gb.qt. Using my custom
theme and gb.gtk the background is colored blue as I specified in GAMBAS,
but using the wii-black theme makes them dark. I have the background colors
explicity set but they are ignored when switching to wii-black for some
reason. Since I am running GNOME there's not much I can do about the colors
borrowed from QT themes were I to switch the app to use gb.qt.

http://www.eightvirtues.com/misc/ide%20under%20gnome%20-%20gb.gtk%20component%20-%20default%20qt%20theme.jpg

http://www.eightvirtues.com/misc/runtime%20under%20gnome%20-%20gb.gtk%20component%20-%20my%20gtk%20theme.jpg

http://www.eightvirtues.com/misc/runtime%20under%20gnome%20-%20gb.gtk%20component%20-%20wii-black%20gtk%20theme.jpg

http://www.eightvirtues.com/misc/runtime%20under%20gnome%20-%20gb.qt%20component%20-%20default%20qt%20theme.jpg

Another example is that using my GTK theme (which uses "glossy" controls)
and gb.gtk the buttons when enabled use a vertical blend of the foreground
and background colors explicitly set in GAMBAS. If disable the buttons the
same gradient is used, though the button border appears softer. If I switch
my theme to wii-black or switch to gb.qt any disabled buttons suddenly allow
the form's background color to show through, which causes them to be black
in the case of wii-black or solid blue in the case of gb.qt. It's confusing,
but the bottom line is that the only way to ensure your GAMBAS application
looks okay under both GTK, QT, and whatever theme the user is using is to
not change the form or control colors in GAMBAS at all.

Has any work been done to implement theming, skinning or otherwise allowing
tighter control of the way an app looks under different environments?

-----
Kevin Fishburne, Eight Virtues
www:  http://sales.eightvirtues.com http://sales.eightvirtues.com 
e-mail:  mailto:sales at ...1887... sales at ...1887... 
phone: (770) 853-6271
-- 
View this message in context: http://www.nabble.com/GAMBAS-crash-when-setting-columnview%27s-Sorted-property-tp25486385p25514853.html
Sent from the gambas-user mailing list archive at Nabble.com.





More information about the User mailing list