qtbindings 4.6.3.1-x86-mingw32 → 4.6.3.2-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.txt +14 -0
- data/KNOWN_ISSUES.txt +5 -11
- data/bin/1.8/rbrcc.exe +0 -0
- data/bin/1.8/rbuic4.exe +0 -0
- data/bin/1.8/smokeapi.exe +0 -0
- data/bin/1.8/smokedeptool.exe +0 -0
- data/bin/1.9/rbrcc.exe +0 -0
- data/bin/1.9/rbuic4.exe +0 -0
- data/bin/1.9/smokeapi.exe +0 -0
- data/bin/1.9/smokedeptool.exe +0 -0
- data/examples/itemviews/chart/pieview.rb +1 -1
- data/examples/network/ftp/ftpwindow.rb +8 -3
- data/examples/network/http/httpwindow.rb +1 -1
- data/examples/painting/fontsampler/mainwindow.rb +14 -13
- data/examples/painting/fontsampler/previewdialog.rb +40 -39
- data/examples/painting/fontsampler/previewlabel.rb +2 -2
- data/examples/painting/svgviewer/svgwindow.rb +2 -2
- data/ext/cmake/modules/FindQt4.cmake +1 -0
- data/ext/generator/generatorpreprocessor.cpp +43 -1
- data/ext/generator/generators/smoke/generator_smoke.cpp +8 -1
- data/ext/generator/generators/smoke/helpers.cpp +5 -5
- data/ext/generator/generators/smoke/writeClasses.cpp +1 -1
- data/ext/generator/parser/lexer.cpp +1 -0
- data/ext/generator/parser/parser.cpp +4 -2
- data/ext/generator/parser/rpp/chartools.cpp +20 -0
- data/ext/generator/parser/rpp/chartools.h +7 -0
- data/ext/generator/parser/rpp/pp-macro-expander.cpp +3 -3
- data/ext/generator/parser/tokens.cpp +3 -0
- data/ext/generator/parser/tokens.h +1 -0
- data/ext/generator/type_compiler.cpp +1 -1
- data/ext/ruby/qtruby/src/handlers.cpp +13 -3
- data/ext/smoke/CMakeLists.txt +1 -0
- data/ext/smoke/qtcore/smokeconfig.xml +2 -0
- data/ext/smoke/qtdeclarative/smokeconfig.xml +1 -0
- data/ext/smoke/qthelp/CMakeLists.txt +45 -0
- data/ext/smoke/qthelp/config.xml.cmake +13 -0
- data/ext/smoke/qthelp/qthelp_includes.h +3 -0
- data/ext/smoke/qthelp/smokeconfig.xml +53 -0
- data/ext/smoke/qthelp_smoke.h +16 -0
- data/ext/smoke/qtopengl/config.xml.cmake +1 -0
- data/ext/smoke/qtxmlpatterns/smokeconfig.xml +1 -1
- data/extconf.rb +60 -58
- data/lib/1.8/libqtruby4shared.dll +0 -0
- data/lib/1.8/libsmokebase.dll +0 -0
- data/lib/1.8/libsmokeqtcore.dll +0 -0
- data/lib/1.8/libsmokeqtgui.dll +0 -0
- data/lib/1.8/libsmokeqthelp.dll +0 -0
- data/lib/1.8/libsmokeqtmultimedia.dll +0 -0
- data/lib/1.8/libsmokeqtnetwork.dll +0 -0
- data/lib/1.8/libsmokeqtopengl.dll +0 -0
- data/lib/1.8/libsmokeqtscript.dll +0 -0
- data/lib/1.8/libsmokeqtsql.dll +0 -0
- data/lib/1.8/libsmokeqtsvg.dll +0 -0
- data/lib/1.8/libsmokeqttest.dll +0 -0
- data/lib/1.8/libsmokeqtuitools.dll +0 -0
- data/lib/1.8/libsmokeqtwebkit.dll +0 -0
- data/lib/1.8/libsmokeqtxml.dll +0 -0
- data/lib/1.8/libsmokeqtxmlpatterns.dll +0 -0
- data/lib/1.8/qtruby4.so +0 -0
- data/lib/1.8/qtscript.so +0 -0
- data/lib/1.8/qttest.so +0 -0
- data/lib/1.8/qtuitools.so +0 -0
- data/lib/1.8/qtwebkit.so +0 -0
- data/lib/1.9/libqtruby4shared.dll +0 -0
- data/lib/1.9/libsmokebase.dll +0 -0
- data/lib/1.9/libsmokeqtcore.dll +0 -0
- data/lib/1.9/libsmokeqtgui.dll +0 -0
- data/lib/1.9/libsmokeqthelp.dll +0 -0
- data/lib/1.9/libsmokeqtmultimedia.dll +0 -0
- data/lib/1.9/libsmokeqtnetwork.dll +0 -0
- data/lib/1.9/libsmokeqtopengl.dll +0 -0
- data/lib/1.9/libsmokeqtscript.dll +0 -0
- data/lib/1.9/libsmokeqtsql.dll +0 -0
- data/lib/1.9/libsmokeqtsvg.dll +0 -0
- data/lib/1.9/libsmokeqttest.dll +0 -0
- data/lib/1.9/libsmokeqtuitools.dll +0 -0
- data/lib/1.9/libsmokeqtwebkit.dll +0 -0
- data/lib/1.9/libsmokeqtxml.dll +0 -0
- data/lib/1.9/libsmokeqtxmlpatterns.dll +0 -0
- data/lib/1.9/qtruby4.so +0 -0
- data/lib/1.9/qtscript.so +0 -0
- data/lib/1.9/qttest.so +0 -0
- data/lib/1.9/qtuitools.so +0 -0
- data/lib/1.9/qtwebkit.so +0 -0
- data/lib/Qt/qtruby4.rb +12 -15
- data/lib/qtbindings_version.rb +2 -2
- metadata +11 -6
- data/examples/textedit/textedit.rb +0 -150
- data/ext/ruby/qtruby/src/extconf.rb +0 -11
data/CHANGELOG.txt
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
qtbindings Changelog:
|
2
2
|
-----------------
|
3
|
+
v4.6.3.0
|
3
4
|
2010/07/27 - Apply Ryan Melton's patches to build on Windows
|
4
5
|
2010/07/27 - Apply Ryan Melton's patch to fix ExtraSelection
|
5
6
|
2010/07/28 - Sync with kde-bindings trunk rev 1156258
|
@@ -7,6 +8,19 @@ qtbindings Changelog:
|
|
7
8
|
2010/07/28 - Apply Paolo Capriotti's patch for deferred objects
|
8
9
|
2010/07/28 - Apply Paolo Capriotti's patch for marking QGraphicsEffect
|
9
10
|
2010/07/28 - Sync with kde-bindings trunk rev 1156329
|
11
|
+
|
12
|
+
v4.6.3.1
|
10
13
|
2010/09/21 - Update examples to work with Ruby 1.9.2
|
11
14
|
2010/09/21 - Fix 4 examples
|
12
15
|
2010/09/21 - Sync with kde-bindings trunk rev 1178034
|
16
|
+
|
17
|
+
v4.6.3.2
|
18
|
+
2010/10/14 - Handle ambiguous results with method lookup
|
19
|
+
2010/10/15 - Fix bug with UTF-8 support
|
20
|
+
2010/10/17 - Sync with kde-bindings trunk rev 1186952
|
21
|
+
2010/10/19 - Fix Http example
|
22
|
+
2010/11/04 - Fix chart example and all methods returning QFlags&
|
23
|
+
2010/12/03 - Add framework support on Mac OSX which also fixes the OpenGl example
|
24
|
+
2010/12/05 - Make smokegen not parse stdio.h as a workaround for FreeBSD based systems
|
25
|
+
2010/12/05 - Minor changes to support Qt 4.7 on various platforms including Ubuntu 10.10
|
26
|
+
|
data/KNOWN_ISSUES.txt
CHANGED
@@ -1,11 +1,5 @@
|
|
1
|
-
1.
|
2
|
-
2.
|
3
|
-
3.
|
4
|
-
4.
|
5
|
-
5.
|
6
|
-
6. textures example fails - Cannot handle Gluint
|
7
|
-
7. fontsample example fails - undefined method checkState for nil
|
8
|
-
8. svgviewer example fails - undefined method rx= for Qt::Point
|
9
|
-
9. passivepopup example fails - seg fault
|
10
|
-
10. textedit example fails - undefined method setTextFormat
|
11
|
-
11. digitalclock example fails - unresolved constructor call DigitalClock
|
1
|
+
1. broadcastsender example fails - undefined method writeDatagram
|
2
|
+
2. fortuneserver example fails - undefined method seek
|
3
|
+
3. ftp example fails - undefined method icon=
|
4
|
+
4. fontsampler example fails - undefined method checkState for nil
|
5
|
+
5. passivepopup example fails - seg fault
|
data/bin/1.8/rbrcc.exe
CHANGED
Binary file
|
data/bin/1.8/rbuic4.exe
CHANGED
Binary file
|
data/bin/1.8/smokeapi.exe
CHANGED
Binary file
|
data/bin/1.8/smokedeptool.exe
CHANGED
Binary file
|
data/bin/1.9/rbrcc.exe
CHANGED
Binary file
|
data/bin/1.9/rbuic4.exe
CHANGED
Binary file
|
data/bin/1.9/smokeapi.exe
CHANGED
Binary file
|
data/bin/1.9/smokedeptool.exe
CHANGED
Binary file
|
@@ -261,7 +261,7 @@ class PieView < Qt::AbstractItemView
|
|
261
261
|
selections = selectionModel()
|
262
262
|
option = viewOptions()
|
263
263
|
state = option.state
|
264
|
-
|
264
|
+
|
265
265
|
background = option.palette.base()
|
266
266
|
foreground = Qt::Pen.new(option.palette.color(Qt::Palette::Foreground))
|
267
267
|
textPen = Qt::Pen.new(option.palette.color(Qt::Palette::Text))
|
@@ -38,6 +38,7 @@ class FtpWindow < Qt::Dialog
|
|
38
38
|
super(parent)
|
39
39
|
@ftp = nil
|
40
40
|
@isDirectory = {}
|
41
|
+
@currentPath = ""
|
41
42
|
@ftpServerLabel = Qt::Label.new(tr("Ftp &server:"))
|
42
43
|
@ftpServerLineEdit = Qt::LineEdit.new("ftp.trolltech.com")
|
43
44
|
@ftpServerLabel.buddy = @ftpServerLineEdit
|
@@ -95,6 +96,9 @@ class FtpWindow < Qt::Dialog
|
|
95
96
|
end
|
96
97
|
|
97
98
|
def connectOrDisconnect()
|
99
|
+
@currentPath = ""
|
100
|
+
@isDirectory = {}
|
101
|
+
|
98
102
|
if !@ftp.nil?
|
99
103
|
@ftp.abort
|
100
104
|
@ftp.deleteLater
|
@@ -134,7 +138,7 @@ class FtpWindow < Qt::Dialog
|
|
134
138
|
return
|
135
139
|
end
|
136
140
|
|
137
|
-
@file = Qt::File.new(fileName)
|
141
|
+
@file = Qt::File.new(@fileName)
|
138
142
|
if !@file.open(Qt::IODevice::WriteOnly)
|
139
143
|
Qt::MessageBox.information(self, tr("FTP"),
|
140
144
|
tr("Unable to save the @file %s: %s." %
|
@@ -143,7 +147,7 @@ class FtpWindow < Qt::Dialog
|
|
143
147
|
return
|
144
148
|
end
|
145
149
|
|
146
|
-
@ftp.get(@fileList.currentItem.text, file)
|
150
|
+
@ftp.get(@fileList.currentItem.text, @file)
|
147
151
|
|
148
152
|
@progressDialog.labelText = tr("Downloading %s..." % @fileName)
|
149
153
|
@progressDialog.show()
|
@@ -199,7 +203,8 @@ class FtpWindow < Qt::Dialog
|
|
199
203
|
item = Qt::ListWidgetItem.new
|
200
204
|
item.text = urlInfo.name()
|
201
205
|
pixmap = Qt::Pixmap.new(urlInfo.dir? ? "images/dir.png" : "images/file.png")
|
202
|
-
|
206
|
+
|
207
|
+
item.icon = Qt::Icon.new(pixmap)
|
203
208
|
|
204
209
|
@isDirectory[urlInfo.name()] = urlInfo.isDir()
|
205
210
|
@fileList.addItem(item)
|
@@ -34,7 +34,7 @@ class MainWindow < Qt::MainWindow
|
|
34
34
|
'on_printAction_triggered()',
|
35
35
|
'on_printPreviewAction_triggered()',
|
36
36
|
'on_unmarkAction_triggered()',
|
37
|
-
'printPage(int, QPainter
|
37
|
+
'printPage(int, QPainter*, QPrinter*)',
|
38
38
|
'showFont(QTreeWidgetItem *)',
|
39
39
|
'updateStyles(QTreeWidgetItem *, int)'
|
40
40
|
|
@@ -88,7 +88,7 @@ class MainWindow < Qt::MainWindow
|
|
88
88
|
def on_clearAction_triggered()
|
89
89
|
currentItem = @ui.fontTree.currentItem()
|
90
90
|
@ui.fontTree.selectedItems.each do |item|
|
91
|
-
fontTree.setItemSelected(item, false)
|
91
|
+
@ui.fontTree.setItemSelected(item, false)
|
92
92
|
end
|
93
93
|
@ui.fontTree.setItemSelected(currentItem, true)
|
94
94
|
end
|
@@ -169,7 +169,7 @@ class MainWindow < Qt::MainWindow
|
|
169
169
|
elsif state == Qt::Unchecked &&
|
170
170
|
parent.checkState(0) == Qt::Checked
|
171
171
|
marked = false
|
172
|
-
for row in 0..parent.childCount
|
172
|
+
for row in 0..(parent.childCount - 1)
|
173
173
|
if parent.child(row).checkState(0) == Qt::Checked
|
174
174
|
marked = true
|
175
175
|
break
|
@@ -183,7 +183,7 @@ class MainWindow < Qt::MainWindow
|
|
183
183
|
else
|
184
184
|
row
|
185
185
|
number = 0
|
186
|
-
for row in 0..item.childCount
|
186
|
+
for row in 0..(item.childCount - 1)
|
187
187
|
if item.child(row).checkState(0) == Qt::Checked
|
188
188
|
number += 1
|
189
189
|
end
|
@@ -192,13 +192,13 @@ class MainWindow < Qt::MainWindow
|
|
192
192
|
# Mark/unmark all child items when marking/unmarking top-level
|
193
193
|
# items.
|
194
194
|
if state == Qt::Checked && number == 0
|
195
|
-
for row in 0..item.childCount
|
195
|
+
for row in 0..(item.childCount - 1)
|
196
196
|
if item.child(row).checkState(0) == Qt::Unchecked
|
197
197
|
item.child(row).setCheckState(0, Qt::Checked)
|
198
198
|
end
|
199
199
|
end
|
200
200
|
elsif state == Qt::Unchecked && number > 0
|
201
|
-
for row in 0..item.childCount
|
201
|
+
for row in 0..(item.childCount - 1)
|
202
202
|
if item.child(row).checkState(0) == Qt::Checked
|
203
203
|
item.child(row).setCheckState(0, Qt::Unchecked)
|
204
204
|
end
|
@@ -268,18 +268,18 @@ class MainWindow < Qt::MainWindow
|
|
268
268
|
|
269
269
|
preview = PreviewDialog.new(printer, self)
|
270
270
|
connect(preview,
|
271
|
-
SIGNAL('pageRequested(int, QPainter
|
272
|
-
self, SLOT('printPage(int, QPainter
|
271
|
+
SIGNAL('pageRequested(int, QPainter*, QPrinter*)'),
|
272
|
+
self, SLOT('printPage(int, QPainter*, QPrinter*)'),
|
273
273
|
Qt::DirectConnection)
|
274
274
|
|
275
|
-
preview.
|
275
|
+
preview.setNumberOfPages = @pageMap.length
|
276
276
|
preview.exec()
|
277
277
|
end
|
278
278
|
|
279
279
|
def currentPageMap()
|
280
280
|
pageMap = {}
|
281
281
|
|
282
|
-
for row in 0
|
282
|
+
for row in 0..(@ui.fontTree.topLevelItemCount - 1)
|
283
283
|
familyItem = @ui.fontTree.topLevelItem(row)
|
284
284
|
|
285
285
|
if familyItem.checkState(0) == Qt::Checked
|
@@ -287,10 +287,10 @@ class MainWindow < Qt::MainWindow
|
|
287
287
|
pageMap[family] = []
|
288
288
|
end
|
289
289
|
|
290
|
-
for childRow in 0..familyItem.childCount
|
290
|
+
for childRow in 0..(familyItem.childCount - 1)
|
291
291
|
styleItem = familyItem.child(childRow)
|
292
292
|
if styleItem.checkState(0) == Qt::Checked
|
293
|
-
pageMap[family]
|
293
|
+
pageMap[family] << styleItem
|
294
294
|
end
|
295
295
|
end
|
296
296
|
end
|
@@ -304,6 +304,7 @@ class MainWindow < Qt::MainWindow
|
|
304
304
|
end
|
305
305
|
|
306
306
|
def printPage(index, painter, printer)
|
307
|
+
pageMap = currentPageMap()
|
307
308
|
family = pageMap.keys()[index]
|
308
309
|
items = pageMap[family]
|
309
310
|
|
@@ -356,7 +357,7 @@ class MainWindow < Qt::MainWindow
|
|
356
357
|
rect = fontMetrics.boundingRect("%s %s" % [font.family(), style])
|
357
358
|
y += rect.height()
|
358
359
|
painter.font = font
|
359
|
-
painter.drawText(Qt::PointF.
|
360
|
+
painter.drawText(Qt::PointF.new(x, y),
|
360
361
|
"%s %s" % [family, style])
|
361
362
|
y += interLineHeight
|
362
363
|
end
|
@@ -31,7 +31,7 @@ class PreviewDialog < Qt::Dialog
|
|
31
31
|
SmallPreviewLength = 200
|
32
32
|
LargePreviewLength = 400
|
33
33
|
|
34
|
-
signals 'pageRequested(int, QPainter
|
34
|
+
signals 'pageRequested(int, QPainter*, QPrinter*)'
|
35
35
|
|
36
36
|
slots 'accept()',
|
37
37
|
'addPage()',
|
@@ -49,7 +49,7 @@ class PreviewDialog < Qt::Dialog
|
|
49
49
|
|
50
50
|
@currentPage = 0
|
51
51
|
@pageCount = 0
|
52
|
-
@ui.pageList.setIconSize(Qt::Size(SmallPreviewLength, SmallPreviewLength))
|
52
|
+
@ui.pageList.setIconSize(Qt::Size.new(SmallPreviewLength, SmallPreviewLength))
|
53
53
|
@ui.pageList.header().hide()
|
54
54
|
@previewLabel = PreviewLabel.new
|
55
55
|
@printer = Qt::Printer.new
|
@@ -60,40 +60,40 @@ class PreviewDialog < Qt::Dialog
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def setupComboBoxes()
|
63
|
-
@ui.paperSizeCombo.addItem(tr("A0 (841 x 1189 mm)"), Qt::Printer::A0)
|
64
|
-
@ui.paperSizeCombo.addItem(tr("A1 (594 x 841 mm)"), Qt::Printer::A1)
|
65
|
-
@ui.paperSizeCombo.addItem(tr("A2 (420 x 594 mm)"), Qt::Printer::A2)
|
66
|
-
@ui.paperSizeCombo.addItem(tr("A3 (297 x 420 mm)"), Qt::Printer::A3)
|
67
|
-
@ui.paperSizeCombo.addItem(tr("A4 (210 x 297 mm, 8.26 x 11.7 inches)"), Qt::Printer::A4)
|
68
|
-
@ui.paperSizeCombo.addItem(tr("A5 (148 x 210 mm)"), Qt::Printer::A5)
|
69
|
-
@ui.paperSizeCombo.addItem(tr("A6 (105 x 148 mm)"), Qt::Printer::A6)
|
70
|
-
@ui.paperSizeCombo.addItem(tr("A7 (74 x 105 mm)"), Qt::Printer::A7)
|
71
|
-
@ui.paperSizeCombo.addItem(tr("A8 (52 x 74 mm)"), Qt::Printer::A8)
|
72
|
-
@ui.paperSizeCombo.addItem(tr("A9 (37 x 52 mm)"), Qt::Printer::A9)
|
73
|
-
@ui.paperSizeCombo.addItem(tr("B0 (1000 x 1414 mm)"), Qt::Printer::B0)
|
74
|
-
@ui.paperSizeCombo.addItem(tr("B1 (707 x 1000 mm)"), Qt::Printer::B1)
|
75
|
-
@ui.paperSizeCombo.addItem(tr("B2 (500 x 707 mm)"), Qt::Printer::B2)
|
76
|
-
@ui.paperSizeCombo.addItem(tr("B3 (353 x 500 mm)"), Qt::Printer::B3)
|
77
|
-
@ui.paperSizeCombo.addItem(tr("B4 (250 x 353 mm)"), Qt::Printer::B4)
|
78
|
-
@ui.paperSizeCombo.addItem(tr("B5 (176 x 250 mm, 6.93 x 9.84 inches)"), Qt::Printer::B5)
|
79
|
-
@ui.paperSizeCombo.addItem(tr("B6 (125 x 176 mm)"), Qt::Printer::B6)
|
80
|
-
@ui.paperSizeCombo.addItem(tr("B7 (88 x 125 mm)"), Qt::Printer::B7)
|
81
|
-
@ui.paperSizeCombo.addItem(tr("B8 (62 x 88 mm)"), Qt::Printer::B8)
|
82
|
-
@ui.paperSizeCombo.addItem(tr("B9 (44 x 62 mm)"), Qt::Printer::B9)
|
83
|
-
@ui.paperSizeCombo.addItem(tr("B10 (31 x 44 mm)"), Qt::Printer::B10)
|
84
|
-
@ui.paperSizeCombo.addItem(tr("C5E (163 x 229 mm)"), Qt::Printer::C5E)
|
85
|
-
@ui.paperSizeCombo.addItem(tr("DLE (110 x 220 mm)"), Qt::Printer::DLE)
|
86
|
-
@ui.paperSizeCombo.addItem(tr("Executive (7.5 x 10 inches, 191 x 254 mm)"), Qt::Printer::Executive)
|
87
|
-
@ui.paperSizeCombo.addItem(tr("Folio (210 x 330 mm)"), Qt::Printer::Folio)
|
88
|
-
@ui.paperSizeCombo.addItem(tr("Ledger (432 x 279 mm)"), Qt::Printer::Ledger)
|
89
|
-
@ui.paperSizeCombo.addItem(tr("Legal (8.5 x 14 inches, 216 x 356 mm)"), Qt::Printer::Legal)
|
90
|
-
@ui.paperSizeCombo.addItem(tr("Letter (8.5 x 11 inches, 216 x 279 mm)"), Qt::Printer::Letter)
|
91
|
-
@ui.paperSizeCombo.addItem(tr("Tabloid (279 x 432 mm)"), Qt::Printer::Tabloid)
|
92
|
-
@ui.paperSizeCombo.addItem(tr("US Common #10 Envelope (105 x 241 mm)"), Qt::Printer::Comm10E)
|
93
|
-
@ui.paperSizeCombo.currentIndex = @ui.paperSizeCombo.findData(Qt::Printer::A4)
|
94
|
-
|
95
|
-
@ui.paperOrientationCombo.addItem(tr("Portrait"), Qt::Printer::Portrait)
|
96
|
-
@ui.paperOrientationCombo.addItem(tr("Landscape"), Qt::Printer::Landscape)
|
63
|
+
@ui.paperSizeCombo.addItem(tr("A0 (841 x 1189 mm)"), Qt::Variant.new(Qt::Printer::A0))
|
64
|
+
@ui.paperSizeCombo.addItem(tr("A1 (594 x 841 mm)"), Qt::Variant.new(Qt::Printer::A1))
|
65
|
+
@ui.paperSizeCombo.addItem(tr("A2 (420 x 594 mm)"), Qt::Variant.new(Qt::Printer::A2))
|
66
|
+
@ui.paperSizeCombo.addItem(tr("A3 (297 x 420 mm)"), Qt::Variant.new(Qt::Printer::A3))
|
67
|
+
@ui.paperSizeCombo.addItem(tr("A4 (210 x 297 mm, 8.26 x 11.7 inches)"), Qt::Variant.new(Qt::Printer::A4))
|
68
|
+
@ui.paperSizeCombo.addItem(tr("A5 (148 x 210 mm)"), Qt::Variant.new(Qt::Printer::A5))
|
69
|
+
@ui.paperSizeCombo.addItem(tr("A6 (105 x 148 mm)"), Qt::Variant.new(Qt::Printer::A6))
|
70
|
+
@ui.paperSizeCombo.addItem(tr("A7 (74 x 105 mm)"), Qt::Variant.new(Qt::Printer::A7))
|
71
|
+
@ui.paperSizeCombo.addItem(tr("A8 (52 x 74 mm)"), Qt::Variant.new(Qt::Printer::A8))
|
72
|
+
@ui.paperSizeCombo.addItem(tr("A9 (37 x 52 mm)"), Qt::Variant.new(Qt::Printer::A9))
|
73
|
+
@ui.paperSizeCombo.addItem(tr("B0 (1000 x 1414 mm)"), Qt::Variant.new(Qt::Printer::B0))
|
74
|
+
@ui.paperSizeCombo.addItem(tr("B1 (707 x 1000 mm)"), Qt::Variant.new(Qt::Printer::B1))
|
75
|
+
@ui.paperSizeCombo.addItem(tr("B2 (500 x 707 mm)"), Qt::Variant.new(Qt::Printer::B2))
|
76
|
+
@ui.paperSizeCombo.addItem(tr("B3 (353 x 500 mm)"), Qt::Variant.new(Qt::Printer::B3))
|
77
|
+
@ui.paperSizeCombo.addItem(tr("B4 (250 x 353 mm)"), Qt::Variant.new(Qt::Printer::B4))
|
78
|
+
@ui.paperSizeCombo.addItem(tr("B5 (176 x 250 mm, 6.93 x 9.84 inches)"), Qt::Variant.new(Qt::Printer::B5))
|
79
|
+
@ui.paperSizeCombo.addItem(tr("B6 (125 x 176 mm)"), Qt::Variant.new(Qt::Printer::B6))
|
80
|
+
@ui.paperSizeCombo.addItem(tr("B7 (88 x 125 mm)"), Qt::Variant.new(Qt::Printer::B7))
|
81
|
+
@ui.paperSizeCombo.addItem(tr("B8 (62 x 88 mm)"), Qt::Variant.new(Qt::Printer::B8))
|
82
|
+
@ui.paperSizeCombo.addItem(tr("B9 (44 x 62 mm)"), Qt::Variant.new(Qt::Printer::B9))
|
83
|
+
@ui.paperSizeCombo.addItem(tr("B10 (31 x 44 mm)"), Qt::Variant.new(Qt::Printer::B10))
|
84
|
+
@ui.paperSizeCombo.addItem(tr("C5E (163 x 229 mm)"), Qt::Variant.new(Qt::Printer::C5E))
|
85
|
+
@ui.paperSizeCombo.addItem(tr("DLE (110 x 220 mm)"), Qt::Variant.new(Qt::Printer::DLE))
|
86
|
+
@ui.paperSizeCombo.addItem(tr("Executive (7.5 x 10 inches, 191 x 254 mm)"), Qt::Variant.new(Qt::Printer::Executive))
|
87
|
+
@ui.paperSizeCombo.addItem(tr("Folio (210 x 330 mm)"), Qt::Variant.new(Qt::Printer::Folio))
|
88
|
+
@ui.paperSizeCombo.addItem(tr("Ledger (432 x 279 mm)"), Qt::Variant.new(Qt::Printer::Ledger))
|
89
|
+
@ui.paperSizeCombo.addItem(tr("Legal (8.5 x 14 inches, 216 x 356 mm)"), Qt::Variant.new(Qt::Printer::Legal))
|
90
|
+
@ui.paperSizeCombo.addItem(tr("Letter (8.5 x 11 inches, 216 x 279 mm)"), Qt::Variant.new(Qt::Printer::Letter))
|
91
|
+
@ui.paperSizeCombo.addItem(tr("Tabloid (279 x 432 mm)"), Qt::Variant.new(Qt::Printer::Tabloid))
|
92
|
+
@ui.paperSizeCombo.addItem(tr("US Common #10 Envelope (105 x 241 mm)"), Qt::Variant.new(Qt::Printer::Comm10E))
|
93
|
+
@ui.paperSizeCombo.currentIndex = @ui.paperSizeCombo.findData(Qt::Variant.new(Qt::Printer::A4))
|
94
|
+
|
95
|
+
@ui.paperOrientationCombo.addItem(tr("Portrait"), Qt::Variant.new(Qt::Printer::Portrait))
|
96
|
+
@ui.paperOrientationCombo.addItem(tr("Landscape"), Qt::Variant.new(Qt::Printer::Landscape))
|
97
97
|
end
|
98
98
|
|
99
99
|
def addPage()
|
@@ -131,8 +131,8 @@ class PreviewDialog < Qt::Dialog
|
|
131
131
|
@printer.paperRect().height()].max
|
132
132
|
width = pixmap.width() * @printer.paperRect().width() / longestSide
|
133
133
|
height = pixmap.height() * @printer.paperRect().height() / longestSide
|
134
|
-
|
135
|
-
pixmap.fill(qRgb(224,224,224))
|
134
|
+
|
135
|
+
pixmap.fill(Qt::Color.new(qRgb(224,224,224)))
|
136
136
|
painter = Qt::Painter.new
|
137
137
|
painter.begin(pixmap)
|
138
138
|
painter.renderHint = Qt::Painter::Antialiasing
|
@@ -235,7 +235,8 @@ class PreviewDialog < Qt::Dialog
|
|
235
235
|
end
|
236
236
|
|
237
237
|
def on_paperSizeCombo_activated(index)
|
238
|
-
|
238
|
+
Qt.debug_level = 100
|
239
|
+
@printer.paperSize = @ui.paperSizeCombo.itemData(index.to_i).value
|
239
240
|
|
240
241
|
for index in 0..@ui.pageList.topLevelItemCount
|
241
242
|
paintItem(@ui.pageList.topLevelItem(index), index)
|
@@ -25,7 +25,7 @@
|
|
25
25
|
|
26
26
|
class PreviewLabel < Qt::Widget
|
27
27
|
|
28
|
-
def initialize(parent)
|
28
|
+
def initialize(parent = nil)
|
29
29
|
super(parent)
|
30
30
|
end
|
31
31
|
|
@@ -33,7 +33,7 @@ class PreviewLabel < Qt::Widget
|
|
33
33
|
painter = Qt::Painter.new
|
34
34
|
painter.begin(self)
|
35
35
|
painter.fillRect(event.rect(), Qt::Color.new(224,224,224))
|
36
|
-
painter.drawPixmap(0, 0, @pixmap)
|
36
|
+
painter.drawPixmap(0, 0, @pixmap) if @pixmap
|
37
37
|
painter.end()
|
38
38
|
end
|
39
39
|
|
@@ -62,8 +62,8 @@ class SvgWindow < Qt::ScrollArea
|
|
62
62
|
|
63
63
|
def mousePressEvent(event)
|
64
64
|
@mousePressPos = event.pos
|
65
|
-
@scrollBarValuesOnMousePress.
|
66
|
-
@scrollBarValuesOnMousePress.
|
65
|
+
@scrollBarValuesOnMousePress.x = horizontalScrollBar.value
|
66
|
+
@scrollBarValuesOnMousePress.y = verticalScrollBar.value
|
67
67
|
event.accept
|
68
68
|
end
|
69
69
|
|
@@ -201,16 +201,58 @@ rpp::Stream* Preprocessor::sourceNeeded(QString& fileName, rpp::Preprocessor::In
|
|
201
201
|
}
|
202
202
|
if (path.isEmpty()) {
|
203
203
|
foreach (QDir dir, m_includeDirs) {
|
204
|
+
#if 0
|
205
|
+
if (dir.absolutePath().endsWith(".framework"))
|
206
|
+
{
|
207
|
+
dir.setPath(dir.absolutePath() + "/Headers");
|
208
|
+
}
|
209
|
+
#endif
|
210
|
+
// qWarning("Searching in %s", qPrintable(dir.absolutePath()));
|
204
211
|
info.setFile(dir, fileName);
|
205
212
|
if (info.isFile()) {
|
206
213
|
path = info.absoluteFilePath();
|
214
|
+
// qWarning("Found #include<%s>", qPrintable(fileName));
|
207
215
|
break;
|
208
216
|
}
|
209
217
|
}
|
210
218
|
}
|
211
|
-
|
219
|
+
|
220
|
+
#if defined(Q_OS_DARWIN)
|
221
|
+
/* Try searching for frameworks in default locations */
|
222
|
+
if (path.isEmpty()) {
|
223
|
+
QStringList splitString = fileName.split("/");
|
224
|
+
if (splitString.size() >= 2) {
|
225
|
+
QString frameworkName = splitString.takeFirst();
|
226
|
+
QString remainingFileName = splitString.join("/");
|
227
|
+
QDir dir1 = QDir(("/System/Library/Frameworks/" + frameworkName) + ".framework/Headers");
|
228
|
+
QDir dir2 = QDir(("/Library/Frameworks/" + frameworkName) + ".framework/Headers");
|
229
|
+
info.setFile(dir1, remainingFileName);
|
230
|
+
if (info.isFile()) {
|
231
|
+
path = info.absoluteFilePath();
|
232
|
+
// qWarning("Found #include<%s>", qPrintable(fileName));
|
233
|
+
}
|
234
|
+
else {
|
235
|
+
info.setFile(dir2, remainingFileName);
|
236
|
+
if (info.isFile()) {
|
237
|
+
path = info.absoluteFilePath();
|
238
|
+
// qWarning("Found #include<%s>", qPrintable(fileName));
|
239
|
+
}
|
240
|
+
}
|
241
|
+
}
|
242
|
+
}
|
243
|
+
#endif
|
244
|
+
|
245
|
+
if (fileName == "stdio.h")
|
246
|
+
{
|
247
|
+
qWarning("Not parsing stdio.h because it is not handled correctly by smokegen on FreeBSD based systems");
|
248
|
+
return 0;
|
249
|
+
}
|
250
|
+
|
212
251
|
if (path.isEmpty())
|
252
|
+
{
|
253
|
+
qWarning("Couldn't find file for #include<%s>", qPrintable(fileName));
|
213
254
|
return 0;
|
255
|
+
}
|
214
256
|
|
215
257
|
QFile file(path);
|
216
258
|
file.open(QFile::ReadOnly);
|
@@ -213,13 +213,20 @@ int generate()
|
|
213
213
|
Options::qtMode = ParserOptions::qtMode;
|
214
214
|
|
215
215
|
Options::voidpTypes << "long long" << "long long int" << "unsigned long long" << "unsigned long long int";
|
216
|
+
Options::scalarTypes << "long long" << "long long int" << "unsigned long long" << "unsigned long long int";
|
216
217
|
|
217
218
|
// Fill the type map. It maps some long integral types to shorter forms as used in SMOKE.
|
218
219
|
Util::typeMap["long int"] = "long";
|
219
220
|
Util::typeMap["short int"] = "short";
|
220
221
|
Util::typeMap["long double"] = "double";
|
221
222
|
Util::typeMap["wchar_t"] = "int"; // correct?
|
222
|
-
|
223
|
+
|
224
|
+
if (sizeof(unsigned int) == sizeof(size_t)) {
|
225
|
+
Util::typeMap["size_t"] = "uint";
|
226
|
+
} else if (sizeof(unsigned long) == sizeof(size_t)) {
|
227
|
+
Util::typeMap["size_t"] = "ulong";
|
228
|
+
}
|
229
|
+
|
223
230
|
qDebug() << "Generating SMOKE sources...";
|
224
231
|
|
225
232
|
SmokeDataFile smokeData;
|
@@ -244,7 +244,7 @@ bool Util::canClassBeInstanciated(const Class* klass)
|
|
244
244
|
if (meth.isConstructor()) {
|
245
245
|
ctorFound = true;
|
246
246
|
if (meth.access() != Access_private) {
|
247
|
-
// this class can be
|
247
|
+
// this class can be instanstiated
|
248
248
|
publicCtorFound = true;
|
249
249
|
}
|
250
250
|
} else if ((meth.flags() & Method::PureVirtual) && meth.access() == Access_private) {
|
@@ -252,9 +252,9 @@ bool Util::canClassBeInstanciated(const Class* klass)
|
|
252
252
|
}
|
253
253
|
}
|
254
254
|
|
255
|
-
// The class can be
|
255
|
+
// The class can be instanstiated if it has a public constructor or no constructor at all
|
256
256
|
// because then it has a default one generated by the compiler.
|
257
|
-
// If it has private pure virtuals, then it can't be
|
257
|
+
// If it has private pure virtuals, then it can't be instanstiated either.
|
258
258
|
bool ret = ((publicCtorFound || !ctorFound) && !privatePureVirtualsFound);
|
259
259
|
cache[klass] = ret;
|
260
260
|
return ret;
|
@@ -375,7 +375,7 @@ void Util::checkForAbstractClass(Class* klass)
|
|
375
375
|
list << &meth;
|
376
376
|
}
|
377
377
|
|
378
|
-
// abstract classes can't be
|
378
|
+
// abstract classes can't be instanstiated - remove the constructors
|
379
379
|
if (hasPrivatePureVirtuals) {
|
380
380
|
foreach (const Method* ctor, list) {
|
381
381
|
klass->methodsRef().removeOne(*ctor);
|
@@ -714,7 +714,7 @@ QList<const Method*> Util::virtualMethodsForClass(const Class* klass)
|
|
714
714
|
{
|
715
715
|
static QHash<const Class*, QList<const Method*> > cache;
|
716
716
|
|
717
|
-
// virtual method callbacks for classes that can't be
|
717
|
+
// virtual method callbacks for classes that can't be instanstiated aren't useful
|
718
718
|
if (!Util::canClassBeInstanciated(klass))
|
719
719
|
return QList<const Method*>();
|
720
720
|
|
@@ -469,7 +469,7 @@ void SmokeClassFiles::writeClass(QTextStream& out, const Class* klass, const QSt
|
|
469
469
|
}
|
470
470
|
|
471
471
|
// destructor
|
472
|
-
// if the class can't be
|
472
|
+
// if the class can't be instanstiated, a callback when it's deleted is unnecessary
|
473
473
|
if (Util::canClassBeInstanciated(klass)) {
|
474
474
|
out << " ~" << smokeClassName << "() ";
|
475
475
|
if (destructor && destructor->hasExceptionSpec()) {
|
@@ -369,9 +369,8 @@ void Parser::reportError(const QString& msg)
|
|
369
369
|
Problem *p = new Problem;
|
370
370
|
p->file = session->url().str();
|
371
371
|
p->position = position;
|
372
|
-
p->description = msg;
|
372
|
+
p->description = msg + " : " + QString::fromUtf8(lineFromContents(session->contents(), p->position.line));
|
373
373
|
p->source = Problem::Source_Parser;
|
374
|
-
|
375
374
|
control->reportProblem(p);
|
376
375
|
}
|
377
376
|
else if (_M_hold_errors)
|
@@ -411,6 +410,7 @@ bool Parser::skipUntilDeclaration()
|
|
411
410
|
case Token_identifier:
|
412
411
|
case Token_operator:
|
413
412
|
case Token_char:
|
413
|
+
case Token_size_t:
|
414
414
|
case Token_wchar_t:
|
415
415
|
case Token_bool:
|
416
416
|
case Token_short:
|
@@ -476,6 +476,7 @@ bool Parser::skipUntilStatement()
|
|
476
476
|
case Token_catch:
|
477
477
|
case Token_throw:
|
478
478
|
case Token_char:
|
479
|
+
case Token_size_t:
|
479
480
|
case Token_wchar_t:
|
480
481
|
case Token_bool:
|
481
482
|
case Token_short:
|
@@ -1199,6 +1200,7 @@ bool Parser::parseSimpleTypeSpecifier(TypeSpecifierAST *&node,
|
|
1199
1200
|
switch(session->token_stream->lookAhead())
|
1200
1201
|
{
|
1201
1202
|
case Token_char:
|
1203
|
+
case Token_size_t:
|
1202
1204
|
case Token_wchar_t:
|
1203
1205
|
case Token_bool:
|
1204
1206
|
case Token_short:
|
@@ -36,6 +36,26 @@ QByteArray stringFromContents(const PreprocessedContents& contents, int offset,
|
|
36
36
|
return ret;
|
37
37
|
}
|
38
38
|
|
39
|
+
#include <stdio.h>
|
40
|
+
|
41
|
+
QByteArray lineFromContents(const uint* contents, int lineNumber) {
|
42
|
+
int a1 = 0;
|
43
|
+
int lineCount = 0;
|
44
|
+
while (lineCount < lineNumber) {
|
45
|
+
if (isNewline(contents[a1])) {
|
46
|
+
lineCount++;
|
47
|
+
}
|
48
|
+
a1++;
|
49
|
+
}
|
50
|
+
|
51
|
+
int a2 = a1;
|
52
|
+
while (!isNewline(contents[a2])) {
|
53
|
+
a2++;
|
54
|
+
}
|
55
|
+
|
56
|
+
return stringFromContents(contents + a1, a2 - a1);
|
57
|
+
}
|
58
|
+
|
39
59
|
QByteArray stringFromContents(const uint* contents, int count) {
|
40
60
|
QByteArray ret;
|
41
61
|
for(int a = 0; a < count; ++a) {
|
@@ -72,12 +72,19 @@ inline bool isNumber(unsigned int c) {
|
|
72
72
|
return isCharacter(c) && QChar(characterFromIndex(c)).isNumber();
|
73
73
|
}
|
74
74
|
|
75
|
+
inline bool isNewline(unsigned int c) {
|
76
|
+
return isCharacter(c) && characterFromIndex(c) == '\n';
|
77
|
+
}
|
78
|
+
|
75
79
|
///Opposite of convertFromByteArray
|
76
80
|
CPPPARSER_EXPORT QByteArray stringFromContents(const PreprocessedContents& contents, int offset = 0, int count = 0);
|
77
81
|
|
78
82
|
///Opposite of convertFromByteArray
|
79
83
|
CPPPARSER_EXPORT QByteArray stringFromContents(const uint* contents, int count);
|
80
84
|
|
85
|
+
///Return the line at the given line number from the contents
|
86
|
+
CPPPARSER_EXPORT QByteArray lineFromContents(const uint* contents, int lineNumber);
|
87
|
+
|
81
88
|
///Returns a string that has a gap inserted between the tokens(for debugging)
|
82
89
|
CPPPARSER_EXPORT QByteArray stringFromContentsWithGaps(const PreprocessedContents& contents, int offset = 0, int count = 0);
|
83
90
|
|
@@ -268,10 +268,10 @@ void pp_macro_expander::operator()(Stream& input, Stream& output)
|
|
268
268
|
output << '\"';
|
269
269
|
|
270
270
|
while (!is.atEnd()) {
|
271
|
-
if (
|
271
|
+
if (is == '"') {
|
272
272
|
output << '\\' << is;
|
273
273
|
|
274
|
-
} else if (
|
274
|
+
} else if (is == '\n') {
|
275
275
|
output << '"' << is << '"';
|
276
276
|
|
277
277
|
} else {
|
@@ -338,7 +338,7 @@ void pp_macro_expander::operator()(Stream& input, Stream& output)
|
|
338
338
|
|
339
339
|
skip_blanks(input, devnull());
|
340
340
|
//Omit paste tokens behind empty used actuals, else we will merge with the previous text
|
341
|
-
if(input == '#' && (++input) == '#') {
|
341
|
+
if(!input.atEnd() && input == '#' && !(++input).atEnd() && input == '#') {
|
342
342
|
++input;
|
343
343
|
//We have skipped a paste token
|
344
344
|
}else{
|