<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://git.reviewboard.kde.org/r/118457/">https://git.reviewboard.kde.org/r/118457/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On June 13th, 2014, 1:31 a.m. CEST, <b>Albert Astals Cid</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Honestly this looks ultra scary. I probably won't have time in 4 days to review this but if it's not too urgent i'd like to get some time to understand your problem and see if this is really the simplest solution because it seems like a huge change.</pre>
</blockquote>
<p>On June 13th, 2014, 9:52 a.m. CEST, <b>Chusslove Illich</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">The proper solution would be to add new format flag to Gettext, named say kde-undo-format, and then invoke xgettext with options --kde -kkundo2_i18n --flag=kundo2_i18n:1:kde-undo-format. This would make the PO messages have the kde-undo-format flag, and avoid the original kludge of putting format information into context string.
Failing that, I don't see a better solution than the proposed. Except for no solution at all, of course: if programmers didn't remember to set the special context, will they remember to use the special call? To me, the only extra safety with the call is that one cannot make a typo after remembering that special handling is needed.
</pre>
</blockquote>
<p>On June 13th, 2014, 10:14 a.m. CEST, <b>Dmitry Kazakov</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">About 'kde-undo-format'. I'm ok with changing the format string to any you choose. Though I'm not sure I understand what we will gain with it. Could you explain it a bit?
With this patch the programmers will not be able to make a misprint or forget to use a special call, because i18n and kundo2_i18n return different non-convertible object types and, therefore, compiler will not compile erroneous code.
</pre>
</blockquote>
<p>On June 13th, 2014, 10:52 a.m. CEST, <b>Chusslove Illich</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">> About 'kde-undo-format'. I'm ok with changing the format string to any you choose. Though I'm not sure I understand what we will gain with it. Could you explain it a bit?
I didn't mean to propose changing the format string in the patch as it is, there is indeed no gain with that.
I meant if patches would be proposed for Gettext (as in Gettext tools), to add a new format flag to support this case, removing the need for POT post-processing in calligra_xgettext.sh. In that case, qtundo-format would not be an acceptable choice of flag name.
> [...] i18n and kundo2_i18n return different non-convertible object types and, therefore, compiler will not compile erroneous code.
I missed this part, so then very nice.
</pre>
</blockquote>
<p>On June 13th, 2014, 1:05 p.m. CEST, <b>Alexander Potashev</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Chusslove,
There is a problem with gettext format flags: when there are two identical messages with different flags, they are merged into one "msgid" in the translation catalog, e.g.:
#: plugins/extensions/dockers/palettedocker/palettedocker_dock.cpp:116
#: plugins/tools/defaulttools/kis_tool_colorpicker.cc:294
#, kde-format
msgid "Palette"
msgstr ""
In the code, I used
- i18n("Palette") at plugins/extensions/dockers/palettedocker/palettedocker_dock.cpp:116 - it does not have the "kde-format" flag,
- ki18n("Palette") at plugins/tools/defaulttools/kis_tool_colorpicker.cc:294, I also added "--flag=ki18n:1:kde-format" to the xgettext command line to add the "kde-format" flag to this string.
Something similar will happen if there is one string with "kde-undo-format" flag and another string without it with the same text. If we keep using "(qtundo-format)" in the context, those string would be explicitly split.
Should the above be considered as a bug in gettext, because it merges the strings which should not be merged, or it was designed like this?</pre>
</blockquote>
</blockquote>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This situation could have in principle happened any time so far in Gettext-based translations, I guess it was only too unlikely. And now in this undo-messages scenario it is not at all unlikely.
Regarding design, msgid plus msgctxt as the message identifier is really a central concept of Gettext and PO, so I think no changes there are possible. Maybe another option could be added to xgettext, to do similar as this patch, add a prefix to the msgctxt of every message from a given call. It would have syntax like --flag. It is a bit dirty, but it would be either that or back to manual contexts.
Anyway, this is all academic unless someone wants to actually try something with Gettext.
</pre>
<br />
<p>- Chusslove</p>
<br />
<p>On June 3rd, 2014, 1:41 p.m. CEST, Dmitry Kazakov wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for Calligra and Localization and Translation (l10n).</div>
<div>By Dmitry Kazakov.</div>
<p style="color: grey;"><i>Updated June 3, 2014, 1:41 p.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
calligra
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Some languages (e.g. Russian) have complications related to undo messages (strings). The action string will be shown in two places: in the undo history docker and the message in undo/redo menu actions. The former one should be either a verb or a noun in nominative, the latter --- a noun in accusative. To achieve this, the translators use Magic Split functionality. When the translator needs two translations, he/she splits them with '\n' symbol and the magic string will recognize it and show in the widgets respectively. The problem is that such strings must be used inside KUndo2Command only! Otherwise the '\n' thing will be visible to the user. More than that, to let the translator know that the string is used in KUndo2Command, the developer must use "(qtundo-format)" context.
Both requirements were not satisfied in Calligra, so this patch introduces the way of keeping them satisfied automatically.
Now KUndo2Command cannot accept a usual QString as the operation's text, it accepts only KUndo2MagicString class, which is not convertible from QString. This class is constructed with a special kundo2_i18n() function, which is a full equivalent to a usual ki18n() thing, but returns a string with "(qtundo-format)" properly set. It ensures that all the strings passed to a KUndo2Command are properly formatted and not used anywhere else. It is guaranteed by static type-checks by the compiler.
The translator's scripts are corrected to fit new semantics by Alexander Potashev.
The biggest part of the patch just does regexp substitution of i18n*() into kundo2_i18n*(). The most interesting part is kept in three files:
./libs/kundo2magicstring.{cpp,h}
./calligra_xgettext.sh
</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">All the checks are static so I just compiled the whole Calligra.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>3rdparty/kdgantt/Messages.sh <span style="color: grey">(65aa502)</span></li>
<li>active/Messages.sh <span style="color: grey">(c95de84)</span></li>
<li>braindump/Messages.sh <span style="color: grey">(1360bac)</span></li>
<li>braindump/src/View.cpp <span style="color: grey">(9ec4ced)</span></li>
<li>calligra_xgettext.sh <span style="color: grey">(PRE-CREATION)</span></li>
<li>extras/calligra/Messages.sh <span style="color: grey">(9e5f146)</span></li>
<li>extras/converter/Messages.sh <span style="color: grey">(8a4ab1f)</span></li>
<li>extras/okularodpgenerator/Messages.sh <span style="color: grey">(af34749)</span></li>
<li>filters/Messages.sh <span style="color: grey">(f003521)</span></li>
<li>flow/Messages.sh <span style="color: grey">(f5af941)</span></li>
<li>karbon/Messages.sh <span style="color: grey">(35db850)</span></li>
<li>karbon/common/commands/KarbonBooleanCommand.cpp <span style="color: grey">(71536ac)</span></li>
<li>karbon/plugins/flattenpath/KarbonPathFlattenCommand.cpp <span style="color: grey">(74a175d)</span></li>
<li>karbon/plugins/refinepath/KarbonPathRefineCommand.cpp <span style="color: grey">(bcca68d)</span></li>
<li>karbon/plugins/roundcorners/RoundCornersCommand.cpp <span style="color: grey">(ed5263b)</span></li>
<li>karbon/plugins/roundcorners/RoundCornersPlugin.cpp <span style="color: grey">(94da9f3)</span></li>
<li>karbon/plugins/tools/Messages.sh <span style="color: grey">(add90f1)</span></li>
<li>karbon/plugins/tools/filterEffectTool/FilterAddCommand.cpp <span style="color: grey">(9faaec1)</span></li>
<li>karbon/plugins/tools/filterEffectTool/FilterRemoveCommand.cpp <span style="color: grey">(26311d0)</span></li>
<li>karbon/plugins/tools/filterEffectTool/FilterStackSetCommand.cpp <span style="color: grey">(25ff087)</span></li>
<li>karbon/plugins/whirlpinch/KarbonWhirlPinchCommand.cpp <span style="color: grey">(4b4598e)</span></li>
<li>karbon/ui/KarbonDocumentMergeCommand.cpp <span style="color: grey">(3a75b5c)</span></li>
<li>karbon/ui/KarbonView.cpp <span style="color: grey">(987b576)</span></li>
<li>karbon/ui/commands/KarbonLayerReorderCommand.cpp <span style="color: grey">(f8635e3)</span></li>
<li>karbon/ui/dockers/KarbonLayerDocker.cpp <span style="color: grey">(2dd4191)</span></li>
<li>karbon/ui/dockers/KarbonLayerModel.cpp <span style="color: grey">(0a3ca68)</span></li>
<li>kexi/Messages.sh <span style="color: grey">(fe33b54)</span></li>
<li>kexi/formeditor/commands.cpp <span style="color: grey">(42fe425)</span></li>
<li>kexi/plugins/forms/widgets/mapbrowser/Messages.sh <span style="color: grey">(91c9f18)</span></li>
<li>kexi/plugins/forms/widgets/webbrowser/Messages.sh <span style="color: grey">(9cefbf8)</span></li>
<li>kexi/plugins/shapes/relationdesign/Messages.sh <span style="color: grey">(f773146)</span></li>
<li>kexi/plugins/tables/kexitabledesignercommands.h <span style="color: grey">(afae4ac)</span></li>
<li>kexi/plugins/tables/kexitabledesignercommands.cpp <span style="color: grey">(2680663)</span></li>
<li>kexi/plugins/tables/kexitabledesignerview.cpp <span style="color: grey">(4ba28da)</span></li>
<li>krita/Messages.sh <span style="color: grey">(3a825ca)</span></li>
<li>krita/benchmarks/kis_filter_selections_benchmark.cpp <span style="color: grey">(6c000f2)</span></li>
<li>krita/benchmarks/kis_floodfill_benchmark.cpp <span style="color: grey">(d639d85)</span></li>
<li>krita/benchmarks/kis_gradient_benchmark.cpp <span style="color: grey">(a23b3cd)</span></li>
<li>krita/benchmarks/kis_low_memory_benchmark.cpp <span style="color: grey">(eb31b80)</span></li>
<li>krita/crashreporter/Messages.sh <span style="color: grey">(22e371a)</span></li>
<li>krita/image/commands/kis_change_filter_command.h <span style="color: grey">(e9722c1)</span></li>
<li>krita/image/commands/kis_deselect_global_selection_command.cpp <span style="color: grey">(14f7a35)</span></li>
<li>krita/image/commands/kis_image_change_layers_command.h <span style="color: grey">(71f0d6f)</span></li>
<li>krita/image/commands/kis_image_change_layers_command.cpp <span style="color: grey">(e6223b0)</span></li>
<li>krita/image/commands/kis_image_command.h <span style="color: grey">(73399b0)</span></li>
<li>krita/image/commands/kis_image_command.cpp <span style="color: grey">(d326d4c)</span></li>
<li>krita/image/commands/kis_image_layer_add_command.cpp <span style="color: grey">(f1961a6)</span></li>
<li>krita/image/commands/kis_image_layer_move_command.cpp <span style="color: grey">(65b9125)</span></li>
<li>krita/image/commands/kis_image_layer_remove_command.cpp <span style="color: grey">(0b54133)</span></li>
<li>krita/image/commands/kis_image_layer_remove_command_impl.cpp <span style="color: grey">(4c0d4dd)</span></li>
<li>krita/image/commands/kis_image_lock_command.cpp <span style="color: grey">(486d752)</span></li>
<li>krita/image/commands/kis_image_node_lower_command.cpp <span style="color: grey">(5eff8c9)</span></li>
<li>krita/image/commands/kis_image_node_raise_command.cpp <span style="color: grey">(55c44ac)</span></li>
<li>krita/image/commands/kis_image_node_to_bottom_command.cpp <span style="color: grey">(001470f)</span></li>
<li>krita/image/commands/kis_image_node_to_top_command.cpp <span style="color: grey">(08515d6)</span></li>
<li>krita/image/commands/kis_image_set_projection_color_space_command.cpp <span style="color: grey">(8bd0c97)</span></li>
<li>krita/image/commands/kis_layer_command.h <span style="color: grey">(063d01c)</span></li>
<li>krita/image/commands/kis_layer_command.cpp <span style="color: grey">(fbfa781)</span></li>
<li>krita/image/commands/kis_layer_props_command.cpp <span style="color: grey">(5d409a8)</span></li>
<li>krita/image/commands/kis_node_command.h <span style="color: grey">(66e044f)</span></li>
<li>krita/image/commands/kis_node_command.cpp <span style="color: grey">(ac29b7a)</span></li>
<li>krita/image/commands/kis_node_compositeop_command.cpp <span style="color: grey">(e50dd43)</span></li>
<li>krita/image/commands/kis_node_opacity_command.cpp <span style="color: grey">(4573935)</span></li>
<li>krita/image/commands/kis_node_property_list_command.cpp <span style="color: grey">(59c923e)</span></li>
<li>krita/image/commands/kis_reselect_global_selection_command.cpp <span style="color: grey">(56b28cd)</span></li>
<li>krita/image/commands_new/kis_image_resize_command.cpp <span style="color: grey">(8524770)</span></li>
<li>krita/image/commands_new/kis_image_set_resolution_command.cpp <span style="color: grey">(48bcac9)</span></li>
<li>krita/image/commands_new/kis_move_command_common.h <span style="color: grey">(e5dfa69)</span></li>
<li>krita/image/commands_new/kis_processing_command.cpp <span style="color: grey">(aa650de)</span></li>
<li>krita/image/commands_new/kis_saved_commands.h <span style="color: grey">(f8613fe)</span></li>
<li>krita/image/commands_new/kis_saved_commands.cpp <span style="color: grey">(291188a)</span></li>
<li>krita/image/commands_new/kis_update_command.cpp <span style="color: grey">(5e84ee3)</span></li>
<li>krita/image/filter/kis_filter.cc <span style="color: grey">(007fb88)</span></li>
<li>krita/image/kis_image.h <span style="color: grey">(86e0b37)</span></li>
<li>krita/image/kis_image.cc <span style="color: grey">(c68ebff)</span></li>
<li>krita/image/kis_indirect_painting_support.h <span style="color: grey">(417f206)</span></li>
<li>krita/image/kis_indirect_painting_support.cpp <span style="color: grey">(a268ce1)</span></li>
<li>krita/image/kis_legacy_undo_adapter.h <span style="color: grey">(4c0cea7)</span></li>
<li>krita/image/kis_legacy_undo_adapter.cpp <span style="color: grey">(1d8b86d)</span></li>
<li>krita/image/kis_painter.h <span style="color: grey">(00b4592)</span></li>
<li>krita/image/kis_painter.cc <span style="color: grey">(f0cf233)</span></li>
<li>krita/image/kis_post_execution_undo_adapter.h <span style="color: grey">(b4771a3)</span></li>
<li>krita/image/kis_post_execution_undo_adapter.cpp <span style="color: grey">(c3adcea)</span></li>
<li>krita/image/kis_processing_applicator.h <span style="color: grey">(8fcd90c)</span></li>
<li>krita/image/kis_processing_applicator.cpp <span style="color: grey">(ecaaf6f)</span></li>
<li>krita/image/kis_selection_filters.h <span style="color: grey">(f42e445)</span></li>
<li>krita/image/kis_selection_filters.cpp <span style="color: grey">(734c986)</span></li>
<li>krita/image/kis_simple_stroke_strategy.h <span style="color: grey">(2760667)</span></li>
<li>krita/image/kis_simple_stroke_strategy.cpp <span style="color: grey">(0f3c40e)</span></li>
<li>krita/image/kis_stroke.h <span style="color: grey">(25e5462)</span></li>
<li>krita/image/kis_stroke.cpp <span style="color: grey">(339f76c)</span></li>
<li>krita/image/kis_stroke_strategy.h <span style="color: grey">(d5a9bd9)</span></li>
<li>krita/image/kis_stroke_strategy.cpp <span style="color: grey">(6b045c9)</span></li>
<li>krita/image/kis_stroke_strategy_undo_command_based.h <span style="color: grey">(8d507ee)</span></li>
<li>krita/image/kis_stroke_strategy_undo_command_based.cpp <span style="color: grey">(505b98c)</span></li>
<li>krita/image/kis_strokes_queue.h <span style="color: grey">(0057d63)</span></li>
<li>krita/image/kis_strokes_queue.cpp <span style="color: grey">(044fdfe)</span></li>
<li>krita/image/kis_surrogate_undo_adapter.h <span style="color: grey">(c677992)</span></li>
<li>krita/image/kis_surrogate_undo_adapter.cpp <span style="color: grey">(8475fea)</span></li>
<li>krita/image/kis_transaction.h <span style="color: grey">(7219217)</span></li>
<li>krita/image/kis_transaction_data.h <span style="color: grey">(3fb4924)</span></li>
<li>krita/image/kis_transaction_data.cpp <span style="color: grey">(2ba0eba)</span></li>
<li>krita/image/kis_undo_adapter.h <span style="color: grey">(b0ba981)</span></li>
<li>krita/image/kis_undo_store.h <span style="color: grey">(10798a5)</span></li>
<li>krita/image/kis_undo_stores.h <span style="color: grey">(0e48ece)</span></li>
<li>krita/image/kis_undo_stores.cpp <span style="color: grey">(c33d579)</span></li>
<li>krita/image/kis_update_scheduler.cpp <span style="color: grey">(d3246e2)</span></li>
<li>krita/image/processing/kis_crop_processing_visitor.cpp <span style="color: grey">(ed44d73)</span></li>
<li>krita/image/processing/kis_mirror_processing_visitor.cpp <span style="color: grey">(f881997)</span></li>
<li>krita/image/processing/kis_transform_processing_visitor.cpp <span style="color: grey">(0939fd2)</span></li>
<li>krita/image/recorder/kis_macro_player.cc <span style="color: grey">(e7cd36d)</span></li>
<li>krita/image/recorder/kis_recorded_filter_action.cpp <span style="color: grey">(0878c85)</span></li>
<li>krita/image/recorder/kis_recorded_paint_action.cpp <span style="color: grey">(185114d)</span></li>
<li>krita/image/tests/kis_convolution_painter_test.cpp <span style="color: grey">(278da43)</span></li>
<li>krita/image/tests/kis_crop_processing_visitor_test.cpp <span style="color: grey">(4636914)</span></li>
<li>krita/image/tests/kis_paint_device_test.cpp <span style="color: grey">(ac3b057)</span></li>
<li>krita/image/tests/kis_painter_test.cpp <span style="color: grey">(7a5810e)</span></li>
<li>krita/image/tests/kis_pixel_selection_test.cpp <span style="color: grey">(0814e43)</span></li>
<li>krita/image/tests/kis_stroke_strategy_undo_command_based_test.cpp <span style="color: grey">(f040ef5)</span></li>
<li>krita/image/tests/kis_transaction_test.cpp <span style="color: grey">(a45f4d5)</span></li>
<li>krita/image/tests/kis_transform_worker_test.cpp <span style="color: grey">(2650e64)</span></li>
<li>krita/plugins/extensions/colorrange/colorrange.cc <span style="color: grey">(b2bcf8e)</span></li>
<li>krita/plugins/extensions/colorrange/dlg_colorrange.cc <span style="color: grey">(b2d6279)</span></li>
<li>krita/plugins/extensions/colorspaceconversion/colorspaceconversion.cc <span style="color: grey">(0e23c2b)</span></li>
<li>krita/plugins/extensions/dockers/imagedocker/forms/wdgImageViewPopup.ui <span style="color: grey">(e45986e)</span></li>
<li>krita/plugins/extensions/dropshadow/kis_dropshadow.cc <span style="color: grey">(c2a0b49)</span></li>
<li>krita/plugins/extensions/gmic/kis_gmic_applicator.h <span style="color: grey">(c6c1bd3)</span></li>
<li>krita/plugins/extensions/gmic/kis_gmic_applicator.cpp <span style="color: grey">(51cfe5f)</span></li>
<li>krita/plugins/extensions/gmic/kis_gmic_plugin.cpp <span style="color: grey">(a2f7148)</span></li>
<li>krita/plugins/extensions/gmic/kis_import_gmic_processing_visitor.cpp <span style="color: grey">(b957e8d)</span></li>
<li>krita/plugins/extensions/gmic/tests/kis_gmic_tests.cpp <span style="color: grey">(958ce1a)</span></li>
<li>krita/plugins/extensions/offsetimage/dlg_offsetimage.cpp <span style="color: grey">(202b79f)</span></li>
<li>krita/plugins/extensions/offsetimage/kis_offset_processing_visitor.cpp <span style="color: grey">(d756921)</span></li>
<li>krita/plugins/extensions/offsetimage/offsetimage.h <span style="color: grey">(2ae4174)</span></li>
<li>krita/plugins/extensions/offsetimage/offsetimage.cpp <span style="color: grey">(d85aa9a)</span></li>
<li>krita/plugins/extensions/rotateimage/rotateimage.cc <span style="color: grey">(eaa0525)</span></li>
<li>krita/plugins/extensions/separate_channels/kis_channel_separator.cc <span style="color: grey">(e7a2f66)</span></li>
<li>krita/plugins/filters/imageenhancement/kis_simple_noise_reducer.cpp <span style="color: grey">(a5711e7)</span></li>
<li>krita/plugins/filters/tests/kis_all_filter_test.cpp <span style="color: grey">(831e2b0)</span></li>
<li>krita/plugins/filters/unsharp/tests/kis_unsharp_mask_test.cpp <span style="color: grey">(eea5571)</span></li>
<li>krita/plugins/formats/bmp/kis_bmp_import.cpp <span style="color: grey">(354a8ae)</span></li>
<li>krita/plugins/formats/exr/exr_converter.cc <span style="color: grey">(99b9e58)</span></li>
<li>krita/plugins/formats/jpeg/kis_jpeg_converter.cc <span style="color: grey">(2b571d4)</span></li>
<li>krita/plugins/formats/pdf/kis_pdf_import.cpp <span style="color: grey">(27fb574)</span></li>
<li>krita/plugins/formats/ppm/kis_ppm_import.cpp <span style="color: grey">(df425ce)</span></li>
<li>krita/plugins/formats/psd/psd_loader.cpp <span style="color: grey">(fd16697)</span></li>
<li>krita/plugins/formats/tga/kis_tga_import.cpp <span style="color: grey">(531e5fe)</span></li>
<li>krita/plugins/formats/tiff/kis_tiff_converter.cc <span style="color: grey">(f89e211)</span></li>
<li>krita/plugins/formats/xcf/kis_xcf_import.cpp <span style="color: grey">(aa42e5a)</span></li>
<li>krita/plugins/paintops/filterop/kis_filterop.cpp <span style="color: grey">(1c6e413)</span></li>
<li>krita/plugins/tools/defaulttools/kis_tool_brush.cc <span style="color: grey">(c9aa171)</span></li>
<li>krita/plugins/tools/defaulttools/kis_tool_ellipse.cc <span style="color: grey">(d911b11)</span></li>
<li>krita/plugins/tools/defaulttools/kis_tool_fill.cc <span style="color: grey">(b6d2d35)</span></li>
<li>krita/plugins/tools/defaulttools/kis_tool_gradient.cc <span style="color: grey">(dafdcf8)</span></li>
<li>krita/plugins/tools/defaulttools/kis_tool_line.cc <span style="color: grey">(06bd43a)</span></li>
<li>krita/plugins/tools/defaulttools/kis_tool_multihand.cpp <span style="color: grey">(23f0451)</span></li>
<li>krita/plugins/tools/defaulttools/kis_tool_path.cc <span style="color: grey">(b4a9d51)</span></li>
<li>krita/plugins/tools/defaulttools/kis_tool_pencil.cc <span style="color: grey">(91f1fb2)</span></li>
<li>krita/plugins/tools/defaulttools/kis_tool_rectangle.cc <span style="color: grey">(9550e45)</span></li>
<li>krita/plugins/tools/defaulttools/strokes/move_selection_stroke_strategy.cpp <span style="color: grey">(2b6a066)</span></li>
<li>krita/plugins/tools/defaulttools/strokes/move_stroke_strategy.cpp <span style="color: grey">(583c055)</span></li>
<li>krita/plugins/tools/selectiontools/kis_tool_select_brush.cc <span style="color: grey">(53d696b)</span></li>
<li>krita/plugins/tools/selectiontools/kis_tool_select_contiguous.cc <span style="color: grey">(1d6ced2)</span></li>
<li>krita/plugins/tools/selectiontools/kis_tool_select_elliptical.cc <span style="color: grey">(4027fe8)</span></li>
<li>krita/plugins/tools/selectiontools/kis_tool_select_outline.cc <span style="color: grey">(c8bcd92)</span></li>
<li>krita/plugins/tools/selectiontools/kis_tool_select_path.cc <span style="color: grey">(20541f2)</span></li>
<li>krita/plugins/tools/selectiontools/kis_tool_select_polygonal.cc <span style="color: grey">(3b1fba5)</span></li>
<li>krita/plugins/tools/selectiontools/kis_tool_select_rectangular.cc <span style="color: grey">(bd17052)</span></li>
<li>krita/plugins/tools/selectiontools/kis_tool_select_similar.cc <span style="color: grey">(a1e382b)</span></li>
<li>krita/plugins/tools/tool_dyna/kis_tool_dyna.cpp <span style="color: grey">(84873d6)</span></li>
<li>krita/plugins/tools/tool_polygon/kis_tool_polygon.cc <span style="color: grey">(e658c7a)</span></li>
<li>krita/plugins/tools/tool_polyline/kis_tool_polyline.cc <span style="color: grey">(ec308aa)</span></li>
<li>krita/plugins/tools/tool_transform2/strokes/transform_stroke_strategy.cpp <span style="color: grey">(e4edb3d)</span></li>
<li>krita/ui/actions/kis_selection_action_factories.cpp <span style="color: grey">(80c6012)</span></li>
<li>krita/ui/canvas/kis_canvas2.h <span style="color: grey">(3ddf25e)</span></li>
<li>krita/ui/canvas/kis_canvas2.cpp <span style="color: grey">(ee67006)</span></li>
<li>krita/ui/flake/kis_take_all_shapes_command.cpp <span style="color: grey">(521ff33)</span></li>
<li>krita/ui/kis_document_undo_store.h <span style="color: grey">(48beb79)</span></li>
<li>krita/ui/kis_document_undo_store.cpp <span style="color: grey">(1b4dbb2)</span></li>
<li>krita/ui/kis_layer_manager.cc <span style="color: grey">(83f1432)</span></li>
<li>krita/ui/kis_mask_manager.h <span style="color: grey">(ebb536b)</span></li>
<li>krita/ui/kis_mask_manager.cc <span style="color: grey">(4cbe03f)</span></li>
<li>krita/ui/kis_node_commands_adapter.h <span style="color: grey">(182cd65)</span></li>
<li>krita/ui/kis_node_commands_adapter.cpp <span style="color: grey">(fccf354)</span></li>
<li>krita/ui/kis_node_manager.h <span style="color: grey">(363cfa1)</span></li>
<li>krita/ui/kis_node_manager.cpp <span style="color: grey">(62449bb)</span></li>
<li>krita/ui/kis_png_converter.cpp <span style="color: grey">(f57fd36)</span></li>
<li>krita/ui/kis_selection_manager.cc <span style="color: grey">(035269d)</span></li>
<li>krita/ui/kis_transaction_based_command.h <span style="color: grey">(bc79fd1)</span></li>
<li>krita/ui/kis_transaction_based_command.cpp <span style="color: grey">(a5b96a7)</span></li>
<li>krita/ui/operations/kis_filter_selection_operation.cpp <span style="color: grey">(eb47076)</span></li>
<li>krita/ui/operations/kis_operation.h <span style="color: grey">(e7896f5)</span></li>
<li>krita/ui/operations/kis_operation.cpp <span style="color: grey">(d2717fc)</span></li>
<li>krita/ui/processing/fill_processing_visitor.cpp <span style="color: grey">(e7c2aae)</span></li>
<li>krita/ui/tests/freehand_stroke_test.cpp <span style="color: grey">(9ff53ac)</span></li>
<li>krita/ui/tests/kis_selection_decoration_test.cpp <span style="color: grey">(44f965a8)</span></li>
<li>krita/ui/tool/kis_figure_painting_tool_helper.h <span style="color: grey">(bb3a42f)</span></li>
<li>krita/ui/tool/kis_figure_painting_tool_helper.cpp <span style="color: grey">(9ea1b1f)</span></li>
<li>krita/ui/tool/kis_selection_tool_helper.h <span style="color: grey">(9bd9435)</span></li>
<li>krita/ui/tool/kis_selection_tool_helper.cpp <span style="color: grey">(7d1f1d2)</span></li>
<li>krita/ui/tool/kis_tool.cc <span style="color: grey">(fc2cc4a)</span></li>
<li>krita/ui/tool/kis_tool_freehand.h <span style="color: grey">(7809e6a)</span></li>
<li>krita/ui/tool/kis_tool_freehand.cc <span style="color: grey">(6a28290)</span></li>
<li>krita/ui/tool/kis_tool_freehand_helper.h <span style="color: grey">(3c37d1f)</span></li>
<li>krita/ui/tool/kis_tool_freehand_helper.cpp <span style="color: grey">(eba3a35)</span></li>
<li>krita/ui/tool/kis_tool_multihand_helper.h <span style="color: grey">(a62c101)</span></li>
<li>krita/ui/tool/kis_tool_multihand_helper.cpp <span style="color: grey">(f6d8df6)</span></li>
<li>krita/ui/tool/kis_tool_shape.h <span style="color: grey">(746f79c)</span></li>
<li>krita/ui/tool/kis_tool_shape.cc <span style="color: grey">(9597a87)</span></li>
<li>krita/ui/tool/strokes/freehand_stroke.h <span style="color: grey">(7b1a75c)</span></li>
<li>krita/ui/tool/strokes/freehand_stroke.cpp <span style="color: grey">(6739425)</span></li>
<li>krita/ui/tool/strokes/kis_filter_stroke_strategy.cpp <span style="color: grey">(6b193e1)</span></li>
<li>krita/ui/tool/strokes/kis_painter_based_stroke_strategy.h <span style="color: grey">(bcdeeee)</span></li>
<li>krita/ui/tool/strokes/kis_painter_based_stroke_strategy.cpp <span style="color: grey">(4fb4ed8)</span></li>
<li>libs/Messages.sh <span style="color: grey">(d930f85)</span></li>
<li>libs/flake/KoShapePaste.cpp <span style="color: grey">(e01a28e)</span></li>
<li>libs/flake/KoToolProxy.cpp <span style="color: grey">(5dfd57e)</span></li>
<li>libs/flake/commands/KoConnectionShapeTypeCommand.cpp <span style="color: grey">(6bee8a5)</span></li>
<li>libs/flake/commands/KoParameterHandleMoveCommand.cpp <span style="color: grey">(7d57e416)</span></li>
<li>libs/flake/commands/KoParameterToPathCommand.cpp <span style="color: grey">(177d35d)</span></li>
<li>libs/flake/commands/KoPathBreakAtPointCommand.cpp <span style="color: grey">(ec6617d)</span></li>
<li>libs/flake/commands/KoPathCombineCommand.cpp <span style="color: grey">(d8f00d5)</span></li>
<li>libs/flake/commands/KoPathControlPointMoveCommand.cpp <span style="color: grey">(f380dc9)</span></li>
<li>libs/flake/commands/KoPathFillRuleCommand.cpp <span style="color: grey">(287e6e4)</span></li>
<li>libs/flake/commands/KoPathPointInsertCommand.cpp <span style="color: grey">(046b320)</span></li>
<li>libs/flake/commands/KoPathPointMergeCommand.cpp <span style="color: grey">(6d9b3e2)</span></li>
<li>libs/flake/commands/KoPathPointMoveCommand.cpp <span style="color: grey">(c9a3ff2)</span></li>
<li>libs/flake/commands/KoPathPointRemoveCommand.cpp <span style="color: grey">(6110042)</span></li>
<li>libs/flake/commands/KoPathPointTypeCommand.cpp <span style="color: grey">(a997812)</span></li>
<li>libs/flake/commands/KoPathReverseCommand.cpp <span style="color: grey">(d076489)</span></li>
<li>libs/flake/commands/KoPathSegmentBreakCommand.cpp <span style="color: grey">(321f875)</span></li>
<li>libs/flake/commands/KoPathSegmentTypeCommand.cpp <span style="color: grey">(f8d1efb)</span></li>
<li>libs/flake/commands/KoPathShapeMarkerCommand.cpp <span style="color: grey">(f97fed1)</span></li>
<li>libs/flake/commands/KoShapeAlignCommand.cpp <span style="color: grey">(93ec43a)</span></li>
<li>libs/flake/commands/KoShapeBackgroundCommand.cpp <span style="color: grey">(bb3d58e)</span></li>
<li>libs/flake/commands/KoShapeClipCommand.cpp <span style="color: grey">(621772a)</span></li>
<li>libs/flake/commands/KoShapeCreateCommand.cpp <span style="color: grey">(55ffb40)</span></li>
<li>libs/flake/commands/KoShapeDeleteCommand.cpp <span style="color: grey">(96b9d67)</span></li>
<li>libs/flake/commands/KoShapeDistributeCommand.cpp <span style="color: grey">(bfb1409)</span></li>
<li>libs/flake/commands/KoShapeGroupCommand.cpp <span style="color: grey">(16b2b8e)</span></li>
<li>libs/flake/commands/KoShapeKeepAspectRatioCommand.cpp <span style="color: grey">(97d0b7c)</span></li>
<li>libs/flake/commands/KoShapeLockCommand.cpp <span style="color: grey">(99c3c97)</span></li>
<li>libs/flake/commands/KoShapeMoveCommand.cpp <span style="color: grey">(d284f3a)</span></li>
<li>libs/flake/commands/KoShapeRenameCommand.cpp <span style="color: grey">(e670e1f)</span></li>
<li>libs/flake/commands/KoShapeReorderCommand.cpp <span style="color: grey">(b3502a7)</span></li>
<li>libs/flake/commands/KoShapeRunAroundCommand.cpp <span style="color: grey">(cd8b415)</span></li>
<li>libs/flake/commands/KoShapeShadowCommand.cpp <span style="color: grey">(eeb416d)</span></li>
<li>libs/flake/commands/KoShapeShearCommand.cpp <span style="color: grey">(c9ff448)</span></li>
<li>libs/flake/commands/KoShapeSizeCommand.cpp <span style="color: grey">(0e24ec7)</span></li>
<li>libs/flake/commands/KoShapeStrokeCommand.cpp <span style="color: grey">(6c5df4a)</span></li>
<li>libs/flake/commands/KoShapeTransparencyCommand.cpp <span style="color: grey">(e9ba0a0)</span></li>
<li>libs/flake/commands/KoShapeUnclipCommand.cpp <span style="color: grey">(0cf9272)</span></li>
<li>libs/flake/commands/KoShapeUngroupCommand.cpp <span style="color: grey">(a3b5dc2)</span></li>
<li>libs/flake/commands/KoSubpathJoinCommand.cpp <span style="color: grey">(a68ec58)</span></li>
<li>libs/flake/commands/KoSubpathRemoveCommand.cpp <span style="color: grey">(79894f0)</span></li>
<li>libs/flake/tools/KoPathSegmentChangeStrategy.cpp <span style="color: grey">(b6c8fe7)</span></li>
<li>libs/kopageapp/KoPADocumentModel.cpp <span style="color: grey">(b6bb071)</span></li>
<li>libs/kopageapp/KoPADocumentStructureDocker.cpp <span style="color: grey">(587263b)</span></li>
<li>libs/kopageapp/KoPAPastePage.cpp <span style="color: grey">(7c843c9)</span></li>
<li>libs/kopageapp/KoPAView.cpp <span style="color: grey">(9fa7d31)</span></li>
<li>libs/kopageapp/commands/KoPAChangeMasterPageCommand.cpp <span style="color: grey">(384c784)</span></li>
<li>libs/kopageapp/commands/KoPAChangePageLayoutCommand.cpp <span style="color: grey">(5cc79bb)</span></li>
<li>libs/kopageapp/commands/KoPADisplayMasterBackgroundCommand.cpp <span style="color: grey">(8f558da)</span></li>
<li>libs/kopageapp/commands/KoPADisplayMasterShapesCommand.cpp <span style="color: grey">(05f3a5a)</span></li>
<li>libs/kopageapp/commands/KoPAPageDeleteCommand.cpp <span style="color: grey">(972f9e9)</span></li>
<li>libs/kopageapp/commands/KoPAPageInsertCommand.cpp <span style="color: grey">(99b7ec3)</span></li>
<li>libs/kopageapp/commands/KoPAPageMoveCommand.cpp <span style="color: grey">(6452be5)</span></li>
<li>libs/kopageapp/tools/backgroundTool/KoPABackgroundToolWidget.cpp <span style="color: grey">(f6ff2cd)</span></li>
<li>libs/koproperty/Messages.sh <span style="color: grey">(713514a)</span></li>
<li>libs/kotext/KoTextEditor.h <span style="color: grey">(27c86fa)</span></li>
<li>libs/kotext/KoTextEditor.cpp <span style="color: grey">(efc9dd0)</span></li>
<li>libs/kotext/KoTextEditor_format.cpp <span style="color: grey">(dacc19a)</span></li>
<li>libs/kotext/KoTextEditor_p.h <span style="color: grey">(0368cb6)</span></li>
<li>libs/kotext/KoTextEditor_undo.cpp <span style="color: grey">(fcc1f5a)</span></li>
<li>libs/kotext/changetracker/KoChangeTracker.h <span style="color: grey">(6c0c729)</span></li>
<li>libs/kotext/changetracker/KoChangeTracker.cpp <span style="color: grey">(31a2c32)</span></li>
<li>libs/kotext/changetracker/KoChangeTrackerElement.h <span style="color: grey">(709f560)</span></li>
<li>libs/kotext/changetracker/KoChangeTrackerElement.cpp <span style="color: grey">(cef4c01)</span></li>
<li>libs/kotext/commands/AddAnnotationCommand.cpp <span style="color: grey">(9011c55)</span></li>
<li>libs/kotext/commands/AddTextRangeCommand.cpp <span style="color: grey">(9c4c6cc)</span></li>
<li>libs/kotext/commands/ChangeAnchorPropertiesCommand.cpp <span style="color: grey">(384c32d)</span></li>
<li>libs/kotext/commands/ChangeListCommand.cpp <span style="color: grey">(ff064b0)</span></li>
<li>libs/kotext/commands/ChangeStylesCommand.cpp <span style="color: grey">(ed99fad)</span></li>
<li>libs/kotext/commands/ChangeStylesMacroCommand.cpp <span style="color: grey">(f4ddab4)</span></li>
<li>libs/kotext/commands/ChangeTrackedDeleteCommand.cpp <span style="color: grey">(4940020)</span></li>
<li>libs/kotext/commands/DeleteCommand.cpp <span style="color: grey">(5cb92527)</span></li>
<li>libs/kotext/commands/DeleteTableColumnCommand.cpp <span style="color: grey">(793f10a)</span></li>
<li>libs/kotext/commands/DeleteTableRowCommand.cpp <span style="color: grey">(96f3bfd)</span></li>
<li>libs/kotext/commands/InsertNoteCommand.cpp <span style="color: grey">(30fa0df)</span></li>
<li>libs/kotext/commands/InsertTableColumnCommand.cpp <span style="color: grey">(5d0537a)</span></li>
<li>libs/kotext/commands/InsertTableRowCommand.cpp <span style="color: grey">(3802eab)</span></li>
<li>libs/kotext/commands/ListItemNumberingCommand.cpp <span style="color: grey">(3f21884)</span></li>
<li>libs/kotext/commands/ParagraphFormattingCommand.cpp <span style="color: grey">(39e4bd1)</span></li>
<li>libs/kotext/commands/ResizeTableCommand.cpp <span style="color: grey">(7775b93)</span></li>
<li>libs/kotext/commands/TextPasteCommand.cpp <span style="color: grey">(d44887b)</span></li>
<li>libs/kundo2/CMakeLists.txt <span style="color: grey">(31d0a07)</span></li>
<li>libs/kundo2/kundo2magicstring.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>libs/kundo2/kundo2magicstring.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>libs/kundo2/kundo2stack.h <span style="color: grey">(30ff215)</span></li>
<li>libs/kundo2/kundo2stack.cpp <span style="color: grey">(2b644a9)</span></li>
<li>libs/kundo2/kundo2stack_p.h <span style="color: grey">(2c4f9a9)</span></li>
<li>libs/main/KoDocument.h <span style="color: grey">(fcdc7e8)</span></li>
<li>libs/main/KoDocument.cpp <span style="color: grey">(051a81d)</span></li>
<li>plan/Messages.sh <span style="color: grey">(8434481)</span></li>
<li>plan/kptmaindocument.cpp <span style="color: grey">(1dad4dd)</span></li>
<li>plan/kptview.cpp <span style="color: grey">(d1dea4f)</span></li>
<li>plan/libs/Messages.sh <span style="color: grey">(cb1bd9f)</span></li>
<li>plan/libs/kernel/kptcommand.h <span style="color: grey">(9286558)</span></li>
<li>plan/libs/kernel/kptcommand.cpp <span style="color: grey">(691529d)</span></li>
<li>plan/libs/models/kptaccountsmodel.cpp <span style="color: grey">(28afeba)</span></li>
<li>plan/libs/models/kptcalendarmodel.cpp <span style="color: grey">(3717b30)</span></li>
<li>plan/libs/models/kptcommonstrings.h <span style="color: grey">(84d2780)</span></li>
<li>plan/libs/models/kptcommonstrings.cpp <span style="color: grey">(42c176e)</span></li>
<li>plan/libs/models/kptdocumentmodel.cpp <span style="color: grey">(72561c1)</span></li>
<li>plan/libs/models/kptnodeitemmodel.cpp <span style="color: grey">(b321253)</span></li>
<li>plan/libs/models/kptrelationmodel.cpp <span style="color: grey">(364af66)</span></li>
<li>plan/libs/models/kptresourcemodel.cpp <span style="color: grey">(c6086e0)</span></li>
<li>plan/libs/models/kptschedulemodel.cpp <span style="color: grey">(f61c99c)</span></li>
<li>plan/libs/models/kpttaskstatusmodel.cpp <span style="color: grey">(ba169a9)</span></li>
<li>plan/libs/ui/kptcalendareditor.cpp <span style="color: grey">(76a560f)</span></li>
<li>plan/libs/ui/kptdocumentspanel.cpp <span style="color: grey">(3ae5b7d)</span></li>
<li>plan/libs/ui/kptintervaledit.cpp <span style="color: grey">(40b50f9)</span></li>
<li>plan/libs/ui/kptlocaleconfigmoneydialog.cpp <span style="color: grey">(c21dfc7)</span></li>
<li>plan/libs/ui/kptmainprojectdialog.cpp <span style="color: grey">(d6f1b53)</span></li>
<li>plan/libs/ui/kptmainprojectpanel.cpp <span style="color: grey">(d3a9d8c)</span></li>
<li>plan/libs/ui/kptmilestoneprogresspanel.cpp <span style="color: grey">(33cdc6f)</span></li>
<li>plan/libs/ui/kptperteditor.cpp <span style="color: grey">(4c426dc)</span></li>
<li>plan/libs/ui/kptrelationdialog.cpp <span style="color: grey">(499be00)</span></li>
<li>plan/libs/ui/kptrequestresourcespanel.cpp <span style="color: grey">(d62a1ea)</span></li>
<li>plan/libs/ui/kptresourcedialog.cpp <span style="color: grey">(9608316)</span></li>
<li>plan/libs/ui/kptscheduleeditor.cpp <span style="color: grey">(41a4d13)</span></li>
<li>plan/libs/ui/kptstandardworktimedialog.cpp <span style="color: grey">(ff6b5df)</span></li>
<li>plan/libs/ui/kptsummarytaskdialog.cpp <span style="color: grey">(96ad249)</span></li>
<li>plan/libs/ui/kptsummarytaskgeneralpanel.cpp <span style="color: grey">(d71daa8)</span></li>
<li>plan/libs/ui/kpttaskcostpanel.cpp <span style="color: grey">(de9f3ef)</span></li>
<li>plan/libs/ui/kpttaskdescriptiondialog.cpp <span style="color: grey">(3b84ebd)</span></li>
<li>plan/libs/ui/kpttaskdialog.cpp <span style="color: grey">(eabef90)</span></li>
<li>plan/libs/ui/kpttaskeditor.cpp <span style="color: grey">(5067b7d)</span></li>
<li>plan/libs/ui/kpttaskgeneralpanel.cpp <span style="color: grey">(b6cd2b8)</span></li>
<li>plan/libs/ui/kpttaskprogressdialog.cpp <span style="color: grey">(3e4993d)</span></li>
<li>plan/libs/ui/kpttaskprogresspanel.cpp <span style="color: grey">(7e62971)</span></li>
<li>plan/libs/ui/kptwbsdefinitionpanel.cpp <span style="color: grey">(f6a439b)</span></li>
<li>plan/libs/ui/reports/reportview.h <span style="color: grey">(9c01129)</span></li>
<li>plan/libs/ui/reports/reportview.cpp <span style="color: grey">(e3f090c)</span></li>
<li>plan/plugins/schedulers/rcps/Messages.sh <span style="color: grey">(156afee)</span></li>
<li>plan/plugins/schedulers/tj/Messages.sh <span style="color: grey">(248ce0e)</span></li>
<li>plan/plugins/scripting/Messages.sh <span style="color: grey">(ee13f05)</span></li>
<li>plan/plugins/scripting/Module.h <span style="color: grey">(0decd34)</span></li>
<li>plan/plugins/scripting/Module.cpp <span style="color: grey">(11d1567)</span></li>
<li>plan/plugins/scripting/Project.cpp <span style="color: grey">(098c5a8)</span></li>
<li>plan/plugins/scripting/Resource.cpp <span style="color: grey">(7b5044b)</span></li>
<li>plan/workpackage/Messages.sh <span style="color: grey">(4e2f188)</span></li>
<li>plan/workpackage/packagesettings.cpp <span style="color: grey">(cc0b215)</span></li>
<li>plan/workpackage/part.cpp <span style="color: grey">(196d844)</span></li>
<li>plan/workpackage/taskcompletiondialog.cpp <span style="color: grey">(86ca81a)</span></li>
<li>plan/workpackage/taskworkpackagemodel.cpp <span style="color: grey">(70bba61)</span></li>
<li>plan/workpackage/view.cpp <span style="color: grey">(50b9d28)</span></li>
<li>plan/workpackage/workpackage.h <span style="color: grey">(94bfe39)</span></li>
<li>plan/workpackage/workpackage.cpp <span style="color: grey">(af485bf)</span></li>
<li>plugins/artistictextshape/AddTextRangeCommand.cpp <span style="color: grey">(316c572)</span></li>
<li>plugins/artistictextshape/ArtisticTextTool.cpp <span style="color: grey">(a95d7b8)</span></li>
<li>plugins/artistictextshape/AttachTextToPathCommand.cpp <span style="color: grey">(8f089b0)</span></li>
<li>plugins/artistictextshape/ChangeTextAnchorCommand.cpp <span style="color: grey">(09097d9)</span></li>
<li>plugins/artistictextshape/ChangeTextFontCommand.cpp <span style="color: grey">(d463ef0)</span></li>
<li>plugins/artistictextshape/ChangeTextOffsetCommand.cpp <span style="color: grey">(daecd54)</span></li>
<li>plugins/artistictextshape/DetachTextFromPathCommand.cpp <span style="color: grey">(0c9e093)</span></li>
<li>plugins/artistictextshape/Messages.sh <span style="color: grey">(bfe5ea5)</span></li>
<li>plugins/artistictextshape/RemoveTextRangeCommand.cpp <span style="color: grey">(fde39c8)</span></li>
<li>plugins/artistictextshape/ReplaceTextRangeCommand.cpp <span style="color: grey">(52f8f16)</span></li>
<li>plugins/chartshape/Messages.sh <span style="color: grey">(9ce6052)</span></li>
<li>plugins/chartshape/commands/AxisCommand.cpp <span style="color: grey">(398e803)</span></li>
<li>plugins/chartshape/commands/ChartTextShapeCommand.cpp <span style="color: grey">(767038b)</span></li>
<li>plugins/chartshape/commands/ChartTypeCommand.cpp <span style="color: grey">(311ea63)</span></li>
<li>plugins/chartshape/commands/DatasetCommand.cpp <span style="color: grey">(53f8e00)</span></li>
<li>plugins/chartshape/commands/LegendCommand.cpp <span style="color: grey">(ad8e2e0)</span></li>
<li>plugins/colorengines/Messages.sh <span style="color: grey">(852bafb)</span></li>
<li>plugins/commentshape/Messages.sh <span style="color: grey">(97a4f4d)</span></li>
<li>plugins/defaultTools/Messages.sh <span style="color: grey">(9f9d724)</span></li>
<li>plugins/defaultTools/defaulttool/DefaultTool.cpp <span style="color: grey">(453a727)</span></li>
<li>plugins/defaultTools/defaulttool/DefaultToolTransformWidget.cpp <span style="color: grey">(fd04956)</span></li>
<li>plugins/defaultTools/defaulttool/DefaultToolWidget.cpp <span style="color: grey">(7f747b1)</span></li>
<li>plugins/defaultTools/defaulttool/ShapeResizeStrategy.cpp <span style="color: grey">(73ad5a9)</span></li>
<li>plugins/defaultTools/defaulttool/ShapeRotateStrategy.cpp <span style="color: grey">(39abcf9)</span></li>
<li>plugins/defaultTools/defaulttool/ShapeShearStrategy.cpp <span style="color: grey">(0c0f17f)</span></li>
<li>plugins/dockers/Messages.sh <span style="color: grey">(703876e)</span></li>
<li>plugins/formulashape/FormulaCommand.cpp <span style="color: grey">(72c2634)</span></li>
<li>plugins/formulashape/FormulaEditor.cpp <span style="color: grey">(73da180)</span></li>
<li>plugins/formulashape/Messages.sh <span style="color: grey">(2a7d6b7)</span></li>
<li>plugins/kexi/spreadsheet/Messages.sh <span style="color: grey">(0ca8b1f)</span></li>
<li>plugins/musicshape/Messages.sh <span style="color: grey">(a43f557)</span></li>
<li>plugins/musicshape/commands/AddBarsCommand.cpp <span style="color: grey">(425548f)</span></li>
<li>plugins/musicshape/commands/AddDotCommand.cpp <span style="color: grey">(64a89fe)</span></li>
<li>plugins/musicshape/commands/AddNoteCommand.cpp <span style="color: grey">(c82c86d)</span></li>
<li>plugins/musicshape/commands/AddPartCommand.cpp <span style="color: grey">(dde9e23)</span></li>
<li>plugins/musicshape/commands/ChangePartDetailsCommand.cpp <span style="color: grey">(617e128)</span></li>
<li>plugins/musicshape/commands/CreateChordCommand.cpp <span style="color: grey">(b3f1d8e)</span></li>
<li>plugins/musicshape/commands/MakeRestCommand.cpp <span style="color: grey">(3aa80af)</span></li>
<li>plugins/musicshape/commands/RemoveBarCommand.cpp <span style="color: grey">(eacdf05)</span></li>
<li>plugins/musicshape/commands/RemoveChordCommand.cpp <span style="color: grey">(356d3ce)</span></li>
<li>plugins/musicshape/commands/RemoveNoteCommand.cpp <span style="color: grey">(0c41c91)</span></li>
<li>plugins/musicshape/commands/RemovePartCommand.cpp <span style="color: grey">(86b1eba)</span></li>
<li>plugins/musicshape/commands/RemoveStaffElementCommand.cpp <span style="color: grey">(7777f62)</span></li>
<li>plugins/musicshape/commands/SetAccidentalsCommand.cpp <span style="color: grey">(e7d3e76)</span></li>
<li>plugins/musicshape/commands/SetClefCommand.cpp <span style="color: grey">(57f8f97)</span></li>
<li>plugins/musicshape/commands/SetKeySignatureCommand.cpp <span style="color: grey">(54dafdc)</span></li>
<li>plugins/musicshape/commands/SetTimeSignatureCommand.cpp <span style="color: grey">(51d19d9)</span></li>
<li>plugins/musicshape/commands/ToggleTiedNoteCommand.cpp <span style="color: grey">(f496e49)</span></li>
<li>plugins/pathshapes/Messages.sh <span style="color: grey">(1b84744)</span></li>
<li>plugins/pathshapes/ellipse/EllipseShapeConfigCommand.cpp <span style="color: grey">(9e34e92)</span></li>
<li>plugins/pathshapes/rectangle/RectangleShapeConfigCommand.cpp <span style="color: grey">(1b7d697)</span></li>
<li>plugins/pathshapes/spiral/SpiralShapeConfigCommand.cpp <span style="color: grey">(4e0ee7d)</span></li>
<li>plugins/pathshapes/star/StarShapeConfigCommand.cpp <span style="color: grey">(9a6b309)</span></li>
<li>plugins/pictureshape/ChangeImageCommand.cpp <span style="color: grey">(0608b41)</span></li>
<li>plugins/pictureshape/ClipCommand.cpp <span style="color: grey">(2581bd8)</span></li>
<li>plugins/pictureshape/Messages.sh <span style="color: grey">(4c74647)</span></li>
<li>plugins/pluginshape/Messages.sh <span style="color: grey">(f4e28e5)</span></li>
<li>plugins/reporting/barcode/Messages.sh <span style="color: grey">(f15bbdb)</span></li>
<li>plugins/reporting/chart/Messages.sh <span style="color: grey">(f67b19f)</span></li>
<li>plugins/reporting/maps/Messages.sh <span style="color: grey">(6c9f48d)</span></li>
<li>plugins/reporting/web/Messages.sh <span style="color: grey">(14620c9)</span></li>
<li>plugins/semanticitems/contact/Messages.sh <span style="color: grey">(046c5d1)</span></li>
<li>plugins/semanticitems/event/Messages.sh <span style="color: grey">(4e1b6a3)</span></li>
<li>plugins/semanticitems/location/Messages.sh <span style="color: grey">(8f6ea31)</span></li>
<li>plugins/staging/googledocs/Messages.sh <span style="color: grey">(3ec62f6)</span></li>
<li>plugins/staging/pivottables/Messages.sh <span style="color: grey">(702dc96)</span></li>
<li>plugins/staging/templateshape/ChangeSomethingCommand.cpp <span style="color: grey">(d098cd4)</span></li>
<li>plugins/staging/templateshape/Messages.sh <span style="color: grey">(d151821)</span></li>
<li>plugins/staging/threedshape/Messages.sh <span style="color: grey">(7bc171f)</span></li>
<li>plugins/textediting/autocorrection/Messages.sh <span style="color: grey">(83e4a1c)</span></li>
<li>plugins/textediting/changecase/Messages.sh <span style="color: grey">(9e11a76)</span></li>
<li>plugins/textediting/spellcheck/Messages.sh <span style="color: grey">(f161b0e)</span></li>
<li>plugins/textediting/thesaurus/Messages.sh <span style="color: grey">(c1f47f5)</span></li>
<li>plugins/textshape/Messages.sh <span style="color: grey">(4e9b8fc)</span></li>
<li>plugins/textshape/TextTool.cpp <span style="color: grey">(2bf8787)</span></li>
<li>plugins/textshape/commands/AcceptChangeCommand.cpp <span style="color: grey">(0d9adcc)</span></li>
<li>plugins/textshape/commands/AutoResizeCommand.cpp <span style="color: grey">(244d95e)</span></li>
<li>plugins/textshape/commands/ChangeListLevelCommand.cpp <span style="color: grey">(fdb6df5)</span></li>
<li>plugins/textshape/commands/RejectChangeCommand.cpp <span style="color: grey">(5594802)</span></li>
<li>plugins/textshape/commands/ShowChangesCommand.cpp <span style="color: grey">(851b8ce)</span></li>
<li>plugins/textshape/dialogs/FontDia.cpp <span style="color: grey">(5e0b7c2)</span></li>
<li>plugins/textshape/dialogs/TrackedChangeModel.cpp <span style="color: grey">(e270173)</span></li>
<li>plugins/variables/Messages.sh <span style="color: grey">(6ab9b88)</span></li>
<li>plugins/vectorshape/ChangeVectorDataCommand.cpp <span style="color: grey">(c98b4c9)</span></li>
<li>plugins/vectorshape/Messages.sh <span style="color: grey">(4fd90d5)</span></li>
<li>plugins/videoshape/ChangeVideoCommand.cpp <span style="color: grey">(c916744)</span></li>
<li>plugins/videoshape/Messages.sh <span style="color: grey">(7a67cd8)</span></li>
<li>sheets/Cell.h <span style="color: grey">(2d85a81)</span></li>
<li>sheets/Messages.sh <span style="color: grey">(b7cf8ef)</span></li>
<li>sheets/commands/ApplyFilterCommand.cpp <span style="color: grey">(e76b50f)</span></li>
<li>sheets/commands/AutoFillCommand.cpp <span style="color: grey">(984d04a)</span></li>
<li>sheets/commands/AutoFilterCommand.cpp <span style="color: grey">(360fe46)</span></li>
<li>sheets/commands/AutoFormatCommand.cpp <span style="color: grey">(3c67acf)</span></li>
<li>sheets/commands/BorderColorCommand.cpp <span style="color: grey">(b652cea)</span></li>
<li>sheets/commands/CommentCommand.cpp <span style="color: grey">(7b8513b)</span></li>
<li>sheets/commands/ConditionCommand.cpp <span style="color: grey">(8124a9d)</span></li>
<li>sheets/commands/DataManipulators.cpp <span style="color: grey">(1f31536)</span></li>
<li>sheets/commands/DeleteCommand.cpp <span style="color: grey">(d7c8d2d)</span></li>
<li>sheets/commands/IndentationCommand.cpp <span style="color: grey">(f9409a8)</span></li>
<li>sheets/commands/LinkCommand.cpp <span style="color: grey">(6e871f4)</span></li>
<li>sheets/commands/MergeCommand.h <span style="color: grey">(36856af)</span></li>
<li>sheets/commands/MergeCommand.cpp <span style="color: grey">(583a374)</span></li>
<li>sheets/commands/NamedAreaCommand.cpp <span style="color: grey">(d5712ff)</span></li>
<li>sheets/commands/PrecisionCommand.cpp <span style="color: grey">(dabb5c0)</span></li>
<li>sheets/commands/RowColumnManipulators.h <span style="color: grey">(2761143)</span></li>
<li>sheets/commands/RowColumnManipulators.cpp <span style="color: grey">(b6297cd)</span></li>
<li>sheets/commands/SheetCommands.cpp <span style="color: grey">(54d485e)</span></li>
<li>sheets/commands/SortManipulator.cpp <span style="color: grey">(524d27b)</span></li>
<li>sheets/commands/SpellCheckCommand.cpp <span style="color: grey">(8b8997f)</span></li>
<li>sheets/commands/StyleCommand.cpp <span style="color: grey">(0d3127e)</span></li>
<li>sheets/commands/ValidityCommand.cpp <span style="color: grey">(1620710)</span></li>
<li>sheets/dialogs/AddNamedAreaDialog.cpp <span style="color: grey">(b3a54a5)</span></li>
<li>sheets/dialogs/AngleDialog.cpp <span style="color: grey">(7185037)</span></li>
<li>sheets/dialogs/CSVDialog.cpp <span style="color: grey">(ac218e6)</span></li>
<li>sheets/dialogs/CommentDialog.cpp <span style="color: grey">(6f5e794)</span></li>
<li>sheets/dialogs/ConsolidateDialog.cpp <span style="color: grey">(5b9f1fe)</span></li>
<li>sheets/dialogs/DatabaseDialog.cpp <span style="color: grey">(324a025)</span></li>
<li>sheets/dialogs/LayoutDialog.cpp <span style="color: grey">(0d9c42f)</span></li>
<li>sheets/dialogs/NamedAreaDialog.cpp <span style="color: grey">(1762132)</span></li>
<li>sheets/dialogs/ShowDialog.cpp <span style="color: grey">(6512cde)</span></li>
<li>sheets/interfaces/ViewAdaptor.cpp <span style="color: grey">(0b0bfa0)</span></li>
<li>sheets/part/View.cpp <span style="color: grey">(2ad4bc9)</span></li>
<li>sheets/part/commands/DefinePrintRangeCommand.cpp <span style="color: grey">(5b1e6dc)</span></li>
<li>sheets/part/commands/PageLayoutCommand.cpp <span style="color: grey">(1370c6c)</span></li>
<li>sheets/part/dialogs/PageLayoutDialog.cpp <span style="color: grey">(7800fb3)</span></li>
<li>sheets/plugins/calendar/CalendarTool.cpp <span style="color: grey">(39c8cb8)</span></li>
<li>sheets/plugins/calendar/Messages.sh <span style="color: grey">(b4e9aee)</span></li>
<li>sheets/plugins/scripting/Messages.sh <span style="color: grey">(379e2ea)</span></li>
<li>sheets/plugins/scripting/ScriptingWriter.h <span style="color: grey">(2b4b9a7)</span></li>
<li>sheets/plugins/solver/Messages.sh <span style="color: grey">(84298a3)</span></li>
<li>sheets/shape/Messages.sh <span style="color: grey">(61aceed)</span></li>
<li>sheets/ui/CellToolBase.cpp <span style="color: grey">(9c32002)</span></li>
<li>sheets/ui/CellToolBase_p.cpp <span style="color: grey">(07b65c5)</span></li>
<li>stage/Messages.sh <span style="color: grey">(3ba663a)</span></li>
<li>stage/part/KPrPicturesImport.cpp <span style="color: grey">(1900dfb)</span></li>
<li>stage/part/commands/KPrAddCustomSlideShowCommand.cpp <span style="color: grey">(3db8c71)</span></li>
<li>stage/part/commands/KPrAnimationCreateCommand.cpp <span style="color: grey">(769435f)</span></li>
<li>stage/part/commands/KPrAnimationEditNodeTypeCommand.cpp <span style="color: grey">(d072a3b)</span></li>
<li>stage/part/commands/KPrAnimationRemoveCommand.cpp <span style="color: grey">(206ee15)</span></li>
<li>stage/part/commands/KPrDelCustomSlideShowCommand.cpp <span style="color: grey">(f6da6e1)</span></li>
<li>stage/part/commands/KPrDeleteSlidesCommand.cpp <span style="color: grey">(1f36607)</span></li>
<li>stage/part/commands/KPrEditAnimationTimeLineCommand.cpp <span style="color: grey">(6a8181e)</span></li>
<li>stage/part/commands/KPrEditCustomSlideShowsCommand.cpp <span style="color: grey">(dd485ed)</span></li>
<li>stage/part/commands/KPrPageEffectSetCommand.cpp <span style="color: grey">(0d1042e)</span></li>
<li>stage/part/commands/KPrRenameCustomSlideShowCommand.cpp <span style="color: grey">(a1f135b)</span></li>
<li>stage/part/commands/KPrReorderAnimationCommand.cpp <span style="color: grey">(6d2d7ad)</span></li>
<li>stage/part/pagelayout/KPrPlaceholders.cpp <span style="color: grey">(eca83d3)</span></li>
<li>stage/part/tools/KPrPlaceholderTool.cpp <span style="color: grey">(ceeeafd)</span></li>
<li>stage/part/tools/animationtool/KPrPageEffectDocker.cpp <span style="color: grey">(d4f02f8)</span></li>
<li>stage/plugins/eventactions/sound/KPrSoundEventActionWidget.cpp <span style="color: grey">(6ba7acb)</span></li>
<li>words/Messages.sh <span style="color: grey">(c9474f3)</span></li>
<li>words/part/KWView.cpp <span style="color: grey">(b280d50)</span></li>
<li>words/part/commands/KWChangePageStyleCommand.cpp <span style="color: grey">(c4be99a)</span></li>
<li>words/part/commands/KWFrameCreateCommand.cpp <span style="color: grey">(4e35095)</span></li>
<li>words/part/commands/KWFrameDeleteCommand.cpp <span style="color: grey">(c2f289c)</span></li>
<li>words/part/commands/KWNewPageStyleCommand.cpp <span style="color: grey">(0ae3e53)</span></li>
<li>words/part/commands/KWPageStylePropertiesCommand.cpp <span style="color: grey">(bc0fc18)</span></li>
<li>words/part/commands/KWShapeCreateCommand.cpp <span style="color: grey">(e88af08)</span></li>
<li>words/part/dialogs/KWFrameDialog.cpp <span style="color: grey">(60e3fc2)</span></li>
<li>words/part/dialogs/KWPageSettingsDialog.cpp <span style="color: grey">(e046ac6)</span></li>
<li>words/plugins/scripting/Messages.sh <span style="color: grey">(ef1184a)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/118457/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>