summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dist/changes-5.1.125
-rw-r--r--examples/assistant/remotecontrol/remotecontrol.cpp2
-rw-r--r--src/assistant/assistant/centralwidget.cpp6
-rw-r--r--src/designer/src/designer/qdesigner_actions.cpp2
-rw-r--r--src/linguist/Qt5LinguistToolsConfig.cmake.in26
-rw-r--r--src/linguist/linguist.pro24
-rw-r--r--src/linguist/linguist/doc/src/linguist-manual.qdoc31
-rw-r--r--src/linguist/linguist/formpreviewview.cpp1
-rw-r--r--src/linguist/lrelease/main.cpp6
-rw-r--r--src/linguist/lupdate/cpp.cpp327
-rw-r--r--src/linguist/lupdate/java.cpp12
-rw-r--r--src/linguist/lupdate/main.cpp20
-rw-r--r--src/linguist/lupdate/merge.cpp62
-rw-r--r--src/linguist/lupdate/qdeclarative.cpp22
-rw-r--r--src/linguist/lupdate/ui.cpp2
-rw-r--r--src/linguist/shared/qmakeevaluator.cpp2
-rw-r--r--src/linguist/shared/qmakeparser.cpp12
-rw-r--r--src/linguist/shared/qmakeparser.h13
-rw-r--r--src/linguist/shared/translator.cpp43
-rw-r--r--src/linguist/shared/translator.h2
-rw-r--r--src/shared/qtpropertybrowser/qtvariantproperty.cpp1
-rw-r--r--tests/auto/linguist/lconvert/lconvert.pro2
-rw-r--r--tests/auto/linguist/lrelease/lrelease.pro1
-rw-r--r--tests/auto/linguist/lrelease/tst_lrelease.cpp8
-rw-r--r--tests/auto/linguist/lupdate/lupdate.pro2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/backslashes/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/from_subdir/translations/translations.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/heuristics/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/merge_versions/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergecpp/finddialog.cpp2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergecpp/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.before1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.result1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergeui/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/multiple_locations/finddialog.cpp4
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/multiple_locations/main.cpp24
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.ts.result24
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/namespaces/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp/included.cpp (renamed from tests/auto/linguist/lupdate/testdata/good/parsecpp2/main3.cpp)45
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp66
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result33
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsejava/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsejs/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsejs2/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsejs3/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsejs4/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsejscontexts/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parseqml/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parseqml2/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parseui/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/prefix/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/preprocess/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/proparsing/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/proparsing2/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/sub1.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/common.pro2
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/proparsingsubs/excluded/excluded.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/proparsingsubs/excluded/main.cpp (renamed from tests/auto/linguist/lupdate/testdata/good/parsecpp2/main2.cpp)29
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/mac.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.pro3
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/unix.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/win.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/reloutput/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/subdir1.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/subsub1.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/subdir1.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/subsub1.pro1
-rw-r--r--tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro1
-rw-r--r--tests/auto/qhelpgenerator/qhelpgenerator.pro1
-rw-r--r--tests/manual/manual.pro2
-rw-r--r--tests/manual/uiloader/.gitignore (renamed from tests/auto/uiloader/.gitignore)0
-rw-r--r--tests/manual/uiloader/README.TXT (renamed from tests/auto/uiloader/README.TXT)0
-rw-r--r--tests/manual/uiloader/WTC0090dca226c8.ini (renamed from tests/auto/uiloader/WTC0090dca226c8.ini)0
-rw-r--r--tests/manual/uiloader/baseline/Dialog_with_Buttons_Bottom.ui (renamed from tests/auto/uiloader/baseline/Dialog_with_Buttons_Bottom.ui)0
-rw-r--r--tests/manual/uiloader/baseline/Dialog_with_Buttons_Right.ui (renamed from tests/auto/uiloader/baseline/Dialog_with_Buttons_Right.ui)0
-rw-r--r--tests/manual/uiloader/baseline/Dialog_without_Buttons.ui (renamed from tests/auto/uiloader/baseline/Dialog_without_Buttons.ui)0
-rw-r--r--tests/manual/uiloader/baseline/Main_Window.ui (renamed from tests/auto/uiloader/baseline/Main_Window.ui)0
-rw-r--r--tests/manual/uiloader/baseline/Widget.ui (renamed from tests/auto/uiloader/baseline/Widget.ui)0
-rw-r--r--tests/manual/uiloader/baseline/addlinkdialog.ui (renamed from tests/auto/uiloader/baseline/addlinkdialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/addtorrentform.ui (renamed from tests/auto/uiloader/baseline/addtorrentform.ui)0
-rw-r--r--tests/manual/uiloader/baseline/authenticationdialog.ui (renamed from tests/auto/uiloader/baseline/authenticationdialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/backside.ui (renamed from tests/auto/uiloader/baseline/backside.ui)0
-rw-r--r--tests/manual/uiloader/baseline/batchtranslation.ui (renamed from tests/auto/uiloader/baseline/batchtranslation.ui)0
-rw-r--r--tests/manual/uiloader/baseline/bookmarkdialog.ui (renamed from tests/auto/uiloader/baseline/bookmarkdialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/bookwindow.ui (renamed from tests/auto/uiloader/baseline/bookwindow.ui)0
-rw-r--r--tests/manual/uiloader/baseline/browserwidget.ui (renamed from tests/auto/uiloader/baseline/browserwidget.ui)0
-rw-r--r--tests/manual/uiloader/baseline/calculator.ui (renamed from tests/auto/uiloader/baseline/calculator.ui)0
-rw-r--r--tests/manual/uiloader/baseline/calculatorform.ui (renamed from tests/auto/uiloader/baseline/calculatorform.ui)0
-rw-r--r--tests/manual/uiloader/baseline/certificateinfo.ui (renamed from tests/auto/uiloader/baseline/certificateinfo.ui)0
-rw-r--r--tests/manual/uiloader/baseline/chatdialog.ui (renamed from tests/auto/uiloader/baseline/chatdialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/chatmainwindow.ui (renamed from tests/auto/uiloader/baseline/chatmainwindow.ui)0
-rw-r--r--tests/manual/uiloader/baseline/chatsetnickname.ui (renamed from tests/auto/uiloader/baseline/chatsetnickname.ui)0
-rw-r--r--tests/manual/uiloader/baseline/config.ui (renamed from tests/auto/uiloader/baseline/config.ui)0
-rw-r--r--tests/manual/uiloader/baseline/connectdialog.ui (renamed from tests/auto/uiloader/baseline/connectdialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/controller.ui (renamed from tests/auto/uiloader/baseline/controller.ui)0
-rw-r--r--tests/manual/uiloader/baseline/cookies.ui (renamed from tests/auto/uiloader/baseline/cookies.ui)0
-rw-r--r--tests/manual/uiloader/baseline/cookiesexceptions.ui (renamed from tests/auto/uiloader/baseline/cookiesexceptions.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_borderimage.ui (renamed from tests/auto/uiloader/baseline/css_borderimage.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_borderimage_allwidgets.ui (renamed from tests/auto/uiloader/baseline/css_borderimage_allwidgets.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_borderradius_allwidgets.ui (renamed from tests/auto/uiloader/baseline/css_borderradius_allwidgets.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_buttons_background.ui (renamed from tests/auto/uiloader/baseline/css_buttons_background.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_combobox_background.ui (renamed from tests/auto/uiloader/baseline/css_combobox_background.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_exemple_coffee.ui (renamed from tests/auto/uiloader/baseline/css_exemple_coffee.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_exemple_pagefold.ui (renamed from tests/auto/uiloader/baseline/css_exemple_pagefold.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_exemple_usage.ui (renamed from tests/auto/uiloader/baseline/css_exemple_usage.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_frames.ui (renamed from tests/auto/uiloader/baseline/css_frames.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_groupboxes.ui (renamed from tests/auto/uiloader/baseline/css_groupboxes.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_itemview_task258382.ui (renamed from tests/auto/uiloader/baseline/css_itemview_task258382.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_qprogressbar.ui (renamed from tests/auto/uiloader/baseline/css_qprogressbar.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_qtabwidget.ui (renamed from tests/auto/uiloader/baseline/css_qtabwidget.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_qtbug6855.ui (renamed from tests/auto/uiloader/baseline/css_qtbug6855.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_qtbug7737_borderimageradius.ui (renamed from tests/auto/uiloader/baseline/css_qtbug7737_borderimageradius.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_scroll.ui (renamed from tests/auto/uiloader/baseline/css_scroll.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_scrollarea_base.ui (renamed from tests/auto/uiloader/baseline/css_scrollarea_base.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_splitter.ui (renamed from tests/auto/uiloader/baseline/css_splitter.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_tab_border.ui (renamed from tests/auto/uiloader/baseline/css_tab_border.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_tab_closebutton.ui (renamed from tests/auto/uiloader/baseline/css_tab_closebutton.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_tab_task213374.ui (renamed from tests/auto/uiloader/baseline/css_tab_task213374.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_task255849_downarrow.ui (renamed from tests/auto/uiloader/baseline/css_task255849_downarrow.ui)0
-rw-r--r--tests/manual/uiloader/baseline/css_task259226_spinboxes.ui (renamed from tests/auto/uiloader/baseline/css_task259226_spinboxes.ui)0
-rw-r--r--tests/manual/uiloader/baseline/default.ui (renamed from tests/auto/uiloader/baseline/default.ui)0
-rw-r--r--tests/manual/uiloader/baseline/dialog.ui (renamed from tests/auto/uiloader/baseline/dialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/downloaditem.ui (renamed from tests/auto/uiloader/baseline/downloaditem.ui)0
-rw-r--r--tests/manual/uiloader/baseline/downloads.ui (renamed from tests/auto/uiloader/baseline/downloads.ui)0
-rw-r--r--tests/manual/uiloader/baseline/embeddeddialog.ui (renamed from tests/auto/uiloader/baseline/embeddeddialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/filespage.ui (renamed from tests/auto/uiloader/baseline/filespage.ui)0
-rw-r--r--tests/manual/uiloader/baseline/filternamedialog.ui (renamed from tests/auto/uiloader/baseline/filternamedialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/filterpage.ui (renamed from tests/auto/uiloader/baseline/filterpage.ui)0
-rw-r--r--tests/manual/uiloader/baseline/finddialog.ui (renamed from tests/auto/uiloader/baseline/finddialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/formwindowsettings.ui (renamed from tests/auto/uiloader/baseline/formwindowsettings.ui)0
-rw-r--r--tests/manual/uiloader/baseline/generalpage.ui (renamed from tests/auto/uiloader/baseline/generalpage.ui)0
-rw-r--r--tests/manual/uiloader/baseline/gridpanel.ui (renamed from tests/auto/uiloader/baseline/gridpanel.ui)0
-rw-r--r--tests/manual/uiloader/baseline/helpdialog.ui (renamed from tests/auto/uiloader/baseline/helpdialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/history.ui (renamed from tests/auto/uiloader/baseline/history.ui)0
-rw-r--r--tests/manual/uiloader/baseline/identifierpage.ui (renamed from tests/auto/uiloader/baseline/identifierpage.ui)0
-rw-r--r--tests/manual/uiloader/baseline/imagedialog.ui (renamed from tests/auto/uiloader/baseline/imagedialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/images/arrow-down.png (renamed from tests/auto/uiloader/baseline/images/arrow-down.png)bin1006 -> 1006 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/arrow-up.png (renamed from tests/auto/uiloader/baseline/images/arrow-up.png)bin927 -> 927 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/borderimage.png (renamed from tests/auto/uiloader/baseline/images/borderimage.png)bin1672 -> 1672 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/checkbox_checked.png (renamed from tests/auto/uiloader/baseline/images/checkbox_checked.png)bin263 -> 263 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/checkbox_checked_hover.png (renamed from tests/auto/uiloader/baseline/images/checkbox_checked_hover.png)bin266 -> 266 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/checkbox_checked_pressed.png (renamed from tests/auto/uiloader/baseline/images/checkbox_checked_pressed.png)bin425 -> 425 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/checkbox_unchecked.png (renamed from tests/auto/uiloader/baseline/images/checkbox_unchecked.png)bin159 -> 159 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/checkbox_unchecked_hover.png (renamed from tests/auto/uiloader/baseline/images/checkbox_unchecked_hover.png)bin159 -> 159 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/checkbox_unchecked_pressed.png (renamed from tests/auto/uiloader/baseline/images/checkbox_unchecked_pressed.png)bin320 -> 320 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/down_arrow.png (renamed from tests/auto/uiloader/baseline/images/down_arrow.png)bin175 -> 175 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/down_arrow_disabled.png (renamed from tests/auto/uiloader/baseline/images/down_arrow_disabled.png)bin174 -> 174 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/frame.png (renamed from tests/auto/uiloader/baseline/images/frame.png)bin253 -> 253 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/pagefold.png (renamed from tests/auto/uiloader/baseline/images/pagefold.png)bin1545 -> 1545 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/pushbutton.png (renamed from tests/auto/uiloader/baseline/images/pushbutton.png)bin533 -> 533 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/pushbutton_hover.png (renamed from tests/auto/uiloader/baseline/images/pushbutton_hover.png)bin525 -> 525 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/pushbutton_pressed.png (renamed from tests/auto/uiloader/baseline/images/pushbutton_pressed.png)bin513 -> 513 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/radiobutton_checked.png (renamed from tests/auto/uiloader/baseline/images/radiobutton_checked.png)bin355 -> 355 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/radiobutton_checked_hover.png (renamed from tests/auto/uiloader/baseline/images/radiobutton_checked_hover.png)bin532 -> 532 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/radiobutton_checked_pressed.png (renamed from tests/auto/uiloader/baseline/images/radiobutton_checked_pressed.png)bin599 -> 599 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/radiobutton_unchecked.png (renamed from tests/auto/uiloader/baseline/images/radiobutton_unchecked.png)bin240 -> 240 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/radiobutton_unchecked_hover.png (renamed from tests/auto/uiloader/baseline/images/radiobutton_unchecked_hover.png)bin492 -> 492 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/radiobutton_unchecked_pressed.png (renamed from tests/auto/uiloader/baseline/images/radiobutton_unchecked_pressed.png)bin556 -> 556 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/sizegrip.png (renamed from tests/auto/uiloader/baseline/images/sizegrip.png)bin129 -> 129 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/spindown.png (renamed from tests/auto/uiloader/baseline/images/spindown.png)bin276 -> 276 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/spindown_hover.png (renamed from tests/auto/uiloader/baseline/images/spindown_hover.png)bin268 -> 268 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/spindown_off.png (renamed from tests/auto/uiloader/baseline/images/spindown_off.png)bin249 -> 249 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/spindown_pressed.png (renamed from tests/auto/uiloader/baseline/images/spindown_pressed.png)bin264 -> 264 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/spinup.png (renamed from tests/auto/uiloader/baseline/images/spinup.png)bin283 -> 283 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/spinup_hover.png (renamed from tests/auto/uiloader/baseline/images/spinup_hover.png)bin277 -> 277 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/spinup_off.png (renamed from tests/auto/uiloader/baseline/images/spinup_off.png)bin274 -> 274 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/spinup_pressed.png (renamed from tests/auto/uiloader/baseline/images/spinup_pressed.png)bin277 -> 277 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/splitter_horizontal.png (renamed from tests/auto/uiloader/baseline/images/splitter_horizontal.png)bin199 -> 199 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/splitter_vertical.png (renamed from tests/auto/uiloader/baseline/images/splitter_vertical.png)bin193 -> 193 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/up_arrow.png (renamed from tests/auto/uiloader/baseline/images/up_arrow.png)bin197 -> 197 bytes
-rw-r--r--tests/manual/uiloader/baseline/images/up_arrow_disabled.png (renamed from tests/auto/uiloader/baseline/images/up_arrow_disabled.png)bin172 -> 172 bytes
-rw-r--r--tests/manual/uiloader/baseline/inputpage.ui (renamed from tests/auto/uiloader/baseline/inputpage.ui)0
-rw-r--r--tests/manual/uiloader/baseline/installdialog.ui (renamed from tests/auto/uiloader/baseline/installdialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/languagesdialog.ui (renamed from tests/auto/uiloader/baseline/languagesdialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/listwidgeteditor.ui (renamed from tests/auto/uiloader/baseline/listwidgeteditor.ui)0
-rw-r--r--tests/manual/uiloader/baseline/mainwindow.ui (renamed from tests/auto/uiloader/baseline/mainwindow.ui)0
-rw-r--r--tests/manual/uiloader/baseline/mainwindowbase.ui (renamed from tests/auto/uiloader/baseline/mainwindowbase.ui)0
-rw-r--r--tests/manual/uiloader/baseline/mydialog.ui (renamed from tests/auto/uiloader/baseline/mydialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/myform.ui (renamed from tests/auto/uiloader/baseline/myform.ui)0
-rw-r--r--tests/manual/uiloader/baseline/newactiondialog.ui (renamed from tests/auto/uiloader/baseline/newactiondialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/newdynamicpropertydialog.ui (renamed from tests/auto/uiloader/baseline/newdynamicpropertydialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/newform.ui (renamed from tests/auto/uiloader/baseline/newform.ui)0
-rw-r--r--tests/manual/uiloader/baseline/orderdialog.ui (renamed from tests/auto/uiloader/baseline/orderdialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/outputpage.ui (renamed from tests/auto/uiloader/baseline/outputpage.ui)0
-rw-r--r--tests/manual/uiloader/baseline/pagefold.ui (renamed from tests/auto/uiloader/baseline/pagefold.ui)0
-rw-r--r--tests/manual/uiloader/baseline/paletteeditor.ui (renamed from tests/auto/uiloader/baseline/paletteeditor.ui)0
-rw-r--r--tests/manual/uiloader/baseline/paletteeditoradvancedbase.ui (renamed from tests/auto/uiloader/baseline/paletteeditoradvancedbase.ui)0
-rw-r--r--tests/manual/uiloader/baseline/passworddialog.ui (renamed from tests/auto/uiloader/baseline/passworddialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/pathpage.ui (renamed from tests/auto/uiloader/baseline/pathpage.ui)0
-rw-r--r--tests/manual/uiloader/baseline/phrasebookbox.ui (renamed from tests/auto/uiloader/baseline/phrasebookbox.ui)0
-rw-r--r--tests/manual/uiloader/baseline/plugindialog.ui (renamed from tests/auto/uiloader/baseline/plugindialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/preferencesdialog.ui (renamed from tests/auto/uiloader/baseline/preferencesdialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/previewconfigurationwidget.ui (renamed from tests/auto/uiloader/baseline/previewconfigurationwidget.ui)0
-rw-r--r--tests/manual/uiloader/baseline/previewdialogbase.ui (renamed from tests/auto/uiloader/baseline/previewdialogbase.ui)0
-rw-r--r--tests/manual/uiloader/baseline/previewwidget.ui (renamed from tests/auto/uiloader/baseline/previewwidget.ui)0
-rw-r--r--tests/manual/uiloader/baseline/previewwidgetbase.ui (renamed from tests/auto/uiloader/baseline/previewwidgetbase.ui)0
-rw-r--r--tests/manual/uiloader/baseline/proxy.ui (renamed from tests/auto/uiloader/baseline/proxy.ui)0
-rw-r--r--tests/manual/uiloader/baseline/qfiledialog.ui (renamed from tests/auto/uiloader/baseline/qfiledialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/qpagesetupwidget.ui (renamed from tests/auto/uiloader/baseline/qpagesetupwidget.ui)0
-rw-r--r--tests/manual/uiloader/baseline/qprintpropertieswidget.ui (renamed from tests/auto/uiloader/baseline/qprintpropertieswidget.ui)0
-rw-r--r--tests/manual/uiloader/baseline/qprintsettingsoutput.ui (renamed from tests/auto/uiloader/baseline/qprintsettingsoutput.ui)0
-rw-r--r--tests/manual/uiloader/baseline/qprintwidget.ui (renamed from tests/auto/uiloader/baseline/qprintwidget.ui)0
-rw-r--r--tests/manual/uiloader/baseline/qsqlconnectiondialog.ui (renamed from tests/auto/uiloader/baseline/qsqlconnectiondialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/qtgradientdialog.ui (renamed from tests/auto/uiloader/baseline/qtgradientdialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/qtgradienteditor.ui (renamed from tests/auto/uiloader/baseline/qtgradienteditor.ui)0
-rw-r--r--tests/manual/uiloader/baseline/qtgradientview.ui (renamed from tests/auto/uiloader/baseline/qtgradientview.ui)0
-rw-r--r--tests/manual/uiloader/baseline/qtgradientviewdialog.ui (renamed from tests/auto/uiloader/baseline/qtgradientviewdialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/qtresourceeditordialog.ui (renamed from tests/auto/uiloader/baseline/qtresourceeditordialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/qttoolbardialog.ui (renamed from tests/auto/uiloader/baseline/qttoolbardialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/querywidget.ui (renamed from tests/auto/uiloader/baseline/querywidget.ui)0
-rw-r--r--tests/manual/uiloader/baseline/remotecontrol.ui (renamed from tests/auto/uiloader/baseline/remotecontrol.ui)0
-rw-r--r--tests/manual/uiloader/baseline/saveformastemplate.ui (renamed from tests/auto/uiloader/baseline/saveformastemplate.ui)0
-rw-r--r--tests/manual/uiloader/baseline/settings.ui (renamed from tests/auto/uiloader/baseline/settings.ui)0
-rw-r--r--tests/manual/uiloader/baseline/signalslotdialog.ui (renamed from tests/auto/uiloader/baseline/signalslotdialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/sslclient.ui (renamed from tests/auto/uiloader/baseline/sslclient.ui)0
-rw-r--r--tests/manual/uiloader/baseline/sslerrors.ui (renamed from tests/auto/uiloader/baseline/sslerrors.ui)0
-rw-r--r--tests/manual/uiloader/baseline/statistics.ui (renamed from tests/auto/uiloader/baseline/statistics.ui)0
-rw-r--r--tests/manual/uiloader/baseline/stringlisteditor.ui (renamed from tests/auto/uiloader/baseline/stringlisteditor.ui)0
-rw-r--r--tests/manual/uiloader/baseline/stylesheeteditor.ui (renamed from tests/auto/uiloader/baseline/stylesheeteditor.ui)0
-rw-r--r--tests/manual/uiloader/baseline/tabbedbrowser.ui (renamed from tests/auto/uiloader/baseline/tabbedbrowser.ui)0
-rw-r--r--tests/manual/uiloader/baseline/tablewidgeteditor.ui (renamed from tests/auto/uiloader/baseline/tablewidgeteditor.ui)0
-rw-r--r--tests/manual/uiloader/baseline/tetrixwindow.ui (renamed from tests/auto/uiloader/baseline/tetrixwindow.ui)0
-rw-r--r--tests/manual/uiloader/baseline/textfinder.ui (renamed from tests/auto/uiloader/baseline/textfinder.ui)0
-rw-r--r--tests/manual/uiloader/baseline/topicchooser.ui (renamed from tests/auto/uiloader/baseline/topicchooser.ui)0
-rw-r--r--tests/manual/uiloader/baseline/translatedialog.ui (renamed from tests/auto/uiloader/baseline/translatedialog.ui)0
-rw-r--r--tests/manual/uiloader/baseline/translationsettings.ui (renamed from tests/auto/uiloader/baseline/translationsettings.ui)0
-rw-r--r--tests/manual/uiloader/baseline/treewidgeteditor.ui (renamed from tests/auto/uiloader/baseline/treewidgeteditor.ui)0
-rw-r--r--tests/manual/uiloader/baseline/trpreviewtool.ui (renamed from tests/auto/uiloader/baseline/trpreviewtool.ui)0
-rw-r--r--tests/manual/uiloader/baseline/validators.ui (renamed from tests/auto/uiloader/baseline/validators.ui)0
-rw-r--r--tests/manual/uiloader/baseline/wateringconfigdialog.ui (renamed from tests/auto/uiloader/baseline/wateringconfigdialog.ui)0
-rw-r--r--tests/manual/uiloader/desert.ini (renamed from tests/auto/uiloader/desert.ini)0
-rw-r--r--tests/manual/uiloader/dole.ini (renamed from tests/auto/uiloader/dole.ini)0
-rw-r--r--tests/manual/uiloader/gravlaks.ini (renamed from tests/auto/uiloader/gravlaks.ini)0
-rw-r--r--tests/manual/uiloader/jackychan.ini (renamed from tests/auto/uiloader/jackychan.ini)0
-rw-r--r--tests/manual/uiloader/jeunehomme.ini (renamed from tests/auto/uiloader/jeunehomme.ini)0
-rw-r--r--tests/manual/uiloader/kangaroo.ini (renamed from tests/auto/uiloader/kangaroo.ini)0
-rw-r--r--tests/manual/uiloader/kayak.ini (renamed from tests/auto/uiloader/kayak.ini)0
-rw-r--r--tests/manual/uiloader/scruffy.ini (renamed from tests/auto/uiloader/scruffy.ini)0
-rw-r--r--tests/manual/uiloader/troll15.ini (renamed from tests/auto/uiloader/troll15.ini)0
-rw-r--r--tests/manual/uiloader/tst_screenshot/README.TXT13
-rw-r--r--tests/manual/uiloader/tst_screenshot/main.cpp210
-rw-r--r--tests/manual/uiloader/tst_screenshot/tst_screenshot.pro8
-rw-r--r--tests/manual/uiloader/tundra.ini (renamed from tests/auto/uiloader/tundra.ini)0
-rw-r--r--tests/manual/uiloader/uiloader.pro (renamed from tests/auto/uiloader/uiloader.pro)0
-rw-r--r--tests/manual/uiloader/uiloader/tst_uiloader.cpp (renamed from tests/auto/uiloader/uiloader/tst_uiloader.cpp)0
-rw-r--r--tests/manual/uiloader/uiloader/uiloader.cpp (renamed from tests/auto/uiloader/uiloader/uiloader.cpp)9
-rw-r--r--tests/manual/uiloader/uiloader/uiloader.h (renamed from tests/auto/uiloader/uiloader/uiloader.h)3
-rw-r--r--tests/manual/uiloader/uiloader/uiloader.pro (renamed from tests/auto/uiloader/uiloader/uiloader.pro)5
-rw-r--r--tests/manual/uiloader/wartburg.ini (renamed from tests/auto/uiloader/wartburg.ini)0
265 files changed, 828 insertions, 358 deletions
diff --git a/dist/changes-5.1.1 b/dist/changes-5.1.1
new file mode 100644
index 000000000..e233af4a5
--- /dev/null
+++ b/dist/changes-5.1.1
@@ -0,0 +1,25 @@
+Qt 5.1.1 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 5.1.0.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+ http://qt-project.org/doc/qt-5.1/
+
+The Qt version 5.1 series is binary compatible with the 5.0.x series.
+Applications compiled for 5.0 will continue to run with 5.1.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+ http://bugreports.qt-project.org/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+ - This release contains only minor code improvements.
diff --git a/examples/assistant/remotecontrol/remotecontrol.cpp b/examples/assistant/remotecontrol/remotecontrol.cpp
index 2553d6364..772ea7540 100644
--- a/examples/assistant/remotecontrol/remotecontrol.cpp
+++ b/examples/assistant/remotecontrol/remotecontrol.cpp
@@ -62,7 +62,7 @@ RemoteControl::RemoteControl(QWidget *parent, Qt::WindowFlags flags)
QTextStream(&rc) << QLatin1String("qthelp://org.qt-project.qtdoc.")
<< (QT_VERSION >> 16) << ((QT_VERSION >> 8) & 0xFF)
<< (QT_VERSION & 0xFF)
- << QLatin1String("/qdoc/index.html");
+ << QLatin1String("/qtdoc/index.html");
ui.startUrlLineEdit->setText(rc);
diff --git a/src/assistant/assistant/centralwidget.cpp b/src/assistant/assistant/centralwidget.cpp
index ccab203f5..c3541af0f 100644
--- a/src/assistant/assistant/centralwidget.cpp
+++ b/src/assistant/assistant/centralwidget.cpp
@@ -403,7 +403,7 @@ void CentralWidget::previousPage()
void CentralWidget::print()
{
TRACE_OBJ
-#ifndef QT_NO_PRINTER
+#if !defined(QT_NO_PRINTER) && !defined(QT_NO_PRINTDIALOG)
initPrinter();
QPrintDialog dlg(m_printer, this);
@@ -420,7 +420,7 @@ void CentralWidget::print()
void CentralWidget::pageSetup()
{
TRACE_OBJ
-#ifndef QT_NO_PRINTER
+#if !defined(QT_NO_PRINTER) && !defined(QT_NO_PRINTDIALOG)
initPrinter();
QPageSetupDialog dlg(m_printer);
dlg.exec();
@@ -430,7 +430,7 @@ void CentralWidget::pageSetup()
void CentralWidget::printPreview()
{
TRACE_OBJ
-#ifndef QT_NO_PRINTER
+#if !defined(QT_NO_PRINTER) && !defined(QT_NO_PRINTDIALOG)
initPrinter();
QPrintPreviewDialog preview(m_printer, this);
connect(&preview, SIGNAL(paintRequested(QPrinter*)),
diff --git a/src/designer/src/designer/qdesigner_actions.cpp b/src/designer/src/designer/qdesigner_actions.cpp
index f8c042c5d..41aaa9a77 100644
--- a/src/designer/src/designer/qdesigner_actions.cpp
+++ b/src/designer/src/designer/qdesigner_actions.cpp
@@ -1378,7 +1378,7 @@ void QDesignerActions::formWindowCountChanged()
void QDesignerActions::printPreviewImage()
{
-#ifndef QT_NO_PRINTER
+#if !defined(QT_NO_PRINTER) && !defined(QT_NO_PRINTDIALOG)
QDesignerFormWindowInterface *fw = core()->formWindowManager()->activeFormWindow();
if (!fw)
return;
diff --git a/src/linguist/Qt5LinguistToolsConfig.cmake.in b/src/linguist/Qt5LinguistToolsConfig.cmake.in
index 6584b56bc..fac7cc65c 100644
--- a/src/linguist/Qt5LinguistToolsConfig.cmake.in
+++ b/src/linguist/Qt5LinguistToolsConfig.cmake.in
@@ -1,5 +1,31 @@
+if (CMAKE_VERSION VERSION_LESS 2.8.3)
+ message(FATAL_ERROR \"Qt 5 requires at least CMake version 2.8.3\")
+endif()
+
+!!IF !isEmpty(CMAKE_USR_MOVE_WORKAROUND)
+!!IF !isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+set(_qt5_linguisttools_install_prefix \"$$[QT_INSTALL_PREFIX]\")
+!!ELSE
+get_filename_component(_IMPORT_PREFIX \"${CMAKE_CURRENT_LIST_FILE}\" PATH)
+# Use original install prefix when loaded through a
+# cross-prefix symbolic link such as /lib -> /usr/lib.
+get_filename_component(_realCurr \"${_IMPORT_PREFIX}\" REALPATH)
+get_filename_component(_realOrig \"$$CMAKE_INSTALL_LIBS_DIR/cmake/Qt5LinguistTools\" REALPATH)
+if(_realCurr STREQUAL _realOrig)
+ get_filename_component(_qt5_linguisttools_install_prefix \"$$CMAKE_INSTALL_LIBS_DIR\" PATH)
+else()
+ get_filename_component(_qt5_linguisttools_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
+endif()
+unset(_realOrig)
+unset(_realCurr)
+unset(_IMPORT_PREFIX)
+!!ENDIF
+!!ELIF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
get_filename_component(_qt5_linguisttools_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
+!!ELSE
+set(_qt5_linguisttools_install_prefix \"$$[QT_INSTALL_PREFIX]\")
+!!ENDIF
if (NOT TARGET Qt5::lrelease)
add_executable(Qt5::lrelease IMPORTED)
diff --git a/src/linguist/linguist.pro b/src/linguist/linguist.pro
index b892ce9f2..2979a23e6 100644
--- a/src/linguist/linguist.pro
+++ b/src/linguist/linguist.pro
@@ -11,22 +11,24 @@ qtNomakeTools( \
win32:CMAKE_BIN_SUFFIX = ".exe"
-CMAKE_QT_INSTALL_PREFIX_ESCAPED = "^$$re_escape($$[QT_INSTALL_PREFIX])/"
-win32:CMAKE_QT_INSTALL_PREFIX_ESCAPED ~= s,\\\\,/
+load(cmake_functions)
-CMAKE_LIB_DIR = $$replace($$list($$[QT_INSTALL_LIBS]), \\\\, /)/
-contains(CMAKE_LIB_DIR, "$${CMAKE_QT_INSTALL_PREFIX_ESCAPED}.*") {
- CMAKE_LIB_DIR = $$replace(CMAKE_LIB_DIR, "$$CMAKE_QT_INSTALL_PREFIX_ESCAPED", )
- CMAKE_RELATIVE_INSTALL_DIR = $$replace(CMAKE_LIB_DIR, "[^/]+", ..)
+CMAKE_INSTALL_LIBS_DIR = $$cmakeTargetPath($$[QT_INSTALL_LIBS])
+contains(CMAKE_INSTALL_LIBS_DIR, ^(/usr)?/lib(64)?.*): CMAKE_USR_MOVE_WORKAROUND = $$CMAKE_INSTALL_LIBS_DIR
+
+CMAKE_LIB_DIR = $$cmakeRelativePath($$[QT_INSTALL_LIBS], $$[QT_INSTALL_PREFIX])
+!contains(CMAKE_LIB_DIR,"^\\.\\./.*") {
+ CMAKE_RELATIVE_INSTALL_DIR = $$cmakeRelativePath($$[QT_INSTALL_PREFIX], $$[QT_INSTALL_LIBS])
# We need to go up another two levels because the CMake files are
# installed in $${CMAKE_LIB_DIR}/cmake/Qt5$${CMAKE_MODULE_NAME}
- CMAKE_RELATIVE_INSTALL_DIR = "$${CMAKE_RELATIVE_INSTALL_DIR}/../../"
+ CMAKE_RELATIVE_INSTALL_DIR = "$${CMAKE_RELATIVE_INSTALL_DIR}../../"
+} else {
+ CMAKE_LIB_DIR_IS_ABSOLUTE = True
}
-CMAKE_BIN_DIR = $$replace($$list($$[QT_INSTALL_BINS]), \\\\, /)/
-contains(CMAKE_BIN_DIR, "$${CMAKE_QT_INSTALL_PREFIX_ESCAPED}.*") {
- CMAKE_BIN_DIR = $$replace(CMAKE_BIN_DIR, "$$CMAKE_QT_INSTALL_PREFIX_ESCAPED", )
-} else {
+CMAKE_BIN_DIR = $$cmakeRelativePath($$[QT_HOST_BINS], $$[QT_INSTALL_PREFIX])
+contains(CMAKE_BIN_DIR, "^\\.\\./.*") {
+ CMAKE_BIN_DIR = $$[QT_HOST_BINS]/
CMAKE_BIN_DIR_IS_ABSOLUTE = True
}
diff --git a/src/linguist/linguist/doc/src/linguist-manual.qdoc b/src/linguist/linguist/doc/src/linguist-manual.qdoc
index 2210c6af7..390dc0d7b 100644
--- a/src/linguist/linguist/doc/src/linguist-manual.qdoc
+++ b/src/linguist/linguist/doc/src/linguist-manual.qdoc
@@ -950,6 +950,37 @@
the developer may be required to add additional information to help
the translator.
+ \section1 Deploying Translations
+
+ The \c .qm files required for the application should be placed in a
+ location where the loader code using \l QTranslator can locate them.
+ Typically, this is done by specifying a path relative to
+ \l QCoreApplication::applicationDirPath().
+
+ Usually, there are \c .qm files for the application, and, if a version of
+ Qt is used that is not installed on the system, Qt's .qm files need to be
+ deployed as well.
+
+ In Qt 4, there is one big, monolithic \c .qm file per locale. For example,
+ the file \c qt_de.qm contains the German translation of all libraries.
+
+ In Qt 5, the \c .qm files were split up by module and there is a so-called
+ meta catalog file which includes the \c .qm files of all modules. The
+ name of the meta catalog file is identical to the name of Qt 4's monolithic
+ \c .qm file so that existing loader code works as before provided
+ all included \c .qm files are found.
+
+ However, it is not necessary to always deploy all of Qt 5's \c .qm files.
+ We recommend concatenating the \c .qm files of the modules required to
+ one file matching the meta catalog file name using the tool \l lconvert in
+ the deploy step. For example, to create a German translation file for an
+ application using the modules \l QtCore, \l QtGui and \l {Qt Declarative},
+ run:
+
+ \code
+ lconvert -o installation_folder/qt_de.qm qtbase_de.qm qtdeclarative_de.qm
+ \endcode
+
\section1 Tutorials
The following tutorials illustrate how to prepare Qt applications for
diff --git a/src/linguist/linguist/formpreviewview.cpp b/src/linguist/linguist/formpreviewview.cpp
index db84eeccb..49d15fdd4 100644
--- a/src/linguist/linguist/formpreviewview.cpp
+++ b/src/linguist/linguist/formpreviewview.cpp
@@ -511,6 +511,7 @@ void FormPreviewView::setSourceContext(int model, MessageItem *messageItem)
m_form->setFocusPolicy(Qt::NoFocus);
m_form->show(); // needed, otherwide the Qt::NoFocus is not propagated.
m_mdiSubWindow->setWidget(m_form);
+ m_mdiSubWindow->setWindowTitle(m_form->windowTitle());
m_mdiSubWindow->show();
m_mdiArea->cascadeSubWindows();
m_lastFormName = fileName;
diff --git a/src/linguist/lrelease/main.cpp b/src/linguist/lrelease/main.cpp
index f3cd8624f..f5ed9bd12 100644
--- a/src/linguist/lrelease/main.cpp
+++ b/src/linguist/lrelease/main.cpp
@@ -322,10 +322,8 @@ int main(int argc, char **argv)
visitor.setOutputDir(QDir::currentPath());
ProFile *pro;
- if (!(pro = parser.parsedProFile(QDir::cleanPath(fi.absoluteFilePath())))) {
- printErr(LR::tr(
- "lrelease error: cannot read project file '%1'.\n")
- .arg(inputFile));
+ if (!(pro = parser.parsedProFile(QDir::cleanPath(fi.absoluteFilePath()),
+ QMakeParser::ParseReportMissing))) {
continue;
}
if (!visitor.accept(pro)) {
diff --git a/src/linguist/lupdate/cpp.cpp b/src/linguist/lupdate/cpp.cpp
index 99d0d29ed..24b5a8a3a 100644
--- a/src/linguist/lupdate/cpp.cpp
+++ b/src/linguist/lupdate/cpp.cpp
@@ -79,16 +79,14 @@ public:
bool operator==(const HashString &other) const { return m_str == other.m_str; }
private:
QString m_str;
- // qHash() of a QString is only 28 bits wide, so we can use
- // the highest bit(s) as the "hash valid" flag.
- mutable uint m_hash;
+ mutable uint m_hash; // We use the highest bit as a validity indicator (set => invalid)
friend uint qHash(const HashString &str);
};
uint qHash(const HashString &str)
{
if (str.m_hash & 0x80000000)
- str.m_hash = qHash(str.m_str);
+ str.m_hash = qHash(str.m_str) & 0x7fffffff;
return str.m_hash;
}
@@ -99,7 +97,7 @@ public:
bool operator==(const HashStringList &other) const { return m_list == other.m_list; }
private:
QList<HashString> m_list;
- mutable uint m_hash;
+ mutable uint m_hash; // We use the highest bit as a validity indicator (set => invalid)
friend uint qHash(const HashStringList &list);
};
@@ -108,8 +106,8 @@ uint qHash(const HashStringList &list)
if (list.m_hash & 0x80000000) {
uint hash = 0;
foreach (const HashString &qs, list.m_list) {
- hash ^= qHash(qs) ^ 0x0ad9f526;
- hash = ((hash << 13) & 0x0fffffff) | (hash >> 15);
+ hash ^= qHash(qs) ^ 0x6ad9f526;
+ hash = ((hash << 13) & 0x7fffffff) | (hash >> 18);
}
list.m_hash = hash;
}
@@ -244,6 +242,9 @@ private:
uint getChar();
uint getToken();
bool getMacroArgs();
+
+ void processComment();
+
bool match(uint t);
bool matchString(QString *s);
bool matchEncoding();
@@ -295,8 +296,8 @@ private:
enum TokenType {
Tok_Eof, Tok_class, Tok_friend, Tok_namespace, Tok_using, Tok_return,
Tok_tr, Tok_trUtf8, Tok_translate, Tok_translateUtf8, Tok_trid,
- Tok_Q_OBJECT, Tok_Q_DECLARE_TR_FUNCTIONS,
- Tok_Ident, Tok_Comment, Tok_String, Tok_Arrow, Tok_Colon, Tok_ColonColon,
+ Tok_Q_OBJECT, Tok_Q_DECLARE_TR_FUNCTIONS, Tok_Access, Tok_Cancel,
+ Tok_Ident, Tok_String, Tok_Arrow, Tok_Colon, Tok_ColonColon,
Tok_Equals, Tok_LeftBracket, Tok_RightBracket,
Tok_LeftBrace, Tok_RightBrace, Tok_LeftParen, Tok_RightParen, Tok_Comma, Tok_Semicolon,
Tok_Null, Tok_Integer,
@@ -328,6 +329,15 @@ private:
// Parser state
uint yyTok;
+ bool metaExpected;
+ QString context;
+ QString text;
+ QString comment;
+ QString extracomment;
+ QString msgid;
+ QString sourcetext;
+ TranslatorMessage::ExtraData extra;
+
NamespaceList namespaces;
QStack<int> namespaceDepths;
NamespaceList functionContext;
@@ -485,6 +495,13 @@ STRING(operator);
STRING(return);
STRING(struct);
STRING(using);
+STRING(private);
+STRING(protected);
+STRING(public);
+STRING(slots);
+STRING(signals);
+STRING(Q_SLOTS);
+STRING(Q_SIGNALS);
uint CppParser::getToken()
{
@@ -700,6 +717,8 @@ uint CppParser::getToken()
case 'Q':
if (yyWord == strQ_OBJECT)
return Tok_Q_OBJECT;
+ if (yyWord == strQ_SLOTS || yyWord == strQ_SIGNALS)
+ return Tok_Access;
break;
case 'c':
if (yyWord == strclass)
@@ -727,6 +746,10 @@ uint CppParser::getToken()
yyCh = getChar();
}
break;
+ case 'p':
+ if (yyWord == strpublic || yyWord == strprotected || yyWord == strprivate)
+ return Tok_Access;
+ break;
case 'r':
if (yyWord == strreturn)
return Tok_return;
@@ -734,6 +757,8 @@ uint CppParser::getToken()
case 's':
if (yyWord == strstruct)
return Tok_class;
+ if (yyWord == strslots || yyWord == strsignals)
+ return Tok_Access;
break;
case 'u':
if (yyWord == strusing)
@@ -777,13 +802,16 @@ uint CppParser::getToken()
yyBraceDepth = yyMinBraceDepth;
yyMinBraceDepth = 0;
inDefine = false;
+ metaExpected = true;
+ yyCh = getChar();
+ return Tok_Cancel; // Break out of any multi-token constructs
}
yyCh = getChar();
break;
case '/':
yyCh = getChar();
if (yyCh == '/') {
- ushort *ptr = (ushort *)yyWord.unicode() + yyWord.length();
+ ushort *ptr = (ushort *)yyWord.unicode();
do {
yyCh = getChar();
if (yyCh == EOF)
@@ -791,9 +819,10 @@ uint CppParser::getToken()
*ptr++ = yyCh;
} while (yyCh != '\n');
yyWord.resize(ptr - (ushort *)yyWord.unicode());
+ processComment();
} else if (yyCh == '*') {
bool metAster = false;
- ushort *ptr = (ushort *)yyWord.unicode() + yyWord.length();
+ ushort *ptr = (ushort *)yyWord.unicode();
forever {
yyCh = getChar();
@@ -811,12 +840,13 @@ uint CppParser::getToken()
metAster = false;
}
yyWord.resize(ptr - (ushort *)yyWord.unicode() - 2);
+ processComment();
yyCh = getChar();
}
- return Tok_Comment;
+ break;
case '"': {
- ushort *ptr = (ushort *)yyWord.unicode() + yyWord.length();
+ ushort *ptr = (ushort *)yyWord.unicode();
yyCh = getChar();
while (yyCh != EOF && yyCh != '\n' && yyCh != '"') {
if (yyCh == '\\') {
@@ -1379,6 +1409,7 @@ void CppParser::processInclude(const QString &file, ConversionData &cd, const QS
parser.functionContextUnresolved = functionContextUnresolved;
parser.pendingContext = pendingContext;
parser.setInput(ts, cleanFile);
+ parser.setTranslator(tor);
QStringList stack = includeStack;
stack << cleanFile;
parser.parseInternal(cd, stack, inclusions);
@@ -1411,8 +1442,6 @@ bool CppParser::matchString(QString *s)
bool matches = false;
s->clear();
forever {
- while (yyTok == Tok_Comment)
- yyTok = getToken();
if (yyTok != Tok_String)
return matches;
matches = true;
@@ -1486,7 +1515,7 @@ bool CppParser::matchExpression()
continue;
} else if (yyTok == Tok_Arrow) {
yyTok = getToken();
- } else if (parenlevel == 0) {
+ } else if (parenlevel == 0 || yyTok == Tok_Cancel) {
return false;
}
}
@@ -1567,19 +1596,13 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
{
static QString strColons(QLatin1String("::"));
- QString context;
- QString text;
- QString comment;
- QString extracomment;
- QString msgid;
- QString sourcetext;
- TranslatorMessage::ExtraData extra;
QString prefix;
#ifdef DIAGNOSE_RETRANSLATABILITY
QString functionName;
#endif
int line;
bool yyTokColonSeen = false; // Start of c'tor's initializer list
+ metaExpected = true;
yyWord.reserve(yyInStr.size()); // Rather insane. That's because we do no length checking.
yyInPtr = (const ushort *)yyInStr.unicode();
@@ -1590,8 +1613,10 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
// so they don't confuse our scoping of static initializers.
// we enter the loop by either reading a left bracket or by an
// #else popping the state.
- while (yyBracketDepth)
+ if (yyBracketDepth && yyBraceDepth == namespaceDepths.count()) {
yyTok = getToken();
+ continue;
+ }
//qDebug() << "TOKEN: " << yyTok;
switch (yyTok) {
case Tok_QuotedInclude: {
@@ -1630,7 +1655,6 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
yyTok = getToken();
break;
case Tok_class:
- yyTokColonSeen = false;
/*
Partial support for inlined functions.
*/
@@ -1660,14 +1684,16 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
fct.setValue(text);
yyTok = getToken();
}
- while (yyTok == Tok_Comment)
- yyTok = getToken();
if (yyTok == Tok_Colon) {
// Skip any token until '{' since we might do things wrong if we find
// a '::' token here.
do {
yyTok = getToken();
- } while (yyTok != Tok_LeftBrace && yyTok != Tok_Eof);
+ if (yyTok == Tok_Eof)
+ goto goteof;
+ if (yyTok == Tok_Cancel)
+ goto case_default;
+ } while (yyTok != Tok_LeftBrace);
} else {
if (yyTok != Tok_LeftBrace) {
// Obviously a forward declaration. We skip those, as they
@@ -1695,11 +1721,11 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
prospectiveContext.clear();
pendingContext.clear();
+ metaExpected = true;
yyTok = getToken();
}
break;
case Tok_namespace:
- yyTokColonSeen = false;
yyTok = getToken();
if (yyTok == Tok_Ident) {
text = yyWord;
@@ -1714,6 +1740,7 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
functionContextUnresolved.clear();
prospectiveContext.clear();
pendingContext.clear();
+ metaExpected = true;
yyTok = getToken();
} else if (yyTok == Tok_Equals) {
// e.g. namespace Is = OuterSpace::InnerSpace;
@@ -1737,6 +1764,7 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
} else if (yyTok == Tok_LeftBrace) {
// Anonymous namespace
namespaceDepths.push(namespaces.count());
+ metaExpected = true;
yyTok = getToken();
}
break;
@@ -1794,10 +1822,10 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
comment.clear();
bool plural = false;
- if (match(Tok_RightParen)) {
+ if (yyTok == Tok_RightParen) {
// no comment
} else if (match(Tok_Comma) && matchStringOrNull(&comment)) { //comment
- if (match(Tok_RightParen)) {
+ if (yyTok == Tok_RightParen) {
// ok,
} else if (match(Tok_Comma)) {
plural = true;
@@ -1817,7 +1845,7 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
int idx = functionContext.length();
if (idx < 2) {
yyMsg() << qPrintable(LU::tr("tr() cannot be called without context\n"));
- break;
+ goto case_default;
}
Namespace *fctx;
while (!(fctx = findNamespace(functionContext, idx)->classDef)->hasTrFunctions) {
@@ -1886,6 +1914,8 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
extracomment.clear();
msgid.clear();
extra.clear();
+ metaExpected = false;
+ yyTok = getToken();
break;
case Tok_translateUtf8:
case Tok_translate:
@@ -1902,14 +1932,14 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
{
comment.clear();
bool plural = false;
- if (!match(Tok_RightParen)) {
+ if (yyTok != Tok_RightParen) {
// look for comment
if (match(Tok_Comma) && matchStringOrNull(&comment)) {
- if (!match(Tok_RightParen)) {
+ if (yyTok != Tok_RightParen) {
// look for encoding
if (match(Tok_Comma)) {
if (matchEncoding()) {
- if (!match(Tok_RightParen)) {
+ if (yyTok != Tok_RightParen) {
// look for the plural quantifier,
// this can be a number, an identifier or
// a function call,
@@ -1921,18 +1951,18 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
} else {
// This can be a QTranslator::translate("context",
// "source", "comment", n) plural translation
- if (matchExpression() && match(Tok_RightParen)) {
+ if (matchExpression() && yyTok == Tok_RightParen) {
plural = true;
} else {
- break;
+ goto case_default;
}
}
} else {
- break;
+ goto case_default;
}
}
} else {
- break;
+ goto case_default;
}
}
recordMessage(line, context, text, comment, extracomment, msgid, extra, plural);
@@ -1941,6 +1971,8 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
extracomment.clear();
msgid.clear();
extra.clear();
+ metaExpected = false;
+ yyTok = getToken();
break;
case Tok_trid:
if (!tor)
@@ -1958,6 +1990,7 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
extracomment.clear();
msgid.clear();
extra.clear();
+ metaExpected = false;
break;
case Tok_Q_DECLARE_TR_FUNCTIONS:
if (getMacroArgs()) {
@@ -1981,93 +2014,8 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
if (yyTok == Tok_Ident && !yyParenDepth)
prospectiveContext.clear();
}
+ metaExpected = false;
break;
- case Tok_Comment: {
- if (!tor)
- goto case_default;
- const QChar *ptr = yyWord.unicode();
- if (*ptr == QLatin1Char(':') && ptr[1].isSpace()) {
- yyWord.remove(0, 2);
- extracomment += yyWord;
- extracomment.detach();
- } else if (*ptr == QLatin1Char('=') && ptr[1].isSpace()) {
- yyWord.remove(0, 2);
- msgid = yyWord.simplified();
- msgid.detach();
- } else if (*ptr == QLatin1Char('~') && ptr[1].isSpace()) {
- yyWord.remove(0, 2);
- text = yyWord.trimmed();
- int k = text.indexOf(QLatin1Char(' '));
- if (k > -1)
- extra.insert(text.left(k), text.mid(k + 1).trimmed());
- text.clear();
- } else if (*ptr == QLatin1Char('%') && ptr[1].isSpace()) {
- sourcetext.reserve(sourcetext.length() + yyWord.length() - 2);
- ushort *ptr = (ushort *)sourcetext.data() + sourcetext.length();
- int p = 2, c;
- forever {
- if (p >= yyWord.length())
- break;
- c = yyWord.unicode()[p++].unicode();
- if (isspace(c))
- continue;
- if (c != '"') {
- yyMsg() << qPrintable(LU::tr("Unexpected character in meta string\n"));
- break;
- }
- forever {
- if (p >= yyWord.length()) {
- whoops:
- yyMsg() << qPrintable(LU::tr("Unterminated meta string\n"));
- break;
- }
- c = yyWord.unicode()[p++].unicode();
- if (c == '"')
- break;
- if (c == '\\') {
- if (p >= yyWord.length())
- goto whoops;
- c = yyWord.unicode()[p++].unicode();
- if (c == '\n')
- goto whoops;
- *ptr++ = '\\';
- }
- *ptr++ = c;
- }
- }
- sourcetext.resize(ptr - (ushort *)sourcetext.data());
- } else {
- const ushort *uc = (const ushort *)yyWord.unicode(); // Is zero-terminated
- int idx = 0;
- ushort c;
- while ((c = uc[idx]) == ' ' || c == '\t' || c == '\n')
- ++idx;
- if (!memcmp(uc + idx, MagicComment.unicode(), MagicComment.length() * 2)) {
- idx += MagicComment.length();
- comment = QString::fromRawData(yyWord.unicode() + idx,
- yyWord.length() - idx).simplified();
- int k = comment.indexOf(QLatin1Char(' '));
- if (k == -1) {
- context = comment;
- } else {
- context = comment.left(k);
- comment.remove(0, k + 1);
- TranslatorMessage msg(
- transcode(context), QString(),
- transcode(comment), QString(),
- yyFileName, yyLineNo, QStringList(),
- TranslatorMessage::Finished, false);
- msg.setExtraComment(transcode(extracomment.simplified()));
- extracomment.clear();
- tor->append(msg);
- tor->setExtras(extra);
- extra.clear();
- }
- }
- }
- yyTok = getToken();
- break;
- }
case Tok_Arrow:
yyTok = getToken();
if (yyTok == Tok_tr || yyTok == Tok_trUtf8)
@@ -2110,38 +2058,60 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
msgid.clear();
extra.clear();
}
- yyTokColonSeen = false;
+ metaExpected = true;
yyTok = getToken();
break;
+ case Tok_Access:
+ // Eat access specifiers, so their colons are not mistaken for c'tor initializer list starts
+ do {
+ yyTok = getToken();
+ } while (yyTok == Tok_Access); // Multiple specifiers are possible, e.g. "public slots"
+ metaExpected = true;
+ if (yyTok == Tok_Colon)
+ goto case_default;
+ break;
case Tok_Colon:
- if (!prospectiveContext.isEmpty()
- && yyBraceDepth == namespaceDepths.count() && yyParenDepth == 0)
- pendingContext = prospectiveContext;
- yyTokColonSeen = true;
+ case Tok_Equals:
+ if (yyBraceDepth == namespaceDepths.count() && yyParenDepth == 0) {
+ if (!prospectiveContext.isEmpty()) {
+ pendingContext = prospectiveContext;
+ prospectiveContext.clear();
+ }
+ if (yyTok == Tok_Colon)
+ yyTokColonSeen = true;
+ }
+ metaExpected = true;
yyTok = getToken();
break;
case Tok_LeftBrace:
if (!prospectiveContext.isEmpty()
- && yyBraceDepth == namespaceDepths.count() + 1 && yyParenDepth == 0)
+ && yyBraceDepth == namespaceDepths.count() + 1 && yyParenDepth == 0) {
pendingContext = prospectiveContext;
+ prospectiveContext.clear();
+ }
+ yyTokColonSeen = false;
// fallthrough
+ case Tok_Comma:
case Tok_LeftParen:
+ metaExpected = true;
+ yyTok = getToken();
+ break;
case Tok_RightParen:
- yyTokColonSeen = false;
+ metaExpected = false;
yyTok = getToken();
break;
default:
if (!yyParenDepth)
prospectiveContext.clear();
// fallthrough
- case Tok_Equals: // for static initializers; other cases make no difference
- case Tok_RightBracket: // ignoring indexing; same reason
+ case Tok_RightBracket: // ignoring indexing; for static initializers
case_default:
yyTok = getToken();
break;
}
}
+ goteof:
if (yyBraceDepth != 0)
yyMsg(yyBraceLineNo)
<< qPrintable(LU::tr("Unbalanced opening brace in C++ code"
@@ -2156,6 +2126,93 @@ void CppParser::parseInternal(ConversionData &cd, const QStringList &includeStac
" (or abuse of the C++ preprocessor)\n"));
}
+void CppParser::processComment()
+{
+ if (!tor || !metaExpected)
+ return;
+
+ const QChar *ptr = yyWord.unicode();
+ if (*ptr == QLatin1Char(':') && ptr[1].isSpace()) {
+ yyWord.remove(0, 2);
+ extracomment += yyWord;
+ extracomment.detach();
+ } else if (*ptr == QLatin1Char('=') && ptr[1].isSpace()) {
+ yyWord.remove(0, 2);
+ msgid = yyWord.simplified();
+ msgid.detach();
+ } else if (*ptr == QLatin1Char('~') && ptr[1].isSpace()) {
+ yyWord.remove(0, 2);
+ text = yyWord.trimmed();
+ int k = text.indexOf(QLatin1Char(' '));
+ if (k > -1)
+ extra.insert(text.left(k), text.mid(k + 1).trimmed());
+ text.clear();
+ } else if (*ptr == QLatin1Char('%') && ptr[1].isSpace()) {
+ sourcetext.reserve(sourcetext.length() + yyWord.length() - 2);
+ ushort *ptr = (ushort *)sourcetext.data() + sourcetext.length();
+ int p = 2, c;
+ forever {
+ if (p >= yyWord.length())
+ break;
+ c = yyWord.unicode()[p++].unicode();
+ if (isspace(c))
+ continue;
+ if (c != '"') {
+ yyMsg() << qPrintable(LU::tr("Unexpected character in meta string\n"));
+ break;
+ }
+ forever {
+ if (p >= yyWord.length()) {
+ whoops:
+ yyMsg() << qPrintable(LU::tr("Unterminated meta string\n"));
+ break;
+ }
+ c = yyWord.unicode()[p++].unicode();
+ if (c == '"')
+ break;
+ if (c == '\\') {
+ if (p >= yyWord.length())
+ goto whoops;
+ c = yyWord.unicode()[p++].unicode();
+ if (c == '\n')
+ goto whoops;
+ *ptr++ = '\\';
+ }
+ *ptr++ = c;
+ }
+ }
+ sourcetext.resize(ptr - (ushort *)sourcetext.data());
+ } else {
+ const ushort *uc = (const ushort *)yyWord.unicode(); // Is zero-terminated
+ int idx = 0;
+ ushort c;
+ while ((c = uc[idx]) == ' ' || c == '\t' || c == '\n')
+ ++idx;
+ if (!memcmp(uc + idx, MagicComment.unicode(), MagicComment.length() * 2)) {
+ idx += MagicComment.length();
+ comment = QString::fromRawData(yyWord.unicode() + idx,
+ yyWord.length() - idx).simplified();
+ int k = comment.indexOf(QLatin1Char(' '));
+ if (k == -1) {
+ context = comment;
+ } else {
+ context = comment.left(k);
+ comment.remove(0, k + 1);
+ TranslatorMessage msg(
+ transcode(context), QString(),
+ transcode(comment), QString(),
+ yyFileName, yyLineNo, QStringList(),
+ TranslatorMessage::Finished, false);
+ msg.setExtraComment(transcode(extracomment.simplified()));
+ extracomment.clear();
+ tor->append(msg);
+ tor->setExtras(extra);
+ extra.clear();
+ }
+ }
+ }
+}
+
const ParseResults *CppParser::recordResults(bool isHeader)
{
if (tor) {
@@ -2217,7 +2274,7 @@ void loadCPP(Translator &translator, const QStringList &filenames, ConversionDat
if (!CppFiles::isBlacklisted(filename))
if (const Translator *tor = CppFiles::getTranslator(filename))
foreach (const TranslatorMessage &msg, tor->messages())
- translator.extend(msg);
+ translator.extend(msg, cd);
}
QT_END_NAMESPACE
diff --git a/src/linguist/lupdate/java.cpp b/src/linguist/lupdate/java.cpp
index 210b85458..48055c996 100644
--- a/src/linguist/lupdate/java.cpp
+++ b/src/linguist/lupdate/java.cpp
@@ -456,17 +456,17 @@ static const QString context()
static void recordMessage(
Translator *tor, const QString &context, const QString &text, const QString &comment,
- const QString &extracomment, bool plural)
+ const QString &extracomment, bool plural, ConversionData &cd)
{
TranslatorMessage msg(
context, text, comment, QString(),
yyFileName, yyLineNo, QStringList(),
TranslatorMessage::Unfinished, plural);
msg.setExtraComment(extracomment.simplified());
- tor->extend(msg);
+ tor->extend(msg, cd);
}
-static void parse( Translator *tor )
+static void parse(Translator *tor, ConversionData &cd)
{
QString text;
QString com;
@@ -507,7 +507,7 @@ static void parse( Translator *tor )
}
}
if (!text.isEmpty())
- recordMessage(tor, context(), text, com, extracomment, plural);
+ recordMessage(tor, context(), text, com, extracomment, plural, cd);
}
break;
case Tok_translate:
@@ -536,7 +536,7 @@ static void parse( Translator *tor )
}
}
if (!text.isEmpty())
- recordMessage(tor, contextOverride, text, com, extracomment, plural);
+ recordMessage(tor, contextOverride, text, com, extracomment, plural, cd);
}
}
break;
@@ -630,7 +630,7 @@ bool loadJava(Translator &translator, const QString &filename, ConversionData &c
yyCurLineNo = 1;
yyParenLineNo = 1;
- parse(&translator);
+ parse(&translator, cd);
return true;
}
diff --git a/src/linguist/lupdate/main.cpp b/src/linguist/lupdate/main.cpp
index 9846ea57c..c94b65369 100644
--- a/src/linguist/lupdate/main.cpp
+++ b/src/linguist/lupdate/main.cpp
@@ -458,6 +458,19 @@ static QStringList getSources(const ProFileEvaluator &visitor, const QString &pr
return sourceFiles;
}
+static void excludeProjects(const ProFileEvaluator &visitor, QStringList *subProjects)
+{
+ foreach (const QString &ex, visitor.values(QLatin1String("TR_EXCLUDE"))) {
+ QRegExp rx(ex, Qt::CaseSensitive, QRegExp::Wildcard);
+ for (QStringList::Iterator it = subProjects->begin(); it != subProjects->end(); ) {
+ if (rx.exactMatch(*it))
+ it = subProjects->erase(it);
+ else
+ ++it;
+ }
+ }
+}
+
static void processSources(Translator &fetchedTor,
const QStringList &sourceFiles, ConversionData &cd)
{
@@ -526,9 +539,11 @@ static void processProject(
}
QString proPath = QFileInfo(proFile).path();
if (visitor.templateType() == ProFileEvaluator::TT_Subdirs) {
+ QStringList subProjects = visitor.values(QLatin1String("SUBDIRS"));
+ excludeProjects(visitor, &subProjects);
QStringList subProFiles;
QDir proDir(proPath);
- foreach (const QString &subdir, visitor.values(QLatin1String("SUBDIRS"))) {
+ foreach (const QString &subdir, subProjects) {
QString realdir = visitor.value(subdir + QLatin1String(".subdir"));
if (realdir.isEmpty())
realdir = visitor.value(subdir + QLatin1String(".file"));
@@ -582,7 +597,8 @@ static void processProjects(bool topLevel, bool nestComplain, const QStringList
visitor.setCumulative(true);
visitor.setOutputDir(option->shadowedPath(proFile));
ProFile *pro;
- if (!(pro = parser->parsedProFile(proFile))) {
+ if (!(pro = parser->parsedProFile(proFile, topLevel ? QMakeParser::ParseReportMissing
+ : QMakeParser::ParseDefault))) {
if (topLevel)
*fail = true;
continue;
diff --git a/src/linguist/lupdate/merge.cpp b/src/linguist/lupdate/merge.cpp
index 4130352f4..a7ce3f860 100644
--- a/src/linguist/lupdate/merge.cpp
+++ b/src/linguist/lupdate/merge.cpp
@@ -351,6 +351,7 @@ Translator merge(
if (mvi >= 0)
m.setComment(virginTor.constMessage(mvi).comment());
} else {
+ TranslatorMessage::ExtraData extras;
const TranslatorMessage *mv;
int mvi = virginTor.find(m);
if (mvi < 0) {
@@ -375,39 +376,30 @@ Translator merge(
if (mvi < 0) {
// did not find it in the virgin, mark it as obsolete
goto makeObsolete;
- } else {
- mv = &virginTor.constMessage(mvi);
- // Do not just accept it if its on the same line number,
- // but different source text.
- // Also check if the texts are more or less similar before
- // we consider them to represent the same message...
- if (getSimilarityScore(m.sourceText(), mv->sourceText()) >= textSimilarityThreshold) {
- // It is just slightly modified, assume that it is the same string
-
- // Mark it as unfinished. (Since the source text
- // was changed it might require re-translating...)
- newType = TranslatorMessage::Unfinished;
- ++similarTextHeuristicCount;
- neww++;
-
- outdateSource:
- m.setOldSourceText(m.sourceText());
- m.setSourceText(mv->sourceText());
- const QString &oldpluralsource = m.extra(QLatin1String("po-msgid_plural"));
- if (!oldpluralsource.isEmpty()) {
- m.setExtra(QLatin1String("po-old_msgid_plural"), oldpluralsource);
- m.unsetExtra(QLatin1String("po-msgid_plural"));
- }
- goto copyAttribs; // Update secondary references
- } else {
- // The virgin and vernacular sourceTexts are so
- // different that we could not find it.
- goto makeObsolete;
- }
}
+ mv = &virginTor.constMessage(mvi);
+ // Do not just accept it if its on the same line number,
+ // but different source text.
+ // Also check if the texts are more or less similar before
+ // we consider them to represent the same message...
+ if (getSimilarityScore(m.sourceText(), mv->sourceText()) < textSimilarityThreshold) {
+ // The virgin and vernacular sourceTexts are so different that we could not find it
+ goto makeObsolete;
+ }
+ // It is just slightly modified, assume that it is the same string
+
+ extras = mv->extras();
+
+ // Mark it as unfinished. (Since the source text
+ // was changed it might require re-translating...)
+ newType = TranslatorMessage::Unfinished;
+ ++similarTextHeuristicCount;
+ neww++;
+ goto outdateSource;
}
} else {
mv = &virginTor.message(mvi);
+ extras = mv->extras();
if (!mv->id().isEmpty()
&& (mv->context() != m.context()
|| mv->sourceText() != m.sourceText()
@@ -416,8 +408,14 @@ Translator merge(
newType = TranslatorMessage::Unfinished;
m.setContext(mv->context());
m.setComment(mv->comment());
- if (mv->sourceText() != m.sourceText())
- goto outdateSource;
+ if (mv->sourceText() != m.sourceText()) {
+ outdateSource:
+ m.setOldSourceText(m.sourceText());
+ m.setSourceText(mv->sourceText());
+ const QString &oldpluralsource = m.extra(QLatin1String("po-msgid_plural"));
+ if (!oldpluralsource.isEmpty())
+ extras.insert(QLatin1String("po-old_msgid_plural"), oldpluralsource);
+ }
} else {
switch (m.type()) {
case TranslatorMessage::Finished:
@@ -449,9 +447,9 @@ Translator merge(
// This should also enable us to read a file that does not
// have the <location> element.
// why not use operator=()? Because it overwrites e.g. userData.
- copyAttribs:
m.setReferences(mv->allReferences());
m.setPlural(mv->isPlural());
+ m.setExtras(extras);
m.setExtraComment(mv->extraComment());
m.setId(mv->id());
}
diff --git a/src/linguist/lupdate/qdeclarative.cpp b/src/linguist/lupdate/qdeclarative.cpp
index 3a18b9755..967651675 100644
--- a/src/linguist/lupdate/qdeclarative.cpp
+++ b/src/linguist/lupdate/qdeclarative.cpp
@@ -76,8 +76,9 @@ static QString MagicComment(QLatin1String("TRANSLATOR"));
class FindTrCalls: protected AST::Visitor
{
public:
- FindTrCalls(Engine *engine)
+ FindTrCalls(Engine *engine, ConversionData &cd)
: engine(engine)
+ , m_cd(cd)
{
}
@@ -141,7 +142,7 @@ protected:
msg.setExtraComment(extracomment.simplified());
msg.setId(msgid);
msg.setExtras(extra);
- m_translator->extend(msg);
+ m_translator->extend(msg, m_cd);
consumeComment();
break; }
case TrFunctionAliasManager::Function_qsTranslate:
@@ -186,7 +187,7 @@ protected:
msg.setExtraComment(extracomment.simplified());
msg.setId(msgid);
msg.setExtras(extra);
- m_translator->extend(msg);
+ m_translator->extend(msg, m_cd);
consumeComment();
break; }
case TrFunctionAliasManager::Function_qsTrId:
@@ -216,7 +217,7 @@ protected:
msg.setExtraComment(extracomment.simplified());
msg.setId(id);
msg.setExtras(extra);
- m_translator->extend(msg);
+ m_translator->extend(msg, m_cd);
consumeComment();
break; }
}
@@ -252,6 +253,7 @@ private:
Engine *engine;
Translator *m_translator;
+ ConversionData &m_cd;
QString m_fileName;
QString m_component;
@@ -464,7 +466,15 @@ static bool load(Translator &translator, const QString &filename, ConversionData
return false;
}
- QString code = QTextStream(&file).readAll();
+ QString code;
+ if (!qmlMode) {
+ code = QTextStream(&file).readAll();
+ } else {
+ QTextStream ts(&file);
+ ts.setCodec("UTF-8");
+ ts.setAutoDetectUnicode(true);
+ code = ts.readAll();
+ }
if (! qmlMode) {
// fetch the optional pragma directives for Javascript files.
@@ -492,7 +502,7 @@ static bool load(Translator &translator, const QString &filename, ConversionData
driver.setLexer(&lexer);
if (qmlMode ? parser.parse() : parser.parseProgram()) {
- FindTrCalls trCalls(&driver);
+ FindTrCalls trCalls(&driver, cd);
//find all tr calls in the code
trCalls(&translator, filename, parser.rootNode());
diff --git a/src/linguist/lupdate/ui.cpp b/src/linguist/lupdate/ui.cpp
index 537f0a92b..b796ca2e9 100644
--- a/src/linguist/lupdate/ui.cpp
+++ b/src/linguist/lupdate/ui.cpp
@@ -160,7 +160,7 @@ void UiReader::flush()
m_comment, QString(), m_cd.m_sourceFileName,
m_lineNumber, QStringList());
msg.setExtraComment(m_extracomment);
- m_translator.extend(msg);
+ m_translator.extend(msg, m_cd);
}
m_source.clear();
if (!m_insideStringList) {
diff --git a/src/linguist/shared/qmakeevaluator.cpp b/src/linguist/shared/qmakeevaluator.cpp
index 33befc0f8..eb9e24c3b 100644
--- a/src/linguist/shared/qmakeevaluator.cpp
+++ b/src/linguist/shared/qmakeevaluator.cpp
@@ -1807,7 +1807,7 @@ ProString QMakeEvaluator::first(const ProKey &variableName) const
QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateFile(
const QString &fileName, QMakeHandler::EvalFileType type, LoadFlags flags)
{
- if (ProFile *pro = m_parser->parsedProFile(fileName, true)) {
+ if (ProFile *pro = m_parser->parsedProFile(fileName, QMakeParser::ParseUseCache)) {
m_locationStack.push(m_current);
VisitReturn ok = visitProFile(pro, type, flags);
m_current = m_locationStack.pop();
diff --git a/src/linguist/shared/qmakeparser.cpp b/src/linguist/shared/qmakeparser.cpp
index d4e9e575d..c61375be3 100644
--- a/src/linguist/shared/qmakeparser.cpp
+++ b/src/linguist/shared/qmakeparser.cpp
@@ -150,10 +150,10 @@ QMakeParser::QMakeParser(ProFileCache *cache, QMakeParserHandler *handler)
initialize();
}
-ProFile *QMakeParser::parsedProFile(const QString &fileName, bool cache)
+ProFile *QMakeParser::parsedProFile(const QString &fileName, ParseFlags flags)
{
ProFile *pro;
- if (cache && m_cache) {
+ if ((flags & ParseUseCache) && m_cache) {
ProFileCache::Entry *ent;
#ifdef PROPARSER_THREAD_SAFE
QMutexLocker locker(&m_cache->mutex);
@@ -182,7 +182,7 @@ ProFile *QMakeParser::parsedProFile(const QString &fileName, bool cache)
locker.unlock();
#endif
pro = new ProFile(fileName);
- if (!read(pro)) {
+ if (!read(pro, flags)) {
delete pro;
pro = 0;
} else {
@@ -203,7 +203,7 @@ ProFile *QMakeParser::parsedProFile(const QString &fileName, bool cache)
}
} else {
pro = new ProFile(fileName);
- if (!read(pro)) {
+ if (!read(pro, flags)) {
delete pro;
pro = 0;
}
@@ -228,11 +228,11 @@ void QMakeParser::discardFileFromCache(const QString &fileName)
m_cache->discardFile(fileName);
}
-bool QMakeParser::read(ProFile *pro)
+bool QMakeParser::read(ProFile *pro, ParseFlags flags)
{
QFile file(pro->fileName());
if (!file.open(QIODevice::ReadOnly)) {
- if (m_handler && IoUtils::exists(pro->fileName()))
+ if (m_handler && ((flags & ParseReportMissing) || IoUtils::exists(pro->fileName())))
m_handler->message(QMakeParserHandler::ParserIoError,
fL1S("Cannot read %1: %2").arg(pro->fileName(), file.errorString()));
return false;
diff --git a/src/linguist/shared/qmakeparser.h b/src/linguist/shared/qmakeparser.h
index 8d5c3edf9..e1dd09094 100644
--- a/src/linguist/shared/qmakeparser.h
+++ b/src/linguist/shared/qmakeparser.h
@@ -86,11 +86,18 @@ public:
// Call this from a concurrency-free context
static void initialize();
+ enum ParseFlag {
+ ParseDefault = 0,
+ ParseUseCache = 1,
+ ParseReportMissing = 2
+ };
+ Q_DECLARE_FLAGS(ParseFlags, ParseFlag)
+
QMakeParser(ProFileCache *cache, QMakeParserHandler *handler);
enum SubGrammar { FullGrammar, TestGrammar, ValueGrammar };
// fileName is expected to be absolute and cleanPath()ed.
- ProFile *parsedProFile(const QString &fileName, bool cache = false);
+ ProFile *parsedProFile(const QString &fileName, ParseFlags flags = ParseDefault);
ProFile *parsedProBlock(const QString &contents, const QString &name, int line = 0,
SubGrammar grammar = FullGrammar);
@@ -129,7 +136,7 @@ private:
ushort terminator; // '}' if replace function call is braced, ':' if test function
};
- bool read(ProFile *pro);
+ bool read(ProFile *pro, ParseFlags flags);
bool read(ProFile *pro, const QString &content, int line, SubGrammar grammar);
ALWAYS_INLINE void putTok(ushort *&tokPtr, ushort tok);
@@ -182,6 +189,8 @@ private:
friend class ProFileCache;
};
+Q_DECLARE_OPERATORS_FOR_FLAGS(QMakeParser::ParseFlags)
+
class QMAKE_EXPORT ProFileCache
{
public:
diff --git a/src/linguist/shared/translator.cpp b/src/linguist/shared/translator.cpp
index 4bb88341e..d4de8192c 100644
--- a/src/linguist/shared/translator.cpp
+++ b/src/linguist/shared/translator.cpp
@@ -137,19 +137,54 @@ void Translator::replaceSorted(const TranslatorMessage &msg)
}
}
-void Translator::extend(const TranslatorMessage &msg)
+static QString elidedId(const QString &id, int len)
+{
+ return id.length() <= len ? id : id.left(len - 5) + QLatin1String("[...]");
+}
+
+static QString makeMsgId(const TranslatorMessage &msg)
+{
+ QString id = msg.context() + QLatin1String("//") + elidedId(msg.sourceText(), 100);
+ if (!msg.comment().isEmpty())
+ id += QLatin1String("//") + elidedId(msg.comment(), 30);
+ return id;
+}
+
+void Translator::extend(const TranslatorMessage &msg, ConversionData &cd)
{
int index = find(msg);
if (index == -1) {
append(msg);
} else {
TranslatorMessage &emsg = m_messages[index];
+ if (emsg.sourceText().isEmpty()) {
+ emsg.setSourceText(msg.sourceText());
+ } else if (!msg.sourceText().isEmpty() && emsg.sourceText() != msg.sourceText()) {
+ cd.appendError(QString::fromLatin1("Contradicting source strings for message with id '%1'.")
+ .arg(emsg.id()));
+ return;
+ }
+ if (emsg.extras().isEmpty()) {
+ emsg.setExtras(msg.extras());
+ } else if (!msg.extras().isEmpty() && emsg.extras() != msg.extras()) {
+ cd.appendError(QString::fromLatin1("Contradicting meta data for for %1.")
+ .arg(!emsg.id().isEmpty()
+ ? QString::fromLatin1("message with id '%1'").arg(emsg.id())
+ : QString::fromLatin1("message '%1'").arg(makeMsgId(msg))));
+ return;
+ }
emsg.addReferenceUniq(msg.fileName(), msg.lineNumber());
if (!msg.extraComment().isEmpty()) {
QString cmt = emsg.extraComment();
- if (!cmt.isEmpty())
- cmt.append(QLatin1String("\n----------\n"));
- cmt.append(msg.extraComment());
+ if (!cmt.isEmpty()) {
+ QStringList cmts = cmt.split(QLatin1String("\n----------\n"));
+ if (!cmts.contains(msg.extraComment())) {
+ cmts.append(msg.extraComment());
+ cmt = cmts.join(QLatin1String("\n----------\n"));
+ }
+ } else {
+ cmt = msg.extraComment();
+ }
emsg.setExtraComment(cmt);
}
}
diff --git a/src/linguist/shared/translator.h b/src/linguist/shared/translator.h
index e0820b047..3d521ac83 100644
--- a/src/linguist/shared/translator.h
+++ b/src/linguist/shared/translator.h
@@ -134,7 +134,7 @@ public:
int find(const QString &context) const;
void replaceSorted(const TranslatorMessage &msg);
- void extend(const TranslatorMessage &msg); // Only for single-location messages
+ void extend(const TranslatorMessage &msg, ConversionData &cd); // Only for single-location messages
void append(const TranslatorMessage &msg);
void appendSorted(const TranslatorMessage &msg);
diff --git a/src/shared/qtpropertybrowser/qtvariantproperty.cpp b/src/shared/qtpropertybrowser/qtvariantproperty.cpp
index 7acbe779e..445ba4932 100644
--- a/src/shared/qtpropertybrowser/qtvariantproperty.cpp
+++ b/src/shared/qtpropertybrowser/qtvariantproperty.cpp
@@ -140,7 +140,6 @@ static QtProperty *wrappedProperty(QtProperty *property)
class QtVariantPropertyPrivate
{
- QtVariantProperty *q_ptr;
public:
QtVariantPropertyPrivate(QtVariantPropertyManager *m) : manager(m) {}
diff --git a/tests/auto/linguist/lconvert/lconvert.pro b/tests/auto/linguist/lconvert/lconvert.pro
index f1761e697..60e674ad4 100644
--- a/tests/auto/linguist/lconvert/lconvert.pro
+++ b/tests/auto/linguist/lconvert/lconvert.pro
@@ -6,5 +6,3 @@ TARGET = tst_lconvert
#HEADERS += testlupdate.h
SOURCES += tst_lconvert.cpp
# testlupdate.cpp
-
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lrelease/lrelease.pro b/tests/auto/linguist/lrelease/lrelease.pro
index 7da0e42b8..ba69b7ff3 100644
--- a/tests/auto/linguist/lrelease/lrelease.pro
+++ b/tests/auto/linguist/lrelease/lrelease.pro
@@ -3,4 +3,3 @@ QT = core testlib
TARGET = tst_lrelease
SOURCES += tst_lrelease.cpp
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lrelease/tst_lrelease.cpp b/tests/auto/linguist/lrelease/tst_lrelease.cpp
index f53eca36d..3542d2573 100644
--- a/tests/auto/linguist/lrelease/tst_lrelease.cpp
+++ b/tests/auto/linguist/lrelease/tst_lrelease.cpp
@@ -141,11 +141,11 @@ void tst_lrelease::translate()
QCOMPARE(QCoreApplication::translate("", "Test", "Empty context"), QString("AAAA"));
// Test plurals
- QString txed = QCoreApplication::translate("Plurals", "There are %n houses", 0, QCoreApplication::UnicodeUTF8, 0);
+ QString txed = QCoreApplication::translate("Plurals", "There are %n houses", 0, 0);
QCOMPARE(QString::fromLatin1("[%1]").arg(txed), QString("[There are 0 houses]"));
- QCOMPARE(QCoreApplication::translate("Plurals", "There are %n houses", 0, QCoreApplication::UnicodeUTF8, 1), QString("There is 1 house"));
- QCOMPARE(QCoreApplication::translate("Plurals", "There are %n houses", 0, QCoreApplication::UnicodeUTF8, 2), QString("There are 2 houses"));
- QCOMPARE(QCoreApplication::translate("Plurals", "There are %n houses", 0, QCoreApplication::UnicodeUTF8, 3), QString("There are 3 houses"));
+ QCOMPARE(QCoreApplication::translate("Plurals", "There are %n houses", 0, 1), QString("There is 1 house"));
+ QCOMPARE(QCoreApplication::translate("Plurals", "There are %n houses", 0, 2), QString("There are 2 houses"));
+ QCOMPARE(QCoreApplication::translate("Plurals", "There are %n houses", 0, 3), QString("There are 3 houses"));
// More plurals
diff --git a/tests/auto/linguist/lupdate/lupdate.pro b/tests/auto/linguist/lupdate/lupdate.pro
index 35339ef73..cf2b854c4 100644
--- a/tests/auto/linguist/lupdate/lupdate.pro
+++ b/tests/auto/linguist/lupdate/lupdate.pro
@@ -4,5 +4,3 @@ QT += testlib
TARGET = tst_lupdate
SOURCES += tst_lupdate.cpp
-
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/backslashes/project.pro b/tests/auto/linguist/lupdate/testdata/good/backslashes/project.pro
index 5761863e1..d4dcda880 100644
--- a/tests/auto/linguist/lupdate/testdata/good/backslashes/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/backslashes/project.pro
@@ -1,4 +1,3 @@
SOURCES += src\\main.cpp
TRANSLATIONS = ts\\project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro
index 3779ef0e7..489e0607d 100644
--- a/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/codecforsrc/project.pro
@@ -4,4 +4,3 @@ CONFIG+= console
TRANSLATIONS = project.ts
CODECFORSRC = utf-8
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/from_subdir/translations/translations.pro b/tests/auto/linguist/lupdate/testdata/good/from_subdir/translations/translations.pro
index 1997e035d..1815c37dc 100644
--- a/tests/auto/linguist/lupdate/testdata/good/from_subdir/translations/translations.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/from_subdir/translations/translations.pro
@@ -5,4 +5,3 @@ SOURCES += main.cpp
HEADERS += main.h
TRANSLATIONS += ../project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/heuristics/project.pro b/tests/auto/linguist/lupdate/testdata/good/heuristics/project.pro
index 7a7ad5ee7..759bea068 100644
--- a/tests/auto/linguist/lupdate/testdata/good/heuristics/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/heuristics/project.pro
@@ -1,4 +1,3 @@
SOURCES = main.cpp
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.pro b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.pro
index 7a7ad5ee7..759bea068 100644
--- a/tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/lacksqobject/project.pro
@@ -1,4 +1,3 @@
SOURCES = main.cpp
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.pro b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.pro
index b7a9f77e5..614985830 100644
--- a/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/merge_ordering/project.pro
@@ -1,4 +1,3 @@
SOURCES += foo.cpp
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.pro b/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.pro
index 9c06a2010..fa56972dd 100644
--- a/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/merge_versions/project.pro
@@ -1,4 +1,3 @@
FORMS += project.ui
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.pro b/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.pro
index 7a7ad5ee7..759bea068 100644
--- a/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/merge_whitespace/project.pro
@@ -1,4 +1,3 @@
SOURCES = main.cpp
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp/finddialog.cpp b/tests/auto/linguist/lupdate/testdata/good/mergecpp/finddialog.cpp
index 78ab97bf9..ae4ac758c 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergecpp/finddialog.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp/finddialog.cpp
@@ -65,7 +65,7 @@ void FindDialog::reset()
tr("%n item(s)", "merge from a finished singular form to an unfinished plural form", 4);
-
+ //~ meta matter
//% "Hello"
qtTrId("xx_hello");
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.pro b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.pro
index 6667df7f4..63f5d66e2 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.pro
@@ -1,4 +1,3 @@
SOURCES += finddialog.cpp
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.before
index 5ef7b23c1..591c95508 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.before
+++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.before
@@ -6,6 +6,7 @@
<location filename="finddialog.cpp" line="70"/>
<source>Hello</source>
<translation>Hallo</translation>
+ <extra-meta>something really clever</extra-meta>
</message>
<message id="xx_world">
<location filename="finddialog.cpp" line="73"/>
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.result
index 49e94ce09..b1000d0aa 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.result
@@ -7,6 +7,7 @@
<location filename="finddialog.cpp" line="70"/>
<source>Hello</source>
<translation>Hallo</translation>
+ <extra-meta>matter</extra-meta>
</message>
<message id="xx_world">
<location filename="finddialog.cpp" line="73"/>
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.pro b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.pro
index 6667df7f4..63f5d66e2 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.pro
@@ -1,4 +1,3 @@
SOURCES += finddialog.cpp
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.pro b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.pro
index 6667df7f4..63f5d66e2 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.pro
@@ -1,4 +1,3 @@
SOURCES += finddialog.cpp
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergeui/project.pro b/tests/auto/linguist/lupdate/testdata/good/mergeui/project.pro
index 9c06a2010..fa56972dd 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergeui/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/mergeui/project.pro
@@ -1,4 +1,3 @@
FORMS += project.ui
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.pro b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.pro
index 9c06a2010..fa56972dd 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/mergeui_obsolete/project.pro
@@ -1,4 +1,3 @@
FORMS += project.ui
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/multiple_locations/finddialog.cpp b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/finddialog.cpp
index 15f3ad464..cd9a64a1f 100644
--- a/tests/auto/linguist/lupdate/testdata/good/multiple_locations/finddialog.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/finddialog.cpp
@@ -39,9 +39,9 @@
**
****************************************************************************/
-QT_TRANSLATE_NOOP("context", "just a message")
+QT_TRANSLATE_NOOP("context", "just a message");
//: This is one comment
-QT_TRANSLATE_NOOP("context", "just a message")
+QT_TRANSLATE_NOOP("context", "just a message");
diff --git a/tests/auto/linguist/lupdate/testdata/good/multiple_locations/main.cpp b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/main.cpp
index b501ff22a..b0fd0cbfe 100644
--- a/tests/auto/linguist/lupdate/testdata/good/multiple_locations/main.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/main.cpp
@@ -43,11 +43,33 @@
//: This is a comment, too.
-QT_TRANSLATE_NOOP("context", "just a message")
+QT_TRANSLATE_NOOP("context", "just a message");
+//: commented
+qtTrId("lollipop");
+//% "this is the source text"
+//~ meta so-meta
+//: even more commented
+qtTrId("lollipop");
+//% "this is contradicting source text"
+qtTrId("lollipop");
+//~ meta too-much-meta
+qtTrId("lollipop");
+
+
+//~ meta so-meta
+QObject::tr("another message", "here with a lot of noise in the comment so it is long enough");
+
+//~ meta too-much-meta
+QObject::tr("another message", "here with a lot of noise in the comment so it is long enough");
+
+
+
+//: commented
+qtTrId("lollipop");
diff --git a/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.pro b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.pro
index 37df00f40..bbabdfba2 100644
--- a/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.pro
@@ -2,4 +2,3 @@ SOURCES += main.cpp
SOURCES += finddialog.cpp
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.ts.result
index c11bbf2b4..4554fc9c2 100644
--- a/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/multiple_locations/project.ts.result
@@ -2,6 +2,30 @@
<!DOCTYPE TS>
<TS version="2.1">
<context>
+ <name></name>
+ <message id="lollipop">
+ <location filename="main.cpp" line="51"/>
+ <location filename="main.cpp" line="56"/>
+ <location filename="main.cpp" line="75"/>
+ <source>this is the source text</source>
+ <extracomment>commented
+----------
+even more commented</extracomment>
+ <translation type="unfinished"></translation>
+ <extra-meta>so-meta</extra-meta>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="main.cpp" line="67"/>
+ <source>another message</source>
+ <comment>here with a lot of noise in the comment so it is long enough</comment>
+ <translation type="unfinished"></translation>
+ <extra-meta>so-meta</extra-meta>
+ </message>
+</context>
+<context>
<name>context</name>
<message>
<location filename="finddialog.cpp" line="42"/>
diff --git a/tests/auto/linguist/lupdate/testdata/good/namespaces/project.pro b/tests/auto/linguist/lupdate/testdata/good/namespaces/project.pro
index 289727904..c96859bdb 100644
--- a/tests/auto/linguist/lupdate/testdata/good/namespaces/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/namespaces/project.pro
@@ -1,4 +1,3 @@
SOURCES += main.cpp
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.pro b/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.pro
index 289727904..c96859bdb 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/parse_special_chars/project.pro
@@ -1,4 +1,3 @@
SOURCES += main.cpp
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.pro
index 7a7ad5ee7..759bea068 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecontexts/project.pro
@@ -1,4 +1,3 @@
SOURCES = main.cpp
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main3.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp/included.cpp
index af27d2d01..a6b1a1826 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main3.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/included.cpp
@@ -3,7 +3,7 @@
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
-** This file is part of the QtCore module of the Qt Toolkit.
+** This file is part of the test suite of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
@@ -39,45 +39,4 @@
**
****************************************************************************/
-// IMPORTANT!!!! If you want to add testdata to this file,
-// always add it to the end in order to not change the linenumbers of translations!!!
-
-// nothing here
-
-// sickness: multi-\
-line c++ comment } (with brace)
-
-#define This is a closing brace } which was ignored
-} // complain here
-
-#define This is another \
- closing brace } which was ignored
-} // complain here
-
-#define This is another /* comment in } define */\
- something /* comment )
- spanning {multiple} lines */ \
- closing brace } which was ignored
-} // complain here
-
-#define This is another // comment in } define \
- something } comment
-} // complain here
-
-char somestring[] = "\
- continued\n\
- here and \"quoted\" to activate\n";
-
- NSString *scriptSource = @"\
- on SetupNewMail(theRecipientAddress, theSubject, theContent, theAttachmentPath)\n\
- tell application \"Mail\" to activate\n\
- tell application \"Mail\"\n\
- set theMessage to make new outgoing message with properties {visible:true, subject:theSubject, content:theContent}\n\
- tell theMessage\n\
- make new to recipient at end of to recipients with properties {address:theRecipientAddress}\n\
- end tell\n\
- tell content of theMessage\n\
- make new attachment with properties {file name:theAttachmentPath} at after last paragraph\n\
- end tell\n\
- end tell\n\
- end SetupNewMail\n";
+QObject::tr("message from #included .cpp file");
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp
index 0db9a8350..54781ba9f 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp
@@ -136,7 +136,7 @@ class ForwardDecl;
struct FT_Service_ ## name ## Rec_
-/* removing this comment will break this test */
+
void Dialog2::func3()
{
@@ -191,12 +191,12 @@ class Testing : QObject {
//: extra comment for NOOP
//: which spans multiple lines
-QT_TRANSLATE_NOOP("scope", "string") // 4.4 says the line of this is at the next statement
+QT_TRANSLATE_NOOP("scope", "string") /*: complain & ignore */; // 4.4 says the line of this is at the next statement
//: extra comment for NOOP3
-QT_TRANSLATE_NOOP3_UTF8("scope", "string", "comment") // 4.4 doesn't see this
+QT_TRANSLATE_NOOP3_UTF8("scope", "string", "comment"); // 4.4 doesn't see this
QT_TRANSLATE_NOOP("scope", "string " // this is an interleaved comment
- "continuation on next line")
+ "continuation on next line");
class TestingTake17 : QObject {
@@ -223,7 +223,7 @@ class TestingTake17 : QObject {
//: again an extra comment, this time for id-based NOOP
//% "This is supposed\tto be quoted \" newline\n"
//% "backslashed \\ stuff."
-QT_TRID_NOOP("this_a_id")
+QT_TRID_NOOP("this_a_id");
//~ some thing
//% "This needs to be here. Really."
@@ -343,3 +343,59 @@ void YetMoreFun::funStuff()
}
}
+
+
+
+// QTBUG-29998: tr() macro inside square brackets
+void blubb()
+{
+ QMap<QString, QString> d;
+ d[LotsaFun::tr("bracketed")] = "plain";
+}
+
+
+
+// QTBUG-9276 part 2: QT_TR_NOOP in static member initializers
+class TestClass
+{
+ Q_DECLARE_TR_FUNCTIONS(TestClass);
+
+public:
+ static const char TEST_STRING[];
+};
+
+const char TestClass::TEST_STRING[] = QT_TR_NOOP("Test value");
+
+
+
+// derivation from namespaced class
+class Class42 : public NameSchpase::YetMoreFun, Gui::BaseClass
+{
+ Q_OBJECT
+
+ Class42() :
+ NameSchpase::YetMoreFun(),
+ Gui::BaseClass()
+ {
+ tr("does that make sense?");
+ }
+};
+
+Class42::Class42() :
+ NameSchpase::YetMoreFun(),
+ Gui::BaseClass()
+{
+ tr("and does that?");
+}
+
+
+
+// QTBUG-11866: magic comment parsing is too greedy
+Class42::hello(int something /*= 17 */, QString str = Class42::tr("eyo"))
+{
+}
+
+
+
+// QTBUG-27974: strings from included sources are not collected
+#include "included.cpp"
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.pro
index d0dd914d4..ac5c2846e 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.pro
@@ -5,4 +5,3 @@ SOURCES += excluded.cpp
TR_EXCLUDE = $$PWD/excluded.*
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result
index cf472ff38..9c7d9df6b 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result
@@ -35,6 +35,24 @@ backslashed \ stuff.</source>
</message>
</context>
<context>
+ <name>Class42</name>
+ <message>
+ <location filename="main.cpp" line="380"/>
+ <source>does that make sense?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.cpp" line="388"/>
+ <source>and does that?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="main.cpp" line="394"/>
+ <source>eyo</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>Dialog2</name>
<message numerus="yes">
<location filename="main.cpp" line="70"/>
@@ -147,6 +165,11 @@ backslashed \ stuff.</source>
<source>this is inside operator&lt;&lt;</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="main.cpp" line="353"/>
+ <source>bracketed</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>NameSchpace::YetMoreFun</name>
@@ -228,6 +251,11 @@ backslashed \ stuff.</source>
<source>just QObject</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="included.cpp" line="42"/>
+ <source>message from #included .cpp file</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QTranslator</name>
@@ -287,6 +315,11 @@ backslashed \ stuff.</source>
<comment>TestClass</comment>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="main.cpp" line="367"/>
+ <source>Test value</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Testing</name>
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro
index 7a7ad5ee7..759bea068 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.pro
@@ -1,4 +1,3 @@
SOURCES = main.cpp
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejava/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejava/project.pro
index 3ddaa6737..657b535e2 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsejava/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejava/project.pro
@@ -1,4 +1,3 @@
SOURCES += main.java
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejs/project.pro
index 7d69cb43d..d549039c4 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsejs/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs/project.pro
@@ -1,4 +1,3 @@
SOURCES += main.js
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.pro
index 7d69cb43d..d549039c4 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.pro
@@ -1,4 +1,3 @@
SOURCES += main.js
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.pro
index 7d69cb43d..d549039c4 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.pro
@@ -1,4 +1,3 @@
SOURCES += main.js
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs4/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejs4/project.pro
index 7d69cb43d..d549039c4 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsejs4/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs4/project.pro
@@ -1,4 +1,3 @@
SOURCES += main.js
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejscontexts/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejscontexts/project.pro
index 7d69cb43d..d549039c4 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsejscontexts/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejscontexts/project.pro
@@ -1,4 +1,3 @@
SOURCES += main.js
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqml/project.pro b/tests/auto/linguist/lupdate/testdata/good/parseqml/project.pro
index cc6397936..1040e2227 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parseqml/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/parseqml/project.pro
@@ -1,4 +1,3 @@
SOURCES += main.qml
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqml2/project.pro b/tests/auto/linguist/lupdate/testdata/good/parseqml2/project.pro
index cc6397936..1040e2227 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parseqml2/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/parseqml2/project.pro
@@ -1,4 +1,3 @@
SOURCES += main.qml
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/parseui/project.pro b/tests/auto/linguist/lupdate/testdata/good/parseui/project.pro
index 9c06a2010..fa56972dd 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parseui/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/parseui/project.pro
@@ -1,4 +1,3 @@
FORMS += project.ui
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/prefix/project.pro b/tests/auto/linguist/lupdate/testdata/good/prefix/project.pro
index 7a7ad5ee7..759bea068 100644
--- a/tests/auto/linguist/lupdate/testdata/good/prefix/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/prefix/project.pro
@@ -1,4 +1,3 @@
SOURCES = main.cpp
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/preprocess/project.pro b/tests/auto/linguist/lupdate/testdata/good/preprocess/project.pro
index 289727904..c96859bdb 100644
--- a/tests/auto/linguist/lupdate/testdata/good/preprocess/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/preprocess/project.pro
@@ -1,4 +1,3 @@
SOURCES += main.cpp
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsing/project.pro
index a3d1138ef..a63c4e311 100644
--- a/tests/auto/linguist/lupdate/testdata/good/proparsing/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/proparsing/project.pro
@@ -29,4 +29,3 @@ if (exists($$member($$(PATH), 0))) {
}
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsing2/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsing2/project.pro
index 4553e5912..3dc420858 100644
--- a/tests/auto/linguist/lupdate/testdata/good/proparsing2/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/proparsing2/project.pro
@@ -31,4 +31,3 @@ win32: SOURCES += $$system(type files-cc.txt)
unix: SOURCES += $$system(cat files-cc.txt)
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.pro
index 5401eaa7a..6bfe751f4 100644
--- a/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpaths/project.pro
@@ -3,4 +3,3 @@ SOURCES += file*.cpp filter.cpp non-existing.cpp
include(sub/sub.pri)
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.pro
index 659f27292..5e23538b9 100644
--- a/tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/proparsingpri/project.pro
@@ -7,4 +7,3 @@ include(relativity/relativity.pri)
message($$SOURCES)
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/sub1.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/sub1.pro
index 334a26b92..df18c5a69 100644
--- a/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/sub1.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubdirs/sub1/sub1.pro
@@ -1,4 +1,3 @@
SOURCES += main.cpp
TRANSLATIONS = ../project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/common.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/common.pro
index ec5cb04cd..28dcadcbf 100644
--- a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/common.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/common/common.pro
@@ -1,3 +1 @@
SOURCES += main.cpp
-
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/excluded/excluded.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/excluded/excluded.pro
new file mode 100644
index 000000000..28dcadcbf
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/excluded/excluded.pro
@@ -0,0 +1 @@
+SOURCES += main.cpp
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main2.cpp b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/excluded/main.cpp
index 01055fea8..cc99f9db4 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main2.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/excluded/main.cpp
@@ -3,7 +3,7 @@
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
-** This file is part of the QtCore module of the Qt Toolkit.
+** This file is part of the test suite of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
@@ -39,31 +39,12 @@
**
****************************************************************************/
-// IMPORTANT!!!! If you want to add testdata to this file,
+// IMPORTANT!!!! If you want to add testdata to this file,
// always add it to the end in order to not change the linenumbers of translations!!!
-// nothing here
-// sickness: multi-\
-line c++ comment } (with brace)
+void func1() {
+ QString fake = QApplication::tr("fake", "This message will not be collected");
+}
-#define This is a closing brace } which was ignored
-} // complain here
-#define This is another \
- closing brace } which was ignored
-} // complain here
-
-#define This is another /* comment in } define */\
- something /* comment )
- spanning {multiple} lines */ \
- closing brace } which was ignored
-} // complain here
-
-#define This is another // comment in } define \
- something } comment
-} // complain here
-
-char somestring[] = "\
- continued\n\
- here and \"quoted\" to activate\n";
diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/mac.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/mac.pro
index ba05b4b01..a1863b665 100644
--- a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/mac.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/mac/mac.pro
@@ -1,2 +1 @@
SOURCES += main_mac.cpp
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.pro
index 13f921703..cad99dc61 100644
--- a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/project.pro
@@ -1,3 +1,6 @@
TEMPLATE = subdirs
comm.subdir = common
SUBDIRS = win mac unix comm
+
+SUBDIRS += excluded
+TR_EXCLUDE = excluded
diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/unix.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/unix.pro
index 79594260b..71b1a2252 100644
--- a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/unix.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/unix/unix.pro
@@ -1,2 +1 @@
SOURCES += main_unix.cpp
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/win.pro b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/win.pro
index 05b1742e7..afd719711 100644
--- a/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/win.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/proparsingsubs/win/win.pro
@@ -1,2 +1 @@
SOURCES += main_win.cpp
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/reloutput/project.pro b/tests/auto/linguist/lupdate/testdata/good/reloutput/project.pro
index f80b1d4c9..4e2e6ada7 100644
--- a/tests/auto/linguist/lupdate/testdata/good/reloutput/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/reloutput/project.pro
@@ -1,4 +1,3 @@
SOURCES += main.cpp
TRANSLATIONS = translations/project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.pro b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.pro
index 9c06a2010..fa56972dd 100644
--- a/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.pro
+++ b/tests/auto/linguist/lupdate/testdata/good/textsimilarity/project.pro
@@ -1,4 +1,3 @@
FORMS += project.ui
TRANSLATIONS = project.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/subdir1.pro b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/subdir1.pro
index 55e50d275..28dcadcbf 100644
--- a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/subdir1.pro
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir1/subdir1.pro
@@ -1,2 +1 @@
SOURCES += main.cpp
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/subsub1.pro b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/subsub1.pro
index 55e50d275..28dcadcbf 100644
--- a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/subsub1.pro
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub1/subsub1.pro
@@ -1,2 +1 @@
SOURCES += main.cpp
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro
index 26a954a26..ac525777c 100644
--- a/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_full/subdir2/subsub2/subsub2.pro
@@ -1,4 +1,3 @@
SOURCES += main.cpp
TRANSLATIONS = ../../project_sub.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/subdir1.pro b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/subdir1.pro
index 55e50d275..28dcadcbf 100644
--- a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/subdir1.pro
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir1/subdir1.pro
@@ -1,2 +1 @@
SOURCES += main.cpp
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/subsub1.pro b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/subsub1.pro
index 55e50d275..28dcadcbf 100644
--- a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/subsub1.pro
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub1/subsub1.pro
@@ -1,2 +1 @@
SOURCES += main.cpp
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro
index 26a954a26..ac525777c 100644
--- a/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro
+++ b/tests/auto/linguist/lupdate/testdata/subdirs_part/subdir2/subsub2/subsub2.pro
@@ -1,4 +1,3 @@
SOURCES += main.cpp
TRANSLATIONS = ../../project_sub.ts
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/qhelpgenerator/qhelpgenerator.pro b/tests/auto/qhelpgenerator/qhelpgenerator.pro
index 29b6ba4bb..9134f53b3 100644
--- a/tests/auto/qhelpgenerator/qhelpgenerator.pro
+++ b/tests/auto/qhelpgenerator/qhelpgenerator.pro
@@ -6,4 +6,3 @@ QT += help-private sql testlib
DEFINES += SRCDIR=\\\"$$PWD\\\"
DEFINES += QT_USE_USING_NAMESPACE
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/manual/manual.pro b/tests/manual/manual.pro
new file mode 100644
index 000000000..7d4f86d2f
--- /dev/null
+++ b/tests/manual/manual.pro
@@ -0,0 +1,2 @@
+TEMPLATE = subdirs
+SUBDIRS += uiloader
diff --git a/tests/auto/uiloader/.gitignore b/tests/manual/uiloader/.gitignore
index a4b4e8f02..a4b4e8f02 100644
--- a/tests/auto/uiloader/.gitignore
+++ b/tests/manual/uiloader/.gitignore
diff --git a/tests/auto/uiloader/README.TXT b/tests/manual/uiloader/README.TXT
index cbbf0ff77..cbbf0ff77 100644
--- a/tests/auto/uiloader/README.TXT
+++ b/tests/manual/uiloader/README.TXT
diff --git a/tests/auto/uiloader/WTC0090dca226c8.ini b/tests/manual/uiloader/WTC0090dca226c8.ini
index 5cf6c4fee..5cf6c4fee 100644
--- a/tests/auto/uiloader/WTC0090dca226c8.ini
+++ b/tests/manual/uiloader/WTC0090dca226c8.ini
diff --git a/tests/auto/uiloader/baseline/Dialog_with_Buttons_Bottom.ui b/tests/manual/uiloader/baseline/Dialog_with_Buttons_Bottom.ui
index 18d31ab91..18d31ab91 100644
--- a/tests/auto/uiloader/baseline/Dialog_with_Buttons_Bottom.ui
+++ b/tests/manual/uiloader/baseline/Dialog_with_Buttons_Bottom.ui
diff --git a/tests/auto/uiloader/baseline/Dialog_with_Buttons_Right.ui b/tests/manual/uiloader/baseline/Dialog_with_Buttons_Right.ui
index 703d594f4..703d594f4 100644
--- a/tests/auto/uiloader/baseline/Dialog_with_Buttons_Right.ui
+++ b/tests/manual/uiloader/baseline/Dialog_with_Buttons_Right.ui
diff --git a/tests/auto/uiloader/baseline/Dialog_without_Buttons.ui b/tests/manual/uiloader/baseline/Dialog_without_Buttons.ui
index 1be629818..1be629818 100644
--- a/tests/auto/uiloader/baseline/Dialog_without_Buttons.ui
+++ b/tests/manual/uiloader/baseline/Dialog_without_Buttons.ui
diff --git a/tests/auto/uiloader/baseline/Main_Window.ui b/tests/manual/uiloader/baseline/Main_Window.ui
index e324db829..e324db829 100644
--- a/tests/auto/uiloader/baseline/Main_Window.ui
+++ b/tests/manual/uiloader/baseline/Main_Window.ui
diff --git a/tests/auto/uiloader/baseline/Widget.ui b/tests/manual/uiloader/baseline/Widget.ui
index 9f6f60006..9f6f60006 100644
--- a/tests/auto/uiloader/baseline/Widget.ui
+++ b/tests/manual/uiloader/baseline/Widget.ui
diff --git a/tests/auto/uiloader/baseline/addlinkdialog.ui b/tests/manual/uiloader/baseline/addlinkdialog.ui
index 3171159f9..3171159f9 100644
--- a/tests/auto/uiloader/baseline/addlinkdialog.ui
+++ b/tests/manual/uiloader/baseline/addlinkdialog.ui
diff --git a/tests/auto/uiloader/baseline/addtorrentform.ui b/tests/manual/uiloader/baseline/addtorrentform.ui
index 950bb6711..950bb6711 100644
--- a/tests/auto/uiloader/baseline/addtorrentform.ui
+++ b/tests/manual/uiloader/baseline/addtorrentform.ui
diff --git a/tests/auto/uiloader/baseline/authenticationdialog.ui b/tests/manual/uiloader/baseline/authenticationdialog.ui
index 82d908cff..82d908cff 100644
--- a/tests/auto/uiloader/baseline/authenticationdialog.ui
+++ b/tests/manual/uiloader/baseline/authenticationdialog.ui
diff --git a/tests/auto/uiloader/baseline/backside.ui b/tests/manual/uiloader/baseline/backside.ui
index afa488c6f..afa488c6f 100644
--- a/tests/auto/uiloader/baseline/backside.ui
+++ b/tests/manual/uiloader/baseline/backside.ui
diff --git a/tests/auto/uiloader/baseline/batchtranslation.ui b/tests/manual/uiloader/baseline/batchtranslation.ui
index 25a82d773..25a82d773 100644
--- a/tests/auto/uiloader/baseline/batchtranslation.ui
+++ b/tests/manual/uiloader/baseline/batchtranslation.ui
diff --git a/tests/auto/uiloader/baseline/bookmarkdialog.ui b/tests/manual/uiloader/baseline/bookmarkdialog.ui
index 2d6470c54..2d6470c54 100644
--- a/tests/auto/uiloader/baseline/bookmarkdialog.ui
+++ b/tests/manual/uiloader/baseline/bookmarkdialog.ui
diff --git a/tests/auto/uiloader/baseline/bookwindow.ui b/tests/manual/uiloader/baseline/bookwindow.ui
index 659d32456..659d32456 100644
--- a/tests/auto/uiloader/baseline/bookwindow.ui
+++ b/tests/manual/uiloader/baseline/bookwindow.ui
diff --git a/tests/auto/uiloader/baseline/browserwidget.ui b/tests/manual/uiloader/baseline/browserwidget.ui
index 20946f0ed..20946f0ed 100644
--- a/tests/auto/uiloader/baseline/browserwidget.ui
+++ b/tests/manual/uiloader/baseline/browserwidget.ui
diff --git a/tests/auto/uiloader/baseline/calculator.ui b/tests/manual/uiloader/baseline/calculator.ui
index bb519ba2a..bb519ba2a 100644
--- a/tests/auto/uiloader/baseline/calculator.ui
+++ b/tests/manual/uiloader/baseline/calculator.ui
diff --git a/tests/auto/uiloader/baseline/calculatorform.ui b/tests/manual/uiloader/baseline/calculatorform.ui
index dda0e62dd..dda0e62dd 100644
--- a/tests/auto/uiloader/baseline/calculatorform.ui
+++ b/tests/manual/uiloader/baseline/calculatorform.ui
diff --git a/tests/auto/uiloader/baseline/certificateinfo.ui b/tests/manual/uiloader/baseline/certificateinfo.ui
index 3761fe8f5..3761fe8f5 100644
--- a/tests/auto/uiloader/baseline/certificateinfo.ui
+++ b/tests/manual/uiloader/baseline/certificateinfo.ui
diff --git a/tests/auto/uiloader/baseline/chatdialog.ui b/tests/manual/uiloader/baseline/chatdialog.ui
index c85e0d0f5..c85e0d0f5 100644
--- a/tests/auto/uiloader/baseline/chatdialog.ui
+++ b/tests/manual/uiloader/baseline/chatdialog.ui
diff --git a/tests/auto/uiloader/baseline/chatmainwindow.ui b/tests/manual/uiloader/baseline/chatmainwindow.ui
index 0616dcb13..0616dcb13 100644
--- a/tests/auto/uiloader/baseline/chatmainwindow.ui
+++ b/tests/manual/uiloader/baseline/chatmainwindow.ui
diff --git a/tests/auto/uiloader/baseline/chatsetnickname.ui b/tests/manual/uiloader/baseline/chatsetnickname.ui
index fb9894e09..fb9894e09 100644
--- a/tests/auto/uiloader/baseline/chatsetnickname.ui
+++ b/tests/manual/uiloader/baseline/chatsetnickname.ui
diff --git a/tests/auto/uiloader/baseline/config.ui b/tests/manual/uiloader/baseline/config.ui
index ca116231f..ca116231f 100644
--- a/tests/auto/uiloader/baseline/config.ui
+++ b/tests/manual/uiloader/baseline/config.ui
diff --git a/tests/auto/uiloader/baseline/connectdialog.ui b/tests/manual/uiloader/baseline/connectdialog.ui
index bd062ebaa..bd062ebaa 100644
--- a/tests/auto/uiloader/baseline/connectdialog.ui
+++ b/tests/manual/uiloader/baseline/connectdialog.ui
diff --git a/tests/auto/uiloader/baseline/controller.ui b/tests/manual/uiloader/baseline/controller.ui
index 379015bf3..379015bf3 100644
--- a/tests/auto/uiloader/baseline/controller.ui
+++ b/tests/manual/uiloader/baseline/controller.ui
diff --git a/tests/auto/uiloader/baseline/cookies.ui b/tests/manual/uiloader/baseline/cookies.ui
index c4bccc548..c4bccc548 100644
--- a/tests/auto/uiloader/baseline/cookies.ui
+++ b/tests/manual/uiloader/baseline/cookies.ui
diff --git a/tests/auto/uiloader/baseline/cookiesexceptions.ui b/tests/manual/uiloader/baseline/cookiesexceptions.ui
index 3d9ef6241..3d9ef6241 100644
--- a/tests/auto/uiloader/baseline/cookiesexceptions.ui
+++ b/tests/manual/uiloader/baseline/cookiesexceptions.ui
diff --git a/tests/auto/uiloader/baseline/css_borderimage.ui b/tests/manual/uiloader/baseline/css_borderimage.ui
index 4a59ca2e0..4a59ca2e0 100644
--- a/tests/auto/uiloader/baseline/css_borderimage.ui
+++ b/tests/manual/uiloader/baseline/css_borderimage.ui
diff --git a/tests/auto/uiloader/baseline/css_borderimage_allwidgets.ui b/tests/manual/uiloader/baseline/css_borderimage_allwidgets.ui
index 0ece79a08..0ece79a08 100644
--- a/tests/auto/uiloader/baseline/css_borderimage_allwidgets.ui
+++ b/tests/manual/uiloader/baseline/css_borderimage_allwidgets.ui
diff --git a/tests/auto/uiloader/baseline/css_borderradius_allwidgets.ui b/tests/manual/uiloader/baseline/css_borderradius_allwidgets.ui
index 8c5f57cb1..8c5f57cb1 100644
--- a/tests/auto/uiloader/baseline/css_borderradius_allwidgets.ui
+++ b/tests/manual/uiloader/baseline/css_borderradius_allwidgets.ui
diff --git a/tests/auto/uiloader/baseline/css_buttons_background.ui b/tests/manual/uiloader/baseline/css_buttons_background.ui
index 3d80aeb4b..3d80aeb4b 100644
--- a/tests/auto/uiloader/baseline/css_buttons_background.ui
+++ b/tests/manual/uiloader/baseline/css_buttons_background.ui
diff --git a/tests/auto/uiloader/baseline/css_combobox_background.ui b/tests/manual/uiloader/baseline/css_combobox_background.ui
index 387b37197..387b37197 100644
--- a/tests/auto/uiloader/baseline/css_combobox_background.ui
+++ b/tests/manual/uiloader/baseline/css_combobox_background.ui
diff --git a/tests/auto/uiloader/baseline/css_exemple_coffee.ui b/tests/manual/uiloader/baseline/css_exemple_coffee.ui
index 619f912a9..619f912a9 100644
--- a/tests/auto/uiloader/baseline/css_exemple_coffee.ui
+++ b/tests/manual/uiloader/baseline/css_exemple_coffee.ui
diff --git a/tests/auto/uiloader/baseline/css_exemple_pagefold.ui b/tests/manual/uiloader/baseline/css_exemple_pagefold.ui
index d23fad34c..d23fad34c 100644
--- a/tests/auto/uiloader/baseline/css_exemple_pagefold.ui
+++ b/tests/manual/uiloader/baseline/css_exemple_pagefold.ui
diff --git a/tests/auto/uiloader/baseline/css_exemple_usage.ui b/tests/manual/uiloader/baseline/css_exemple_usage.ui
index 0ddd2ed79..0ddd2ed79 100644
--- a/tests/auto/uiloader/baseline/css_exemple_usage.ui
+++ b/tests/manual/uiloader/baseline/css_exemple_usage.ui
diff --git a/tests/auto/uiloader/baseline/css_frames.ui b/tests/manual/uiloader/baseline/css_frames.ui
index d1397bb1d..d1397bb1d 100644
--- a/tests/auto/uiloader/baseline/css_frames.ui
+++ b/tests/manual/uiloader/baseline/css_frames.ui
diff --git a/tests/auto/uiloader/baseline/css_groupboxes.ui b/tests/manual/uiloader/baseline/css_groupboxes.ui
index 7f5464aa5..7f5464aa5 100644
--- a/tests/auto/uiloader/baseline/css_groupboxes.ui
+++ b/tests/manual/uiloader/baseline/css_groupboxes.ui
diff --git a/tests/auto/uiloader/baseline/css_itemview_task258382.ui b/tests/manual/uiloader/baseline/css_itemview_task258382.ui
index 11c56b4ba..11c56b4ba 100644
--- a/tests/auto/uiloader/baseline/css_itemview_task258382.ui
+++ b/tests/manual/uiloader/baseline/css_itemview_task258382.ui
diff --git a/tests/auto/uiloader/baseline/css_qprogressbar.ui b/tests/manual/uiloader/baseline/css_qprogressbar.ui
index 6b3e2f0e9..6b3e2f0e9 100644
--- a/tests/auto/uiloader/baseline/css_qprogressbar.ui
+++ b/tests/manual/uiloader/baseline/css_qprogressbar.ui
diff --git a/tests/auto/uiloader/baseline/css_qtabwidget.ui b/tests/manual/uiloader/baseline/css_qtabwidget.ui
index 7c2d24f3a..7c2d24f3a 100644
--- a/tests/auto/uiloader/baseline/css_qtabwidget.ui
+++ b/tests/manual/uiloader/baseline/css_qtabwidget.ui
diff --git a/tests/auto/uiloader/baseline/css_qtbug6855.ui b/tests/manual/uiloader/baseline/css_qtbug6855.ui
index 0727f6ba9..0727f6ba9 100644
--- a/tests/auto/uiloader/baseline/css_qtbug6855.ui
+++ b/tests/manual/uiloader/baseline/css_qtbug6855.ui
diff --git a/tests/auto/uiloader/baseline/css_qtbug7737_borderimageradius.ui b/tests/manual/uiloader/baseline/css_qtbug7737_borderimageradius.ui
index 089cb76a1..089cb76a1 100644
--- a/tests/auto/uiloader/baseline/css_qtbug7737_borderimageradius.ui
+++ b/tests/manual/uiloader/baseline/css_qtbug7737_borderimageradius.ui
diff --git a/tests/auto/uiloader/baseline/css_scroll.ui b/tests/manual/uiloader/baseline/css_scroll.ui
index 6ac688604..6ac688604 100644
--- a/tests/auto/uiloader/baseline/css_scroll.ui
+++ b/tests/manual/uiloader/baseline/css_scroll.ui
diff --git a/tests/auto/uiloader/baseline/css_scrollarea_base.ui b/tests/manual/uiloader/baseline/css_scrollarea_base.ui
index 495401f40..495401f40 100644
--- a/tests/auto/uiloader/baseline/css_scrollarea_base.ui
+++ b/tests/manual/uiloader/baseline/css_scrollarea_base.ui
diff --git a/tests/auto/uiloader/baseline/css_splitter.ui b/tests/manual/uiloader/baseline/css_splitter.ui
index 99dbc180a..99dbc180a 100644
--- a/tests/auto/uiloader/baseline/css_splitter.ui
+++ b/tests/manual/uiloader/baseline/css_splitter.ui
diff --git a/tests/auto/uiloader/baseline/css_tab_border.ui b/tests/manual/uiloader/baseline/css_tab_border.ui
index cefb9d8fd..cefb9d8fd 100644
--- a/tests/auto/uiloader/baseline/css_tab_border.ui
+++ b/tests/manual/uiloader/baseline/css_tab_border.ui
diff --git a/tests/auto/uiloader/baseline/css_tab_closebutton.ui b/tests/manual/uiloader/baseline/css_tab_closebutton.ui
index 82bd2b550..82bd2b550 100644
--- a/tests/auto/uiloader/baseline/css_tab_closebutton.ui
+++ b/tests/manual/uiloader/baseline/css_tab_closebutton.ui
diff --git a/tests/auto/uiloader/baseline/css_tab_task213374.ui b/tests/manual/uiloader/baseline/css_tab_task213374.ui
index f3567aede..f3567aede 100644
--- a/tests/auto/uiloader/baseline/css_tab_task213374.ui
+++ b/tests/manual/uiloader/baseline/css_tab_task213374.ui
diff --git a/tests/auto/uiloader/baseline/css_task255849_downarrow.ui b/tests/manual/uiloader/baseline/css_task255849_downarrow.ui
index d3e99b161..d3e99b161 100644
--- a/tests/auto/uiloader/baseline/css_task255849_downarrow.ui
+++ b/tests/manual/uiloader/baseline/css_task255849_downarrow.ui
diff --git a/tests/auto/uiloader/baseline/css_task259226_spinboxes.ui b/tests/manual/uiloader/baseline/css_task259226_spinboxes.ui
index eb9ade316..eb9ade316 100644
--- a/tests/auto/uiloader/baseline/css_task259226_spinboxes.ui
+++ b/tests/manual/uiloader/baseline/css_task259226_spinboxes.ui
diff --git a/tests/auto/uiloader/baseline/default.ui b/tests/manual/uiloader/baseline/default.ui
index 431a40956..431a40956 100644
--- a/tests/auto/uiloader/baseline/default.ui
+++ b/tests/manual/uiloader/baseline/default.ui
diff --git a/tests/auto/uiloader/baseline/dialog.ui b/tests/manual/uiloader/baseline/dialog.ui
index e99d6fb3c..e99d6fb3c 100644
--- a/tests/auto/uiloader/baseline/dialog.ui
+++ b/tests/manual/uiloader/baseline/dialog.ui
diff --git a/tests/auto/uiloader/baseline/downloaditem.ui b/tests/manual/uiloader/baseline/downloaditem.ui
index 4a0a0fd9a..4a0a0fd9a 100644
--- a/tests/auto/uiloader/baseline/downloaditem.ui
+++ b/tests/manual/uiloader/baseline/downloaditem.ui
diff --git a/tests/auto/uiloader/baseline/downloads.ui b/tests/manual/uiloader/baseline/downloads.ui
index a2e256935..a2e256935 100644
--- a/tests/auto/uiloader/baseline/downloads.ui
+++ b/tests/manual/uiloader/baseline/downloads.ui
diff --git a/tests/auto/uiloader/baseline/embeddeddialog.ui b/tests/manual/uiloader/baseline/embeddeddialog.ui
index f967b1008..f967b1008 100644
--- a/tests/auto/uiloader/baseline/embeddeddialog.ui
+++ b/tests/manual/uiloader/baseline/embeddeddialog.ui
diff --git a/tests/auto/uiloader/baseline/filespage.ui b/tests/manual/uiloader/baseline/filespage.ui
index d308b9664..d308b9664 100644
--- a/tests/auto/uiloader/baseline/filespage.ui
+++ b/tests/manual/uiloader/baseline/filespage.ui
diff --git a/tests/auto/uiloader/baseline/filternamedialog.ui b/tests/manual/uiloader/baseline/filternamedialog.ui
index be6f17dfb..be6f17dfb 100644
--- a/tests/auto/uiloader/baseline/filternamedialog.ui
+++ b/tests/manual/uiloader/baseline/filternamedialog.ui
diff --git a/tests/auto/uiloader/baseline/filterpage.ui b/tests/manual/uiloader/baseline/filterpage.ui
index 7cda3d9be..7cda3d9be 100644
--- a/tests/auto/uiloader/baseline/filterpage.ui
+++ b/tests/manual/uiloader/baseline/filterpage.ui
diff --git a/tests/auto/uiloader/baseline/finddialog.ui b/tests/manual/uiloader/baseline/finddialog.ui
index eb73d7574..eb73d7574 100644
--- a/tests/auto/uiloader/baseline/finddialog.ui
+++ b/tests/manual/uiloader/baseline/finddialog.ui
diff --git a/tests/auto/uiloader/baseline/formwindowsettings.ui b/tests/manual/uiloader/baseline/formwindowsettings.ui
index 120d9c487..120d9c487 100644
--- a/tests/auto/uiloader/baseline/formwindowsettings.ui
+++ b/tests/manual/uiloader/baseline/formwindowsettings.ui
diff --git a/tests/auto/uiloader/baseline/generalpage.ui b/tests/manual/uiloader/baseline/generalpage.ui
index 9c2babb0a..9c2babb0a 100644
--- a/tests/auto/uiloader/baseline/generalpage.ui
+++ b/tests/manual/uiloader/baseline/generalpage.ui
diff --git a/tests/auto/uiloader/baseline/gridpanel.ui b/tests/manual/uiloader/baseline/gridpanel.ui
index adfdd3684..adfdd3684 100644
--- a/tests/auto/uiloader/baseline/gridpanel.ui
+++ b/tests/manual/uiloader/baseline/gridpanel.ui
diff --git a/tests/auto/uiloader/baseline/helpdialog.ui b/tests/manual/uiloader/baseline/helpdialog.ui
index 1c3ef0ac7..1c3ef0ac7 100644
--- a/tests/auto/uiloader/baseline/helpdialog.ui
+++ b/tests/manual/uiloader/baseline/helpdialog.ui
diff --git a/tests/auto/uiloader/baseline/history.ui b/tests/manual/uiloader/baseline/history.ui
index 0944940e7..0944940e7 100644
--- a/tests/auto/uiloader/baseline/history.ui
+++ b/tests/manual/uiloader/baseline/history.ui
diff --git a/tests/auto/uiloader/baseline/identifierpage.ui b/tests/manual/uiloader/baseline/identifierpage.ui
index cd0df7563..cd0df7563 100644
--- a/tests/auto/uiloader/baseline/identifierpage.ui
+++ b/tests/manual/uiloader/baseline/identifierpage.ui
diff --git a/tests/auto/uiloader/baseline/imagedialog.ui b/tests/manual/uiloader/baseline/imagedialog.ui
index 1c5e546f2..1c5e546f2 100644
--- a/tests/auto/uiloader/baseline/imagedialog.ui
+++ b/tests/manual/uiloader/baseline/imagedialog.ui
diff --git a/tests/auto/uiloader/baseline/images/arrow-down.png b/tests/manual/uiloader/baseline/images/arrow-down.png
index 7c9274f30..7c9274f30 100644
--- a/tests/auto/uiloader/baseline/images/arrow-down.png
+++ b/tests/manual/uiloader/baseline/images/arrow-down.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/arrow-up.png b/tests/manual/uiloader/baseline/images/arrow-up.png
index 758a0d1af..758a0d1af 100644
--- a/tests/auto/uiloader/baseline/images/arrow-up.png
+++ b/tests/manual/uiloader/baseline/images/arrow-up.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/borderimage.png b/tests/manual/uiloader/baseline/images/borderimage.png
index 199fc890f..199fc890f 100644
--- a/tests/auto/uiloader/baseline/images/borderimage.png
+++ b/tests/manual/uiloader/baseline/images/borderimage.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/checkbox_checked.png b/tests/manual/uiloader/baseline/images/checkbox_checked.png
index cbf06f651..cbf06f651 100644
--- a/tests/auto/uiloader/baseline/images/checkbox_checked.png
+++ b/tests/manual/uiloader/baseline/images/checkbox_checked.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/checkbox_checked_hover.png b/tests/manual/uiloader/baseline/images/checkbox_checked_hover.png
index fb4d4d3fd..fb4d4d3fd 100644
--- a/tests/auto/uiloader/baseline/images/checkbox_checked_hover.png
+++ b/tests/manual/uiloader/baseline/images/checkbox_checked_hover.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/checkbox_checked_pressed.png b/tests/manual/uiloader/baseline/images/checkbox_checked_pressed.png
index 852fcc030..852fcc030 100644
--- a/tests/auto/uiloader/baseline/images/checkbox_checked_pressed.png
+++ b/tests/manual/uiloader/baseline/images/checkbox_checked_pressed.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/checkbox_unchecked.png b/tests/manual/uiloader/baseline/images/checkbox_unchecked.png
index 5f5465582..5f5465582 100644
--- a/tests/auto/uiloader/baseline/images/checkbox_unchecked.png
+++ b/tests/manual/uiloader/baseline/images/checkbox_unchecked.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/checkbox_unchecked_hover.png b/tests/manual/uiloader/baseline/images/checkbox_unchecked_hover.png
index 687364497..687364497 100644
--- a/tests/auto/uiloader/baseline/images/checkbox_unchecked_hover.png
+++ b/tests/manual/uiloader/baseline/images/checkbox_unchecked_hover.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/checkbox_unchecked_pressed.png b/tests/manual/uiloader/baseline/images/checkbox_unchecked_pressed.png
index 6a768c44d..6a768c44d 100644
--- a/tests/auto/uiloader/baseline/images/checkbox_unchecked_pressed.png
+++ b/tests/manual/uiloader/baseline/images/checkbox_unchecked_pressed.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/down_arrow.png b/tests/manual/uiloader/baseline/images/down_arrow.png
index 85004aeaf..85004aeaf 100644
--- a/tests/auto/uiloader/baseline/images/down_arrow.png
+++ b/tests/manual/uiloader/baseline/images/down_arrow.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/down_arrow_disabled.png b/tests/manual/uiloader/baseline/images/down_arrow_disabled.png
index d9eefed4c..d9eefed4c 100644
--- a/tests/auto/uiloader/baseline/images/down_arrow_disabled.png
+++ b/tests/manual/uiloader/baseline/images/down_arrow_disabled.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/frame.png b/tests/manual/uiloader/baseline/images/frame.png
index 05a600502..05a600502 100644
--- a/tests/auto/uiloader/baseline/images/frame.png
+++ b/tests/manual/uiloader/baseline/images/frame.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/pagefold.png b/tests/manual/uiloader/baseline/images/pagefold.png
index 69be8f2a3..69be8f2a3 100644
--- a/tests/auto/uiloader/baseline/images/pagefold.png
+++ b/tests/manual/uiloader/baseline/images/pagefold.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/pushbutton.png b/tests/manual/uiloader/baseline/images/pushbutton.png
index c7529ba02..c7529ba02 100644
--- a/tests/auto/uiloader/baseline/images/pushbutton.png
+++ b/tests/manual/uiloader/baseline/images/pushbutton.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/pushbutton_hover.png b/tests/manual/uiloader/baseline/images/pushbutton_hover.png
index af0ef9d56..af0ef9d56 100644
--- a/tests/auto/uiloader/baseline/images/pushbutton_hover.png
+++ b/tests/manual/uiloader/baseline/images/pushbutton_hover.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/pushbutton_pressed.png b/tests/manual/uiloader/baseline/images/pushbutton_pressed.png
index f7381f752..f7381f752 100644
--- a/tests/auto/uiloader/baseline/images/pushbutton_pressed.png
+++ b/tests/manual/uiloader/baseline/images/pushbutton_pressed.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/radiobutton_checked.png b/tests/manual/uiloader/baseline/images/radiobutton_checked.png
index 8ab915757..8ab915757 100644
--- a/tests/auto/uiloader/baseline/images/radiobutton_checked.png
+++ b/tests/manual/uiloader/baseline/images/radiobutton_checked.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/radiobutton_checked_hover.png b/tests/manual/uiloader/baseline/images/radiobutton_checked_hover.png
index d68cb009a..d68cb009a 100644
--- a/tests/auto/uiloader/baseline/images/radiobutton_checked_hover.png
+++ b/tests/manual/uiloader/baseline/images/radiobutton_checked_hover.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/radiobutton_checked_pressed.png b/tests/manual/uiloader/baseline/images/radiobutton_checked_pressed.png
index e3cd5a59e..e3cd5a59e 100644
--- a/tests/auto/uiloader/baseline/images/radiobutton_checked_pressed.png
+++ b/tests/manual/uiloader/baseline/images/radiobutton_checked_pressed.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/radiobutton_unchecked.png b/tests/manual/uiloader/baseline/images/radiobutton_unchecked.png
index 321a9a155..321a9a155 100644
--- a/tests/auto/uiloader/baseline/images/radiobutton_unchecked.png
+++ b/tests/manual/uiloader/baseline/images/radiobutton_unchecked.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/radiobutton_unchecked_hover.png b/tests/manual/uiloader/baseline/images/radiobutton_unchecked_hover.png
index 666a3b0bd..666a3b0bd 100644
--- a/tests/auto/uiloader/baseline/images/radiobutton_unchecked_hover.png
+++ b/tests/manual/uiloader/baseline/images/radiobutton_unchecked_hover.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/radiobutton_unchecked_pressed.png b/tests/manual/uiloader/baseline/images/radiobutton_unchecked_pressed.png
index c4b0567aa..c4b0567aa 100644
--- a/tests/auto/uiloader/baseline/images/radiobutton_unchecked_pressed.png
+++ b/tests/manual/uiloader/baseline/images/radiobutton_unchecked_pressed.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/sizegrip.png b/tests/manual/uiloader/baseline/images/sizegrip.png
index 350583aaa..350583aaa 100644
--- a/tests/auto/uiloader/baseline/images/sizegrip.png
+++ b/tests/manual/uiloader/baseline/images/sizegrip.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/spindown.png b/tests/manual/uiloader/baseline/images/spindown.png
index 7ff3c6492..7ff3c6492 100644
--- a/tests/auto/uiloader/baseline/images/spindown.png
+++ b/tests/manual/uiloader/baseline/images/spindown.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/spindown_hover.png b/tests/manual/uiloader/baseline/images/spindown_hover.png
index 1486c4dfe..1486c4dfe 100644
--- a/tests/auto/uiloader/baseline/images/spindown_hover.png
+++ b/tests/manual/uiloader/baseline/images/spindown_hover.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/spindown_off.png b/tests/manual/uiloader/baseline/images/spindown_off.png
index a90ab3f03..a90ab3f03 100644
--- a/tests/auto/uiloader/baseline/images/spindown_off.png
+++ b/tests/manual/uiloader/baseline/images/spindown_off.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/spindown_pressed.png b/tests/manual/uiloader/baseline/images/spindown_pressed.png
index f6271cbde..f6271cbde 100644
--- a/tests/auto/uiloader/baseline/images/spindown_pressed.png
+++ b/tests/manual/uiloader/baseline/images/spindown_pressed.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/spinup.png b/tests/manual/uiloader/baseline/images/spinup.png
index 1069dd00d..1069dd00d 100644
--- a/tests/auto/uiloader/baseline/images/spinup.png
+++ b/tests/manual/uiloader/baseline/images/spinup.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/spinup_hover.png b/tests/manual/uiloader/baseline/images/spinup_hover.png
index 884c8d77c..884c8d77c 100644
--- a/tests/auto/uiloader/baseline/images/spinup_hover.png
+++ b/tests/manual/uiloader/baseline/images/spinup_hover.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/spinup_off.png b/tests/manual/uiloader/baseline/images/spinup_off.png
index 02dad1fb2..02dad1fb2 100644
--- a/tests/auto/uiloader/baseline/images/spinup_off.png
+++ b/tests/manual/uiloader/baseline/images/spinup_off.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/spinup_pressed.png b/tests/manual/uiloader/baseline/images/spinup_pressed.png
index b1843e2a1..b1843e2a1 100644
--- a/tests/auto/uiloader/baseline/images/spinup_pressed.png
+++ b/tests/manual/uiloader/baseline/images/spinup_pressed.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/splitter_horizontal.png b/tests/manual/uiloader/baseline/images/splitter_horizontal.png
index 66107cf54..66107cf54 100644
--- a/tests/auto/uiloader/baseline/images/splitter_horizontal.png
+++ b/tests/manual/uiloader/baseline/images/splitter_horizontal.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/splitter_vertical.png b/tests/manual/uiloader/baseline/images/splitter_vertical.png
index f907c0b57..f907c0b57 100644
--- a/tests/auto/uiloader/baseline/images/splitter_vertical.png
+++ b/tests/manual/uiloader/baseline/images/splitter_vertical.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/up_arrow.png b/tests/manual/uiloader/baseline/images/up_arrow.png
index e7f7ddb3a..e7f7ddb3a 100644
--- a/tests/auto/uiloader/baseline/images/up_arrow.png
+++ b/tests/manual/uiloader/baseline/images/up_arrow.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/images/up_arrow_disabled.png b/tests/manual/uiloader/baseline/images/up_arrow_disabled.png
index 4d2c27770..4d2c27770 100644
--- a/tests/auto/uiloader/baseline/images/up_arrow_disabled.png
+++ b/tests/manual/uiloader/baseline/images/up_arrow_disabled.png
Binary files differ
diff --git a/tests/auto/uiloader/baseline/inputpage.ui b/tests/manual/uiloader/baseline/inputpage.ui
index e7cd3a0fa..e7cd3a0fa 100644
--- a/tests/auto/uiloader/baseline/inputpage.ui
+++ b/tests/manual/uiloader/baseline/inputpage.ui
diff --git a/tests/auto/uiloader/baseline/installdialog.ui b/tests/manual/uiloader/baseline/installdialog.ui
index 21a05da77..21a05da77 100644
--- a/tests/auto/uiloader/baseline/installdialog.ui
+++ b/tests/manual/uiloader/baseline/installdialog.ui
diff --git a/tests/auto/uiloader/baseline/languagesdialog.ui b/tests/manual/uiloader/baseline/languagesdialog.ui
index 93b490e9e..93b490e9e 100644
--- a/tests/auto/uiloader/baseline/languagesdialog.ui
+++ b/tests/manual/uiloader/baseline/languagesdialog.ui
diff --git a/tests/auto/uiloader/baseline/listwidgeteditor.ui b/tests/manual/uiloader/baseline/listwidgeteditor.ui
index d78aebfc5..d78aebfc5 100644
--- a/tests/auto/uiloader/baseline/listwidgeteditor.ui
+++ b/tests/manual/uiloader/baseline/listwidgeteditor.ui
diff --git a/tests/auto/uiloader/baseline/mainwindow.ui b/tests/manual/uiloader/baseline/mainwindow.ui
index f6eda4fdd..f6eda4fdd 100644
--- a/tests/auto/uiloader/baseline/mainwindow.ui
+++ b/tests/manual/uiloader/baseline/mainwindow.ui
diff --git a/tests/auto/uiloader/baseline/mainwindowbase.ui b/tests/manual/uiloader/baseline/mainwindowbase.ui
index d1854c8e7..d1854c8e7 100644
--- a/tests/auto/uiloader/baseline/mainwindowbase.ui
+++ b/tests/manual/uiloader/baseline/mainwindowbase.ui
diff --git a/tests/auto/uiloader/baseline/mydialog.ui b/tests/manual/uiloader/baseline/mydialog.ui
index d765b3076..d765b3076 100644
--- a/tests/auto/uiloader/baseline/mydialog.ui
+++ b/tests/manual/uiloader/baseline/mydialog.ui
diff --git a/tests/auto/uiloader/baseline/myform.ui b/tests/manual/uiloader/baseline/myform.ui
index 00702e860..00702e860 100644
--- a/tests/auto/uiloader/baseline/myform.ui
+++ b/tests/manual/uiloader/baseline/myform.ui
diff --git a/tests/auto/uiloader/baseline/newactiondialog.ui b/tests/manual/uiloader/baseline/newactiondialog.ui
index f44043bc7..f44043bc7 100644
--- a/tests/auto/uiloader/baseline/newactiondialog.ui
+++ b/tests/manual/uiloader/baseline/newactiondialog.ui
diff --git a/tests/auto/uiloader/baseline/newdynamicpropertydialog.ui b/tests/manual/uiloader/baseline/newdynamicpropertydialog.ui
index 2aa91f3e9..2aa91f3e9 100644
--- a/tests/auto/uiloader/baseline/newdynamicpropertydialog.ui
+++ b/tests/manual/uiloader/baseline/newdynamicpropertydialog.ui
diff --git a/tests/auto/uiloader/baseline/newform.ui b/tests/manual/uiloader/baseline/newform.ui
index 6ec5511c2..6ec5511c2 100644
--- a/tests/auto/uiloader/baseline/newform.ui
+++ b/tests/manual/uiloader/baseline/newform.ui
diff --git a/tests/auto/uiloader/baseline/orderdialog.ui b/tests/manual/uiloader/baseline/orderdialog.ui
index 04851fd1a..04851fd1a 100644
--- a/tests/auto/uiloader/baseline/orderdialog.ui
+++ b/tests/manual/uiloader/baseline/orderdialog.ui
diff --git a/tests/auto/uiloader/baseline/outputpage.ui b/tests/manual/uiloader/baseline/outputpage.ui
index 755f81808..755f81808 100644
--- a/tests/auto/uiloader/baseline/outputpage.ui
+++ b/tests/manual/uiloader/baseline/outputpage.ui
diff --git a/tests/auto/uiloader/baseline/pagefold.ui b/tests/manual/uiloader/baseline/pagefold.ui
index 7ae313c33..7ae313c33 100644
--- a/tests/auto/uiloader/baseline/pagefold.ui
+++ b/tests/manual/uiloader/baseline/pagefold.ui
diff --git a/tests/auto/uiloader/baseline/paletteeditor.ui b/tests/manual/uiloader/baseline/paletteeditor.ui
index a164fc589..a164fc589 100644
--- a/tests/auto/uiloader/baseline/paletteeditor.ui
+++ b/tests/manual/uiloader/baseline/paletteeditor.ui
diff --git a/tests/auto/uiloader/baseline/paletteeditoradvancedbase.ui b/tests/manual/uiloader/baseline/paletteeditoradvancedbase.ui
index efc63e5b4..efc63e5b4 100644
--- a/tests/auto/uiloader/baseline/paletteeditoradvancedbase.ui
+++ b/tests/manual/uiloader/baseline/paletteeditoradvancedbase.ui
diff --git a/tests/auto/uiloader/baseline/passworddialog.ui b/tests/manual/uiloader/baseline/passworddialog.ui
index 7c1665867..7c1665867 100644
--- a/tests/auto/uiloader/baseline/passworddialog.ui
+++ b/tests/manual/uiloader/baseline/passworddialog.ui
diff --git a/tests/auto/uiloader/baseline/pathpage.ui b/tests/manual/uiloader/baseline/pathpage.ui
index 89083915d..89083915d 100644
--- a/tests/auto/uiloader/baseline/pathpage.ui
+++ b/tests/manual/uiloader/baseline/pathpage.ui
diff --git a/tests/auto/uiloader/baseline/phrasebookbox.ui b/tests/manual/uiloader/baseline/phrasebookbox.ui
index 34d09d13e..34d09d13e 100644
--- a/tests/auto/uiloader/baseline/phrasebookbox.ui
+++ b/tests/manual/uiloader/baseline/phrasebookbox.ui
diff --git a/tests/auto/uiloader/baseline/plugindialog.ui b/tests/manual/uiloader/baseline/plugindialog.ui
index ca454ca66..ca454ca66 100644
--- a/tests/auto/uiloader/baseline/plugindialog.ui
+++ b/tests/manual/uiloader/baseline/plugindialog.ui
diff --git a/tests/auto/uiloader/baseline/preferencesdialog.ui b/tests/manual/uiloader/baseline/preferencesdialog.ui
index 3092fcb53..3092fcb53 100644
--- a/tests/auto/uiloader/baseline/preferencesdialog.ui
+++ b/tests/manual/uiloader/baseline/preferencesdialog.ui
diff --git a/tests/auto/uiloader/baseline/previewconfigurationwidget.ui b/tests/manual/uiloader/baseline/previewconfigurationwidget.ui
index 2f18766ff..2f18766ff 100644
--- a/tests/auto/uiloader/baseline/previewconfigurationwidget.ui
+++ b/tests/manual/uiloader/baseline/previewconfigurationwidget.ui
diff --git a/tests/auto/uiloader/baseline/previewdialogbase.ui b/tests/manual/uiloader/baseline/previewdialogbase.ui
index 593ee3357..593ee3357 100644
--- a/tests/auto/uiloader/baseline/previewdialogbase.ui
+++ b/tests/manual/uiloader/baseline/previewdialogbase.ui
diff --git a/tests/auto/uiloader/baseline/previewwidget.ui b/tests/manual/uiloader/baseline/previewwidget.ui
index 0f30ed6f7..0f30ed6f7 100644
--- a/tests/auto/uiloader/baseline/previewwidget.ui
+++ b/tests/manual/uiloader/baseline/previewwidget.ui
diff --git a/tests/auto/uiloader/baseline/previewwidgetbase.ui b/tests/manual/uiloader/baseline/previewwidgetbase.ui
index 40035ef09..40035ef09 100644
--- a/tests/auto/uiloader/baseline/previewwidgetbase.ui
+++ b/tests/manual/uiloader/baseline/previewwidgetbase.ui
diff --git a/tests/auto/uiloader/baseline/proxy.ui b/tests/manual/uiloader/baseline/proxy.ui
index 62a8be627..62a8be627 100644
--- a/tests/auto/uiloader/baseline/proxy.ui
+++ b/tests/manual/uiloader/baseline/proxy.ui
diff --git a/tests/auto/uiloader/baseline/qfiledialog.ui b/tests/manual/uiloader/baseline/qfiledialog.ui
index d96e808f0..d96e808f0 100644
--- a/tests/auto/uiloader/baseline/qfiledialog.ui
+++ b/tests/manual/uiloader/baseline/qfiledialog.ui
diff --git a/tests/auto/uiloader/baseline/qpagesetupwidget.ui b/tests/manual/uiloader/baseline/qpagesetupwidget.ui
index ace2ab8f4..ace2ab8f4 100644
--- a/tests/auto/uiloader/baseline/qpagesetupwidget.ui
+++ b/tests/manual/uiloader/baseline/qpagesetupwidget.ui
diff --git a/tests/auto/uiloader/baseline/qprintpropertieswidget.ui b/tests/manual/uiloader/baseline/qprintpropertieswidget.ui
index 26fa09599..26fa09599 100644
--- a/tests/auto/uiloader/baseline/qprintpropertieswidget.ui
+++ b/tests/manual/uiloader/baseline/qprintpropertieswidget.ui
diff --git a/tests/auto/uiloader/baseline/qprintsettingsoutput.ui b/tests/manual/uiloader/baseline/qprintsettingsoutput.ui
index de8f4faee..de8f4faee 100644
--- a/tests/auto/uiloader/baseline/qprintsettingsoutput.ui
+++ b/tests/manual/uiloader/baseline/qprintsettingsoutput.ui
diff --git a/tests/auto/uiloader/baseline/qprintwidget.ui b/tests/manual/uiloader/baseline/qprintwidget.ui
index 8a4f3bde0..8a4f3bde0 100644
--- a/tests/auto/uiloader/baseline/qprintwidget.ui
+++ b/tests/manual/uiloader/baseline/qprintwidget.ui
diff --git a/tests/auto/uiloader/baseline/qsqlconnectiondialog.ui b/tests/manual/uiloader/baseline/qsqlconnectiondialog.ui
index 91a870057..91a870057 100644
--- a/tests/auto/uiloader/baseline/qsqlconnectiondialog.ui
+++ b/tests/manual/uiloader/baseline/qsqlconnectiondialog.ui
diff --git a/tests/auto/uiloader/baseline/qtgradientdialog.ui b/tests/manual/uiloader/baseline/qtgradientdialog.ui
index 487ff806c..487ff806c 100644
--- a/tests/auto/uiloader/baseline/qtgradientdialog.ui
+++ b/tests/manual/uiloader/baseline/qtgradientdialog.ui
diff --git a/tests/auto/uiloader/baseline/qtgradienteditor.ui b/tests/manual/uiloader/baseline/qtgradienteditor.ui
index c149d886b..c149d886b 100644
--- a/tests/auto/uiloader/baseline/qtgradienteditor.ui
+++ b/tests/manual/uiloader/baseline/qtgradienteditor.ui
diff --git a/tests/auto/uiloader/baseline/qtgradientview.ui b/tests/manual/uiloader/baseline/qtgradientview.ui
index af7267ea2..af7267ea2 100644
--- a/tests/auto/uiloader/baseline/qtgradientview.ui
+++ b/tests/manual/uiloader/baseline/qtgradientview.ui
diff --git a/tests/auto/uiloader/baseline/qtgradientviewdialog.ui b/tests/manual/uiloader/baseline/qtgradientviewdialog.ui
index a14ed88d7..a14ed88d7 100644
--- a/tests/auto/uiloader/baseline/qtgradientviewdialog.ui
+++ b/tests/manual/uiloader/baseline/qtgradientviewdialog.ui
diff --git a/tests/auto/uiloader/baseline/qtresourceeditordialog.ui b/tests/manual/uiloader/baseline/qtresourceeditordialog.ui
index 2205da4d5..2205da4d5 100644
--- a/tests/auto/uiloader/baseline/qtresourceeditordialog.ui
+++ b/tests/manual/uiloader/baseline/qtresourceeditordialog.ui
diff --git a/tests/auto/uiloader/baseline/qttoolbardialog.ui b/tests/manual/uiloader/baseline/qttoolbardialog.ui
index c4ad934f8..c4ad934f8 100644
--- a/tests/auto/uiloader/baseline/qttoolbardialog.ui
+++ b/tests/manual/uiloader/baseline/qttoolbardialog.ui
diff --git a/tests/auto/uiloader/baseline/querywidget.ui b/tests/manual/uiloader/baseline/querywidget.ui
index 53fa62227..53fa62227 100644
--- a/tests/auto/uiloader/baseline/querywidget.ui
+++ b/tests/manual/uiloader/baseline/querywidget.ui
diff --git a/tests/auto/uiloader/baseline/remotecontrol.ui b/tests/manual/uiloader/baseline/remotecontrol.ui
index 1cfc7f540..1cfc7f540 100644
--- a/tests/auto/uiloader/baseline/remotecontrol.ui
+++ b/tests/manual/uiloader/baseline/remotecontrol.ui
diff --git a/tests/auto/uiloader/baseline/saveformastemplate.ui b/tests/manual/uiloader/baseline/saveformastemplate.ui
index 6e5510aca..6e5510aca 100644
--- a/tests/auto/uiloader/baseline/saveformastemplate.ui
+++ b/tests/manual/uiloader/baseline/saveformastemplate.ui
diff --git a/tests/auto/uiloader/baseline/settings.ui b/tests/manual/uiloader/baseline/settings.ui
index fcf698ba8..fcf698ba8 100644
--- a/tests/auto/uiloader/baseline/settings.ui
+++ b/tests/manual/uiloader/baseline/settings.ui
diff --git a/tests/auto/uiloader/baseline/signalslotdialog.ui b/tests/manual/uiloader/baseline/signalslotdialog.ui
index 1a8a8d921..1a8a8d921 100644
--- a/tests/auto/uiloader/baseline/signalslotdialog.ui
+++ b/tests/manual/uiloader/baseline/signalslotdialog.ui
diff --git a/tests/auto/uiloader/baseline/sslclient.ui b/tests/manual/uiloader/baseline/sslclient.ui
index 5a2475116..5a2475116 100644
--- a/tests/auto/uiloader/baseline/sslclient.ui
+++ b/tests/manual/uiloader/baseline/sslclient.ui
diff --git a/tests/auto/uiloader/baseline/sslerrors.ui b/tests/manual/uiloader/baseline/sslerrors.ui
index 4aac18cdd..4aac18cdd 100644
--- a/tests/auto/uiloader/baseline/sslerrors.ui
+++ b/tests/manual/uiloader/baseline/sslerrors.ui
diff --git a/tests/auto/uiloader/baseline/statistics.ui b/tests/manual/uiloader/baseline/statistics.ui
index f5ccdb86d..f5ccdb86d 100644
--- a/tests/auto/uiloader/baseline/statistics.ui
+++ b/tests/manual/uiloader/baseline/statistics.ui
diff --git a/tests/auto/uiloader/baseline/stringlisteditor.ui b/tests/manual/uiloader/baseline/stringlisteditor.ui
index b639e31bf..b639e31bf 100644
--- a/tests/auto/uiloader/baseline/stringlisteditor.ui
+++ b/tests/manual/uiloader/baseline/stringlisteditor.ui
diff --git a/tests/auto/uiloader/baseline/stylesheeteditor.ui b/tests/manual/uiloader/baseline/stylesheeteditor.ui
index 34cd7f6d0..34cd7f6d0 100644
--- a/tests/auto/uiloader/baseline/stylesheeteditor.ui
+++ b/tests/manual/uiloader/baseline/stylesheeteditor.ui
diff --git a/tests/auto/uiloader/baseline/tabbedbrowser.ui b/tests/manual/uiloader/baseline/tabbedbrowser.ui
index 177a46ee6..177a46ee6 100644
--- a/tests/auto/uiloader/baseline/tabbedbrowser.ui
+++ b/tests/manual/uiloader/baseline/tabbedbrowser.ui
diff --git a/tests/auto/uiloader/baseline/tablewidgeteditor.ui b/tests/manual/uiloader/baseline/tablewidgeteditor.ui
index dcdaefc8c..dcdaefc8c 100644
--- a/tests/auto/uiloader/baseline/tablewidgeteditor.ui
+++ b/tests/manual/uiloader/baseline/tablewidgeteditor.ui
diff --git a/tests/auto/uiloader/baseline/tetrixwindow.ui b/tests/manual/uiloader/baseline/tetrixwindow.ui
index a13f538aa..a13f538aa 100644
--- a/tests/auto/uiloader/baseline/tetrixwindow.ui
+++ b/tests/manual/uiloader/baseline/tetrixwindow.ui
diff --git a/tests/auto/uiloader/baseline/textfinder.ui b/tests/manual/uiloader/baseline/textfinder.ui
index af05192db..af05192db 100644
--- a/tests/auto/uiloader/baseline/textfinder.ui
+++ b/tests/manual/uiloader/baseline/textfinder.ui
diff --git a/tests/auto/uiloader/baseline/topicchooser.ui b/tests/manual/uiloader/baseline/topicchooser.ui
index d4c90bb4b..d4c90bb4b 100644
--- a/tests/auto/uiloader/baseline/topicchooser.ui
+++ b/tests/manual/uiloader/baseline/topicchooser.ui
diff --git a/tests/auto/uiloader/baseline/translatedialog.ui b/tests/manual/uiloader/baseline/translatedialog.ui
index 60c2151ab..60c2151ab 100644
--- a/tests/auto/uiloader/baseline/translatedialog.ui
+++ b/tests/manual/uiloader/baseline/translatedialog.ui
diff --git a/tests/auto/uiloader/baseline/translationsettings.ui b/tests/manual/uiloader/baseline/translationsettings.ui
index 4bd4be9e0..4bd4be9e0 100644
--- a/tests/auto/uiloader/baseline/translationsettings.ui
+++ b/tests/manual/uiloader/baseline/translationsettings.ui
diff --git a/tests/auto/uiloader/baseline/treewidgeteditor.ui b/tests/manual/uiloader/baseline/treewidgeteditor.ui
index a88396d38..a88396d38 100644
--- a/tests/auto/uiloader/baseline/treewidgeteditor.ui
+++ b/tests/manual/uiloader/baseline/treewidgeteditor.ui
diff --git a/tests/auto/uiloader/baseline/trpreviewtool.ui b/tests/manual/uiloader/baseline/trpreviewtool.ui
index 0c658ce28..0c658ce28 100644
--- a/tests/auto/uiloader/baseline/trpreviewtool.ui
+++ b/tests/manual/uiloader/baseline/trpreviewtool.ui
diff --git a/tests/auto/uiloader/baseline/validators.ui b/tests/manual/uiloader/baseline/validators.ui
index f05b96fbe..f05b96fbe 100644
--- a/tests/auto/uiloader/baseline/validators.ui
+++ b/tests/manual/uiloader/baseline/validators.ui
diff --git a/tests/auto/uiloader/baseline/wateringconfigdialog.ui b/tests/manual/uiloader/baseline/wateringconfigdialog.ui
index a7f5349d7..a7f5349d7 100644
--- a/tests/auto/uiloader/baseline/wateringconfigdialog.ui
+++ b/tests/manual/uiloader/baseline/wateringconfigdialog.ui
diff --git a/tests/auto/uiloader/desert.ini b/tests/manual/uiloader/desert.ini
index 799b22449..799b22449 100644
--- a/tests/auto/uiloader/desert.ini
+++ b/tests/manual/uiloader/desert.ini
diff --git a/tests/auto/uiloader/dole.ini b/tests/manual/uiloader/dole.ini
index 799b22449..799b22449 100644
--- a/tests/auto/uiloader/dole.ini
+++ b/tests/manual/uiloader/dole.ini
diff --git a/tests/auto/uiloader/gravlaks.ini b/tests/manual/uiloader/gravlaks.ini
index 3a11cf2a4..3a11cf2a4 100644
--- a/tests/auto/uiloader/gravlaks.ini
+++ b/tests/manual/uiloader/gravlaks.ini
diff --git a/tests/auto/uiloader/jackychan.ini b/tests/manual/uiloader/jackychan.ini
index 799b22449..799b22449 100644
--- a/tests/auto/uiloader/jackychan.ini
+++ b/tests/manual/uiloader/jackychan.ini
diff --git a/tests/auto/uiloader/jeunehomme.ini b/tests/manual/uiloader/jeunehomme.ini
index 799b22449..799b22449 100644
--- a/tests/auto/uiloader/jeunehomme.ini
+++ b/tests/manual/uiloader/jeunehomme.ini
diff --git a/tests/auto/uiloader/kangaroo.ini b/tests/manual/uiloader/kangaroo.ini
index 799b22449..799b22449 100644
--- a/tests/auto/uiloader/kangaroo.ini
+++ b/tests/manual/uiloader/kangaroo.ini
diff --git a/tests/auto/uiloader/kayak.ini b/tests/manual/uiloader/kayak.ini
index 751a3883f..751a3883f 100644
--- a/tests/auto/uiloader/kayak.ini
+++ b/tests/manual/uiloader/kayak.ini
diff --git a/tests/auto/uiloader/scruffy.ini b/tests/manual/uiloader/scruffy.ini
index 799b22449..799b22449 100644
--- a/tests/auto/uiloader/scruffy.ini
+++ b/tests/manual/uiloader/scruffy.ini
diff --git a/tests/auto/uiloader/troll15.ini b/tests/manual/uiloader/troll15.ini
index 57f5cd826..57f5cd826 100644
--- a/tests/auto/uiloader/troll15.ini
+++ b/tests/manual/uiloader/troll15.ini
diff --git a/tests/manual/uiloader/tst_screenshot/README.TXT b/tests/manual/uiloader/tst_screenshot/README.TXT
new file mode 100644
index 000000000..ae0117098
--- /dev/null
+++ b/tests/manual/uiloader/tst_screenshot/README.TXT
@@ -0,0 +1,13 @@
+This program is called from ../uiloader.
+
+
+./tst_screenshot
+
+ Syntax: ./tst_screenshot <path to *.ui file> [output directory]
+
+ This program takes a *.ui file and an output dir as argument in order to
+ create a screenshot of the widget defined in the ui file.
+
+ The screenshot is saved in the output dir (default current dir), ".png" is
+ appended to the ui file name.
+
diff --git a/tests/manual/uiloader/tst_screenshot/main.cpp b/tests/manual/uiloader/tst_screenshot/main.cpp
new file mode 100644
index 000000000..82f6ed76c
--- /dev/null
+++ b/tests/manual/uiloader/tst_screenshot/main.cpp
@@ -0,0 +1,210 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*
+ * This program takes a *.ui file and an output dir as argument in order to
+ * create a screenshot of the widget defined in the ui file.
+ *
+ * The screenshot is saved in the output dir (default current dir), ".png" is
+ * appended to the ui file name.
+ */
+
+#include <QApplication>
+#include <QWidget>
+#include <QFile>
+#include <QDebug>
+
+#include <QDir>
+
+#include <iostream>
+
+using namespace std;
+
+
+#ifdef Q_WS_QWS
+// we don't compile designer on embedded...
+
+int main(int argc, char **argv)
+{
+ return 0;
+}
+
+
+#else
+
+#include <QUiLoader>
+
+/*
+ * Take the path of an ui file and return appropriate QWidget.
+ */
+
+QWidget* getWidgetFromUiFile(const QString& fileNameUiFile)
+{
+ qDebug() << "\t\t\t...loading ui file" << fileNameUiFile;
+
+ QUiLoader loader;
+ QFile uiFile(fileNameUiFile);
+ if (!uiFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ qDebug("\t\tError: QFile.open() failed.");
+ exit(EXIT_FAILURE);
+ }
+
+ QFileInfo fileInfo(fileNameUiFile);
+ QDir::setCurrent(fileInfo.absolutePath()); //for the stylesheet to find their images
+
+ QWidget *ui = loader.load(&uiFile);
+ if (!ui) {
+ qDebug("\t\tError: Quilodader.load() returned NULL pointer.");
+ exit(EXIT_FAILURE);
+ }
+ uiFile.close();
+
+ return ui;
+}
+
+
+
+/*
+ * Takes the actual screenshot.
+ *
+ * Hint: provide filename without extension, ".png" will be added
+ */
+
+void makeScreenshot(QWidget* widget, const QString& fileName, const QString& pathOutputDir)
+{
+ QFileInfo fileInfo(fileName);
+ QString realFileName = fileInfo.completeBaseName() + "." + fileInfo.suffix() + ".png";
+ QString realPath = pathOutputDir + "/" + realFileName;
+
+
+ //QString realFileName = fileName + ".png";
+ qDebug() << "\t\t\t...Taking screenshot" << fileInfo.absoluteFilePath();
+
+ //widget->show();
+ qApp->processEvents();
+ QImage originalPixmap(widget->size(),QImage::Format_ARGB32);
+ widget->render(&originalPixmap);
+ if ( originalPixmap.isNull() ) {
+ qDebug("\t\tError: QPixmap::grabWidget() returned a NULL QPixmap.");
+ exit(EXIT_FAILURE);
+ }
+ //QString fileName = QDir::currentPath() + "/secondwidget." + format;
+ if ( !originalPixmap.save(realPath, "PNG") ) {
+ qDebug("\t\tError: QPixmap.save() failed.");
+ exit(EXIT_FAILURE);
+ }
+ qDebug() << "\t\t\t...Screenshot saved in" << realPath;
+
+ widget->close();
+}
+
+
+
+/*
+ * Call this if you just want to pass the ui file name and the output dir.
+ */
+
+void createScreenshotFromUiFile(const QString& fileNameUiFile, const QString pathOutputDir)
+{
+ qDebug() << "\t\tCreating screenshot from widget defined in" << fileNameUiFile;
+
+ QWidget* w = getWidgetFromUiFile(fileNameUiFile);
+ makeScreenshot(w, fileNameUiFile, pathOutputDir);
+}
+
+
+
+/*
+ * Start here.
+ */
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+
+ // check for necessary arguments
+ if (argc == 1) {
+ cout << "Syntax: " << argv[0] << " <path to *.ui file> [output directory]" << endl;
+ cout << "" << endl;
+ cout << "Takes a *.ui file and an output dir as argument in order to" << endl;
+ cout << "create a screenshot of the widget defined in the ui file." << endl;
+ cout << "" << endl;
+ cout << "The screenshot is saved in the output dir (default current dir)," << endl;
+ cout << "'.png' is appended to the ui file name." << endl;
+ exit(EXIT_FAILURE);
+ }
+
+
+ // check for *.ui
+ QString fileName = app.arguments().value(1);
+ if ( !fileName.endsWith(".ui") ) {
+ qDebug() << fileName + " is not a *.ui file.";
+ exit(EXIT_FAILURE);
+ }
+
+ // does the file exist?
+ QFile uiFile(fileName);
+ if ( !uiFile.exists() ) {
+ qDebug() << fileName + " does not exist.";
+ exit(EXIT_FAILURE);
+ }
+
+ // check output directory
+ QString pathOutputDir = QDir::currentPath();
+
+ if (argc >= 3 ) {
+ QDir outputDir = app.arguments().value(2);
+ if ( outputDir.exists() ) {
+ pathOutputDir = outputDir.absolutePath();
+ } else {
+ qDebug() << outputDir.absolutePath() + " does not exist or is not a directory.";
+ exit(EXIT_FAILURE);
+ }
+ }
+
+ // take the screenshot
+ createScreenshotFromUiFile(fileName, pathOutputDir);
+
+ app.quit();
+ return 0;
+}
+
+#endif
diff --git a/tests/manual/uiloader/tst_screenshot/tst_screenshot.pro b/tests/manual/uiloader/tst_screenshot/tst_screenshot.pro
new file mode 100644
index 000000000..fc2af03f9
--- /dev/null
+++ b/tests/manual/uiloader/tst_screenshot/tst_screenshot.pro
@@ -0,0 +1,8 @@
+TARGET = tst_screenshot
+TEMPLATE = app
+
+QT += widgets
+SOURCES += main.cpp
+
+!embedded:QT += uitools
+
diff --git a/tests/auto/uiloader/tundra.ini b/tests/manual/uiloader/tundra.ini
index 799b22449..799b22449 100644
--- a/tests/auto/uiloader/tundra.ini
+++ b/tests/manual/uiloader/tundra.ini
diff --git a/tests/auto/uiloader/uiloader.pro b/tests/manual/uiloader/uiloader.pro
index 30ecb2fa1..30ecb2fa1 100644
--- a/tests/auto/uiloader/uiloader.pro
+++ b/tests/manual/uiloader/uiloader.pro
diff --git a/tests/auto/uiloader/uiloader/tst_uiloader.cpp b/tests/manual/uiloader/uiloader/tst_uiloader.cpp
index 4bc92e14c..4bc92e14c 100644
--- a/tests/auto/uiloader/uiloader/tst_uiloader.cpp
+++ b/tests/manual/uiloader/uiloader/tst_uiloader.cpp
diff --git a/tests/auto/uiloader/uiloader/uiloader.cpp b/tests/manual/uiloader/uiloader/uiloader.cpp
index 1e98ce298..3cf9ae282 100644
--- a/tests/auto/uiloader/uiloader/uiloader.cpp
+++ b/tests/manual/uiloader/uiloader/uiloader.cpp
@@ -53,7 +53,6 @@
#include <QString>
#include <QHash>
#include <QFile>
-#include <QFtp>
#include <QObject>
#include <QHostInfo>
#include <QWidget>
@@ -61,6 +60,8 @@
#include <QLibraryInfo>
+#include <private/qurlinfo_p.h>
+#include <private/qftp_p.h>
/*
* Our own QVERIFY since the one from QTest can't be used in non-void functions.
@@ -143,7 +144,7 @@ bool uiLoader::loadConfig(const QString &filePath, QString *errorMessage)
settings.endArray();
output = settings.value(QLatin1String("output")).toString();
- output += QDir::separator() + QLibraryInfo::buildKey() + QDir::separator() + QString( qVersion() );
+ output += QDir::separator() + QString("QLibraryInfo::buildKey()") + QDir::separator() + QString( qVersion() );
ftpUser = settings.value( QLatin1String("ftpUser") ).toString();
ftpPass = settings.value( QLatin1String("ftpPass") ).toString();
ftpHost = settings.value( QLatin1String("ftpHost") ).toString();
@@ -330,7 +331,7 @@ void uiLoader::setupFTP()
// create dirs on ftp server
ftpMkDir( ftpBaseDir );
- ftpBaseDir += "/" + QLibraryInfo::buildKey();
+ ftpBaseDir += "/" + QString("QLibraryInfo::buildKey()");
ftpMkDir( ftpBaseDir );
ftpBaseDir += "/" + QString( qVersion() );
ftpMkDir( ftpBaseDir );
@@ -716,7 +717,7 @@ uiLoader::TestResult uiLoader::runAutoTests(QString *errorMessage)
// SVG needs this widget...
QWidget dummy;
- qDebug() << "Running test on buildkey:" << QLibraryInfo::buildKey() << " qt version:" << qVersion();
+ qDebug() << "Running test on buildkey:" << "QLibraryInfo::buildKey()" << " qt version:" << qVersion();
qDebug() << "Initializing tests...";
// load config
diff --git a/tests/auto/uiloader/uiloader/uiloader.h b/tests/manual/uiloader/uiloader/uiloader.h
index 99f7704ad..95b42c2d5 100644
--- a/tests/auto/uiloader/uiloader/uiloader.h
+++ b/tests/manual/uiloader/uiloader/uiloader.h
@@ -43,10 +43,11 @@
#include <QHash>
#include <QString>
-#include <QUrlInfo>
#include <QList>
#include <QImage>
+#include <private/qurlinfo_p.h>
+
class uiLoader : public QObject
{
Q_OBJECT
diff --git a/tests/auto/uiloader/uiloader/uiloader.pro b/tests/manual/uiloader/uiloader/uiloader.pro
index cc291bcc3..ee6c4878c 100644
--- a/tests/auto/uiloader/uiloader/uiloader.pro
+++ b/tests/manual/uiloader/uiloader/uiloader.pro
@@ -1,5 +1,6 @@
-QT += widgets network testlib
-CONFIG += testcase
+requires(contains(QT_CONFIG,private_tests))
+QT += network network-private testlib
+qtHaveModule(widgets): QT += widgets
TEMPLATE = app
!embedded:QT += uitools
diff --git a/tests/auto/uiloader/wartburg.ini b/tests/manual/uiloader/wartburg.ini
index 751a3883f..751a3883f 100644
--- a/tests/auto/uiloader/wartburg.ini
+++ b/tests/manual/uiloader/wartburg.ini