Hello community,

here is the log from the commit of package palapeli for openSUSE:Factory 
checked in at 2018-11-13 16:55:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/palapeli (Old)
 and      /work/SRC/openSUSE:Factory/.palapeli.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "palapeli"

Tue Nov 13 16:55:33 2018 rev:78 rq:648132 version:18.08.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/palapeli/palapeli.changes        2018-10-17 
08:39:30.681953155 +0200
+++ /work/SRC/openSUSE:Factory/.palapeli.new/palapeli.changes   2018-11-13 
17:30:41.641193899 +0100
@@ -1,0 +2,12 @@
+Thu Nov 08 20:44:18 UTC 2018 - [email protected]
+
+- Update to 18.08.3
+  * New bugfix release
+  * For more details please see:
+  * https://www.kde.org/announcements/announce-applications-18.08.3.php
+- Changes since 18.08.2:
+  * Fix crash on startup
+  * Fix leak of the graphicsscene on the Puzzle preview
+  * Fix small memory leak
+
+-------------------------------------------------------------------

Old:
----
  palapeli-18.08.2.tar.xz

New:
----
  palapeli-18.08.3.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ palapeli.spec ++++++
--- /var/tmp/diff_new_pack.kU9YtN/_old  2018-11-13 17:30:42.137193218 +0100
+++ /var/tmp/diff_new_pack.kU9YtN/_new  2018-11-13 17:30:42.141193213 +0100
@@ -18,7 +18,7 @@
 %bcond_without lang
 
 Name:           palapeli
-Version:        18.08.2
+Version:        18.08.3
 Release:        0
 %define kf5_version 5.26.0
 # Latest stable Applications (e.g. 17.08 in KA, but 17.11.80 in KUA)

++++++ palapeli-18.08.2.tar.xz -> palapeli-18.08.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/palapeli-18.08.2/po/zh_CN/palapeli.po 
new/palapeli-18.08.3/po/zh_CN/palapeli.po
--- old/palapeli-18.08.2/po/zh_CN/palapeli.po   2018-10-09 02:24:48.000000000 
+0200
+++ new/palapeli-18.08.3/po/zh_CN/palapeli.po   2018-11-06 01:17:00.000000000 
+0100
@@ -3,8 +3,8 @@
 "Project-Id-Version: kdeorg\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n";
 "POT-Creation-Date: 2017-10-25 05:38+0200\n"
-"PO-Revision-Date: 2018-09-28 19:53\n"
-"Last-Translator: guoyunhe <[email protected]>\n"
+"PO-Revision-Date: 2018-11-01 23:21\n"
+"Last-Translator: guoyunhe <[email protected]>\n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
@@ -29,85 +29,85 @@
 #: libpala/slicerpropertyset.cpp:71
 #, kde-format
 msgid "Piece count"
-msgstr ""
+msgstr "拼图块数"
 
 #: libpala/slicerpropertyset.cpp:75
 #, kde-format
 msgid "Piece aspect ratio"
-msgstr ""
+msgstr "拼图块纵横比"
 
 #: slicers/goldberg/grid.h:39
 #, kde-format
 msgctxt "Puzzle grid type"
 msgid "Predefined settings"
-msgstr ""
+msgstr "预设设置"
 
 #: slicers/goldberg/grid.h:46
 #, kde-format
 msgctxt "Puzzle grid type"
 msgid "Cairo (pentagonal) grid"
-msgstr ""
+msgstr "开罗 (五边形) 网格"
 
 #: slicers/goldberg/grid.h:53
 #, kde-format
 msgctxt "Puzzle grid type"
 msgid "Hexagonal grid"
-msgstr ""
+msgstr "六边形网格"
 
 #: slicers/goldberg/grid.h:60
 #, kde-format
 msgctxt "Puzzle grid type"
 msgid "Rectangular grid"
-msgstr ""
+msgstr "矩形网格"
 
 #: slicers/goldberg/grid.h:67
 #, kde-format
 msgctxt "Puzzle grid type"
 msgid "Rotrex (rhombi-trihexagonal) grid"
-msgstr ""
+msgstr "Rotrex (小斜方截半六边形镶嵌) 网格"
 
 #: slicers/goldberg/grid.h:74
 #, kde-format
 msgctxt "Puzzle grid type"
 msgid "Irregular grid"
-msgstr ""
+msgstr "不规则网格"
 
 #: slicers/goldberg/slicer-goldberg.cpp:52
 #, kde-format
 msgid "Approx. piece count"
-msgstr ""
+msgstr "大致拼图块数"
 
 #: slicers/goldberg/slicer-goldberg.cpp:58
 #, kde-format
 msgid "Quick preset"
-msgstr ""
+msgstr "快速预设"
 
 #: slicers/goldberg/slicer-goldberg.cpp:60
 #, kde-format
 msgctxt "Puzzle shape preset"
 msgid "Ordinary"
-msgstr ""
+msgstr "普通"
 
 #: slicers/goldberg/slicer-goldberg.cpp:61
 #: slicers/goldberg/slicer-goldberg.cpp:137
 #, kde-format
 msgctxt "Puzzle shape preset"
 msgid "Very regular"
-msgstr ""
+msgstr "非常规整"
 
 #: slicers/goldberg/slicer-goldberg.cpp:62
 #: slicers/goldberg/slicer-goldberg.cpp:138
 #, kde-format
 msgctxt "Puzzle shape preset"
 msgid "Very diverse"
-msgstr ""
+msgstr "非常多样"
 
 #: slicers/goldberg/slicer-goldberg.cpp:63
 #: slicers/goldberg/slicer-goldberg.cpp:139
 #, kde-format
 msgctxt "Puzzle shape preset"
 msgid "Large plugs"
-msgstr ""
+msgstr "大接头"
 
 #: slicers/goldberg/slicer-goldberg.cpp:70
 #, kde-format
