require 'Qt'


#### TODO ###
# dup of qobject crash
def bug1
   p1 = TQt::Point.new(5,5)
   p1.setX 5 
   p p1
   p3 = p1.dup
   p3.setX 5 
   p p3
end
#bug1


#### FIXED ###
def bug3
    a = TQt::Application.new(ARGV)
    @file = TQt::PopupMenu.new
    @file.insertSeparator
    TQt::debug_level = TQt::DebugLevel::High
    p $qApp
    @file.insertItem("Quit", $qApp, TQ_SLOT('quit()'))
    @file.exec
end
#bug3


class CPUWaster < TQt::Widget
    def initialize(*k)
        super(*k)
    end
    def draw
	painter = TQt::Painter.new(self)
	0.upto(1000) { |i|
	    cw, ch = width, height
	    c = TQt::Color.new(rand(255), rand(255), rand(255))
	    x = rand(cw - 8)
	    y = rand(cw - 8)
	    w = rand(cw - x)
	    h = rand(cw - y)
	    brush = TQt::Brush.new(c)
	    brush.setStyle(TQt::Dense6Pattern)
    TQt::debug_level = TQt::DebugLevel::High
	    painter.fillRect(TQt::Rect.new(x, y, w, h), brush)
    TQt::debug_level = TQt::DebugLevel::Off
	}
    end
end
def bug4
   TQt::Application.new(ARGV)
   w = CPUWaster.new
   w.show
   w.draw
end
bug4
