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.
|