05-12-2010, 07:18 AM
About a month ago I started working on my own DB for my Gosu project and since I don't know anything about programming in C or C++ (C# belongs to MS so I don't consider it's free software) I started looking for an alternative to make the GUI. Later I found Qt that is the standard DE for KDE (the GUI based on Qt) included in my Linux OS by default and tried to use QtDesigner to design the DB window and its contents. The problem was that I didn't know how to save the data as Ruby files full of Ruby objects so the QtDesigner wouldn't help as much as I first thought. So I found that there were some Qt4 bindings for Ruby 1.8.7 and installed the libraries on my box.
Now I can show you the results of using Qt as my GUI. It looks a bit similar to EB's DB (which isn't a surprise at all) but some labels and the Ruby class are different (it was a must anyway).
![[Image: databasefull3.png]](http://img217.imageshack.us/img217/424/databasefull3.png)
Later bluescope suggested I could change a few things to make it better than EB's one but it doesn't seem to be as easy as it sounds. Here's a mockup of what he suggested back then.
![[Image: databaseconcept.png]](http://img85.imageshack.us/img85/3904/databaseconcept.png)
Here you can read some of my opinions concerning the changes bluescope included in the image (which is no actual screenshot).
One of the reasons why I wouldn't adopt the hash key interface concept as one of the upcoming features would be that I don't know how to make a class that would accept any instance variables the player / dev would like to setup there without making the DB or the game itself crash at once.
My questions would be if...
it's good to provide just a simple static interface or a dinamic one to the player / dev? Should I include both of them if possible?
Is it a really good idea to get rid of the Maximum Items popup window?
Is there any other secure way to achieve the same goal without accidentally deleting more items than you actually wanted to disposed of?
Notes:
Gosu - a Ruby gem, made in Ruby with C extensions and their Ruby bindings
Qt - modules coded in C++, created by a company Nokia bought some time ago
Now I can show you the results of using Qt as my GUI. It looks a bit similar to EB's DB (which isn't a surprise at all) but some labels and the Ruby class are different (it was a must anyway).
![[Image: databasefull3.png]](http://img217.imageshack.us/img217/424/databasefull3.png)
Later bluescope suggested I could change a few things to make it better than EB's one but it doesn't seem to be as easy as it sounds. Here's a mockup of what he suggested back then.
![[Image: databaseconcept.png]](http://img85.imageshack.us/img85/3904/databaseconcept.png)
Here you can read some of my opinions concerning the changes bluescope included in the image (which is no actual screenshot).
Content Hidden
Actually, the Maximum Items spinbox was exactly what I had in mind at the beginning, but I wasn't sure if it was a good idea to make people accidentally delete almost all of their items or weapons, etc. because they couldn't stop clicking on that box.
What I don't see as practical as you think would be the plus tab. Mmm, the qt ruby binding wouldn't allow me to let people create their own tabs on the fly because it expects the scripter to enter as much info as he or she likes to type before it temporary compiles the app. I'd still need to check that but I don't think I'd be able to include that feature in the script for now.
I've seen the "basic hash key interface" you mentioned in Qt Designer but not as a freely modifiable interface...
Anyway, the GUI was specifically design for Glanon and not any other game, but I guess I should consider to include these alternatives some day if other people get interested in this kind of Qt GUI.
What I don't see as practical as you think would be the plus tab. Mmm, the qt ruby binding wouldn't allow me to let people create their own tabs on the fly because it expects the scripter to enter as much info as he or she likes to type before it temporary compiles the app. I'd still need to check that but I don't think I'd be able to include that feature in the script for now.
I've seen the "basic hash key interface" you mentioned in Qt Designer but not as a freely modifiable interface...
Anyway, the GUI was specifically design for Glanon and not any other game, but I guess I should consider to include these alternatives some day if other people get interested in this kind of Qt GUI.
My questions would be if...
it's good to provide just a simple static interface or a dinamic one to the player / dev? Should I include both of them if possible?
Is it a really good idea to get rid of the Maximum Items popup window?
Is there any other secure way to achieve the same goal without accidentally deleting more items than you actually wanted to disposed of?
Notes:
Gosu - a Ruby gem, made in Ruby with C extensions and their Ruby bindings
Qt - modules coded in C++, created by a company Nokia bought some time ago