qtbindings 4.6.3.1 → 4.6.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. data/CHANGELOG.txt +14 -0
  2. data/KNOWN_ISSUES.txt +5 -11
  3. data/examples/itemviews/chart/pieview.rb +1 -1
  4. data/examples/network/ftp/ftpwindow.rb +8 -3
  5. data/examples/network/http/httpwindow.rb +1 -1
  6. data/examples/painting/fontsampler/mainwindow.rb +14 -13
  7. data/examples/painting/fontsampler/previewdialog.rb +40 -39
  8. data/examples/painting/fontsampler/previewlabel.rb +2 -2
  9. data/examples/painting/svgviewer/svgwindow.rb +2 -2
  10. data/ext/cmake/modules/FindQt4.cmake +1 -0
  11. data/ext/generator/generatorpreprocessor.cpp +43 -1
  12. data/ext/generator/generators/smoke/generator_smoke.cpp +8 -1
  13. data/ext/generator/generators/smoke/helpers.cpp +5 -5
  14. data/ext/generator/generators/smoke/writeClasses.cpp +1 -1
  15. data/ext/generator/parser/lexer.cpp +1 -0
  16. data/ext/generator/parser/parser.cpp +4 -2
  17. data/ext/generator/parser/rpp/chartools.cpp +20 -0
  18. data/ext/generator/parser/rpp/chartools.h +7 -0
  19. data/ext/generator/parser/rpp/pp-macro-expander.cpp +3 -3
  20. data/ext/generator/parser/tokens.cpp +3 -0
  21. data/ext/generator/parser/tokens.h +1 -0
  22. data/ext/generator/type_compiler.cpp +1 -1
  23. data/ext/ruby/qtruby/src/handlers.cpp +13 -3
  24. data/ext/smoke/CMakeLists.txt +1 -0
  25. data/ext/smoke/qtcore/smokeconfig.xml +2 -0
  26. data/ext/smoke/qtdeclarative/smokeconfig.xml +1 -0
  27. data/ext/smoke/qthelp/CMakeLists.txt +45 -0
  28. data/ext/smoke/qthelp/config.xml.cmake +13 -0
  29. data/ext/smoke/qthelp/qthelp_includes.h +3 -0
  30. data/ext/smoke/qthelp/smokeconfig.xml +53 -0
  31. data/ext/smoke/qthelp_smoke.h +16 -0
  32. data/ext/smoke/qtopengl/config.xml.cmake +1 -0
  33. data/ext/smoke/qtxmlpatterns/smokeconfig.xml +1 -1
  34. data/extconf.rb +60 -58
  35. data/lib/Qt/qtruby4.rb +12 -15
  36. data/lib/qtbindings_version.rb +2 -2
  37. metadata +8 -8
  38. data/examples/textedit/textedit.rb +0 -150
  39. data/ext/ruby/qtruby/src/extconf.rb +0 -11
data/lib/Qt/qtruby4.rb CHANGED
@@ -2533,14 +2533,13 @@ module Qt
2533
2533
  end
2534
2534
 
2535
2535
  def Internal.checkarg(argtype, typename)
2536
- puts " #{typename} (#{argtype})" if debug_level >= DebugLevel::High
2537
2536
  const_point = typename =~ /^const\s+/ ? -1 : 0
2538
2537
  if argtype == 'i'
2539
2538
  if typename =~ /^int&?$|^signed int&?$|^signed$|^qint32&?$/
2540
2539
  return 6 + const_point
2541
2540
  elsif typename =~ /^quint32&?$/
2542
2541
  return 4 + const_point
2543
- elsif typename =~ /^(?:short|ushort|unsigned short int|unsigned short|uchar||unsigned char|uint|long|ulong|unsigned long int|unsigned|float|double|WId|HBITMAP__\*|HDC__\*|HFONT__\*|HICON__\*|HINSTANCE__\*|HPALETTE__\*|HRGN__\*|HWND__\*|Q_PID|^quint16&?$|^qint16&?$)$/
2542
+ elsif typename =~ /^(?:short|ushort|unsigned short int|unsigned short|uchar|char|unsigned char|uint|long|ulong|unsigned long int|unsigned|float|double|WId|HBITMAP__\*|HDC__\*|HFONT__\*|HICON__\*|HINSTANCE__\*|HPALETTE__\*|HRGN__\*|HWND__\*|Q_PID|^quint16&?$|^qint16&?$)$/
2544
2543
  return 4 + const_point
