lib/knj/libqt.rb in knjrbfw-0.0.8 vs lib/knj/libqt.rb in knjrbfw-0.0.9

- old
+ new

@@ -1,75 +1,75 @@ require "Qt" require "qtuitools" require "knjrbfw/libqt_window.rb" class QtLoader - def window - return @window - end - - def loader - return @loader - end - - def object_connect - return @object_connect - end - - def widget(name) - return @widgets[name] - end - - def initialize(paras) - @widgets = {} - - if (paras.class.to_s == "Hash") - file_path = paras["file"] - @object_connect = paras["object_connect"] - elsif(paras.class.to_s == "String") - file_path = paras - elsif(paras.class.to_s == "Array") - file_path = paras[0] - @object_connect = paras[1] - else - raise "Unknown parameter" - end - - file = Qt::File.new(file_path) - file.open(Qt::File::ReadOnly) - @loader = Qt::UiLoader.new - @window = @loader.load(file, nil) - file.close - - - @window.findChildren(Qt::Object).each do |widget| - object_name = widget.object_name.to_s - - if (object_name.length > 0) - @widgets[object_name] = widget - - if (@object_connect) - meta = widget.meta_object - signals = {} - 0.upto(meta.methodCount - 1) do |count| - method_info = meta.method(count) - - if (method_info.method_type == 1) - method_name = method_info.signature.match(/^(.+)\(/) - signals[method_name[1]] = method_info.signature - end - end - end - - signals.each do |item| - func_name = "on_" + object_name + "_" + item[0] - if (@object_connect.respond_to?(func_name)) - params = item[1].sub(/[a-z]+(\(.*$)/, '\1') - widget.connect(SIGNAL item[1]) do - @object_connect.send(func_name) - end - end - end - end - end - end + def window + return @window + end + + def loader + return @loader + end + + def object_connect + return @object_connect + end + + def widget(name) + return @widgets[name] + end + + def initialize(paras) + @widgets = {} + + if (paras.class.to_s == "Hash") + file_path = paras["file"] + @object_connect = paras["object_connect"] + elsif(paras.class.to_s == "String") + file_path = paras + elsif(paras.class.to_s == "Array") + file_path = paras[0] + @object_connect = paras[1] + else + raise "Unknown parameter" + end + + file = Qt::File.new(file_path) + file.open(Qt::File::ReadOnly) + @loader = Qt::UiLoader.new + @window = @loader.load(file, nil) + file.close + + + @window.findChildren(Qt::Object).each do |widget| + object_name = widget.object_name.to_s + + if (object_name.length > 0) + @widgets[object_name] = widget + + if (@object_connect) + meta = widget.meta_object + signals = {} + 0.upto(meta.methodCount - 1) do |count| + method_info = meta.method(count) + + if (method_info.method_type == 1) + method_name = method_info.signature.match(/^(.+)\(/) + signals[method_name[1]] = method_info.signature + end + end + end + + signals.each do |item| + func_name = "on_" + object_name + "_" + item[0] + if (@object_connect.respond_to?(func_name)) + params = item[1].sub(/[a-z]+(\(.*$)/, '\1') + widget.connect(SIGNAL item[1]) do + @object_connect.send(func_name) + end + end + end + end + end + end end \ No newline at end of file