summaryrefslogtreecommitdiffstats
path: root/korundum/ChangeLog
blob: ef9115c08040ad452fcf1218b7f98f4310f929a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
2007-03-05  Richard Dale  <[email protected]>

	* Added a marshaller for TQValueList<WId>& as requested by volty on #qtruby

2007-07-06  Richard Dale  <[email protected]>

	* Fixed bug in DCOPRef's reported by Han Holl, but how has it ever worked?

2007-02-19  Richard Dale  <[email protected]>

	* Fixed a bug where the sort method of KDE::ListView and KDE::ListViewItem
	  was no longer working, as the classes are 'Enumerable' and ruby was
	  calling the ruby sort method instead. Thanks to kelko for reporting it
	  on #kde-ruby.

2006-11-21  Richard Dale  <[email protected]>

	* Made KDE::ListView, KDE::ListViewItem Enumerable with implementations
	  of each() so they don't need to use the Qt External iterators like
	  TQt::ListViewItemIterator anymore. For instance:

		lv = KDE::ListView.new do
			["one", "two", "three", "four"].each do |label|
				KDE::ListViewItem.new(self, label, "zzz")
			end
		end

		lv.each do |item|
			p item.inspect
			pp item.inspect
		end

	* Add inspect() and pretty_print() methods to KDE::ListViewItem so that
	  they show the text of their columns

2006-10-22  Richard Dale  <[email protected]>

	* Special case TQValueList<int> as a DCOPRef return type. Fixes problem
	  reported by Brian Bart.

2006-08-18  Richard Dale  <[email protected]>

	* Added a TDEActionPtrList marshaller. Fixes problem reported by
	  eskatos on the #qtruby irc channel.

2006-06-05  Richard Dale  <[email protected]>

	* The metaObject methods for slots and signals are no longer added when
	  a TQt::Object is constructed, but when slots or signals are added to
	  a class. This means that signals as well as slots can be added to an
	  existing instance.

2006-05-16  Richard Dale  <[email protected]>

	* Fixed regression causing KDE::UniqueApplication.exec to not work

	* Removed the konsole_part_metaobject() C function as it isn't
	  needed anymore

2006-03-29  Richard Dale  <[email protected]>

    * Added a KDE::KonsolePart class for when a konsolePart KPart is
      dynamically loaded. It adds the five methods from the ExtTerminalInterface
      to the KParts::ReadOnlyPart for interacting with the konsolePart.

    * Example usage:

                factory = KDE::LibLoader.self().factory("libkonsolepart")
                if ! factory.nil?
                        @konsole = factory.create(self)
                end

                @konsole.autoStartShell = true
                @konsole.startProgram("/bin/echo", ["echo", "-n"])
                @konsole.showShellInDir( TQt::Dir.home.path )
                @konsole.sendInput( "puts 'hello there konsole'" )

    * Fixes problem reported by Ranjan Ghosh

2006-03-21  Richard Dale  <[email protected]>

	* Added various explicit calls to method_missing() for methods which
	  are defined in Kernel and Object, such as 'exec', 'select', 'format'
	  etc. Otherwise, the corresponding methods in the Smoke library were 
	  not being invoked correctly.

2006-02-08  Richard Dale  <[email protected]>

	* When KDE::CmdLineArgs.init() was called with just a single
	  KDE::AboutData arg, it crashed. Fixes problem reported by
	  Han Holl.
	
	* KDE::CmdLineArgs and KDE::AboutData instances are no longer
	  deleted by qtruby on garbage collection. Fixes another problem
	  reported by Han Holl.

2005-12-08  Richard Dale  <[email protected]>

	* A marshaller was defined for 'KFileItemList' as a value type, but not for
	  a 'KFileItemList*' pointer type. Fixes problem reported by Diego 'Flameeyes' 
	  Pettenò 

