Notes:
Needs Qt 4.3.x or Qt 4.4.x and cmake >= 2.4.6
Highlights from the ChangeLog:
* Bug fixed where qtruby4.so was being installed with invalid symbolic links, and wrongly given a library version
* If QtRuby is built with a -DRUBY_EMBEDDED option, it can used used in dynamically loaded plugins (such as KDE Plasma applets). Exceptions are then no longer fatal, and RUBY_INIT_MACRO is called when callbacks enter the QtRuby code.
* The rbuic4 tool is now based on the Qt 4.4 C++ uic tool (it should still work correctly with Qt 4.3.x .ui files).
* The setRange() methods in Qt that take two arguments can be called like this:
widget.range = 1..99
* Added support for the new Qt 4.4 QtWebKit classes
* The Qt::Polygon and Qt::PolygonF classes are now Enumerable
* Added Qt::DateTime.to_time that returns a Ruby Time
* Fixed bug where ruby signals were not being inherited by subclasses
Changes:
2008-04-29 Richard Dale <richard.j.dale@gmail.com>
* Added a marshaller for references to unsigned ints
* Added initialization for the various KDE::ConfigSkeleton classes
2008-04-24 Richard Dale <richard.j.dale@gmail.com>
* Fixed a couple of differences between C++ code generation and Ruby.
The variable names weren't being stripped of any leading 'q' or 'k',
and the brush initialization hadn't been updated for Qt 4.4.
2008-04-22 Sebastian Sauer <mail@dipe.org>
* Fix reported crash on shutdown if QtRuby is used embedded.
2008-04-14 Richard Dale <richard.j.dale@gmail.com>
* Special case the KDE::DateTime and KDE::TimeZone classes so that
nested classes, such as KDE::DateTime::Spec work with them.
TODO: make this work automatically without needing extra code.
2008-04-10 Richard Dale <richard.j.dale@gmail.com>
* When matching arg types, strip off an '::Ptr' or 'Ptr' at the end
of the type. This is to ensure that something like a KDE::Service
ruby instance can be passed to a method expecting a type of
KService::Ptr
2008-04-07 Richard Dale <richard.j.dale@gmail.com>
* Added a QTRUBY_FUNCALL2 macro. If QtRuby is built with the
-DRUBY_EMBEDDED option, then the rb_funcall2s for invoking
virtual method callbacks and slot invocations in wrapped with
a rb_protect() call. Otherwise, rb_funcall() is called directly
and any uncaught Ruby exceptions will terminate the app.
* Borrowed a function from the kross code to put out an error message
and stacktrace on stderr for the current exception, when qtruby
has been compiled with the embedded option.
2008-04-06 Richard Dale <richard.j.dale@gmail.com>
* Change the way the 'MocArgument*' structs are created, instead
building them up in a Ruby Array, use a QList<MocArgument*>.
Move all the code to C/C++ and don't call Ruby anymore.
* Add QTRUBY_INIT_STACK and QTRUBY_RESTORE_STACK macros based on
the SWIG_INIT_STACK and SWIG_RESTORE_STACK macros. If QtRuby is
compiled with a '-DRUBY_EMBEDDED' option, then before each virtual
method callback and slot invocation call, which isn't nested
within another, call RUBY_INIT_STACK.
* This fixes a problem with Ruby Plasmoids where the Ruby runtime was
giving sys stackerror exceptions because the stack underflowed
relative to where it was when the krubypluginfactory was loaded.
* Add more checking for Qnil in the marshallers for primitive types
to make the runtime more robust.
* Added some more range=(Range) methods as synonyms for
setRange(Integer, Integer)
* Changed the examples to use range=
* Added a rbplasmaapi command line tool for introspecting the Ruby api
2008-04-05 Richard Dale <richard.j.dale@gmail.com>
* Added rb_protect() wrappers around virtual method callbacks and
slot invocations. When there is a Ruby exception, the app no
longer terminates which is useful for Plasma applets.
2008-04-04 Richard Dale <richard.j.dale@gmail.com>
* Ensure the class and module names in rbuic4 generated code
start with an upper case letter, even if they didn't in the
.ui file
2008-04-03 Richard Dale <richard.j.dale@gmail.com>
* Updated the rbuic4 to be in line with the Qt 4.4 uic code
* Added a '-k' or '-kde' option to the rbuic4 tool, used in
conjunction with '-x' to generate a KDE app korundum4 test stub
2008-04-01 Richard Dale <richard.j.dale@gmail.com>
* Qt::TimeLine.setFrameRange() can now be called like this:
time_line.frameRange = 0..90
* Qt::Timer.singleShot can now be called with a block:
timer = Qt::Timer.singleShot(5000, obj) { puts "In a block" }
* Thanks to stefo on #kde-bindings for both suggestions
* Added a few more 'range=' methods
* Fixed range setters so that both 1..10 and 1...10 work properly
2008-03-28 Richard Dale <richard.j.dale@gmail.com>
* Added a QList<QTextEdit::ExtraSelection> marshallers as requested
by volty on the #qtruby irc channel. Qt::TextEdit::ExtraSelection
is a Ruby Struct with cursor and format fields.
2008-03-24 Richard Dale <richard.j.dale@gmail.com>
* Attempt to improve the marshalling of WIds and assume they are
either signed ints (Mac OS) or signed longs.
2008-03-14 Richard Dale <richard.j.dale@gmail.com>
* Fixed a bug in constructing Qt::Variants with custom types such
as Soprano::Statement
* Added a Soprano:: namespace
2008-03-11 Richard Dale <richard.j.dale@gmail.com>
* When a method call began or ended with an underscore, and it
was missing from a qtruby instance, it caused ruby to loop,
rather than report the method as missing. Thanks to Daniel
Brumbaugh Keeney for reporting the bug.
2008-03-04 Richard Dale <richard.j.dale@gmail.com>
* Make symbolic links to rbqtapi as rbqt3api, rbqt4api, rbkdeapi
and rbkde4api
2008-03-03 Richard Dale <richard.j.dale@gmail.com>
* Added some marshallers for new Qt 4.4 QList types
2008-03-02 Richard Dale <rdale@foton.es>
* The QModelIndex::internalPointer() method was returning nil, as
as result of the code change attempting to return nil if the C++
pointer is 0. Thanks to CyrilleB for reportin the error
2008-02-18 Richard Dale <rdale@foton.es>
* Ignore the WebCore:: and std:: namespaces when loading classes
* Added marshallers for the WebKit QList types
2007-12-19 Richard Dale <rdale@foton.es>
* The Qt::Polygon and Qt::PolygonF classes had no means of getting
the array of Qt::Points that they hold. Added count() and size()
methods and made the classes Enumerable, so this is now possible:
irb(main):002:0> poly = Qt::Polygon.new([Qt::Point.new(1,2),
Qt::Point.new(3,4)])
=> #<Qt::Polygon:0xb5ee3094>
irb(main):003:0> poly.each {|t| p t}
#<Qt::Point:0xb5ee0510 x=1, y=2>
#<Qt::Point:0xb5ee018c x=3, y=4>
* Thanks to Sylvain Sauvage for reporting the problem on the Korundum
help forum
2007-11-21 Sebastian Sauer <mail@dipe.org>
* Fixed crash on shutdown of Ruby cause of a partly destroyed
pointer_map QHash.
2007-11-19 Richard Dale <rdale@foton.es>
* Slot arguments types of 'uint', 'long' and 'ulong' weren't working.
Thanks to maniel for the bug report.
* When calling a slot directly, it wouldn't work when then slot had
no
arguments
* Special case any classes which are sub classes of
QDBusAbstractInterface
when calling slots directly as the slots will be remote.
* When there is more than one return value in a Qt::DBusMessage the
value
method now will return a Ruby Array
2007-11-18 Richard Dale <rdale@foton.es>
* At the suggestion of Vincent Fourmond added a Qt::DateTime.to_time
method which returns a Ruby time. Also enhanced the Qt::DateTime
constructor so that it can be passed a Ruby Time.
* Qt::Variants containing either QDBusObjectPaths or QDBusSignatures
can now be converted to Ruby Strings with a Qt::Variant.value call.
Fixes bug reported by maniel on the #qtruby IRC channel.
2007-11-12 Richard Dale <rdale@foton.es>
* If QModelIndex.internalPointer() is zero, return Qnil
* Don't attempt to mark a zero internalPointer() for the garbage
collector. Thanks to cheiron for reporting the bug.
2007-11-11 Richard Dale <rdale@foton.es>
* Fixed a regression introduced when slots were made directly
callable.
It broke the code to invoke remote QtDBus methods because the
remote methods become slots in the QMetaObject of the
QDBusInterface
being used as a proxy. The code was trying to invoke those slots
directly which didn't work. So special case any QMetaObjects which
have classNames of "local::Merge" as it means they are remote.
2007-10-31 Richard Dale <rdale@foton.es>
* Don't build the qtrubyinternal library anymore as it gave trouble
on
AMD64 machines and needed an '-fPIC' option there. Instead just
include the qtruby sources in the korundum (and plasma) projects.
2007-10-30 Richard Dale <rdale@foton.es>
* The Qt::KeyEvent#type method wasn't working. Fixes problem reported
by Magicloud Magiclouds
2007-10-19 Richard Dale <rdale@foton.es>
* Ruby signal declared in superclasses were not being inherited by
subclasses correctly. Fixed bug reported by cheiron on the #qtruby
irc channel - thanks for the report and test program.
2007-10-14 Richard Dale <rdale@foton.es>
* The QScintilla class names now all start with Qsci instead of Qext,
so change the QtRuby module name from Qext:: to Qsci::
* Fixes a seg fault pointed out by Adreas Pakulat
2007-10-08 Richard Dale <rdale@foton.es>
* Added some missing modules for namespaces in the KDE4 classes
2007-09-07 Richard Dale <rdale@foton.es>
* Added a kross2qtruby method from Cyrille Berger to convert from a
kross
instance to a qtruby instance
* Fixed bug in overloaded method resolution where a quint32 was being
given
equal priority to a qint32 type. Thanks to joseph/vista on #qtruby
for
reporting the bug
|