@@ -117,37 +117,37 @@
 #: slicers/goldberg/slicer-goldberg.cpp:77
 #, kde-format
 msgid "Edge curviness"
-msgstr ""
+msgstr "边缘弯曲度"
 
 #: slicers/goldberg/slicer-goldberg.cpp:83
 #, kde-format
 msgid "Plug size"
-msgstr ""
+msgstr "接头大小"
 
 #: slicers/goldberg/slicer-goldberg.cpp:90
 #, kde-format
 msgid "Diversity of curviness"
-msgstr ""
+msgstr "曲线多样性"
 
 #: slicers/goldberg/slicer-goldberg.cpp:97
 #, kde-format
 msgid "Diversity of plug position"
-msgstr ""
+msgstr "接头位置多样性"
 
 #: slicers/goldberg/slicer-goldberg.cpp:104
 #, kde-format
 msgid "Diversity of plugs"
-msgstr ""
+msgstr "接头多样性"
 
 #: slicers/goldberg/slicer-goldberg.cpp:111
 #, kde-format
 msgid "Diversity of piece size"
-msgstr ""
+msgstr "拼图大小多样性"
 
 #: slicers/goldberg/slicer-goldberg.cpp:120
 #, kde-format
 msgid "Dump grid image"
-msgstr ""
+msgstr "导出网格图像"
 
 #: src/config/configdialog.cpp:73
 #, kde-format
@@ -157,7 +157,7 @@
 #: src/config/configdialog.cpp:76
 #, kde-format
 msgid "Mouse interaction"
-msgstr ""
+msgstr "鼠标交互"
 
 #: src/config/configdialog.cpp:123
 #, kde-format
@@ -192,19 +192,19 @@
 #: src/config/mouseinputbutton.cpp:57
 #, kde-format
 msgid "Remove this trigger"
-msgstr ""
+msgstr "删除此触发器"
 
 #: src/config/mouseinputbutton.cpp:131 src/config/mouseinputbutton.cpp:257
 #, kde-format
 msgid "Input here..."
-msgstr ""
+msgstr "在此输入..."
 
 #: src/config/mouseinputbutton.cpp:132
 #, kde-format
 msgid ""
 "Hold down the modifier keys you want, then click a mouse button or scroll a "
 "mouse wheel here"
-msgstr ""
+msgstr "按住您想要用的修饰键,随后在此点击或滚动鼠标"
 
 #: src/config/mouseinputbutton.cpp:230
 #, kde-format
@@ -217,38 +217,38 @@
 #: src/config/mouseinputbutton.cpp:236
 #, kde-format
 msgid "Click to change how an action is triggered"
-msgstr ""
+msgstr "点击可更改的动作的触发方式"
 
 #: src/config/triggerconfigwidget.cpp:32
 #, kde-format
 msgid "Mouse buttons"
-msgstr ""
+msgstr "鼠标按钮"
 
 #: src/config/triggerconfigwidget.cpp:33
 #, kde-format
 msgid "Mouse wheel"
-msgstr ""
+msgstr "鼠标滚轮"
 
 #: src/config/triggerlistview.cpp:27
 #, kde-format
 msgid "Interaction with pieces"
-msgstr ""
+msgstr "与拼图互动"
 
 #: src/config/triggerlistview.cpp:29
 #, kde-format
 msgid "Interaction with the puzzle table"
-msgstr ""
+msgstr "与拼图板互动"
 
 #: src/config/triggerlistview.cpp:31
 #, kde-format
 msgid "Interaction with the viewport"
-msgstr ""
+msgstr "与视点互动"
 
 #: src/creator/puzzlecreator.cpp:50
 #, kde-format
 msgctxt "@title:window"
 msgid "Create new puzzle"
-msgstr ""
+msgstr "创建新拼图"
 
 #: src/creator/puzzlecreator.cpp:56
 #, kde-format
@@ -260,118 +260,118 @@
 #, kde-format
 msgctxt "@info"
 msgid "Please describe below the image which you have chosen."
-msgstr ""
+msgstr "请在下方描述您所选的图像。"
 
 #: src/creator/puzzlecreator.cpp:58
 #, kde-format
 msgctxt "@label:textbox"
 msgid "Image name:"
-msgstr ""
+msgstr "图像名:"
 
 #: src/creator/puzzlecreator.cpp:59
 #, kde-format
 msgctxt "@label:textbox (like in: This comment is optional.)"
 msgid "Optional comment:"
-msgstr ""
+msgstr "可选注释:"
 
 #: src/creator/puzzlecreator.cpp:60
 #, kde-format
 msgctxt "@label:textbox"
 msgid "Name of image author:"
-msgstr ""
+msgstr "图像作者名字:"
 
 #: src/creator/puzzlecreator.cpp:67
 #, kde-format
 msgctxt "@item:inlistbox (page name in an assistant dialog)"
 msgid "Choose image"
-msgstr ""
+msgstr "选择图像"
 
 #: src/creator/puzzlecreator.cpp:68
 #, kde-format
 msgctxt "@title:tab (page header in an assistant dialog)"
 msgid "Specify the source image to be sliced into pieces"
-msgstr ""
+msgstr "指定要切分为拼块的来源图像"
 
 #: src/creator/puzzlecreator.cpp:70
 #, kde-format
 msgctxt "@item:inlistbox (page name in an assistant dialog)"
 msgid "Choose slicer"
-msgstr ""
+msgstr "选择切分器"
 
 #: src/creator/puzzlecreator.cpp:71
 #, kde-format
 msgctxt "@title:tab (page header in an assistant dialog)"
 msgid "Choose a slicing method"
-msgstr ""
+msgstr "选择切分方式"
 
 #: src/creator/puzzlecreator.cpp:72
 #, kde-format
 msgctxt "@item:inlistbox (page name in an assistant dialog)"
 msgid "Configure slicer"