2005-10-05  Richard Dale  <[email protected]>

	* Changed DCOP code now that TQt::ByteArray class is in the Smoke library
	* Fixed some examples derived from PyKDE with 0 or 1 passed as a 
	  boolean instead of true or false for Ruby. A bug in the overloaded
	  method resolution meant it worked when it shouldn't have.

2005-09-26  Richard Dale  <[email protected]>

	* Removed get and set methods for accessing fields on the structs
	  TDEIO::UDSAtom and KDE::ConfigSkeleton::MenuItem::Choice as
	  they aren't needed any more now that accessor methods are
	  generated in the Smoke library.

2005-06-08  Richard Dale  <[email protected]>

	* DCOP signals were failing with a 'undefined method `fullSignalName'' error
	* Fixes problem reported by Chris Gow

2005-05-29  Richard Dale  <[email protected]>

	* At the moment require 'Qt' and require 'Korundum' statements can't appear
	  in the same ruby program. Suitable fatal error messages are now displayed
	  to indicate the cause of the problem. Fixes bug reported by Caleb Tennis
	  and Dave M

2005-05-21  Richard Dale  <[email protected]>

	* KDE::DCOPRef.methods now returns remote DCOP methods as well as the local methods in
	  the DCOPRef. So now irb tab completion works with dynamically discovered DCOP methods,
	  in a DCOPRef.

2005-04-03  Richard Dale  <[email protected]>

	* Added some #ifdefs so the bindings build with KDE 3.1.x
	* Fixed problem with rbtdeconfig_compile Makefile.am

2005-03-30  Richard Dale  <[email protected]>

	* Fixed problems caused ''include Qt'' and "include KDE" statements in korundum.rb where a 
	  couple of methods were being added to  class Module was causing all the Qt and KDE methods
	  to be added to Module.

2005-02-01  Richard Dale  <[email protected]>

	* Added marshallers for TDEIO::UDSEntry and TDEIO::UDSEntryList, and accessor methods for
	  fields in the TDEIO::UDSAtom struct. Fixes problem reported by Ian Monroe.

2005-01-27  Richard Dale  <[email protected]>

	* Added some fixes for the rbtdeconfig_compiler code generation and
	  example code.
	* The method 'isImmutable' is added to KDE::ConfigSkeletonItems
	  as a special case - it's missing from the Smoke runtime as it's
	  from a template based superclass.

2005-01-26  Richard Dale  <[email protected]>

	* Translated the rbtdeconfig_compiler examples from C++ to ruby,
	  and improved the build rules in the Makefile.ams

2005-01-20  Richard Dale  <[email protected]>

	* The rbtdeconfig_compiler now uses TQt::Variants to hold the values in KDE::ConfigSkeleton 
	   instance variables. 
	* The values of the KDE::ConfigSkeletonItems are then set as properties with the TQt::Variants. 
	  It wasn't possible to handle references to primitive types such as 'int&' via ruby, so properties are 
	  a more 'scripting language' oriented approach. 
	* The embedded code in the .kcfg examples was converted from C++ to ruby 

2005-01-20  Richard Dale  <[email protected]>

	* Tidied up the rbtdeconfig_compiler code
	* Added marshaller for TDEConfigSkeleton::ItemEnum::Choice lists to and from ruby Arrays,
	  and accessor methods for the Item::Enum::Choice struct.

2005-01-18  Richard Dale  <[email protected]>

	* Added rbtdeconfig_compiler for compiling .kcfg files to ruby

2004-12-29  Richard Dale  <[email protected]>

	* Added inspect() and pretty_print() methods for KDE::AboutPerson and KDE::AboutTranslator,
	  along with some more fields in the KDE::AboutData inspector

2004-12-15  Richard Dale  <[email protected]>

 * The DCOPObject inspect method was crashing if the instance hadn't been fully
   constructed
 * The kde_resolve_classname function's arg types were changed to match the new
   ones in the resolve_classname() function of QtRuby/handlers.cpp.