2545
2544
  elsif typename =~ /^(quint|qint|qulong|qlong|qreal)/
2546
2545
  return 4 + const_point
@@ -2741,11 +2740,9 @@ module Qt
2741
2740
 
2742
2741
  # Debugging output for method lookup
2743
2742
  if debug_level >= DebugLevel::High
2744
- puts "classname == #{classname}"
2745
- puts ":: method == #{method}"
2743
+ puts "Searching for #{classname}##{method}"
2746
2744
  puts "Munged method names:"
2747
- methods.each {|meth| puts " #{meth}"}
2748
- puts "-> methodIds == #{methodIds.inspect}"
2745
+ methods.each {|meth| puts " #{meth}"}
2749
2746
  puts "candidate list:"
2750
2747
  prototypes = dumpCandidates(methodIds).split("\n")
2751
2748
  line_len = (prototypes.collect { |p| p.length }).max
@@ -2764,24 +2761,24 @@ module Qt
2764
2761
  current_match = (isConstMethod(id) ? 1 : 0)
2765
2762
  (0...args.length).each do
2766
2763
  |i|
2767
- current_match += checkarg(get_value_type(args[i]), get_arg_type_name(id, i))
2764
+ typename = get_arg_type_name(id, i)
2765
+ argtype = get_value_type(args[i])
2766
+ score = checkarg(argtype, typename)
2767
+ current_match += score
2768
+ puts " #{typename} (#{argtype}) score: #{score}" if debug_level >= DebugLevel::High
2768
2769
  end
2769
2770
 
2770
2771
  # Note that if current_match > best_match, then chosen must be nil
2771
2772
  if current_match > best_match
2772
2773
  best_match = current_match
2773
2774
  chosen = id
2774
- # Multiple matches are an error; the equality test below _cannot_ be commented out.
2775
- # If ambiguous matches occur the problem must be fixed be adjusting the relative
2776
- # ranking of the arg types involved in checkarg().
2775
+ # Ties are bad - but it is better to chose something than to fail
2777
2776
  elsif current_match == best_match && id.smoke == chosen.smoke
2778
- puts "multiple methods matching, this is an error" if debug_level >= DebugLevel::Minimal
2779
- chosen = nil
2777
+ puts " ****** warning: multiple methods with the same score of #{current_match}: #{chosen.index} and #{id.index}" if debug_level >= DebugLevel::Minimal
2778
+ chosen = id
2780
2779
  end
2781
- puts "match => #{id.index} score: #{current_match} chosen: #{chosen}" if debug_level >= DebugLevel::High
2780
+ puts " match => smoke: #{id.smoke} index: #{id.index} score: #{current_match} chosen: #{chosen ? chosen.index : nil}" if debug_level >= DebugLevel::High
2782
2781
  end
2783
-
2784
- puts "Resolved to id: #{chosen.index}" if !chosen.nil? && debug_level >= DebugLevel::High
2785
2782
  end
2786
2783
 
2787
2784
  # Additional debugging output
@@ -1,2 +1,2 @@
1
- QTBINDINGS_VERSION = '4.6.3.1'
2
- QTBINDINGS_RELEASE_DATE = 'Tue Oct 12 20:10:40 -0600 2010'
1
+ QTBINDINGS_VERSION = '4.6.3.2'
2
+ QTBINDINGS_RELEASE_DATE = '2010-12-06 07:43:59 -0700'
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qtbindings
3
3
  version: !ruby/object:Gem::Version
4
- hash: 49
5
4
  prerelease: false
6
5
  segments:
7
6
  - 4
8
7
  - 6
9
8
  - 3
10
- - 1
11
- version: 4.6.3.1
9
+ - 2
10
+ version: 4.6.3.2
12
11
  platform: ruby
13
12
  authors:
14
13
  - Richard Dale
@@ -18,7 +17,7 @@ autorequire:
18
17
  bindir: bin
19
18
  cert_chain: []
20
19
 
21
- date: 2010-10-12 00:00:00 -06:00
20
+ date: 2010-12-06 00:00:00 -07:00
22
21
  default_executable:
23
22
  dependencies: []
24
23
 