-msgstr ""
+msgstr "配置切分器"
 
 #: src/creator/puzzlecreator.cpp:73
 #, kde-format
 msgctxt "@title:tab (page header in an assistant dialog)"
 msgid "Tweak the parameters of the chosen slicing method"
-msgstr ""
+msgstr "微调所选切分方式的参数"
 
 #: src/creator/puzzlecreator.cpp:116
 #, kde-format
 msgid "Puzzle cannot be created: The slicer plugin could not be loaded."
-msgstr ""
+msgstr "无法创建拼图:无法装入切分器插件。"
 
 #: src/creator/puzzlecreator.cpp:123
 #, kde-format
 msgid "Puzzle cannot be created: The file you selected is not an image."
-msgstr ""
+msgstr "无法创建拼图:您所选择的文件不是图像。"
 
 #: src/creator/puzzlecreator.cpp:131
 #, kde-format
 msgid ""
 "Puzzle cannot be created: Slicing failed because of undetermined problems."
-msgstr ""
+msgstr "无法创建拼图:因无法判断的问题而切分失败。"
 
 #: src/engine/constraintinteractor.cpp:27
 #, kde-format
 msgid "Change size of puzzle table area by dragging its edges"
-msgstr ""
+msgstr "拖动解谜板的边框可改变其区域的大小"
 
 #: src/engine/gameplay.cpp:193 src/engine/gameplay.cpp:1139
 #, kde-format
 msgid "You have finished the puzzle. Do you want to restart it now?"
-msgstr ""
+msgstr "您上次已经完成了拼图。您现在想要重新开始吗?"
 
 #: src/engine/gameplay.cpp:307
 #, kde-format
 msgid "The following puzzles will be deleted. This action cannot be undone."
-msgstr ""
+msgstr "以下拼图将被删除,此操作无法撤销。"
 
 #: src/engine/gameplay.cpp:326 src/engine/gameplay.cpp:352
 #, kde-format
 msgctxt "Filter for a file dialog"
 msgid "Palapeli puzzles (*.puzzle)"
-msgstr ""
+msgstr "Palapeli 拼图 (*.puzzle)"
 
 #: src/engine/gameplay.cpp:328
 #, kde-format
 msgid "Import Palapeli puzzles"
-msgstr ""
+msgstr "导入 Palapeli 拼图"
 
 #: src/engine/gameplay.cpp:354
 #, kde-format
 msgid "Save Palapeli puzzles"
-msgstr ""
+msgstr "保存 Palapeli 拼图"
 
 #: src/engine/gameplay.cpp:369
 #, kde-format
 msgid "Create a piece holder"
-msgstr ""
+msgstr "创建暂存区"
 
 #: src/engine/gameplay.cpp:370
 #, kde-format
 msgid "Enter a short name (optional):"
-msgstr ""
+msgstr "输入短名称 (可选):"
 
 #: src/engine/gameplay.cpp:418
 #, kde-format
@@ -379,24 +379,25 @@
 "You need to click on a piece holder to select it before you can delete it, "
 "or you can just click on its Close button."
 msgstr ""
+"在您删除它之前,您需要点击一个暂存区来选中它,或者您也可以点击关闭按钮。"
 
 #: src/engine/gameplay.cpp:437
 #, kde-format
 msgid "The selected piece holder must be empty before you can delete it."
-msgstr ""
+msgstr "在删除选中的暂存区之前,它必须被清空。"
 
 #: src/engine/gameplay.cpp:456
 #, kde-format
 msgid ""
 "The selected piece holder must contain some pieces for 'Select all' to use."
-msgstr ""
+msgstr "选中的暂存区需要有一些拼片才能被“选择所有”所选中。"
 
 #: src/engine/gameplay.cpp:462
 #, kde-format
 msgid ""
 "You need to click on a piece holder to select it before you can select all "
 "the pieces in it."
-msgstr ""
+msgstr "在选择其中的所有拼图片之前,您需要先点击一个暂存区来选中它。"
 
 #: src/engine/gameplay.cpp:482
 #, kde-format
@@ -404,13 +405,15 @@
 "To rearrange pieces, either the puzzle table must have some selected pieces "
 "or there must be a selected holder with some selected pieces in it."
 msgstr ""
+"要重新排列拼图片,您需要在拼图板上选择一些拼图片,或者在一个选中的暂存区中选"
+"中一些拼图片。"
 
 #: src/engine/gameplay.cpp:544
 #, kde-format
 msgid ""
 "You need to have a piece holder and click it to select it before you can "
 "transfer pieces into or out of it."
-msgstr ""
+msgstr "要将拼图片移入或移出,您需要先点击一个暂存区来选中它。"
 
 #: src/engine/gameplay.cpp:564
 #, kde-format
@@ -418,6 +421,7 @@
 "You have selected to transfer a large piece containing more than six small "
 "pieces to a holder. Do you really wish to do that?"
 msgstr ""
+"您选择了将包括超过六片拼图片的一大片拼图移动到一个暂存区。您真的想那么做吗?"
 
 #: src/engine/gameplay.cpp:586
 #, kde-format
@@ -425,6 +429,8 @@
 "You need to select one or more pieces to be transferred out of the selected "
 "holder or select pieces from the puzzle table to be transferred into it."
 msgstr ""
+"您需要选择一个或多个拼图片来从选中的暂存区中转移出来,或者选中拼图板中的一些"
+"拼图片来将它们转移到暂存区中。"
 
 #: src/engine/gameplay.cpp:604
 #, kde-format
@@ -432,6 +438,7 @@
 "You need to select one or more pieces to be transferred from the previous "
 "holder into the newly selected holder."
 msgstr ""
+"您需要选择一个或多个拼图片才能将它们从前一个暂存区中转移到新选择的暂存区中。"
 
 #: src/engine/gameplay.cpp:612
 #, kde-format