2004-12-11  Richard Dale  <[email protected]>

 * DCOPObject inspect() and pretty_print() methods added

2004-12-09  Richard Dale  <[email protected]>

 * More inspect() and pretty_print() methods for common classes to improve debugging -
   KDE::DCOPRef, KDE::Service, KDE::URL, KDE::AboutData.

2004-10-30  Richard Dale  <[email protected]>

 * References to Qt.tqWarning() changed to tqWarning()

2004-10-24  Richard Dale  <[email protected]>

 * Fixed crashes in the KURL::List marshalling. A copy is now made of each KURL item
   in the list when being marshalled to a ruby Array. When a KURL::List is deleted the
   contents are all deleted too as it's a TQValueList. Hence, the need to make copies.

2004-10-20  Richard Dale  <[email protected]>

 * The RESTORE() method is no longer an KDE::Mainwindow method, but a globally available
   Object method

2004-10-20  Richard Dale  <[email protected]>

 * Added I18N_NOOP() and I18N_NOOP2() methods

2004-10-11  Richard Dale  <[email protected]>

 * Set global flag 'application_terminated' when KDE::Application or KDE::UniqueApplication
   has returned from exec(). Once this is set the QtRuby runtime will no longer delete any
   C++ instances. This will hopefully fix crash on application exit problems reported by Thibauld 
   Favre. 

CCMAIL: [email protected] 

2004-10-08  Richard Dale  <[email protected]>

 * Reverted recent fix for crash on exit, as it only occured with a TQt::Application and
   seems to introduce a crash in KDE apps where none existed before.

 CCMAIL: [email protected]
 CCMAIL: [email protected]

2004-10-06  Richard Dale  <[email protected]>

 * When a Korundum application exits, the top level widgets are now destroyed
   as well as the KDE::Application itself. This fixes a problem where the ruby garbage
   collection frees instances in an arbitrary order afer the program has exited, and
   destroys a Hash containing TQMetaData info needed for tidying up.

2004-10-04  Richard Dale  <[email protected]>

 * When a ruby app exits, rb_gc_call_finalizer_at_exit() is called and all the ruby
   instances are garbage collected. The problem is that this is done in an arbitrary
   order, and KDE::Application was occasionally crashing in its destructor because 
   TQMetaObject info it still needed was being deleted before then.

 * Fixes problem reported by Thibauld Favre

 CCMAIL: <[email protected]>

2004-10-03  Richard Dale  <[email protected]>

 * Removed warning about '*' being used as an argument prefix

2004-09-30  Richard Dale  <[email protected]>

 * Added some rtti tests for DOM::Node to instantiate a more accurate ruby class

2004-09-30  Richard Dale  <[email protected]>

 * The resolve_classname() function in qtruby handlers.cpp uses the various Qt rtti mechanisms to
   get a more accurate classname to instantiate as a ruby instance. It has now been extended
   with a callback to the Korundum library to do the same for KDE classes.

 * This fixes a problem reported by Zack Rusin where a KArchiveEntry returned to ruby was not being
   correctly constructed as either a KArchiveDirectory or KArchiveFile according to 
   the KArchiveEntry::isDirectory() method

 CCMAIL: [email protected]


2004-09-18  Richard Dale  <[email protected]>

 * Added marshallers for KPluginInfo::List and TQPtrList<KParts::Plugin>

2004-09-16  Richard Dale  <[email protected]>

 * The KDE::UniqueApplication constructor now sets up the $kapp global variable

2004-09-16  Richard Dale  <[email protected]>

 * Added $kapp global variable, example usage:

     config = $kapp.config()

2004-08-29  Richard Dale  <[email protected]>

 * Added Kontact module to provide a namespace for the kontact plugin api

2004-08-25  Richard Dale  <[email protected]>

 * Underscore naming for can be used for DCOP method names instead of camel case if
   preferred. Any underscores in method names are removed, and the following
   character is capitalised. For example, either of these two forms can be used
   to call the same dcop function:
  
     process_can_be_reused(1234)
  
     processCanBeReused(1234)