@@ -325,7 +324,6 @@ files:
325
324
  - examples/ruboids/ruboids/WorldWindow.rb
326
325
  - examples/ruboids/TODO
327
326
  - examples/run_all.rb
328
- - examples/textedit/textedit.rb
329
327
  - examples/tutorial/t1/t1.rb
330
328
  - examples/tutorial/t10/cannon.rb
331
329
  - examples/tutorial/t10/lcdrange.rb
@@ -598,7 +596,6 @@ files:
598
596
  - ext/ruby/qtruby/rails_support/CMakeLists.txt
599
597
  - ext/ruby/qtruby/README
600
598
  - ext/ruby/qtruby/src/CMakeLists.txt
601
- - ext/ruby/qtruby/src/extconf.rb
602
599
  - ext/ruby/qtruby/src/handlers.cpp
603
600
  - ext/ruby/qtruby/src/marshall.h
604
601
  - ext/ruby/qtruby/src/marshall_basetypes.h
@@ -705,6 +702,11 @@ files:
705
702
  - ext/smoke/qtgui/qtgui_includes.h
706
703
  - ext/smoke/qtgui/smokeconfig.xml
707
704
  - ext/smoke/qtgui_smoke.h
705
+ - ext/smoke/qthelp/CMakeLists.txt
706
+ - ext/smoke/qthelp/config.xml.cmake
707
+ - ext/smoke/qthelp/qthelp_includes.h
708
+ - ext/smoke/qthelp/smokeconfig.xml
709
+ - ext/smoke/qthelp_smoke.h
708
710
  - ext/smoke/qtmultimedia/CMakeLists.txt
709
711
  - ext/smoke/qtmultimedia/config.xml.cmake
710
712
  - ext/smoke/qtmultimedia/qtmultimedia_includes.h
@@ -791,7 +793,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
791
793
  requirements:
792
794
  - - ">="
793
795
  - !ruby/object:Gem::Version
794
- hash: 3
795
796
  segments:
796
797
  - 0
797
798
  version: "0"
@@ -800,7 +801,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
800
801
  requirements:
801
802
  - - ">="
802
803
  - !ruby/object:Gem::Version
803
- hash: 3
804
804
  segments:
805
805
  - 0
806
806
  version: "0"