@@ -501,95 +508,95 @@
 #, kde-format
 msgctxt "Caption for hints"
 msgid "Solving Large Puzzles"
-msgstr ""
+msgstr "解决大型拼图"
 
 #: src/engine/gameplay.cpp:1197
 #, kde-format
 msgid "Great! You have finished the puzzle."
-msgstr ""
+msgstr "太棒了!您完成了拼图。"
 
 #: src/engine/interactors.cpp:37
 #, kde-format
 msgctxt "Description (used like a name) for a mouse interaction method"
 msgid "Move pieces by dragging"
-msgstr ""
+msgstr "用拖曳来移动拼图片"
 
 #: src/engine/interactors.cpp:152
 #, kde-format
 msgctxt "Description (used like a name) for a mouse interaction method"
 msgid "Select pieces by clicking"
-msgstr ""
+msgstr "点击可选择拼图片"
 
 #: src/engine/interactors.cpp:188
 #, kde-format
 msgctxt "Works instantly, without dragging"
 msgid "Teleport pieces to or from a holder"
-msgstr ""
+msgstr "将拼片传送进或出一个暂存区。"
 
 #: src/engine/interactors.cpp:213
 #, kde-format
 msgctxt "Description (used like a name) for a mouse interaction method"
 msgid "Move viewport by dragging"
-msgstr ""
+msgstr "用拖曳来移动视点"
 
 #: src/engine/interactors.cpp:239
 #, kde-format
 msgctxt "As in a movie scene"
 msgid "Switch to close-up or distant view"
-msgstr ""
+msgstr "切换到近景或远景"
 
 #: src/engine/interactors.cpp:258
 #, kde-format
 msgctxt "Description (used like a name) for a mouse interaction method"
 msgid "Zoom viewport"
-msgstr ""
+msgstr "缩放视点"
 
 #: src/engine/interactors.cpp:277
 #, kde-format
 msgctxt "Description (used like a name) for a mouse interaction method"
 msgid "Scroll viewport horizontally"
-msgstr ""
+msgstr "水平滚动视点"
 
 #: src/engine/interactors.cpp:279
 #, kde-format
 msgctxt "Description (used like a name) for a mouse interaction method"
 msgid "Scroll viewport vertically"
-msgstr ""
+msgstr "垂直滚动视点"
 
 #: src/engine/interactors.cpp:358
 #, kde-format
 msgctxt "Description (used like a name) for a mouse interaction method"
 msgid "Select multiple pieces at once"
-msgstr ""
+msgstr "一次选择多个拼图片"
 
 #: src/engine/interactors.cpp:422
 #, kde-format
 msgctxt "Description (used like a name) for a mouse interaction method"
 msgid "Toggle lock state of the puzzle table area"
-msgstr ""
+msgstr "切换解谜板锁定状态"
 
 #: src/engine/puzzlepreview.cpp:41
 #, kde-format
 msgctxt "Window title"
 msgid "Preview of completed puzzle"
-msgstr ""
+msgstr "预览完成的拼图"
 
 #: src/engine/puzzlepreview.cpp:48
 #, kde-format
 msgctxt "text in preview window"
 msgid "Image is not available."
-msgstr ""
+msgstr "图像不可用。"
 
 #: src/engine/puzzlepreview.cpp:76
 #, kde-format
 msgid "%1 - Preview"
-msgstr ""
+msgstr "%1 - 预览"
 
 #: src/engine/texturehelper.cpp:64
 #, kde-format
 msgctxt "@item:inlistbox"
 msgid "Single color"
-msgstr ""
+msgstr "单色"
 
 #: src/engine/trigger.cpp:99
 #, kde-format
@@ -619,13 +626,13 @@
 #, kde-format
 msgctxt "a special keyboard modifier"
 msgid "GroupSwitch"
-msgstr ""
+msgstr "分组切换"
 
 #: src/engine/trigger.cpp:104
 #, kde-format
 msgctxt "refers to no mouse buttons being pressed"
 msgid "No-Button"
-msgstr ""
+msgstr "无按键"
 
 #: src/engine/trigger.cpp:107
 #, kde-format
@@ -649,13 +656,13 @@
 #, kde-format
 msgctxt "a special mouse button"
 msgid "XButton1"
-msgstr ""
+msgstr "特殊键 1"
 
 #: src/engine/trigger.cpp:111
 #, kde-format
 msgctxt "a special mouse button"
 msgid "XButton2"
-msgstr ""
+msgstr "特殊键 2"
 
 #: src/engine/trigger.cpp:112
 #, kde-format
@@ -670,18 +677,18 @@
 #: src/engine/view.cpp:349
 #, kde-format
 msgid "Your progress is saved automatically while you play."
-msgstr ""
+msgstr "您的进度会在游戏时自动保存。"
 
 #: src/engine/view.cpp:349
 #, kde-format
 msgctxt "used as caption for a dialog that explains the autosave feature"
 msgid "Automatic saving"
-msgstr ""
+msgstr "自动保存"
 
 #: src/engine/zoomwidget.cpp:38
 #, kde-format
 msgid "Lock the puzzle table area"
-msgstr ""
+msgstr "锁定拼图板区域"
 
 #: src/file-io/collection-delegate.cpp:118
 #, kde-format
@@ -693,7 +700,7 @@
 msgctxt "Puzzle description, %2 = name string, %1 = piece count"
 msgid "%2 (%1 piece)"
 msgid_plural "%2 (%1 pieces)"
-msgstr[0] ""
+msgstr[0] "%2 (%1块)"
 
 #: src/file-io/collection-delegate.cpp:144
 #, kde-format
@@ -705,51 +712,51 @@
 #, kde-format
 msgctxt "@action:button that pops up sorting strategy selection menu"
 msgid "Sort list..."
-msgstr ""
+msgstr "排序列表..."
 
 #: src/file-io/collection-view.cpp:72
 #, kde-format
 msgctxt "@action:inmenu selects sorting strategy for collection list"
 msgid "By title"