2004-08-24  Richard Dale  <[email protected]>

 * The form 'foo?' can be used as a synonym for isFoo() or hasFoo() dcop methods. 
 * Instead of:
         result = dcopRef.isFoo()
 * Use this more rubyish form:
         result = dcopRef.foo?
         if result.nil?
             puts "DCOP predicate failed"
         else
             puts "foo? is #{result}"
         end


2004-08-16  Richard Dale  <[email protected]>

 * The 'qWarning()' calls in korundum.rb needed to be prefixed with the 'Qt.'' module
   otherwise a missing dcop call causes an infinite loop.

2004-08-14  Richard Dale  <[email protected]>

 * Added KServiceGroup::List to ruby array marshaller

2004-08-03  Richard Dale  <[email protected]>

 * Fixed regression bug in emitting dcop signals

2004-08-03  Richard Dale  <[email protected]>

 * Added a KMountPoint::List marshaller

2004-07-30  Richard Dale  <[email protected]>

 * Removed the various TQ_INT32 etc types from the Smoke stack <--> TQDataStream
	  marshalling. This was because the code generated by the dcopidl2cpp tool
	  doesn't have them. So if a machine has native 64 bit ints, then that width 
	  will be used rather than TQ_INT32.

2004-07-28  Richard Dale  <[email protected]>

	* Added a couple of template methods for marshalling TQValueLists and TQMaps.
	* Included a quite a few new marshaller functions for TQPtrLists, as well as
	  the two types above.

2004-07-28  Richard Dale  <[email protected]>

	* Fixed crash in marshalling KMimeTypes and KServiceGroups to ruby values

2004-07-27  Richard Dale  <[email protected]>

	* Replaced TQString casts to 'const char *' with latin1() calls

2004-07-27  Richard Dale  <[email protected]>

	* Added error messages for invalid dcop slot or signal declarations

2004-07-27  Richard Dale  <[email protected]>

	* DCOP error messages now go via tqWarning() rather than puts()

2004-07-26  Richard Dale  <[email protected]>

	* Added TQMap<TQCString,DCOPRef> marshalling to and from Smoke as well as dcop

2004-07-24  Richard Dale  <[email protected]>

	* DCOP reply types can now contain colons
	* Added KURL::List to ruby Array marshalling, fixed crash when
	  marshalling from a ruby Array to a KURL::List
	* Add KURL::List ruby <--> dcop marshalling

2004-07-24  Richard Dale  <[email protected]>

	* Added TQMap<TQString,DCOPRef> ruby <--> dcop marshalling

2004-07-23  Richard Dale  <[email protected]>

	* Tidied up the dcop meta object code a bit

2004-07-23  Richard Dale  <[email protected]>

	* If a ruby class with 'k_dcop' declarations isn't a subclass of DCOPObject,
	  only one instance of a DCOPObject is created no matter how many instances
	  are instantiated.

2004-07-23  Richard Dale  <[email protected]>

	* Tidied code - removed unnecessary action_map_to_list helper method

2004-07-21  Richard Dale  <[email protected]>

	* TQDataStream temporary variables added for the TQ_INT32 etc types when
	  writing to a Smoke stack from a TQDataStream.

2004-07-21  Richard Dale  <[email protected]>

	* Added casts to the various macros like 'TQ_INT32' when writing a Smoke
	  stack to a TQDataStream

2004-07-21  Richard Dale  <[email protected]>

	* Added TQValueList<TQCString> marshalling ruby <--> dcop

2004-07-21  Richard Dale  <[email protected]>

	* Ruby dcop slots can now return actionMaps and windowLists as
	  'TQMap<TQString,DCOPRef>' and 'TQValueList<DCOPRef>' types

