Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2005 |
Jan
(84) |
Feb
(83) |
Mar
(36) |
Apr
(15) |
May
(250) |
Jun
(81) |
Jul
(29) |
Aug
(62) |
Sep
(22) |
Oct
(13) |
Nov
(62) |
Dec
(30) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(67) |
Feb
(68) |
Mar
(149) |
Apr
(51) |
May
(8) |
Jun
(23) |
Jul
(87) |
Aug
(132) |
Sep
(9) |
Oct
(1) |
Nov
(22) |
Dec
(163) |
2007 |
Jan
(74) |
Feb
(71) |
Mar
(2) |
Apr
(121) |
May
(57) |
Jun
(168) |
Jul
(151) |
Aug
(73) |
Sep
(4) |
Oct
(91) |
Nov
(30) |
Dec
(38) |
2008 |
Jan
(178) |
Feb
(159) |
Mar
(49) |
Apr
(65) |
May
(43) |
Jun
(56) |
Jul
(99) |
Aug
(132) |
Sep
(71) |
Oct
(57) |
Nov
(42) |
Dec
(11) |
2009 |
Jan
(40) |
Feb
(74) |
Mar
(80) |
Apr
(45) |
May
(86) |
Jun
(76) |
Jul
(160) |
Aug
(170) |
Sep
(227) |
Oct
(161) |
Nov
(49) |
Dec
(108) |
2010 |
Jan
(108) |
Feb
(82) |
Mar
(62) |
Apr
(33) |
May
(60) |
Jun
(38) |
Jul
(46) |
Aug
(69) |
Sep
(157) |
Oct
(123) |
Nov
(130) |
Dec
(154) |
2011 |
Jan
(138) |
Feb
(112) |
Mar
(128) |
Apr
(4) |
May
(86) |
Jun
(81) |
Jul
(128) |
Aug
(98) |
Sep
(69) |
Oct
(32) |
Nov
(50) |
Dec
(41) |
2012 |
Jan
(10) |
Feb
(6) |
Mar
(17) |
Apr
(10) |
May
(67) |
Jun
(57) |
Jul
(41) |
Aug
(54) |
Sep
(17) |
Oct
(15) |
Nov
(34) |
Dec
(45) |
2013 |
Jan
(62) |
Feb
(47) |
Mar
(71) |
Apr
(25) |
May
(11) |
Jun
|
Jul
|
Aug
|
Sep
(57) |
Oct
|
Nov
(1) |
Dec
|
2014 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
(1) |
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
|
1
(9) |
2
(6) |
3
(2) |
4
|
5
(2) |
6
(1) |
7
(4) |
8
(1) |
9
(3) |
10
(3) |
11
(1) |
12
|
13
|
14
|
15
(27) |
16
(8) |
17
(7) |
18
(4) |
19
(6) |
20
(12) |
21
|
22
(9) |
23
(4) |
24
(2) |
25
(1) |
26
|
27
(2) |
28
(2) |
29
(7) |
30
(10) |
31
(5) |
|
|
|
|
|
From: <hugin-cvs@li...> - 2011-01-09 17:21:58
|
branch: details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/41621fb36f15 changeset: 4809:41621fb36f15 user: Yuval Levy <yuv@...> date: Sun Jan 09 12:21:18 2011 -0500 description: extracted new strings for translation diffstat: src/translations/bg.po | 1724 +++++++++++++++++---------------- src/translations/ca_ES.po | 1751 +++++++++++++++++---------------- src/translations/cs_CZ.po | 1666 +++++++++++++++++--------------- src/translations/de.po | 1656 +++++++++++++++++--------------- src/translations/en_GB.po | 1832 ++++++++++++++++++----------------- src/translations/es.po | 1739 +++++++++++++++++---------------- src/translations/fi.po | 1692 +++++++++++++++++--------------- src/translations/fr.po | 1675 +++++++++++++++++--------------- src/translations/hu.po | 1670 +++++++++++++++++--------------- src/translations/hugin.pot | 1826 ++++++++++++++++++----------------- src/translations/it.po | 1677 +++++++++++++++++--------------- src/translations/ja.po | 1678 +++++++++++++++++--------------- src/translations/ko.po | 1715 +++++++++++++++++---------------- src/translations/nl.po | 1668 +++++++++++++++++--------------- src/translations/pl.po | 1686 +++++++++++++++++--------------- src/translations/pt_BR.po | 2227 ++++++++++++++++++++++--------------------- src/translations/ru.po | 1682 +++++++++++++++++--------------- src/translations/sk.po | 1693 +++++++++++++++++---------------- src/translations/sl.po | 1717 +++++++++++++++++---------------- src/translations/sv.po | 1687 +++++++++++++++++--------------- src/translations/uk.po | 1749 +++++++++++++++++---------------- src/translations/zh_CN.po | 1640 ++++++++++++++++--------------- src/translations/zh_TW.po | 1633 ++++++++++++++++--------------- 23 files changed, 20640 insertions(+), 19043 deletions(-) diffs (truncated from 79293 to 500 lines): diff -r 8c577b320714 -r 41621fb36f15 src/translations/bg.po --- a/src/translations/bg.po Sun Jan 09 12:05:18 2011 -0500 +++ b/src/translations/bg.po Sun Jan 09 12:21:18 2011 -0500 @@ -6,7 +6,7 @@ "Project-Id-Version: bg\n" "Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?"; "group_id=77506&atid=550441\n" -"POT-Creation-Date: 2010-12-23 13:52-0500\n" +"POT-Creation-Date: 2011-01-09 12:18-0500\n" "PO-Revision-Date: 2008-07-10 10:12+0200\n" "Last-Translator: Svetoslav Stefanov <lfu.project@...>\n" "Language-Team: Bulgarian <bg@...>\n" @@ -19,94 +19,26 @@ "X-Poedit-Language: Bulgarian\n" "X-Poedit-Country: BULGARIA\n" -#: hugin1/base_wx/ImageCache.cpp:539 +#: hugin1/base_wx/huginConfig.cpp:47 hugin1/base_wx/huginConfig.cpp:82 #, c-format -msgid "Loading image %s" -msgstr "Зареждане на изображението %s" - -#: hugin1/base_wx/ImageCache.cpp:683 -#, c-format -msgid "Error reading image: %s" -msgstr "Грешка при четене на изображението: %s" - -#: hugin1/base_wx/ImageCache.cpp:691 -msgid "Cannot load image: " -msgstr "Изображението не може да се зареди: " - -#: hugin1/base_wx/ImageCache.cpp:719 -#, c-format -msgid "Scaling image %s" -msgstr "Мащабиране на изображението %s" - -#: hugin1/base_wx/ImageCache.cpp:820 -#, c-format -msgid "Creating grayscale %s" -msgstr "Създава се изображение %s в нюанс на сивото" - -#: hugin1/base_wx/ImageCache.cpp:838 -#, c-format -msgid "Creating pyramid image for %s, level %d" -msgstr "Създаване на пирамидално изображение за %s, ниво %d" - -#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:160 -#, c-format -msgid "Failed to kill process %ld, error %d: %s" -msgstr "Процесът %ld не беше убит, грешка %d: %s" - -#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:179 -#, fuzzy, c-format -msgid "Error pausing process %ld, code 1" -msgstr "Грешка при отваряне на проекта: " - -#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:196 -#, fuzzy, c-format -msgid "Error pausing process %ld, code 2" -msgstr "Грешка при отваряне на проекта: " - -#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:606 -#: hugin1/ptbatcher/RunStitchFrame.cpp:43 -#: hugin1/stitch_project/hugin_stitch_project.cpp:121 translations/xrc.cpp:33 -#: translations/xrc.cpp:170 translations/xrc.cpp:439 translations/xrc.cpp:508 -#: translations/xrc.cpp:512 translations/xrc.cpp:516 translations/xrc.cpp:610 -#: translations/xrc.cpp:728 translations/xrc.cpp:819 xrc.cpp:33 xrc.cpp:170 -#: xrc.cpp:439 xrc.cpp:508 xrc.cpp:512 xrc.cpp:516 xrc.cpp:610 xrc.cpp:728 -#: xrc.cpp:819 -msgid "Cancel" -msgstr "Отказ" - -#: hugin1/base_wx/MyExternalCmdExecDialog.h:187 -msgid "Command Line Progress" -msgstr "Прогрес на командния ред" - -#: hugin1/base_wx/MyProgressDialog.cpp:36 -msgid "Elapsed time : " -msgstr "Изминало време : " - -#: hugin1/base_wx/MyProgressDialog.h:104 -msgid "Optimizing Panorama" -msgstr "Оптимизиране на панорамата" - -#: hugin1/base_wx/PTWXDlg.cpp:48 hugin1/base_wx/PTWXDlg.cpp:66 -#: hugin1/base_wx/PTWXDlg.cpp:118 translations/xrc.cpp:729 xrc.cpp:729 -msgid "Panorama Tools" -msgstr "Panorama Tools" - -#: hugin1/base_wx/RunStitchPanel.cpp:111 hugin1/base_wx/huginConfig.cpp:57 -#: hugin1/base_wx/huginConfig.cpp:69 -#, c-format -msgid "External program %s not found in the bundle, reverting to system path" -msgstr "Външната програма %s не беше намерена. Връщане към включената в hugin." - -#: hugin1/base_wx/RunStitchPanel.cpp:111 hugin1/base_wx/huginConfig.cpp:47 -#: hugin1/base_wx/huginConfig.cpp:57 hugin1/base_wx/huginConfig.cpp:69 -#: hugin1/base_wx/huginConfig.cpp:82 hugin1/hugin/AssistantPanel.cpp:361 +msgid "" +"External program %s not found as specified in preferences, reverting to " +"bundled version" +msgstr "" +"Външната програма %s, указана в параметрите, не беше намерена. Връщане към " +"включената в hugin." + +#: hugin1/base_wx/huginConfig.cpp:47 hugin1/base_wx/huginConfig.cpp:57 +#: hugin1/base_wx/huginConfig.cpp:69 hugin1/base_wx/huginConfig.cpp:82 +#: hugin1/base_wx/RunStitchPanel.cpp:111 hugin1/hugin/AssistantPanel.cpp:361 #: hugin1/hugin/AssistantPanel.cpp:428 hugin1/hugin/CPEditorPanel.cpp:2174 -#: hugin1/hugin/GLViewer.cpp:128 hugin1/hugin/GLViewer.cpp:138 -#: hugin1/hugin/MainFrame.cpp:629 hugin1/hugin/MainFrame.cpp:879 -#: hugin1/hugin/MainFrame.cpp:1395 hugin1/hugin/MainFrame.cpp:1854 +#: hugin1/hugin/GLViewer.cpp:149 hugin1/hugin/GLViewer.cpp:159 +#: hugin1/hugin/MainFrame.cpp:139 hugin1/hugin/MainFrame.cpp:637 +#: hugin1/hugin/MainFrame.cpp:887 hugin1/hugin/MainFrame.cpp:1403 +#: hugin1/hugin/MainFrame.cpp:1862 #: hugin1/hugin/OptimizePhotometricPanel.cpp:530 #: hugin1/hugin/OptimizePhotometricPanel.cpp:550 -#: hugin1/hugin/PanoPanel.cpp:991 hugin1/hugin/PanoPanel.cpp:1057 +#: hugin1/hugin/PanoPanel.cpp:992 hugin1/hugin/PanoPanel.cpp:1058 #: hugin1/icpfind/AutoCtrlPointCreator.cpp:205 #: hugin1/ptbatcher/BatchFrame.cpp:445 hugin1/ptbatcher/FindPanoDialog.cpp:259 #: hugin1/ptbatcher/ProjectListBox.cpp:171 @@ -114,78 +46,11 @@ msgid "Error" msgstr "Грешка" -#: hugin1/base_wx/RunStitchPanel.cpp:135 hugin1/base_wx/RunStitchPanel.cpp:294 -msgid "Could not open project file:" -msgstr "Проектният файл не може да бъде отворен:" - -#: hugin1/base_wx/RunStitchPanel.cpp:145 hugin1/base_wx/RunStitchPanel.cpp:302 -#: hugin1/nona_gui/nona_gui.cpp:243 hugin1/ptbatcher/ProjectArray.cpp:86 +#: hugin1/base_wx/huginConfig.cpp:57 hugin1/base_wx/huginConfig.cpp:69 +#: hugin1/base_wx/RunStitchPanel.cpp:111 #, c-format -msgid "could not open script : %s" -msgstr "Скриптът не може да се отвори: %s" - -#: hugin1/base_wx/RunStitchPanel.cpp:166 hugin1/base_wx/RunStitchPanel.cpp:310 -#: hugin1/nona_gui/nona_gui.cpp:250 hugin1/ptbatcher/ProjectArray.cpp:109 -#, c-format -msgid "error while parsing panotools script: %s" -msgstr "Грешка при синтактическия разбор на скрипта panotools: %s" - -#: hugin1/base_wx/RunStitchPanel.cpp:205 hugin1/base_wx/RunStitchPanel.cpp:222 -#: hugin1/base_wx/RunStitchPanel.cpp:335 -msgid "Could not create temporary file" -msgstr "Не може да бъде създаден временен файл" - -#: hugin1/base_wx/RunStitchPanel.cpp:257 -msgid "" -"Overwrite existing images?\n" -"\n" -msgstr "" -"Презаписване на съществуващите изображения?\n" -"\n" - -#: hugin1/base_wx/RunStitchPanel.cpp:257 -msgid "Overwrite existing images" -msgstr "Презаписване на съществуващите изображения" - -#: hugin1/base_wx/RunStitchPanel.cpp:272 -#, c-format -msgid "Stitching %s" -msgstr "Събиране на %s" - -#: hugin1/base_wx/RunStitchPanel.cpp:276 -#, c-format -msgid "" -"Error while stitching project\n" -"%s" -msgstr "" -"Грешка при събирането на проекта\n" -"%s" - -#: hugin1/base_wx/RunStitchPanel.cpp:277 hugin1/base_wx/RunStitchPanel.cpp:283 -#: hugin1/stitch_project/hugin_stitch_project.cpp:171 -msgid "Error during stitching" -msgstr "Грешка по време на събирането" - -#: hugin1/base_wx/RunStitchPanel.cpp:354 -#, fuzzy, c-format -msgid "" -"Error while running assistant\n" -"%s" -msgstr "Грешка при синтактическия разбор на скрипта panotools: %s" - -#: hugin1/base_wx/RunStitchPanel.cpp:355 hugin1/base_wx/RunStitchPanel.cpp:363 -#, fuzzy -msgid "Error during running assistant" -msgstr "Грешка по време на събирането" - -#: hugin1/base_wx/huginConfig.cpp:47 hugin1/base_wx/huginConfig.cpp:82 -#, c-format -msgid "" -"External program %s not found as specified in preferences, reverting to " -"bundled version" -msgstr "" -"Външната програма %s, указана в параметрите, не беше намерена. Връщане към " -"включената в hugin." +msgid "External program %s not found in the bundle, reverting to system path" +msgstr "Външната програма %s не беше намерена. Връщане към включената в hugin." #: hugin1/base_wx/huginConfig.cpp:95 hugin1/base_wx/huginConfig.cpp:109 #, fuzzy, c-format @@ -205,15 +70,82 @@ #: hugin1/base_wx/huginConfig.cpp:230 hugin1/base_wx/huginConfig.cpp:235 #: hugin1/base_wx/huginConfig.cpp:240 hugin1/base_wx/huginConfig.cpp:245 #: hugin1/hugin/AssistantPanel.cpp:432 hugin1/hugin/CPDetectorDialog.cpp:121 -#: hugin1/hugin/GLPreviewFrame.cpp:905 hugin1/hugin/GLPreviewFrame.cpp:912 -#: hugin1/hugin/GLPreviewFrame.cpp:919 hugin1/hugin/GLPreviewFrame.cpp:931 -#: hugin1/hugin/GLPreviewFrame.cpp:938 hugin1/hugin/GLPreviewFrame.cpp:945 -#: hugin1/hugin/MainFrame.cpp:625 hugin1/hugin/PreferencesDialog.cpp:842 +#: hugin1/hugin/GLPreviewFrame.cpp:1231 hugin1/hugin/GLPreviewFrame.cpp:1238 +#: hugin1/hugin/GLPreviewFrame.cpp:1245 hugin1/hugin/GLPreviewFrame.cpp:1257 +#: hugin1/hugin/GLPreviewFrame.cpp:1264 hugin1/hugin/GLPreviewFrame.cpp:1271 +#: hugin1/hugin/MainFrame.cpp:633 hugin1/hugin/PreferencesDialog.cpp:842 #: hugin1/ptbatcher/FindPanoDialog.cpp:219 #: hugin1/ptbatcher/FindPanoDialog.cpp:238 msgid "Warning" msgstr "Предупреждение" +#: hugin1/base_wx/ImageCache.cpp:539 +#, c-format +msgid "Loading image %s" +msgstr "Зареждане на изображението %s" + +#: hugin1/base_wx/ImageCache.cpp:683 +#, c-format +msgid "Error reading image: %s" +msgstr "Грешка при четене на изображението: %s" + +#: hugin1/base_wx/ImageCache.cpp:691 +msgid "Cannot load image: " +msgstr "Изображението не може да се зареди: " + +#: hugin1/base_wx/ImageCache.cpp:719 +#, c-format +msgid "Scaling image %s" +msgstr "Мащабиране на изображението %s" + +#: hugin1/base_wx/ImageCache.cpp:820 +#, c-format +msgid "Creating grayscale %s" +msgstr "Създава се изображение %s в нюанс на сивото" + +#: hugin1/base_wx/ImageCache.cpp:838 +#, c-format +msgid "Creating pyramid image for %s, level %d" +msgstr "Създаване на пирамидално изображение за %s, ниво %d" + +#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:160 +#, c-format +msgid "Failed to kill process %ld, error %d: %s" +msgstr "Процесът %ld не беше убит, грешка %d: %s" + +#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:179 +#, fuzzy, c-format +msgid "Error pausing process %ld, code 1" +msgstr "Грешка при отваряне на проекта: " + +#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:196 +#, fuzzy, c-format +msgid "Error pausing process %ld, code 2" +msgstr "Грешка при отваряне на проекта: " + +#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:606 +#: hugin1/ptbatcher/RunStitchFrame.cpp:43 +#: hugin1/stitch_project/hugin_stitch_project.cpp:121 translations/xrc.cpp:33 +#: translations/xrc.cpp:147 translations/xrc.cpp:439 translations/xrc.cpp:507 +#: translations/xrc.cpp:511 translations/xrc.cpp:515 translations/xrc.cpp:609 +#: translations/xrc.cpp:727 translations/xrc.cpp:823 xrc.cpp:33 xrc.cpp:147 +#: xrc.cpp:439 xrc.cpp:507 xrc.cpp:511 xrc.cpp:515 xrc.cpp:609 xrc.cpp:727 +#: xrc.cpp:823 +msgid "Cancel" +msgstr "Отказ" + +#: hugin1/base_wx/MyExternalCmdExecDialog.h:187 +msgid "Command Line Progress" +msgstr "Прогрес на командния ред" + +#: hugin1/base_wx/MyProgressDialog.cpp:36 +msgid "Elapsed time : " +msgstr "Изминало време : " + +#: hugin1/base_wx/MyProgressDialog.h:104 +msgid "Optimizing Panorama" +msgstr "Оптимизиране на панорамата" + #: hugin1/base_wx/platform.h:40 #, fuzzy msgid "" @@ -227,6 +159,75 @@ "PNG;*.bmp;*.BMP;*.gif;*.GIF;*.pnm;*.PNM;*.sun;*.viff;*.hdr|Файлове JPEG (*." "jpg,*.jpeg)|*.jpg;*.JPG;*.jpeg;*.JPEG|Всички файлове (*)|*" +#: hugin1/base_wx/PTWXDlg.cpp:48 hugin1/base_wx/PTWXDlg.cpp:66 +#: hugin1/base_wx/PTWXDlg.cpp:118 translations/xrc.cpp:728 xrc.cpp:728 +msgid "Panorama Tools" +msgstr "Panorama Tools" + +#: hugin1/base_wx/RunStitchPanel.cpp:135 hugin1/base_wx/RunStitchPanel.cpp:294 +msgid "Could not open project file:" +msgstr "Проектният файл не може да бъде отворен:" + +#: hugin1/base_wx/RunStitchPanel.cpp:145 hugin1/base_wx/RunStitchPanel.cpp:302 +#: hugin1/nona_gui/nona_gui.cpp:243 hugin1/ptbatcher/ProjectArray.cpp:86 +#, c-format +msgid "could not open script : %s" +msgstr "Скриптът не може да се отвори: %s" + +#: hugin1/base_wx/RunStitchPanel.cpp:166 hugin1/base_wx/RunStitchPanel.cpp:310 +#: hugin1/nona_gui/nona_gui.cpp:250 hugin1/ptbatcher/ProjectArray.cpp:109 +#, c-format +msgid "error while parsing panotools script: %s" +msgstr "Грешка при синтактическия разбор на скрипта panotools: %s" + +#: hugin1/base_wx/RunStitchPanel.cpp:205 hugin1/base_wx/RunStitchPanel.cpp:222 +#: hugin1/base_wx/RunStitchPanel.cpp:335 +msgid "Could not create temporary file" +msgstr "Не може да бъде създаден временен файл" + +#: hugin1/base_wx/RunStitchPanel.cpp:257 +msgid "" +"Overwrite existing images?\n" +"\n" +msgstr "" +"Презаписване на съществуващите изображения?\n" +"\n" + +#: hugin1/base_wx/RunStitchPanel.cpp:257 +msgid "Overwrite existing images" +msgstr "Презаписване на съществуващите изображения" + +#: hugin1/base_wx/RunStitchPanel.cpp:272 +#, c-format +msgid "Stitching %s" +msgstr "Събиране на %s" + +#: hugin1/base_wx/RunStitchPanel.cpp:276 +#, c-format +msgid "" +"Error while stitching project\n" +"%s" +msgstr "" +"Грешка при събирането на проекта\n" +"%s" + +#: hugin1/base_wx/RunStitchPanel.cpp:277 hugin1/base_wx/RunStitchPanel.cpp:283 +#: hugin1/stitch_project/hugin_stitch_project.cpp:171 +msgid "Error during stitching" +msgstr "Грешка по време на събирането" + +#: hugin1/base_wx/RunStitchPanel.cpp:354 +#, fuzzy, c-format +msgid "" +"Error while running assistant\n" +"%s" +msgstr "Грешка при синтактическия разбор на скрипта panotools: %s" + +#: hugin1/base_wx/RunStitchPanel.cpp:355 hugin1/base_wx/RunStitchPanel.cpp:363 +#, fuzzy +msgid "Error during running assistant" +msgstr "Грешка по време на събирането" + #: hugin1/hugin/AboutDialog.cpp:138 #, fuzzy, c-format msgid "Operating System: %s" @@ -490,8 +491,8 @@ msgstr "Не е открита сходна точка" #: hugin1/hugin/CPEditorPanel.cpp:1069 hugin1/hugin/CPEditorPanel.cpp:1082 -#: hugin1/hugin/GLPreviewFrame.cpp:1816 hugin1/hugin/MainFrame.cpp:508 -#: hugin1/hugin/PanoPanel.cpp:1329 hugin1/hugin/PanoPanel.cpp:1357 +#: hugin1/hugin/GLPreviewFrame.cpp:2262 hugin1/hugin/MainFrame.cpp:516 +#: hugin1/hugin/PanoPanel.cpp:1330 hugin1/hugin/PanoPanel.cpp:1358 #, fuzzy msgid "Hugin" msgstr "Унгарски" @@ -527,8 +528,8 @@ msgstr "Линия %d" #: hugin1/hugin/CPEditorPanel.cpp:1586 hugin1/hugin/CPListFrame.cpp:448 -#: hugin1/hugin/GLPreviewFrame.cpp:376 hugin1/hugin/GLPreviewFrame.cpp:380 -#: hugin1/hugin/PreviewFrame.cpp:231 translations/xrc.cpp:120 xrc.cpp:120 +#: hugin1/hugin/GLPreviewFrame.cpp:531 hugin1/hugin/GLPreviewFrame.cpp:535 +#: hugin1/hugin/PreviewFrame.cpp:231 translations/xrc.cpp:152 xrc.cpp:152 msgid "normal" msgstr "Нормален" @@ -605,7 +606,7 @@ msgid "Loading model file" msgstr "Зареждане на изображението %s" -#: hugin1/hugin/CPEditorPanel.cpp:2228 hugin1/hugin/MainFrame.cpp:1585 +#: hugin1/hugin/CPEditorPanel.cpp:2228 hugin1/hugin/MainFrame.cpp:1593 #, fuzzy, c-format msgid "Removed %d control points" msgstr "Добавени контролни точки: %d" @@ -668,196 +669,232 @@ msgid "Please enter a valid number" msgstr "Въведете валиден номер." -#: hugin1/hugin/GLPreviewFrame.cpp:210 +#: hugin1/hugin/GLPreviewFrame.cpp:271 #, fuzzy msgid "Fast Panorama preview" msgstr "Предварителен преглед" -#: hugin1/hugin/GLPreviewFrame.cpp:239 translations/xrc.cpp:738 -#: translations/xrc.cpp:745 xrc.cpp:738 xrc.cpp:745 +#: hugin1/hugin/GLPreviewFrame.cpp:311 translations/xrc.cpp:737 +#: translations/xrc.cpp:744 xrc.cpp:737 xrc.cpp:744 msgid "Center" msgstr "Централно" -#: hugin1/hugin/GLPreviewFrame.cpp:240 hugin1/hugin/GLPreviewFrame.cpp:242 -#: translations/xrc.cpp:748 xrc.cpp:748 +#: hugin1/hugin/GLPreviewFrame.cpp:312 hugin1/hugin/GLPreviewFrame.cpp:314 +#: translations/xrc.cpp:747 xrc.cpp:747 msgid "Fit" msgstr "Вместване" -#: hugin1/hugin/GLPreviewFrame.cpp:241 translations/xrc.cpp:750 xrc.cpp:750 +#: hugin1/hugin/GLPreviewFrame.cpp:313 translations/xrc.cpp:749 xrc.cpp:749 msgid "Straighten" msgstr "Изравняване" -#: hugin1/hugin/GLPreviewFrame.cpp:243 hugin1/hugin/GLPreviewFrame.cpp:1481 -#: hugin1/hugin/PanoPanel.cpp:945 +#: hugin1/hugin/GLPreviewFrame.cpp:315 hugin1/hugin/GLPreviewFrame.cpp:1913 +#: hugin1/hugin/PanoPanel.cpp:946 #, fuzzy msgid "Autocrop" msgstr "Авто" -#: hugin1/hugin/GLPreviewFrame.cpp:248 hugin1/hugin/PreviewFrame.cpp:132 +#: hugin1/hugin/GLPreviewFrame.cpp:337 hugin1/hugin/PreviewFrame.cpp:132 msgid "displayed images" msgstr "показвани изображения" -#: hugin1/hugin/GLPreviewFrame.cpp:273 translations/xrc.cpp:758 xrc.cpp:758 +#: hugin1/hugin/GLPreviewFrame.cpp:362 translations/xrc.cpp:757 xrc.cpp:757 msgid "All" msgstr "Всички" -#: hugin1/hugin/GLPreviewFrame.cpp:274 translations/xrc.cpp:547 -#: translations/xrc.cpp:552 translations/xrc.cpp:760 xrc.cpp:547 xrc.cpp:552 -#: xrc.cpp:760 +#: hugin1/hugin/GLPreviewFrame.cpp:363 translations/xrc.cpp:546 +#: translations/xrc.cpp:551 translations/xrc.cpp:759 xrc.cpp:546 xrc.cpp:551 +#: xrc.cpp:759 msgid "None" msgstr "Без" -#: hugin1/hugin/GLPreviewFrame.cpp:280 +#: hugin1/hugin/GLPreviewFrame.cpp:372 msgid "Hide" msgstr "" -#: hugin1/hugin/GLPreviewFrame.cpp:305 hugin1/hugin/PreviewFrame.cpp:169 +#: hugin1/hugin/GLPreviewFrame.cpp:414 hugin1/hugin/PreviewFrame.cpp:169 msgid "VFOV" msgstr "VFOV" -#: hugin1/hugin/GLPreviewFrame.cpp:309 hugin1/hugin/PreviewFrame.cpp:173 +#: hugin1/hugin/GLPreviewFrame.cpp:418 hugin1/hugin/PreviewFrame.cpp:173 msgid "drag to change the vertical field of view" msgstr "Издърпайте с мишката за да промените вертикалното зрително поле" -#: hugin1/hugin/GLPreviewFrame.cpp:318 hugin1/hugin/PreviewFrame.cpp:182 +#: hugin1/hugin/GLPreviewFrame.cpp:427 hugin1/hugin/PreviewFrame.cpp:182 msgid "HFOV" msgstr "HFOV" -#: hugin1/hugin/GLPreviewFrame.cpp:323 hugin1/hugin/PreviewFrame.cpp:187 +#: hugin1/hugin/GLPreviewFrame.cpp:432 hugin1/hugin/PreviewFrame.cpp:187 msgid "drag to change the horizontal field of view" msgstr "Издърпайте с мишката за да промените хоризонталното зрително поле" -#: hugin1/hugin/GLPreviewFrame.cpp:381 +#: hugin1/hugin/GLPreviewFrame.cpp:462 +msgid "Panosphere" +msgstr "" + +#: hugin1/hugin/GLPreviewFrame.cpp:463 +#, fuzzy +msgid "Mosaic plane" +msgstr "Билинеен" + +#: hugin1/hugin/GLPreviewFrame.cpp:484 translations/xrc.cpp:403 +#: translations/xrc.cpp:736 translations/xrc.cpp:778 xrc.cpp:403 xrc.cpp:736 +#: xrc.cpp:778 +msgid "Preview" +msgstr "Предварителен преглед" + +#: hugin1/hugin/GLPreviewFrame.cpp:497 translations/xrc.cpp:806 xrc.cpp:806 +#, fuzzy +msgid "Overview" |
From: <hugin-cvs@li...> - 2011-01-09 17:05:41
|
branch: details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/8c577b320714 changeset: 4808:8c577b320714 user: Yuval Levy <yuv@...> date: Sun Jan 09 12:05:18 2011 -0500 description: merged gsoc2010_panorama_overview branch diffstat: CMakeLists.txt | 3 +- TODO | 35 +- src/hugin1/hugin/CMakeLists.txt | 4 +- src/hugin1/hugin/ChoosyRemapper.cpp | 20 +- src/hugin1/hugin/ChoosyRemapper.h | 4 +- src/hugin1/hugin/GLPreviewFrame.cpp | 618 ++++++++++++++++++-- src/hugin1/hugin/GLPreviewFrame.h | 160 +++++- src/hugin1/hugin/GLRenderer.cpp | 399 +++++++++++++- src/hugin1/hugin/GLRenderer.h | 93 ++- src/hugin1/hugin/GLViewer.cpp | 249 ++++++- src/hugin1/hugin/GLViewer.h | 105 +++- src/hugin1/hugin/GreatCircles.cpp | 254 +++++++- src/hugin1/hugin/GreatCircles.h | 27 +- src/hugin1/hugin/LayoutRemapper.cpp | 16 +- src/hugin1/hugin/LayoutRemapper.h | 4 +- src/hugin1/hugin/MeshManager.cpp | 291 ++++++++- src/hugin1/hugin/MeshManager.h | 186 +++++- src/hugin1/hugin/MeshRemapper.cpp | 34 +- src/hugin1/hugin/MeshRemapper.h | 10 +- src/hugin1/hugin/OverviewCameraTool.cpp | 186 ++++++ src/hugin1/hugin/OverviewCameraTool.h | 92 +++ src/hugin1/hugin/OverviewDragTool.cpp | 43 + src/hugin1/hugin/OverviewDragTool.h | 28 + src/hugin1/hugin/OverviewOutlinesTool.cpp | 586 +++++++++++++++++++ src/hugin1/hugin/OverviewOutlinesTool.h | 149 +++++ src/hugin1/hugin/PreviewControlPointTool.cpp | 10 +- src/hugin1/hugin/PreviewControlPointTool.h | 6 +- src/hugin1/hugin/PreviewCropTool.cpp | 29 +- src/hugin1/hugin/PreviewCropTool.h | 2 +- src/hugin1/hugin/PreviewDifferenceTool.cpp | 25 +- src/hugin1/hugin/PreviewDifferenceTool.h | 7 +- src/hugin1/hugin/PreviewDragTool.cpp | 349 ++++++----- src/hugin1/hugin/PreviewDragTool.h | 31 +- src/hugin1/hugin/PreviewIdentifyTool.cpp | 264 +++++--- src/hugin1/hugin/PreviewIdentifyTool.h | 18 +- src/hugin1/hugin/PreviewLayoutLinesTool.cpp | 57 +- src/hugin1/hugin/PreviewLayoutLinesTool.h | 10 +- src/hugin1/hugin/PreviewPanoMaskTool.h | 2 +- src/hugin1/hugin/PreviewTool.cpp | 34 - src/hugin1/hugin/PreviewTool.h | 104 --- src/hugin1/hugin/PreviewToolHelper.cpp | 424 -------------- src/hugin1/hugin/PreviewToolHelper.h | 161 ----- src/hugin1/hugin/ProjectionGridTool.cpp | 479 ++++++++++++++++ src/hugin1/hugin/ProjectionGridTool.h | 81 ++ src/hugin1/hugin/TexCoordRemapper.cpp | 34 +- src/hugin1/hugin/TexCoordRemapper.h | 4 +- src/hugin1/hugin/TextureManager.cpp | 11 +- src/hugin1/hugin/TextureManager.h | 2 +- src/hugin1/hugin/Tool.cpp | 48 + src/hugin1/hugin/Tool.h | 156 +++++ src/hugin1/hugin/ToolHelper.cpp | 794 +++++++++++++++++++++++++++ src/hugin1/hugin/ToolHelper.h | 254 ++++++++ src/hugin1/hugin/VertexCoordRemapper.cpp | 42 +- src/hugin1/hugin/VertexCoordRemapper.h | 4 +- src/hugin1/hugin/ViewState.cpp | 469 ++++++++++++--- src/hugin1/hugin/ViewState.h | 272 +++++++- src/hugin1/hugin/xrc/preview_frame.xrc | 44 +- src/hugin_base/hugin_utils/utils.h | 96 +- src/hugin_base/panodata/PanoramaOptions.cpp | 4 +- 59 files changed, 6291 insertions(+), 1632 deletions(-) diffs (truncated from 10416 to 500 lines): diff -r a75c9fef69ff -r 8c577b320714 CMakeLists.txt --- a/CMakeLists.txt Fri Jan 07 19:15:16 2011 +0100 +++ b/CMakeLists.txt Sun Jan 09 12:05:18 2011 -0500 @@ -150,8 +150,7 @@ ## # This must come before FINDs for tiff, jpeg, png, zlib to enable # finding the wxWidgets distributions of those packages (Win32 only). - -SET(wxWidgets_USE_LIBS base core xrc html xml adv gl net) +SET(wxWidgets_USE_LIBS base core aui xrc html xml adv gl net) FIND_PACKAGE(wxWidgets REQUIRED) # hugin requires wxwidgets 2.7.0 or above diff -r a75c9fef69ff -r 8c577b320714 TODO --- a/TODO Fri Jan 07 19:15:16 2011 +0100 +++ b/TODO Sun Jan 09 12:05:18 2011 -0500 @@ -1,3 +1,36 @@ [TODO] -- compile a todo list \ No newline at end of file +- compile a todo list + + +Panorama Overview Related TODO list: + + - Check the system in windows and mac (I can only test in windows) + - DragTool: add lines from starting to ending point + - Improve performance of calculating panosphere meshes by using GPU + - Create realtime adjustments for the other viewer when dragging images + - The projection grid is not included in the mosaic plane currently because just adding it as a rectilinear projection of the current grid will be ugly and not useful. So first I need to come up with some representation of the grid on the mosaic plane which will be useful. + - The mosaic plane could use some things like: + - rendering of the hypothetical camera positions for each image + - rendering of the panosphere together with the plane to create a sense of what is going on. This also needs some thought + - Dragging in the mosaic plane should support changing of the Z parameter as well + - Test the system with masks for the issues that James pointed out + - Highlighting an image in identify mode also highlights the image in the other viewer. This currently only works when the mouse is over the image buttons + - Improve performance for great circles by using display lists and meshes also for the crosses. Also keep the old method by just using lines, which is useful for the preview + - Check the issue with double difference choices + - Add the interactive circles + - Implement the better handling of image groups + - Bug, sometimes changing the FOV sliders doesn't cause the overview to be redrawn + - Add informative status messages + - Automatic adjustment of the zoom level for the mosaic plane + - The overview window does not process the mouse wheel on windows + - Crash when switch mode if overview window is hidden (at startup) + + +fixed: + + - Bug (at least in my computer) with wxAUI which causes the program to crash when both canvases are undocked and then docked. + - with preview fixed to the frame this is not a problem anymore + - Toggle buttons to show hide the overview and preview canvases + - Add a switch for the projection grid or make it automatic for certain tabs. + diff -r a75c9fef69ff -r 8c577b320714 src/hugin1/hugin/CMakeLists.txt --- a/src/hugin1/hugin/CMakeLists.txt Fri Jan 07 19:15:16 2011 +0100 +++ b/src/hugin1/hugin/CMakeLists.txt Sun Jan 09 12:05:18 2011 -0500 @@ -30,7 +30,7 @@ LocalizedFileTipProvider.cpp wxPanoCommand.cpp AssistantPanel.cpp HFOVDialog.cpp TextureManager.cpp MeshRemapper.cpp VertexCoordRemapper.cpp TexCoordRemapper.cpp ChoosyRemapper.cpp MeshManager.cpp ViewState.cpp -OutputProjectionInfo.cpp PreviewToolHelper.cpp PreviewTool.cpp +OutputProjectionInfo.cpp ToolHelper.cpp Tool.cpp OverviewCameraTool.cpp ProjectionGridTool.cpp OverviewOutlinesTool.cpp PreviewCropTool.cpp PreviewDragTool.cpp PreviewIdentifyTool.cpp PreviewDifferenceTool.cpp PreviewPanoMaskTool.cpp PreviewControlPointTool.cpp GreatCircles.cpp AboutDialog.cpp LayoutRemapper.cpp PreviewLayoutLinesTool.cpp @@ -45,7 +45,7 @@ LocalizedFileTipProvider.h wxPanoCommand.h AssistantPanel.h HFOVDialog.h TextureManager.h MeshRemapper.h VertexCoordRemapper.h TexCoordRemapper.h ChoosyRemapper.h MeshManager.h ViewState.h -OutputProjectionInfo.h PreviewToolHelper.h PreviewTool.h +OutputProjectionInfo.h ToolHelper.h Tool.h OverviewCameraTool.h ProjectionGridTool.h OverviewOutlinesTool.h PreviewCropTool.h PreviewDragTool.h PreviewIdentifyTool.h PreviewDifferenceTool.h PreviewPanoMaskTool.h PreviewControlPointTool.h GreatCircles.h AboutDialog.h LayoutRemapper.h PreviewLayoutLinesTool.h diff -r a75c9fef69ff -r 8c577b320714 src/hugin1/hugin/ChoosyRemapper.cpp --- a/src/hugin1/hugin/ChoosyRemapper.cpp Fri Jan 07 19:15:16 2011 +0100 +++ b/src/hugin1/hugin/ChoosyRemapper.cpp Sun Jan 09 12:05:18 2011 -0500 @@ -31,8 +31,8 @@ #include "VertexCoordRemapper.h" ChoosyRemapper::ChoosyRemapper(HuginBase::Panorama *m_pano, - unsigned int image_number, ViewState *view_state) - : MeshRemapper(m_pano, image_number, view_state) + HuginBase::SrcPanoImage * image, VisualizationState *visualization_state) + : MeshRemapper(m_pano, image, visualization_state) { selected_remapper = 0; selection = REMAP_NONE; @@ -48,7 +48,7 @@ MeshRemapper::UpdateAndResetIndex(); // have a look at the output mode, find those where the poles cause problems // with the vetex remapper. - HuginBase::PanoramaOptions *opts = view_state->GetOptions(); + HuginBase::PanoramaOptions *opts = visualization_state->GetOptions(); bool pole = false; switch (opts->getProjection()) { @@ -80,10 +80,10 @@ case HuginBase::PanoramaOptions::GENERAL_PANINI: // check for pole crossing { - OutputProjectionInfo *info = view_state->GetProjectionInfo(); + OutputProjectionInfo *info = visualization_state->GetProjectionInfo(); // get the pole in image coordinates - transform.createTransform(*(view_state->GetSrcImage(image_number)), - *(view_state->GetOptions())); + transform.createTransform(*image, + *(visualization_state->GetOptions())); double img_x, img_y; transform.transformImgCoord(img_x, img_y, info->GetNorthPoleX(), @@ -130,8 +130,8 @@ selected_remapper = 0; } selected_remapper = new TexCoordRemapper(m_pano, - image_number, - view_state); + image, + visualization_state); } break; } @@ -149,8 +149,8 @@ selected_remapper = 0; } selected_remapper = new VertexCoordRemapper(m_pano, - image_number, - view_state); + image, + visualization_state); } break; } diff -r a75c9fef69ff -r 8c577b320714 src/hugin1/hugin/ChoosyRemapper.h --- a/src/hugin1/hugin/ChoosyRemapper.h Fri Jan 07 19:15:16 2011 +0100 +++ b/src/hugin1/hugin/ChoosyRemapper.h Sun Jan 09 12:05:18 2011 -0500 @@ -31,8 +31,8 @@ class ChoosyRemapper : public MeshRemapper { public: - ChoosyRemapper(HuginBase::Panorama *m_pano, unsigned int image_number, - ViewState *view_state); + ChoosyRemapper(HuginBase::Panorama *m_pano, HuginBase::SrcPanoImage * image, + VisualizationState *visualization_state); ~ChoosyRemapper(); void UpdateAndResetIndex(); bool GetNextFaceCoordinates(Coords *result); diff -r a75c9fef69ff -r 8c577b320714 src/hugin1/hugin/GLPreviewFrame.cpp --- a/src/hugin1/hugin/GLPreviewFrame.cpp Fri Jan 07 19:15:16 2011 +0100 +++ b/src/hugin1/hugin/GLPreviewFrame.cpp Sun Jan 09 12:05:18 2011 -0500 @@ -5,6 +5,7 @@ * @brief implementation of GLPreviewFrame Class * * @author James Legg and Pablo d'Angelo <pablo.dangelo@...> + * @author Darko Makreshanski * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public @@ -29,6 +30,10 @@ #endif //wxMac now has toggle buttons, but you can't overide their colours. +#include <bitset> +#include <limits> +#include <iostream> + #include <config.h> #if !defined Hugin_shared || !defined _WINDOWS @@ -58,8 +63,8 @@ #include <pano13/queryfeature.h> } -#include "PreviewToolHelper.h" -#include "PreviewTool.h" +#include "ToolHelper.h" +#include "Tool.h" #include "PreviewCropTool.h" #include "PreviewDragTool.h" #include "PreviewIdentifyTool.h" @@ -68,6 +73,11 @@ #include "PreviewControlPointTool.h" #include "PreviewLayoutLinesTool.h" +#include "ProjectionGridTool.h" + +#include "OverviewCameraTool.h" +#include "OverviewOutlinesTool.h" + #include <wx/progdlg.h> #if wxCHECK_VERSION(2, 9, 1) #include <wx/infobar.h> @@ -100,8 +110,14 @@ mode_crop }; +BEGIN_EVENT_TABLE(GLwxAuiFloatingFrame, wxAuiFloatingFrame) + EVT_ACTIVATE(GLwxAuiFloatingFrame::OnActivate) +// EVT_CLOSE(GLwxAuiFloatingFrame::OnClose) +END_EVENT_TABLE() + BEGIN_EVENT_TABLE(GLPreviewFrame, wxFrame) EVT_CLOSE(GLPreviewFrame::OnClose) + EVT_SHOW(GLPreviewFrame::OnShowEvent) EVT_BUTTON(XRCID("preview_center_tool"), GLPreviewFrame::OnCenterHorizontally) EVT_BUTTON(XRCID("preview_fit_pano_tool"), GLPreviewFrame::OnFitPano) EVT_BUTTON(XRCID("preview_fit_pano_tool2"), GLPreviewFrame::OnFitPano) @@ -122,6 +138,9 @@ EVT_CHOICE(XRCID("blend_mode_choice"), GLPreviewFrame::OnBlendChoice) EVT_CHOICE(XRCID("drag_mode_choice"), GLPreviewFrame::OnDragChoice) EVT_CHOICE(XRCID("projection_choice"), GLPreviewFrame::OnProjectionChoice) + EVT_CHOICE(XRCID("overview_mode_choice"), GLPreviewFrame::OnOverviewModeChoice) + EVT_TOGGLEBUTTON(XRCID("overview_toggle"), GLPreviewFrame::OnOverviewToggle) + EVT_CHECKBOX(XRCID("preview_show_grid"), GLPreviewFrame::OnSwitchPreviewGrid) #ifndef __WXMAC__ // wxMac does not process these EVT_SCROLL_CHANGED(GLPreviewFrame::OnChangeFOV) @@ -158,6 +177,7 @@ #endif END_EVENT_TABLE() + void AddLabelToBitmapButton(wxBitmapButton* button, wxString new_label,bool TextBelow=true) { int new_width=0; @@ -205,6 +225,47 @@ }; #define PF_STYLE (wxMAXIMIZE_BOX | wxMINIMIZE_BOX | wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxCLIP_CHILDREN) +GLwxAuiFloatingFrame* GLwxAuiManager::CreateFloatingFrame(wxWindow* parent, const wxAuiPaneInfo& p) +{ + DEBUG_DEBUG("CREATING FLOATING FRAME"); + frame->PauseResize(); + GLwxAuiFloatingFrame* fl_frame = new GLwxAuiFloatingFrame(parent, this, p); + DEBUG_DEBUG("CREATED FLOATING FRAME"); + return fl_frame; +} + +void GLwxAuiFloatingFrame::OnActivate(wxActivateEvent& evt) +{ + DEBUG_DEBUG("FRAME ACTIVATE"); + GLPreviewFrame * frame = ((GLwxAuiManager*) GetOwnerManager())->getPreviewFrame(); + frame->ContinueResize(); + evt.Skip(); +} + +void GLwxAuiFloatingFrame::OnMoveFinished() +{ + DEBUG_DEBUG("FRAME ON MOVE FINISHED"); + GLPreviewFrame * frame = ((GLwxAuiManager*) GetOwnerManager())->getPreviewFrame(); + frame->PauseResize(); + wxAuiFloatingFrame::OnMoveFinished(); + DEBUG_DEBUG("FRAME AFTER ON MOVE FINISHED"); +} + +void GLPreviewFrame::PauseResize() +{ + DEBUG_DEBUG("PAUSE RESIZE"); + GLresize = false; +} + +void GLPreviewFrame::ContinueResize() +{ + GLresize = true; + wxSizeEvent event = wxSizeEvent(wxSize()); + m_GLPreview->Resized(event); + m_GLOverview->Resized(event); +} + + #include <iostream> GLPreviewFrame::GLPreviewFrame(wxFrame * frame, PT::Panorama &pano) : wxFrame(frame,-1, _("Fast Panorama preview"), wxDefaultPosition, wxDefaultSize, @@ -215,14 +276,23 @@ m_projectionStatusPushed(false) #endif { + + DEBUG_TRACE(""); // initialize pointer - helper = NULL; + preview_helper = NULL; + panosphere_overview_helper = NULL; + plane_overview_helper = NULL; crop_tool = NULL; drag_tool = NULL; + overview_drag_tool = NULL; identify_tool = NULL ; + panosphere_overview_identify_tool = NULL; + plane_overview_identify_tool = NULL; difference_tool = NULL; + plane_difference_tool = NULL; + panosphere_difference_tool = NULL; pano_mask_tool = NULL; m_mode = -1; @@ -233,6 +303,8 @@ SetStatusWidths(3, widths); SetStatusText(wxT(""),1); SetStatusText(wxT(""),2); + wxConfigBase * config = wxConfigBase::Get(); + wxPanel *tool_panel = wxXmlResource::Get()->LoadPanel(this,wxT("mode_panel")); m_tool_notebook = XRCCTRL(*this,"mode_toolbar_notebook",wxNotebook); m_ToolBar_Identify = XRCCTRL(*this,"preview_mode_toolbar",wxToolBar); @@ -242,13 +314,30 @@ AddLabelToBitmapButton(XRCCTRL(*this,"preview_fit_pano_tool2",wxBitmapButton),_("Fit")); AddLabelToBitmapButton(XRCCTRL(*this,"preview_autocrop_tool",wxBitmapButton),_("Autocrop")); + m_topsizer = new wxBoxSizer( wxVERTICAL ); + wxPanel * toggle_panel = new wxPanel(this); + wxBoxSizer * toggle_panel_sizer = new wxBoxSizer(wxHORIZONTAL); + toggle_panel->SetSizer(toggle_panel_sizer); + + wxPanel *overview_toggle_panel = wxXmlResource::Get()->LoadPanel(toggle_panel,wxT("overview_toggle_panel")); + toggle_panel_sizer->Add(overview_toggle_panel, 0, wxALL | wxEXPAND | wxALIGN_CENTER_VERTICAL, 0); + + bool overview_hidden; + config->Read(wxT("/GLPreviewFrame/overview_hidden"), &overview_hidden, false); + m_OverviewToggle = XRCCTRL(*this, "overview_toggle", wxToggleButton); + if (overview_hidden) { + m_OverviewToggle->SetValue(false); + } else { + m_OverviewToggle->SetValue(true); + } + m_ToggleButtonSizer = new wxStaticBoxSizer( - new wxStaticBox(this, -1, _("displayed images")), + new wxStaticBox(toggle_panel, -1, _("displayed images")), wxHORIZONTAL ); - m_ButtonPanel = new wxScrolledWindow(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); + m_ButtonPanel = new wxScrolledWindow(toggle_panel, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); // Set min height big enough to display scrollbars as well m_ButtonPanel->SetSizeHints(20, 42); //Horizontal scroll bars only @@ -257,7 +346,7 @@ m_ButtonPanel->SetAutoLayout(true); m_ButtonPanel->SetSizer(m_ButtonSizer); - wxPanel *panel = new wxPanel(this); + wxPanel *panel = new wxPanel(toggle_panel); wxBitmap bitmap; bitmap.LoadFile(huginApp::Get()->GetXRCPath()+wxT("data/preview_show_all.png"),wxBITMAP_TYPE_PNG); wxBitmapButton * select_all = new wxBitmapButton(panel,ID_SHOW_ALL,bitmap); @@ -272,9 +361,12 @@ m_ToggleButtonSizer->Add(m_ButtonPanel, 1, wxEXPAND | wxADJUST_MINSIZE | wxALIGN_CENTER_VERTICAL, 0); AddLabelToBitmapButton(select_all,_("All"),false); AddLabelToBitmapButton(select_none,_("None"), false); + + toggle_panel_sizer->Add(m_ToggleButtonSizer, wxEXPAND); + m_topsizer->Add(tool_panel, 0, wxEXPAND | wxALL, 2); - m_topsizer->Add(m_ToggleButtonSizer, 0, wxEXPAND | wxADJUST_MINSIZE | wxBOTTOM, 5); - + m_topsizer->Add(toggle_panel, 0, wxEXPAND | wxADJUST_MINSIZE | wxBOTTOM, 5); + #if wxCHECK_VERSION(2, 9, 1) m_infoBar = new wxInfoBar(this); m_infoBar->AddButton(ID_HIDE_HINTS,_("Hide")); @@ -282,22 +374,39 @@ m_topsizer->Add(m_infoBar, 0, wxEXPAND); #endif + //create panel that will hold gl canvases + wxPanel * vis_panel = new wxPanel(this); + + wxPanel * preview_panel = new wxPanel(vis_panel); + wxPanel * overview_panel = new wxPanel(vis_panel); + + // create our Viewers + int args[] = {WX_GL_RGBA, WX_GL_DOUBLEBUFFER, 0}; + m_GLPreview = new GLPreview(preview_panel, pano, args, this); + m_GLOverview = new GLOverview(overview_panel, pano, args, this, m_GLPreview->GetContext()); + m_GLOverview->SetMode(GLOverview::PANOSPHERE); + m_GLOverview->SetActive(!overview_hidden); + + // set the AUI manager to our panel + m_mgr = new GLwxAuiManager(this, m_GLPreview, m_GLOverview); + m_mgr->SetManagedWindow(vis_panel); + + //create the sizer for the preview wxFlexGridSizer * flexSizer = new wxFlexGridSizer(2,0,5,5); flexSizer->AddGrowableCol(0); flexSizer->AddGrowableRow(0); - // create our Viewer - int args[] = {WX_GL_RGBA, WX_GL_DOUBLEBUFFER, 0}; - m_GLViewer = new GLViewer(this, pano, args, this); + //overview sizer + wxBoxSizer * overview_sizer = new wxBoxSizer(wxVERTICAL); - flexSizer->Add(m_GLViewer, + + flexSizer->Add(m_GLPreview, 1, // not vertically stretchable wxEXPAND | // horizontally stretchable wxALL, // draw border all around 5); // border width - - m_VFOVSlider = new wxSlider(this, -1, 1, + m_VFOVSlider = new wxSlider(preview_panel, -1, 1, 1, 180, wxDefaultPosition, wxDefaultSize, wxSL_VERTICAL | wxSL_AUTOTICKS, @@ -310,7 +419,7 @@ flexSizer->Add(m_VFOVSlider, 0, wxEXPAND); - m_HFOVSlider = new wxSlider(this, -1, 1, + m_HFOVSlider = new wxSlider(preview_panel, -1, 1, 1, 360, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_AUTOTICKS, @@ -345,13 +454,59 @@ DEBUG_ASSERT(m_ROIBottomTxt); m_ROIBottomTxt->PushEventHandler(new TextKillFocusHandler(this)); + flexSizer->Add(m_HFOVSlider, 0, wxEXPAND); - m_topsizer->Add(flexSizer, - 1, // vertically stretchable - wxEXPAND | // horizontally stretchable - wxALL, // draw border all around - 5); // border width + wxPanel *overview_command_panel = wxXmlResource::Get()->LoadPanel(overview_panel,wxT("overview_command_panel")); + m_OverviewModeChoice = XRCCTRL(*this, "overview_mode_choice", wxChoice); + m_OverviewModeChoice->Append(_("Panosphere")); + m_OverviewModeChoice->Append(_("Mosaic plane")); + m_OverviewModeChoice->SetSelection(0); + overview_command_panel->SetSize(0,0,200,20,wxSIZE_AUTO_WIDTH); + + overview_sizer->Add(overview_command_panel, 0, wxEXPAND); + overview_sizer->Add(m_GLOverview, 1, wxEXPAND); + + m_previewGrid = XRCCTRL(*this, "preview_show_grid", wxCheckBox); + bool showGrid; + config->Read(wxT("/GLPreviewFrame/showPreviewGrid"),&showGrid,true); + m_previewGrid->SetValue(showGrid); + + preview_panel->SetSizer(flexSizer); + overview_panel->SetSizer(overview_sizer); + + m_mgr->AddPane(preview_panel, + wxAuiPaneInfo( + ).Name(wxT("preview") + ).MinSize(300,200 + ).CloseButton(false + ).CaptionVisible(false + ).Caption(_("Preview") + ).Floatable(false + ).Dockable(false + ).Center( + ) + ); + + m_mgr->AddPane(overview_panel, + wxAuiPaneInfo( + ).Name(wxT("overview") + ).MinSize(300,200 + ).CloseButton(false + ).CaptionVisible( + ).Caption(_("Overview") + ).FloatingSize(100,100 + ).FloatingPosition(500,500 + ).Dockable(true + ).PinButton( + ).Left( + ).Show(!overview_hidden + ) + ); + + + m_topsizer->Add(vis_panel, 1, wxEXPAND); + m_ProjectionChoice = XRCCTRL(*this,"projection_choice",wxChoice); @@ -451,8 +606,6 @@ // do not show projection param sizer m_projection_panel->GetSizer()->Show(m_projParamSizer, false, true); - wxConfigBase * config = wxConfigBase::Get(); - // the initial size as calculated by the sizers this->SetSizer( m_topsizer ); m_topsizer->SetSizeHints( this ); @@ -471,7 +624,7 @@ #ifdef __WXMSW__ // wxFrame does have a strange background color on Windows.. - this->SetBackgroundColour(m_GLViewer->GetBackgroundColour()); |
From: <hugin-cvs@li...> - 2011-01-09 13:43:38
|
branch: details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/8894b1e9de4c changeset: 4807:8894b1e9de4c user: Yuval Levy <yuv@...> date: Sun Jan 09 08:43:24 2011 -0500 description: * fix translation paths for Linux and Windows. OSX still outstanding. * renamed TranslateText function into InitTranslation * added comments / documentation * fixed translation initialization for ImageCache.cpp and for nona.cpp * made more nona strings translatable diffstat: src/hugin_base/hugin_utils/utils.cpp | 9 +- src/hugin_base/hugin_utils/utils.h | 17 +++- src/hugin_base/huginapp/ImageCache.cpp | 7 +- src/tools/nona.cpp | 129 +++++++++++++++++--------------- 4 files changed, 89 insertions(+), 73 deletions(-) diffs (345 lines): diff -r 8c1cf052730f -r 8894b1e9de4c src/hugin_base/hugin_utils/utils.cpp --- a/src/hugin_base/hugin_utils/utils.cpp Sat Jan 08 18:01:14 2011 -0500 +++ b/src/hugin_base/hugin_utils/utils.cpp Sun Jan 09 08:43:24 2011 -0500 @@ -263,7 +263,7 @@ b = 0.0; } - void TranslateText(){ + void InitTranslation(){ // locate the translations #if _WINDOWS char buffer[MAX_PATH];//always use MAX_PATH for filepaths @@ -281,7 +281,7 @@ { working_path.erase(pos); //append path delimiter and path - working_path.append("\\share\\hugin\\data\\"); + working_path.append("\\share\\locale\\"); locale_path=working_path; } } @@ -292,10 +292,11 @@ if (_NSGetExecutablePath(path, &size) == 0) { locale_path=dirname(path); - locale_path.append("/../Resources/xrc/"); + // TODO: this path is likely wrong. OSX devs, please fix. + locale_path.append("/../Resources/"); } #else - std::string locale_path = (INSTALL_DATA_DIR); + std::string locale_path = (INSTALL_LOCALE_DIR); #endif // and tell gettext where the translations are and which one to use bindtextdomain( "hugin", locale_path.c_str() ); diff -r 8c1cf052730f -r 8894b1e9de4c src/hugin_base/hugin_utils/utils.h --- a/src/hugin_base/hugin_utils/utils.h Sat Jan 08 18:01:14 2011 -0500 +++ b/src/hugin_base/hugin_utils/utils.h Sun Jan 09 08:43:24 2011 -0500 @@ -36,6 +36,8 @@ #include <hugin_utils/platform.h> // gettext for internalization of strings +// TODO: some includes for Windows and MacOS are missing +// see https://bugs.launchpad.net/hugin/+bug/679715 #include <hugin_config.h> #include <libintl.h> #include <locale.h> @@ -289,11 +291,22 @@ return ret; } - + + /** generate a color indicative of the error associated + * with a control point. + * + * @p cperr the error of associated with the control points + * + * sets \p r \p g \p b to a color from green (little or + * no error) via yellow to red (big error) + * + */ IMPEX void ControlPointErrorColour(const double cperr, double &r,double &g, double &b); - void TranslateText(); + /** initialize the translation. + */ + void InitTranslation(); } // namespace diff -r 8c1cf052730f -r 8894b1e9de4c src/hugin_base/huginapp/ImageCache.cpp --- a/src/hugin_base/huginapp/ImageCache.cpp Sat Jan 08 18:01:14 2011 -0500 +++ b/src/hugin_base/huginapp/ImageCache.cpp Sun Jan 09 08:43:24 2011 -0500 @@ -507,7 +507,7 @@ return it->second; } else { if (m_progress) { - hugin_utils::TranslateText(); + hugin_utils::InitTranslation(); m_progress->pushTask(AppBase::ProgressTask(_X("Loading image:")+std::string(" ")+hugin_utils::stripPath(filename), "", 0)); } @@ -681,10 +681,7 @@ } else { if (m_progress) { - // tell gettext where the translations are and which one to use - bindtextdomain( "hugin", INSTALL_LOCALE_DIR ); - textdomain( "hugin" ); - + hugin_utils::InitTranslation(); m_progress->pushTask(AppBase::ProgressTask(_X("Scaling image:")+std::string(" ")+hugin_utils::stripPath(filename), "", 0)); } DEBUG_DEBUG("creating small image " << name ); diff -r 8c1cf052730f -r 8894b1e9de4c src/tools/nona.cpp --- a/src/tools/nona.cpp Sat Jan 08 18:01:14 2011 -0500 +++ b/src/tools/nona.cpp Sun Jan 09 08:43:24 2011 -0500 @@ -43,6 +43,7 @@ #include <hugin_basic.h> #include <hugin_utils/platform.h> +#include <hugin_utils/utils.h> #include <algorithms/nona/NonaFileStitcher.h> #include <vigra_ext/MultiThreadOperations.h> @@ -67,49 +68,49 @@ static void usage(const char * name) { - cerr << name << ": stitch a panorama image" << std::endl + cerr << name << _X(": stitch a panorama image") << std::endl << std::endl - << "nona version " << DISPLAY_VERSION << std::endl + << _X("nona version") << " " << DISPLAY_VERSION << std::endl << std::endl - << " It uses the transform function from PanoTools, the stitching itself" << std::endl - << " is quite simple, no seam feathering is done." << std::endl - << " only the non-antialiasing interpolators of panotools are supported" << std::endl + << " " << _X("It uses the transform function from PanoTools, the stitching itself") << std::endl + << " " << _X("is quite simple, no seam feathering is done.") << std::endl + << " " << _X("only the non-antialiasing interpolators of panotools are supported") << std::endl << std::endl - << " The following output formats (n option of panotools p script line)" << std::endl - << " are supported:"<< std::endl + << " " << _X("The following output formats (n option of panotools p script line)") << std::endl + << " " << _X("are supported:") << std::endl << std::endl - << " JPG, TIFF, PNG : Single image formats without feathered blending:"<< std::endl - << " TIFF_m : multiple tiff files"<< std::endl - << " TIFF_multilayer : Multilayer tiff files, readable by The Gimp 2.0" << std::endl + << " JPG, TIFF, PNG : " << _X("Single image formats without feathered blending:") << std::endl + << " TIFF_m : " << _X("multiple tiff files") << std::endl + << " TIFF_multilayer : " << _X("Multilayer tiff files, readable by The Gimp 2.0") << std::endl << std::endl - << "Usage: " << name << " [options] -o output project_file (image files)" << std::endl - << " Options: " << std::endl - << " -c create coordinate images (only TIFF_m output)" << std::endl - << " -v quiet, do not output progress indicators" << std::endl - << " -t num number of threads to be used (default: nr of available cores)" << std::endl - << " -g perform image remapping on the GPU" << std::endl + << _X("Usage: ") << name << " " << _X("[options] -o output project_file (image files)") << std::endl + << " " << _X("Options:") << std::endl + << " -c " << _X("create coordinate images (only TIFF_m output)") << std::endl + << " -v " << _X("quiet, do not output progress indicators") << std::endl + << " -t num " << _X("number of threads to be used (default: nr of available cores)") << std::endl + << " -g " << _X("perform image remapping on the GPU") << std::endl << std::endl - << " The following options can be used to override settings in the project file:" << std::endl - << " -i num remap only image with number num" << std::endl - << " (can be specified multiple times)" << std::endl - << " -m str set output file format (TIFF, TIFF_m, TIFF_multilayer, EXR, EXR_m)" << std::endl - << " -r ldr/hdr set output mode." << std::endl - << " ldr keep original bit depth and response" << std::endl - << " hdr merge to hdr" << std::endl - << " -e exposure set exposure for ldr mode" << std::endl - << " -p TYPE pixel type of the output. Can be one of:" << std::endl - << " UINT8 8 bit unsigned integer" << std::endl - << " UINT16 16 bit unsigned integer" << std::endl - << " INT16 16 bit signed integer" << std::endl - << " UINT32 32 bit unsigned integer" << std::endl - << " INT32 32 bit signed integer" << std::endl - << " FLOAT 32 bit floating point" << std::endl - << " -z set compression type." << std::endl - << " Possible options for tiff output:" << std::endl - << " NONE no compression" << std::endl - << " PACKBITS packbits compression" << std::endl - << " LZW lzw compression" << std::endl - << " DEFLATE deflate compression" << std::endl + << " " << _X("The following options can be used to override settings in the project file:") << std::endl + << " -i num " << _X("remap only image with number num") << std::endl + << " " << _X("(can be specified multiple times)") << std::endl + << " -m str " << _X("set output file format") <<" (TIFF, TIFF_m, TIFF_multilayer, EXR, EXR_m)" << std::endl + << " -r ldr/hdr " << _X("set output mode.") << std::endl + << " ldr " << _X("keep original bit depth and response") << std::endl + << " hdr " << _X("merge to hdr") << std::endl + << " -e " << _X("exposure set exposure for ldr mode") << std::endl + << " -p " << _X("TYPE pixel type of the output. Can be one of:") << std::endl + << " UINT8 8 " << _X("UINT8 8 bit unsigned integer") << std::endl + << " UINT16 16 " << _X("bit unsigned integer") << std::endl + << " INT16 16 " << _X("bit signed integer") << std::endl + << " UINT32 32 " << _X("bit unsigned integer") << std::endl + << " INT32 32 " << _X("bit signed integer") << std::endl + << " FLOAT 32 " << _X("bit floating point") << std::endl + << " -z " << _X("set compression type.") << std::endl + << " " << _X("Possible options for tiff output:") << std::endl + << " NONE " << _X("no compression") << std::endl + << " PACKBITS " << _X("packbits compression") << std::endl + << " LZW " << _X("lzw compression") << std::endl + << " DEFLATE " << _X("deflate compression") << std::endl << std::endl; } @@ -117,21 +118,22 @@ * OpenGL extensions required by the GPU stitcher (-g option) are checked here. * @return true if everything went OK, false if we can't use GPGPU mode. */ -static bool initGPU(int *argcp,char **argv) { +static bool initGPU(int *argcp, char **argv) { + const char * name = argv[0]; glutInit(argcp,argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA | GLUT_ALPHA); GlutWindowHandle = glutCreateWindow("nona"); int err = glewInit(); if (err != GLEW_OK) { - cerr << "nona: an error occured while setting up the GPU:" << endl; + cerr << name << ": " << _X("an error occured while setting up the GPU:") << endl; cerr << glewGetErrorString(err) << endl; - cerr << "nona: Switching to CPU calculation." << endl; + cerr << name << ": " << _X("Switching to CPU calculation.") << endl; glutDestroyWindow(GlutWindowHandle); return false; } - cout << "nona: using graphics card: " << glGetString(GL_VENDOR) << " " << glGetString(GL_RENDERER) << endl; + cout << name << ": " << _X("using graphics card") << ": " << glGetString(GL_VENDOR) << " " << glGetString(GL_RENDERER) << endl; GLboolean has_arb_fragment_shader = glewGetExtension("GL_ARB_fragment_shader"); GLboolean has_arb_vertex_shader = glewGetExtension("GL_ARB_vertex_shader"); @@ -143,15 +145,15 @@ if (!(has_arb_fragment_shader && has_arb_vertex_shader && has_arb_shader_objects && has_arb_shading_language && has_arb_texture_rectangle && has_arb_texture_border_clamp && has_arb_texture_float)) { const char * msg[] = {"false", "true"}; - cerr << "nona: extension GL_ARB_fragment_shader = " << msg[has_arb_fragment_shader] << endl; - cerr << "nona: extension GL_ARB_vertex_shader = " << msg[has_arb_vertex_shader] << endl; - cerr << "nona: extension GL_ARB_shader_objects = " << msg[has_arb_shader_objects] << endl; - cerr << "nona: extension GL_ARB_shading_language_100 = " << msg[has_arb_shading_language] << endl; - cerr << "nona: extension GL_ARB_texture_rectangle = " << msg[has_arb_texture_rectangle] << endl; - cerr << "nona: extension GL_ARB_texture_border_clamp = " << msg[has_arb_texture_border_clamp] << endl; - cerr << "nona: extension GL_ARB_texture_float = " << msg[has_arb_texture_float] << endl; - cerr << "nona: This graphics system lacks the necessary extensions for -g." << endl; - cerr << "nona: Switching to CPU calculation." << endl; + cerr << name << ": " << _X("extension") << " GL_ARB_fragment_shader = " << msg[has_arb_fragment_shader] << endl; + cerr << name << ": " << _X("extension") << " GL_ARB_vertex_shader = " << msg[has_arb_vertex_shader] << endl; + cerr << name << ": " << _X("extension") << " GL_ARB_shader_objects = " << msg[has_arb_shader_objects] << endl; + cerr << name << ": " << _X("extension") << " GL_ARB_shading_language_100 = " << msg[has_arb_shading_language] << endl; + cerr << name << ": " << _X("extension") << " GL_ARB_texture_rectangle = " << msg[has_arb_texture_rectangle] << endl; + cerr << name << ": " << _X("extension") << " GL_ARB_texture_border_clamp = " << msg[has_arb_texture_border_clamp] << endl; + cerr << name << ": " << _X("extension") << " GL_ARB_texture_float = " << msg[has_arb_texture_float] << endl; + cerr << name << ": " << _X("This graphics system lacks the necessary extensions for") <<" -g." << endl; + cerr << name << ": " << _X("Switching to CPU calculation.") << endl; glutDestroyWindow(GlutWindowHandle); return false; } @@ -166,7 +168,10 @@ int main(int argc, char *argv[]) { - + + InitTranslation(); + const char * name = argv[0]; + // parse arguments const char * optstring = "z:cho:i:t:m:p:r:e:vg"; int c; @@ -240,7 +245,7 @@ useGPU = 1; break; default: - usage(argv[0]); + usage(argv[0]); abort (); } } @@ -268,19 +273,19 @@ Panorama pano; ifstream prjfile(scriptFile); if (prjfile.bad()) { - cerr << "could not open script : " << scriptFile << std::endl; + cerr << _X("could not open script") << " : " << scriptFile << std::endl; exit(1); } pano.setFilePrefix(hugin_utils::getPathPrefix(scriptFile)); AppBase::DocumentData::ReadWriteError err = pano.readData(prjfile); if (err != AppBase::DocumentData::SUCCESSFUL) { - cerr << "error while parsing panos tool script: " << scriptFile << std::endl; + cerr << _X("error while parsing panos tool script:") << " " << scriptFile << std::endl; exit(1); } if ( nCmdLineImgs > 0) { if (nCmdLineImgs != pano.getNrOfImages()) { - cerr << "Incorrect number of images specified on command line\nProject required " << pano.getNrOfImages() << " but " << nCmdLineImgs << " where given" << std::endl; + cerr << _X("Incorrect number of images specified on command line\nProject required") <<" " << pano.getNrOfImages() << " " << _X("but") << " " << nCmdLineImgs << " " << _X("where given") << std::endl; exit(1); } for (unsigned i=0; i < pano.getNrOfImages(); i++) { @@ -307,7 +312,7 @@ } else if (outputFormat == "EXR") { opts.outputFormat = PanoramaOptions::EXR; } else if (outputFormat != "") { - cerr << "Error: unknown output format: " << outputFormat << endl; + cerr << _X("Error: unknown output format:") << " " << outputFormat << endl; return 1; } @@ -334,15 +339,15 @@ { if(!set_contains(activeImages,*it)) { - std::cerr << "The project file does not contains an image with number " << *it << std::endl; + std::cerr << _X("The project file does not contains an image with number") << " " << *it << std::endl; return 1; }; }; }; if(outputImages.size()==0) { - std::cout << "Project does not contain active images." << std::endl - << "Nothing to do for nona." << std::endl; + std::cout << _X("Project does not contain active images.") << std::endl + << _X("Nothing to do for") << " " << name << "." << std::endl; return 0; }; if(useGPU) @@ -359,7 +364,7 @@ case HuginBase::PanoramaOptions::EQUI_PANINI: case HuginBase::PanoramaOptions::GENERAL_PANINI: useGPU=false; - std::cout << "Nona-GPU does not support this projection. Switch to CPU calculation."<<std::endl; + std::cout << name << "-" << _X("GPU does not support this projection. Switch to CPU calculation.") << std::endl; break; }; for(UIntSet::const_iterator it=outputImages.begin(); it!=outputImages.end();it++) @@ -368,7 +373,7 @@ if(img.getX()!=0 || img.getY()!=0 || img.getZ()!=0) { useGPU=false; - std::cout << "Nona-GPU does not support the translation parameters. Switch to CPU calculation." << std::endl; + std::cout << name << "-" << _X("GPU does not support the translation parameters. Switch to CPU calculation.") << std::endl; break; }; }; @@ -395,7 +400,7 @@ } } catch (std::exception & e) { - cerr << "caught exception: " << e.what() << std::endl; + cerr << _X("caught exception") << ": " << e.what() << std::endl; return 1; } |