Files | Admin

Notes:

Release Name: qt4-qtruby-1.4.10

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