2004-07-20  Richard Dale  <[email protected]>

	* Added missing 'TQMap<TQString,DCOPRef>' dcop reply marshalling
	* The recently added dcop reply type 'TQValueList<DCOPRef>' now works
	* The parsing of a dcop function type signature to add it to the cache
	  was wrong if the reply type contained angle brackets or commas

2004-07-19  Richard Dale  <[email protected]>

	* Added dynamic ruby to C++ argument type resolution in DCOPRef calls.
	  When a call of the form 'dcopRef.getPoint(5, "foobar")' is made, the C++
	  type signature is obtained from the list of those returned by 
	  DCOPRef.functions(). If the function name is overloaded, the ruby arg
	  types are used to pick the correct call.

2004-07-18  Richard Dale  <[email protected]>

	* Made 'parrot.age = 7' a synonym for 'parrot.setAge(7)' with dcop refs

2004-07-17  Richard Dale  <[email protected]>

	* More missing DCOP marshallers - TQStringList and QCStringList
	* A class with a 'k_dcop' slots declaration can now be an instance
	  of DCOPObject
	* Converted the 'petshop' DCOP server example from pytde python

2004-07-16  Richard Dale  <[email protected]>

	* Added missing TQCString DCOP marshalling

2004-07-16  Richard Dale  <[email protected]>

	* Removed the recently added TQValueList<DCOPRef> marshaller as no '<<'
	  or '<<' TQDataStream marshallers are in the Smoke runtime
	* Added missing primitive type marshalling to and from a DCOP TQByteArray

2004-07-15  Richard Dale  <[email protected]>

	* Fixed completely non-working DCOP call reply marshalling. An instance wasn't
	  being constructed to read the TQByteArray containing the reply via a TQDataStream.

2004-07-15  Richard Dale  <[email protected]>

	* Added TQValueList<DCOPRef> marshalling

2004-07-14  Richard Dale  <[email protected]>

	* Converted various example app templates from pytde to ruby Korundum

2004-07-13  Richard Dale  <[email protected]>

	* A DCOP send() now correctly returns true or false according to success
	* DCOP call()s with void or ASYNC return types return true on success,
	  or nil on failure

2004-07-13  Richard Dale  <[email protected]>

	* Improved the KSharePtr item marshalling so that a copy of the item
	  is constructed with no accompanying smart pointer. The new item
	  can be owned by ruby without needing to special case deref'ing
	  the pointer on destruction. Apart from KService's don't have a 
	  public copy constructor, where the ref count is incremented to
	  prevent their destruction.

2004-07-12  Richard Dale  <[email protected]>

	* The full C++ type signature is no longer needed in DCOP calls:

	    dcopRef = KDE::DCOPRef.new("dcopslot", "MyWidget")
		
	  There are three different ways to specify the call:
	    1) res = dcopRef.call("getPoint(TQString)", "Hello from dcopsend")
	    2) res = dcopRef.call("getPoint", "Hello from dcopsend")
	    3) res = dcopRef.getPoint("Hello from dcopsend")
		
	    puts "result class: #{res.class.name} x: #{res.x} y: #{res.y}"

	* Send to a DCOPRef is similar:
	    1) dcopRef.send("mySlot(TQString)", "Hello from dcopsend")
	    2) dcopRef.send("mySlot", "Hello from dcopsend")

	* If the type signature of the target dcop slot is ommited it is derived
	  from the ruby argument types:
	  
	    String => TQString
	    Float => double
	    Integer => int
	    TQt::Widget etc => TQWidget
	    KDE::URL etc => KURL
	    [] => TQStringList

2004-07-08  Richard Dale  <[email protected]>

	* Reverted fix for TQChar args being passed as ruby strings after
	  discussion with Germain Garand. A TQChar arg is now passed like this:

	    cs = KDE::CharSelect.new(self, "chselect", nil, TQt::Char.new(0), 0)

	  This will no longer work for now:

	    cs = KDE::CharSelect.new(self, "chselect", nil, ' ', 0)