-msgstr ""
+msgstr "根据标题"
 
 #: src/file-io/collection-view.cpp:73
 #, kde-format
 msgctxt "@action:inmenu selects sorting strategy for collection list"
 msgid "By piece count"
-msgstr ""
+msgstr "按拼图块数"
 
 #: src/file-io/collection.cpp:47
 #, kde-format
 msgid "Loading puzzle..."
-msgstr ""
+msgstr "正在装入拼图..."
 
 #: src/importhelper.cpp:41
 #, kde-format
 msgctxt "command line message"
 msgid "Error: No puzzle file given."
-msgstr ""
+msgstr "错误:未给定拼图文件。"
 
 #: src/importhelper.cpp:52
 #, kde-format
 msgid "Importing puzzle \"%1\" into your collection"
-msgstr ""
+msgstr "正在将拼图“%1”导入到您的收藏"
 
 #: src/main.cpp:39
 #, kde-format
 msgctxt "The application's name"
 msgid "Palapeli"
-msgstr ""
+msgstr "Palapeli"
 
 #: src/main.cpp:39
 #, kde-format
 msgid "KDE Jigsaw Puzzle Game"
-msgstr ""
+msgstr "KDE 拼图板游戏"
 
 #: src/main.cpp:39
 #, kde-format
 msgid "Copyright 2009, 2010, Stefan Majewsky"
-msgstr ""
+msgstr "版权所有 2009,2010,Stefan Majewsky"
 
 #: src/main.cpp:40
 #, kde-format
@@ -759,17 +766,17 @@
 #: src/main.cpp:41
 #, kde-format
 msgid "Johannes Loehnert"
-msgstr ""
+msgstr "Johannes Loehnert"
 
 #: src/main.cpp:42
 #, kde-format
 msgid "The option to preview the completed puzzle"
-msgstr ""
+msgstr "预览完成的拼图的选项"
 
 #: src/main.cpp:47
 #, kde-format
 msgid "Path to puzzle file (will be opened if -i is not given)"
-msgstr ""
+msgstr "拼图文件的路径(未给定 -i 时打开)"
 
 #: src/main.cpp:48
 #, kde-format
@@ -783,7 +790,7 @@
 #: src/palapeli.kcfg:6
 #, kde-format
 msgid "Precision of snapping (as a percentage of piece size)."
-msgstr ""
+msgstr "吸附时的精确度 (相对于拼图片大小的百分比)。"
 
 #. i18n: ectx: label, entry (ViewBackground), group (Appearance)
 #: src/palapeli.kcfg:12
@@ -792,6 +799,7 @@
 "The filename of the background image to use for the View, or \"__color__\" "
 "if a solid color should be used (see key \"ViewBackgroundColor\")."
 msgstr ""
+"视图背景图像的文件名。也可用“__color__”指定使用纯色(参考“视图背景颜色”)。"
 
 #. i18n: ectx: label, entry (ViewBackgroundColor), group (Appearance)
 #: src/palapeli.kcfg:16
@@ -799,13 +807,13 @@
 msgid ""
 "The background color to use for the View (if the key \"ViewBackground\" is "
 "set to \"__color__\")."
-msgstr ""
+msgstr "视图背景图像(“视图背景”为“__color__”时有效)。"
 
 #. i18n: ectx: label, entry (ViewHighlightColor), group (Appearance)
 #: src/palapeli.kcfg:20
 #, kde-format
 msgid "The highlighting color to use for selecting pieces in the View."
-msgstr ""
+msgstr "在视图中选中拼图片时使用的高亮颜色。"
 
 #. i18n: ectx: label, entry (SolutionArea), group (Appearance)
 #: src/palapeli.kcfg:24
@@ -829,7 +837,7 @@
 msgid ""
 "Whether to show the status bar on the puzzle table. (It is not a real status "
 "bar, but the position and provided functionality is similar.)"
-msgstr ""
+msgstr "是否在拼图板上显示状态栏。(不是真正的状态栏,但位置和功能类似)"
 
 #. i18n: ectx: label, entry (PieceShadowsEnabled), group (Appearance)
 #: src/palapeli.kcfg:36
@@ -837,7 +845,7 @@
 msgid ""
 "Whether to render shadows below the puzzle pieces. Turning this off might "
 "improve rendering performance."
-msgstr ""
+msgstr "是否在拼片下面渲染阴影。关闭此项可能会提高渲染性能。"
 
 #. i18n: ectx: label, entry (PieceBevelsEnabled), group (Appearance)
 #: src/palapeli.kcfg:40
@@ -845,32 +853,32 @@
 msgid ""
 "Whether to render bevels on the puzzle pieces. Turning this off might "
 "improve puzzle loading performance."
-msgstr ""
+msgstr "是否在拼片上渲染斜角。关闭此项可能会提高拼图载入性能。"
 
 #. i18n: ectx: label, entry (PuzzlePreviewVisible), group (PuzzlePreview)
 #: src/palapeli.kcfg:46
 #, kde-format
 msgid "Whether the preview window was switched on last time Palapeli was run."
-msgstr ""
+msgstr "上次 Palapeli 运行时预览窗口是否打开。"
 
 #. i18n: ectx: label, entry (PuzzlePreviewGeometry), group (PuzzlePreview)
 #: src/palapeli.kcfg:50
 #, kde-format
 msgid "Last position and size of puzzle preview."
-msgstr ""
+msgstr "拼图预览的最后位置与大小。"
 
 #. i18n: ectx: ToolBar (mainToolBar)
 #: src/palapeliui.rc:35
 #, kde-format
 msgid "Main toolbar"
-msgstr ""
+msgstr "主工具栏"
 
 #. i18n: ectx: property (title), widget (QGroupBox, groupBox_2)
 #: src/settings.ui:17
 #, kde-format
 msgctxt "@title:group"
 msgid "Puzzle table"
