diff options
Diffstat (limited to 'PerlQt/t/e_sigslot_inherit.t')
-rw-r--r-- | PerlQt/t/e_sigslot_inherit.t | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/PerlQt/t/e_sigslot_inherit.t b/PerlQt/t/e_sigslot_inherit.t new file mode 100644 index 0000000..aa3bd76 --- /dev/null +++ b/PerlQt/t/e_sigslot_inherit.t @@ -0,0 +1,72 @@ +BEGIN { print "1..6\n" } + +package MyApp; +use Qt; +use Qt::isa('Qt::Application'); +use Qt::slots + foo => ['int'], + baz => []; +use Qt::signals + bar => ['int']; + +sub NEW +{ + shift->SUPER::NEW(@_); + this->connect(this, SIGNAL 'bar(int)', SLOT 'foo(int)'); + this->connect(this, SIGNAL 'aboutToQuit()', SLOT 'baz()'); +} + +sub foo +{ + # 1) testing correct inheritance of sig/slots + print +($_[0] == 3) ? "ok 1\n" : "not ok\n"; +} + +sub baz +{ + print "ok 3\n"; +} + +sub coincoin +{ + print +(@_ == 2) ? "ok 5\n":"not ok\n"; + print +(ref(this) eq " MySubApp") ? "ok 6\n":"not ok\n"; +} + +1; + +package MySubApp; +use Qt; +use Qt::isa('MyApp'); + + +sub NEW +{ + shift->SUPER::NEW(@_); + emit foo(3); +} + +sub baz +{ + # 2) testing further inheritance of sig/slots + print "ok 2\n"; + # 3) testing Perl to Perl SUPER + SUPER->baz(); + # 4) 5) 6) testing non-qualified enum calls vs. Perl method/static calls + eval { &blue }; print !$@ ? "ok 4\n":"not ok\n"; + coincoin("a","b"); +} + +1; + +package main; + +use Qt; +use MySubApp; + +$a = 0; +$a = MySubApp(\@ARGV); + +Qt::Timer::singleShot( 300, Qt::app(), SLOT "quit()" ); + +exit Qt::app()->exec; |