2004-07-07  Richard Dale  <[email protected]>

	* Translated the excellent pytde 'UISampler' app to ruby
	* Added TDEAction list marshalling
	* KDE::MainWindow.RESTORE() and kRestoreMainWindows() methods added.

2004-07-06  Richard Dale  <[email protected]>

	* Added more translated pytde examples
	* The type signatures of dcop signals and slots are now normalized and unwanted
	  white space is removed

2004-07-02  Richard Dale  <[email protected]>

	* Translated some pytde example programs from python to ruby
	* Added various marshallers for the TDESharedPtr related methods/classes

2004-07-02  Richard Dale  <[email protected]>

	* Replaced obsolete STR2CSTR() calls with StringValuePtr()

2004-07-01  Richard Dale  <[email protected]>

	* DCOP Signals now work, they are defined like this:
	
	    k_dcop_signals 'void testEmitSignal(TQString)'
		
	    def doit()
	        puts "In doit.."
	        emit testEmitSignal("Hello DCOP Slot")
	    end
	  	  
	* Connect slot 'mySlot' to a DCOP signal like this:
	
	    res = slottest.connectDCOPSignal("dcopsignal", "SenderWidget", 
		                             "testEmitSignal(TQString)", "mySlot(TQString)", 
					      true)

2004-06-30  Richard Dale  <[email protected]>

	* Added DCOPRef.call() and send() support. 
	* Define a dcop slot like this in one ruby program:

	    k_dcop 'TQPoint getPoint(TQString)'

	    def getPoint(msg)
		puts "message: #{msg}"
		return TQt::Point.new(50, 100)
	    end

	* Call it from another program and print the reply, like this:

	    dcopRef = KDE::DCOPRef.new("dcopslot", "MyWidget")
	    res = dcopRef.call("TQPoint getPoint(TQString)", "Hello from dcopsend")
	    puts "result class: #{res.class.name} x: #{res.x} y: #{res.y}"

	* Send to a DCOPRef is similar:
	    
	    dcopRef = KDE::DCOPRef.new("dcopslot", "MyWidget")
	    dcopRef.send("mySlot(TQString)", "Hello from dcopsend")
	
	* Note that the full type signature of the target dcop slot must be
	  specified at present.

2004-03-10  Richard Dale  <[email protected]>

	* Added marshaller for TDETrader::OfferList to ruby array
	* Used DOM::Node rtti to instantiate a ruby value with the correct subclass

2004-03-03  Richard Dale  <[email protected]>

	* If the DCOP reply type is 'void' or 'ASYNC', it isn't marshalled into the
	  TQByteArray 'replyData' arg of DCOPObject::process().

2004-03-02  Richard Dale  <[email protected]>

	* Slots and signals couldn't be added to KDE classes, such as KDE::PushButton

2004-03-02  Richard Dale  <[email protected]>

	* A DCOPClient instance is now created for classes with a 'k_dcop_signals'
	  declaration, and emitDCOPSignal() is called on that.

2004-03-01  Richard Dale  <[email protected]>

	* Ruby DCOP support now working - here is some example code:

		require 'Korundum'
		class MyWidget < KDE::PushButton
			k_dcop 'TQPoint mySlot(int,TQString)'
	
			def initialize(parent, name)
				super
			end
			
			def mySlot(counter,greeting)
				return TQt::Point.new(50, 100)
			end
		end

	  - This slot is passed an integer and a string, and returns a TQt::Point.
	  - Note that the class doesn't have to inherit from DCOPObject. If you
	    include a 'k_dcop' slots declaration a 'listener' dcop object instance
	    is created automatically.


2004-01-08  Alexander Kellett  <[email protected]>
	* Imported krubyinit sources, thus at last fixing the startup segv's with gentoo/x86/qt 3.2.

2003-12-02  Richard Dale  <[email protected]>

	* Korundum - a Ruby SMOKE adaptor for KDE, initial checkin (proxy commit from lypanov)