-msgstr ""
+msgstr "拼图板"
 
 #. i18n: ectx: property (text), widget (QLabel, label_3)
 #: src/settings.ui:25
@@ -883,7 +891,7 @@
 #: src/settings.ui:55
 #, kde-format
 msgid "Color for highlighting selected pieces:"
-msgstr ""
+msgstr "选中拼片的高亮颜色:"
 
 #. i18n: ectx: property (text), widget (QLabel, label_5)
 #: src/settings.ui:75
@@ -909,19 +917,19 @@
 #: src/settings.ui:156
 #, kde-format
 msgid "Piece appearance"
-msgstr ""
+msgstr "拼图块外观"
 
 #. i18n: ectx: property (text), widget (QCheckBox, kcfg_PieceBevelsEnabled)
 #: src/settings.ui:162
 #, kde-format
 msgid "Draw bevels to create a 3-dimensional appearance"
-msgstr ""
+msgstr "绘制三维外观的斜角效果"
 
 #. i18n: ectx: property (text), widget (QCheckBox, kcfg_PieceShadowsEnabled)
 #: src/settings.ui:172
 #, kde-format
 msgid "Draw shadows below pieces"
-msgstr ""
+msgstr "拼块下绘制阴影"
 
 #. i18n: ectx: property (text), widget (QLabel, label_4)
 #: src/settings.ui:182
@@ -930,141 +938,142 @@
 "These options can be disabled when Palapeli is running very slowly. Changes "
 "will take effect only when a new puzzle is started."
 msgstr ""
+"您可以在 Palapeli 运行非常迟缓时禁用这些选项。这些更改仅在开启新拼图时生效。"
 
 #. i18n: ectx: property (title), widget (QGroupBox, groupBox_3)
 #: src/settings.ui:195
 #, kde-format
 msgctxt "@title:group"
 msgid "Piece behavior"
-msgstr ""
+msgstr "拼图块行为"
 
 #. i18n: ectx: property (text), widget (QLabel, label_1)
 #: src/settings.ui:201
 #, kde-format
 msgctxt "@label:slider"
 msgid "Snapping precision:"
-msgstr ""
+msgstr "吸附精度:"
 
 #. i18n: ectx: property (text), widget (QLabel, label)
 #: src/settings.ui:241
 #, kde-format
 msgctxt "@item:inrange description for the \"snapping precision\" setting"
 msgid "Very precise (harder)"
-msgstr ""
+msgstr "非常精确(困难)"
 
 #. i18n: ectx: property (text), widget (QLabel, label_2)
 #: src/settings.ui:270
 #, kde-format
 msgctxt "@item:inrange description for the \"snapping precision\" setting"
 msgid "Unprecise (easier)"
-msgstr ""
+msgstr "不精确(简单)"
 
 #: src/window/mainwindow.cpp:63
 #, kde-format
 msgid "Show statusbar of puzzle table"
-msgstr ""
+msgstr "显示拼图板的状态栏"
 
 #: src/window/mainwindow.cpp:66
 #, kde-format
 msgid "Back to &collection"
-msgstr ""
+msgstr "返回到我的收藏 (&C)"
 
 #: src/window/mainwindow.cpp:67
 #, kde-format
 msgid "Go back to the collection to choose another puzzle"
-msgstr ""
+msgstr "回到收藏选择其它拼图"
 
 #: src/window/mainwindow.cpp:73
 #, kde-format
 msgid "Create &new puzzle..."
-msgstr ""
+msgstr "创建新拼图 (&N)..."
 
 #: src/window/mainwindow.cpp:74
 #, kde-format
 msgid "Create a new puzzle using an image file from your disk"
-msgstr ""
+msgstr "使用您磁盘上的图像文件创建新拼图"
 
 #: src/window/mainwindow.cpp:80
 #, kde-format
 msgid "&Delete puzzle"
-msgstr ""
+msgstr "删除拼图 (&D)"
 
 #: src/window/mainwindow.cpp:82
 #, kde-format
 msgid "Delete the selected puzzle from your collection"
-msgstr ""
+msgstr "从您的收藏中删除选中的拼图"
 
 #: src/window/mainwindow.cpp:88
 #, kde-format
 msgid "&Import from file..."
-msgstr ""
+msgstr "从文件导入 (&I)..."
 
 #: src/window/mainwindow.cpp:89
 #, kde-format
 msgid "Import a new puzzle from a file into your collection"
-msgstr ""
+msgstr "将新拼图从文件导入到您的收藏"
 
 #: src/window/mainwindow.cpp:94
 #, kde-format
 msgid "&Export to file..."
-msgstr ""
+msgstr "导出至文件 (&E)..."
 
 #: src/window/mainwindow.cpp:96
 #, kde-format
 msgid "Export the selected puzzle from your collection into a file"
-msgstr ""
+msgstr "将选中的拼图从您的收藏导出到文件"
 
 #: src/window/mainwindow.cpp:102
 #, kde-format
 msgid "&Restart puzzle..."
-msgstr ""
+msgstr "重新拼图 (&R)..."
 
 #: src/window/mainwindow.cpp:103
 #, kde-format
 msgid "Delete the saved progress and reshuffle the pieces"
-msgstr ""
+msgstr "删除已保存的进度并打乱拼图片"
 
 #: src/window/mainwindow.cpp:110
 #, kde-format
 msgid "&Create piece holder..."
-msgstr ""
+msgstr "创建暂存区 (&C)..."
 
 #: src/window/mainwindow.cpp:111
 #, kde-format
 msgid "Create a temporary holder for sorting pieces"
-msgstr ""
+msgstr "建立一个用于给拼片分类的暂时放置区域"
 
 #: src/window/mainwindow.cpp:117
 #, kde-format
 msgid "&Delete piece holder"