@@ -1,150 +0,0 @@
1
- #!/usr/bin/ruby -w
2
-
3
- require 'Qt'
4
- require 'rexml/document'
5
-
6
- require '../base/rui.rb'
7
-
8
- class MyTextEditor < Qt::TextEdit
9
- signals 'saved()'
10
- slots 'insert_icon()', 'new()', 'open()', 'save_as()'
11
- def initialize(w = nil)
12
- super(w)
13
- @images = {}
14
- @@next_image_id = 0
15
- self.setTextFormat(Qt::RichText)
16
- end
17
- def insert_richtext(richtext)
18
- # todo, use a rand string
19
- unique_string = '000___xxx123456789xxx___xxx123456789xxx___000'
20
- insert(unique_string)
21
- txt = self.text().gsub(unique_string, richtext)
22
- self.setText(txt)
23
- end
24
- def next_image_id
25
- @@next_image_id += 1
26
- end
27
- def load_image(fname, image_id)
28
- pixmap = Qt::Pixmap.new(fname)
29
- msfactory = Qt::MimeSourceFactory.defaultFactory
30
- msfactory.setPixmap(image_id, pixmap)
31
- @images[image_id] = fname
32
- image_id
33
- end
34
- def insert_icon
35
- fname = Qt::FileDialog.getOpenFileName
36
- return if fname.nil?
37
- image_id = "image_#{next_image_id}"
38
- load_image(fname, image_id)
39
- insert_richtext('<qt><img source="'+image_id+'"></qt>')
40
- end
41
- def createPopupMenu(pos) # virtual
42
- pm = Qt::PopupMenu.new
43
- pm.insertItem("Insert Image!", self, SLOT('insert_icon()'))
44
- pm
45
- end
46
- def has_metadata
47
- !@images.empty?
48
- end
49
- def metadata_fname(fname)
50
- "#{fname}.metadata.xml"
51
- end
52
- def attempt_metadata_load(fname)
53
- return unless File.exists?(metadata_fname(fname))
54
- file = File.open(metadata_fname(fname))
55
- @xmldoc = REXML::Document.new file
56
- @xmldoc.root.elements.each("image") {
57
- |image|
58
- image_id = image.attributes["ident"]
59
- img_fname = image.attributes["filename"]
60
- load_image(img_fname, image_id)
61
- }
62
- end
63
- def metadata_save_if_has(fname)
64
- return if not has_metadata
65
- metadata_doc = REXML::Document.new '<metadata/>'
66
- @images.each {
67
- |id, img_fname|
68
- metadata_doc.root.add_element("image", {"filename"=>img_fname, "ident"=>id})
69
- }
70
- file = File.new(metadata_fname(fname), "w")
71
- file.puts(metadata_doc)
72
- file.close
73
- end
74
- def metadata_clear
75
- @images = {}
76
- end
77
- def new(txt = "")
78
- metadata_clear
79
- self.setText(txt)
80
- end
81
- def open
82
- fname = Qt::FileDialog.getOpenFileName
83
- return if fname.nil?
84
- unless File.exists?(fname)
85
- Qt::MessageBox.critical(self, "File Does Not Exist", "Sorry, unable to find the requested file!")
86
- return
87
- end
88
- return if fname.nil?
89
- txt = File.open(fname).gets(nil)
90
- metadata_clear
91
- attempt_metadata_load(fname)
92
- self.setText(txt)
93
- end
94
- def save_as
95
- fname = Qt::FileDialog.getSaveFileName
96
- return if fname.nil?
97
- if File.exists?(fname)
98
- Qt::MessageBox.critical(self, "File Already Exists", "Sorry, file already exists. Please choose a non-existing filename!")
99
- return save_as
100
- end
101
- file = File.new(fname, "w")
102
- file.puts(text())
103
- file.close
104
- metadata_save_if_has(fname)
105
- emit saved()
106
- end
107
- end
108
-
109
- class MyWidget < Qt::MainWindow
110
- slots 'text_changed()', 'saved()'
111
- def initialize()
112
- super
113
- @editor = MyTextEditor.new(self)
114
- connect(@editor, SIGNAL('textChanged()'), self, SLOT('text_changed()'))
115
- connect(@editor, SIGNAL('saved()'), self, SLOT('saved()'))
116
-
117
- fileTools = Qt::ToolBar.new(self, "file operations")
118
- fileMenu = Qt::PopupMenu.new(self)
119
-
120
- actions = [
121
- RAction.new("&New", Icons::FILE_NEW, @editor, SLOT('new()'), [fileTools, fileMenu]),
122
- RAction.new("&Open...", Icons::FILE_OPEN, @editor, SLOT('open()'), [fileTools, fileMenu]),
123
- @save = RAction.new("Save &As...", Icons::FILE_SAVE_AS, @editor, SLOT('save_as()'), [fileTools, fileMenu]),
124
- RSeperator.new([fileMenu]),
125
- RAction.new("E&xit", Icons::EXIT, $qApp, SLOT('quit()'), [fileMenu])
126
- ]
127
-
128
- build_actions(actions)
129
-
130
- menubar = Qt::MenuBar.new(self)
131
- menubar.insertItem("&File", fileMenu)
132
-
133
- self.setCentralWidget(@editor)
134
- end
135
- def saved
136
- @save.action.setEnabled(false)
137
- end
138
- def text_changed
139
- @save.action.setEnabled(true)
140
- end
141
- end
142
-
143
- a = Qt::Application.new(ARGV)
144
-
145
- w = MyWidget.new
146
- w.show
147
-
148
- a.setMainWidget(w)
149
- a.exec()
150
- exit
@@ -1,11 +0,0 @@
1
- require 'mkmf'
2
- dir_config('smoke')
3
- dir_config('qt')
4
-
5
- # For Linux, BSD*, Mac OS X etc:
6
- $LOCAL_LIBS += '-lsmokeqt -lQtCore -lQtGui -lQtNetwork -lQtOpenGL -lQtSql -lQtXml -lstdc++'
7
-
8
- # For Windows the Qt library names end in '4':
9
- # $LOCAL_LIBS += '-lsmokeqt -lQtCore4 -lQtGui4 -lQtNetwork4 -lQtOpenGL4 -lQtSql4 -lQtXml4 -lstdc++'
10
-
11
- create_makefile("qtruby4")