Files | Admin

Notes:

Release Name: qt4-qtruby-1.4.4

Notes:
Needs Qt 4.x and automake/autoconf.

Many fixes and improvements. More Qt examples converted to ruby. 

NOTE: the files qtruby/rubylib/qtruby/marshall_basetypes.cpp, marshall_complex.cpp and marshall_primitives.cpp have been renamed as .h files. Unfortunately the obsolete .cpp files are still included in the 1.4.4 release tar ball. They will be ignored by an automake based build, but must be removed before using 'extconf.rb' to generate a Makefile on Mac OS X or Windows.

Highlights from the ChangeLog:

* The sources files for the qtruby extension have been reorganised which should make it easier to build with extconf.rb on Mac OS X and Windows.

* Some improvements made to the garbage collection marking code

* Fixed clashes between Ruby Object and Kernel methods, which were stopping method_missing from working, such as 'exec', 'type', 'id' etc.

* Fixed bugs in signals and slot handling, which meant non-primitive arg types apart from QString didn't work.

* Several fixes for the code generated by the rbuic tool

* Fixed bug in marshalling c++ value lists to Ruby

* The internal Qt model classes 'QTreeModel' and 'QListModel' now work correctly with QtRuby.

* :foobar is now a synonym for 'foobar()' when declaring slots and signals.

* Qt::AbstractItemModel.internalPointer() now works with Ruby instances.

* Fixed method overloading problem for Qt::Painter.drawLines() and drawRects() methods.


Changes: 2006-04-12 Richard Dale <rdale@foton.es> * Change source files to headers to make it easier to build the qtruby extension on Windows and Mac OS X. marshall_basetypes.cpp, marshall_complex.cpp and marshall_primitives.cpp are now all headers. marshall_types.cpp is now split into an implementation source file and a header. 2006-04-11 Richard Dale <rdale@foton.es> * Added xml/saxbookmarks, xml/dombookmarks and widgets/tooltips examples * Improved garbage collection marking, Children QTreeWidgets and QListWidgets are now marked. QObject tree instances are only marked starting at an instance which has no parent to improved efficiency, otherwise the same sub trees would be marked several times as a traversal is started for each node in the heirarchy. * The 'type' method in QEvent subclasses now works correctly. * Added inspect and pretty_print methods to the Qt::WidgetTreeItem class 2006-04-10 Richard Dale <rdale@foton.es> * Added mainwindows/dockwidgets example * Added mainwindows/mdi example * Added widgets/movie example 2006-04-10 Richard Dale <rdale@foton.es> * Added draganddrop/dropsite example * Fixed bug where non-primitive signal types weren't working 2006-04-10 Richard Dale <rdale@foton.es> * Various fixes to the rbuic tool: * Variable names were not always correct. Now they always start with a '@' if they are ruby instances variables, and all have an initial lower case letter. * The various names used in signal/slot connect statements should now be correct. * Qt::SizePolicy literals were not always correct * The code for embedded icons is now translated into Ruby * Multiline string literals are now terminated with a '\' on each line 2006-04-07 Richard Dale <rdale@foton.es> * Added the dialogs/configdialog example * Fixed bug in slot invocation marshalling where non-primitive types, apart from QStrings weren't working * Fixed crash caused by recently introduced 'fix', deleting 'argv' passed to QApplication 2006-04-06 Richard Dale <rdale@foton.es> * Marshalling of Value lists to Ruby wasn't working at all. The bug was because the following two lines are not equivalent: void *p = &valuelist[i]; void *p = (void *) &(valuelist->at(i)); The first line doesn't work correctly, but the second was does. * The marshaller for QList<QImageTextKeyLang> was defined wrongly. 2006-04-05 Richard Dale <rdale@foton.es> * Added the itemviews/puzzle example * Added a QModelIndexList marshaller * Added inspect and pretty_print methods for Qt::ModelIndex 2006-04-05 Richard Dale <rdale@foton.es> * Added the itemviews/sortingmodel example 2006-04-05 Richard Dale <rdale@foton.es> * Simplify the Qt::AbstractItemModel.createIndex() code * Fix bug where return values from rb_call_super() were being ignored * Make :foobar a synonym for 'foobar()' in SLOT()/SIGNAL() calls and slot/signal declarations 2006-04-04 Richard Dale <rdale@foton.es> * Added the itemviews/simpledommodel and itemviews/simpletreemodel examples * Special cased the Qt::AbstractItemModel.createIndex() and Qt::ModelIndex.internalPointer() methods so they can save and restore Ruby VALUE instances. 2006-04-03 Richard Dale <rdale@foton.es> * The QtRuby runtime's overloaded method resolution mechanism can't currently distinguish between Ruby Arrays containing different sort of instances. Unfortunately Qt::Painter.drawLines() and Qt::Painter.drawRects() methods can be passed a Ruby Array as an argument containing either Qt::Points or Qt::PointFs for instance. These methods need to call the correct Qt C++ methods, so special case the overload method resolution for now.. 2006-04-03 Richard Dale <rdale@foton.es> * The models used for QTableView and QListView are the private classes QTableModel and QListModel. They are accessed as QAbstractItemModels via the apis for the view classes. Unfortunately, QAbstractItemModel has pure virtual functions which don't appear in the corresponding Ruby class Qt::AbstractItemModel. So Ruby implementations of Qt::TableModel and Qt::ListModel need to be special cased, and given the missing methods in order to access the model data. 2006-03-29 Richard Dale <rdale@foton.es> * Don't special case open() in virtual method callbacks, because all the Qt classes with open methods now have explicit open() method calls. So it isn't possible that Kernel.open() will be called wrongly anymore.