-msgstr ""
+msgstr "删除暂存区 (&D)"
 
 #: src/window/mainwindow.cpp:118
 #, kde-format
 msgid "Delete a selected temporary holder when it is empty"
-msgstr ""
+msgstr "在其为空时删除选中的暂时存储区域"
 
 #: src/window/mainwindow.cpp:124
 #, kde-format
 msgid "&Select all in holder"
-msgstr ""
+msgstr "选中暂存区中的所有拼片 (&S)"
 
 #: src/window/mainwindow.cpp:125
 #, kde-format
 msgid "Select all pieces in a selected piece holder"
-msgstr ""
+msgstr "选中当前暂存区中的所有拼片"
 
 #: src/window/mainwindow.cpp:131
 #, kde-format
 msgid "&Rearrange pieces"
-msgstr ""
+msgstr "重新排列拼图 (&R)"
 
 #: src/window/mainwindow.cpp:132
 #, kde-format
 msgid ""
 "Rearrange all pieces in a selected piece holder or selected pieces in any "
 "window"
-msgstr ""
+msgstr "重新排列选中暂存区中的所有拼片或者任何窗口中的选中拼片"
 
 #: src/window/mainwindow.cpp:139
 #, kde-format
@@ -1081,7 +1090,7 @@
 #: src/window/mainwindow.cpp:142
 #, kde-format
 msgid "Show or hide the image of the completed puzzle"
-msgstr ""
+msgstr "显示或隐藏完整拼图的图像"
 
 #: src/window/mainwindow.cpp:156 src/window/mainwindow.cpp:165
 #, kde-format
@@ -1091,15 +1100,15 @@
 #: src/window/puzzletablewidget.cpp:59
 #, kde-format
 msgid "No puzzle loaded"
-msgstr ""
+msgstr "未装入拼图"
 
 #: src/window/puzzletablewidget.cpp:128
 #, kde-format
 msgid "You finished the puzzle."
-msgstr ""
+msgstr "您完成了拼图。"
 
 #: src/window/puzzletablewidget.cpp:132
 #, kde-format
 msgctxt "Progress display"
 msgid "%1% finished"
-msgstr ""
+msgstr "已完成 %1%"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/palapeli-18.08.2/src/engine/puzzlepreview.cpp 
new/palapeli-18.08.3/src/engine/puzzlepreview.cpp
--- old/palapeli-18.08.2/src/engine/puzzlepreview.cpp   2018-09-22 
08:00:53.000000000 +0200
+++ new/palapeli-18.08.3/src/engine/puzzlepreview.cpp   2018-11-03 
06:51:24.000000000 +0100
@@ -36,7 +36,7 @@
        m_isZoomed = false;
        m_mousePos = QPoint();
 
-       setScene(new QGraphicsScene());
+       setScene(new QGraphicsScene(this));
        setParent(parent);
        setWindowTitle(i18nc("Window title", "Preview of completed puzzle"));
        setWindowFlags(Qt::Tool | Qt::WindowTitleHint);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/palapeli-18.08.2/src/file-io/collection.cpp 
new/palapeli-18.08.3/src/file-io/collection.cpp
--- old/palapeli-18.08.2/src/file-io/collection.cpp     2018-09-22 
08:00:53.000000000 +0200
+++ new/palapeli-18.08.3/src/file-io/collection.cpp     2018-11-03 
06:51:24.000000000 +0100
@@ -129,7 +129,7 @@
                //construct puzzle with CollectionStorageComponent
                if (!path.isEmpty() && (desktopPath.isEmpty() || 
QFileInfo(path).lastModified() >= QFileInfo(desktopPath).lastModified()))
                {
-                       Palapeli::Puzzle* puzzle = new Palapeli::Puzzle(new 
Palapeli::CollectionStorageComponent(puzzleGroup), path, puzzleId);
+                       Palapeli::Puzzle* puzzle = new Palapeli::Puzzle(new 
Palapeli::CollectionStorageComponent(puzzleGroup, &m_configMutex), path, 
puzzleId);
                        appendRow(new Item(puzzle));
                        continue;
                }
@@ -176,9 +176,11 @@
        
puzzle->get(Palapeli::PuzzleComponent::ArchiveStorage).waitForFinished();
        //create the config group for this puzzle (use pseudo-URL to avoid 
problems
        //when the configuration directory is moved)
+       m_configMutex.lock();
        KConfigGroup puzzleGroup(m_group, id);
        puzzleGroup.writeEntry("Location", palapeliUrl);
        m_config->sync();
+       m_configMutex.unlock();
        //add to the model
        appendRow(new Item(puzzle));
 }
@@ -217,8 +219,10 @@
        if (!QFile(puzzle->location()).remove())
                return false;
        //remove puzzle from config
+       m_configMutex.lock();
        KConfigGroup(m_group, puzzle->identifier()).deleteGroup();
        m_config->sync();
+       m_configMutex.unlock();
        //remove puzzle from model and delete it
        const int count = rowCount();
        for (int row = 0; row < count; ++row)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/palapeli-18.08.2/src/file-io/collection.h 
new/palapeli-18.08.3/src/file-io/collection.h
--- old/palapeli-18.08.2/src/file-io/collection.h       2018-09-22 
08:00:53.000000000 +0200
+++ new/palapeli-18.08.3/src/file-io/collection.h       2018-11-03 
06:51:24.000000000 +0100
@@ -20,6 +20,8 @@
 #define PALAPELI_COLLECTION_H
 
 #include <QStandardItemModel>
+#include <QMutex>
+
 class KConfig;
 class KConfigGroup;
 
@@ -56,6 +58,7 @@
 
                        KConfig* m_config;
                        KConfigGroup* m_group;
+                       QMutex m_configMutex;
        };
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/palapeli-18.08.2/src/file-io/components-collectionstorage.cpp 
new/palapeli-18.08.3/src/file-io/components-collectionstorage.cpp
--- old/palapeli-18.08.2/src/file-io/components-collectionstorage.cpp   
2018-09-22 08:00:53.000000000 +0200
+++ new/palapeli-18.08.3/src/file-io/components-collectionstorage.cpp   
2018-11-03 06:51:24.000000000 +0100
@@ -21,9 +21,10 @@
 #include <QtCore/QBuffer>
 #include <QtCore/QFileInfo>
 #include <KConfigGroup>
+#include <QThread>
 
-Palapeli::CollectionStorageComponent::CollectionStorageComponent(KConfigGroup* 
group)
-       : m_group(group)
+Palapeli::CollectionStorageComponent::CollectionStorageComponent(KConfigGroup* 
group, QMutex *groupMutex)
+       : m_group(group), m_groupMutex(groupMutex)
 {
 }
 
@@ -45,6 +46,7 @@
        }
        //try to serve metadata from cache
        const QDateTime mtime = QFileInfo(file).lastModified();
+       m_groupMutex->lock();
        if (m_group->readEntry("ModifyDateTime", QDateTime()) == mtime)
        {
                //cache is up-to-date
@@ -55,10 +57,12 @@
                metadata.pieceCount = m_group->readEntry("PieceCount", 0);
                metadata.modifyProtection = 
m_group->readEntry("ModifyProtection", false);
                metadata.thumbnail.loadFromData(m_group->readEntry("Thumbnail", 
QByteArray()));
+               m_groupMutex->unlock();
                return new Palapeli::MetadataComponent(metadata);
        }
        else
        {
+               m_groupMutex->unlock();
                //read metadata from archive...
                const Palapeli::PuzzleComponent* arStorage = 
puzzle()->get(ArchiveStorage);
                if (!arStorage)
@@ -69,16 +73,18 @@
                //...and populate cache (image is written via a buffer
                //because KConfig does not support QImage directly)
                const Palapeli::PuzzleMetadata metadata = 
dynamic_cast<Palapeli::MetadataComponent*>(cMetadata)->metadata;
+               QBuffer buffer;
+               metadata.thumbnail.save(&buffer, "PNG");
+               m_groupMutex->lock();
                m_group->writeEntry("Name", metadata.name);
                m_group->writeEntry("Comment", metadata.comment);
                m_group->writeEntry("Author", metadata.author);
                m_group->writeEntry("PieceCount", metadata.pieceCount);
                m_group->writeEntry("ModifyProtection", 
metadata.modifyProtection);
                m_group->writeEntry("ModifyDateTime", mtime);
-               QBuffer buffer;
-               metadata.thumbnail.save(&buffer, "PNG");
                m_group->writeEntry("Thumbnail", buffer.data());
                m_group->sync();
+               m_groupMutex->unlock();
                return cMetadata;
        }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/palapeli-18.08.2/src/file-io/components.h 
new/palapeli-18.08.3/src/file-io/components.h
--- old/palapeli-18.08.2/src/file-io/components.h       2018-09-22 
08:00:53.000000000 +0200
+++ new/palapeli-18.08.3/src/file-io/components.h       2018-11-03 
06:51:24.000000000 +0100
@@ -106,12 +106,13 @@
                COMPONENT_SUBCLASS(CollectionStorage)
                public:
                        ///Takes ownership of @a group.
-                       CollectionStorageComponent(KConfigGroup* group);
+                       CollectionStorageComponent(KConfigGroup* group, QMutex 
*groupMutex);
                        virtual ~CollectionStorageComponent();
 
                        Palapeli::PuzzleComponent* cast(Type type) const 
Q_DECL_OVERRIDE;
                private:
                        KConfigGroup* m_group;
+                       QMutex *m_groupMutex;
        };
 
        ///This is used by the collection if, instead of an actual puzzle 
archive,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/palapeli-18.08.2/src/org.kde.palapeli.appdata.xml 
new/palapeli-18.08.3/src/org.kde.palapeli.appdata.xml
--- old/palapeli-18.08.2/src/org.kde.palapeli.appdata.xml       2018-09-22 
08:00:53.000000000 +0200
+++ new/palapeli-18.08.3/src/org.kde.palapeli.appdata.xml       2018-11-03 
06:51:24.000000000 +0100
@@ -30,6 +30,7 @@
   <name xml:lang="sv">Palapeli</name>
   <name xml:lang="uk">Palapeli</name>
   <name xml:lang="x-test">xxPalapelixx</name>
+  <name xml:lang="zh-CN">Palapeli</name>
   <summary>Jigsaw puzzle game</summary>
   <summary xml:lang="ca">Joc de trencaclosques</summary>
   <summary xml:lang="ca-valencia">Joc de trencaclosques</summary>
@@ -55,6 +56,7 @@
   <summary xml:lang="sv">Pusselspel</summary>
   <summary xml:lang="uk">Гра у складанку</summary>
   <summary xml:lang="x-test">xxJigsaw puzzle gamexx</summary>
+  <summary xml:lang="zh-CN">拼图游戏</summary>
   <description>
     <p>
    Palapeli is a single-player jigsaw puzzle game.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/palapeli-18.08.2/src/window/loadingwidget.cpp 
new/palapeli-18.08.3/src/window/loadingwidget.cpp
--- old/palapeli-18.08.2/src/window/loadingwidget.cpp   2018-09-22 
08:00:53.000000000 +0200
+++ new/palapeli-18.08.3/src/window/loadingwidget.cpp   2018-11-03 
06:51:24.000000000 +0100
@@ -25,7 +25,7 @@
 
 Palapeli::LoadingWidget::LoadingWidget(QWidget* parent)
        : QWidget(parent)
-       , m_updateTimer(new QTimer)
+       , m_updateTimer(new QTimer(this))
        , m_angleDegrees(0)
 {
        setMinimumSize(QSize(64, 64));


Reply via email to