<feed xmlns='http://www.w3.org/2005/Atom'>
<title>subsurface.git/qt-models, branch v4.8.0</title>
<subtitle>forked from https://github.com/subsurface/subsurface</subtitle>
<id>https://git.tsegers.com/subsurface.git/atom?h=v4.8.0</id>
<link rel='self' href='https://git.tsegers.com/subsurface.git/atom?h=v4.8.0'/>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/'/>
<updated>2018-06-29T05:30:48Z</updated>
<entry>
<title>Dive pictures: adjust rowDDEnd and rowDDStart on picture deletion</title>
<updated>2018-06-29T05:30:48Z</updated>
<author>
<name>Berthold Stoeger</name>
<email>bstoeger@mail.tuwien.ac.at</email>
</author>
<published>2018-06-28T18:11:39Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=bf60d29e99a7d201850766d9195a052599dfd018'/>
<id>urn:sha1:bf60d29e99a7d201850766d9195a052599dfd018</id>
<content type='text'>
In DivePictureModel, rowDDEnd and rowDDStart specify the range of
pictures in the profile plot. Obviously, these have to be adjusted
when pictures are deleted.

Signed-off-by: Berthold Stoeger &lt;bstoeger@mail.tuwien.ac.at&gt;
</content>
</entry>
<entry>
<title>QML UI: correctly update the model</title>
<updated>2018-06-25T12:20:35Z</updated>
<author>
<name>Dirk Hohndel</name>
<email>dirk@hohndel.org</email>
</author>
<published>2018-06-25T08:39:56Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=dde2049027a483b2e211747e6f18d560a88c28bf'/>
<id>urn:sha1:dde2049027a483b2e211747e6f18d560a88c28bf</id>
<content type='text'>
In order to trigger the redraw of an edited dive we need to make sure
the model realizes that it has been updated. So far the only way to make
sure this happens reliably appears to be to remove the item and
re-insert it. Seems weird, but with this the bug of not redrawing the
profile after an edit appears fixed.

Fixes #1419

Signed-off-by: Dirk Hohndel &lt;dirk@hohndel.org&gt;
</content>
</entry>
<entry>
<title>Localization: remove gettextFromC::instance()</title>
<updated>2018-06-24T18:31:14Z</updated>
<author>
<name>Berthold Stoeger</name>
<email>bstoeger@mail.tuwien.ac.at</email>
</author>
<published>2018-06-17T19:03:16Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=879cb73b8bda364f63cc97c0f9963cfddc581add'/>
<id>urn:sha1:879cb73b8bda364f63cc97c0f9963cfddc581add</id>
<content type='text'>
There were a handfull instances of the kind
1) gettextFromC::instance()-&gt;tr(...)
2) gettextFromC::instance()-&gt;trGettext(...)

1) is pointless, as tr is a static function.

All instances of 2) were likewise pointless, because trGettext()
returns a C-string, which was then immediately converted to a
QString.

Thus, replace both constructs by gettextFromC::tr(...).

After this change there was only one user of gettextFromC::instance()
left, viz. the C-interface funtion trGettext(). Therefore, remove
gettextFromC::instance() and do all the caching / translating
directly in the global trGettext().

Signed-off-by: Berthold Stoeger &lt;bstoeger@mail.tuwien.ac.at&gt;
</content>
</entry>
<entry>
<title>Fix interpretation of dive mode changes upon replan</title>
<updated>2018-06-24T07:35:55Z</updated>
<author>
<name>Robert C. Helling</name>
<email>helling@atdotde.de</email>
</author>
<published>2018-06-17T21:21:53Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=8406cbf1876658dc11f41784c3336908b3dc49a7'/>
<id>urn:sha1:8406cbf1876658dc11f41784c3336908b3dc49a7</id>
<content type='text'>
... by taking into acount that dive planner points refer
to the sement before the waypoint (while change mode
events are concerned with the future of a waypoint).

Signed-off-by: Robert C. Helling &lt;helling@atdotde.de&gt;
</content>
</entry>
<entry>
<title>When adding new waypoints, use previous setpoint.</title>
<updated>2018-06-24T07:35:55Z</updated>
<author>
<name>Robert C. Helling</name>
<email>helling@atdotde.de</email>
</author>
<published>2018-06-17T21:20:02Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=068b4c65bd7d6b2a37212002c7ac220d3f9c9f97'/>
<id>urn:sha1:068b4c65bd7d6b2a37212002c7ac220d3f9c9f97</id>
<content type='text'>
Signed-off-by: Robert C. Helling &lt;helling@atdotde.de&gt;
</content>
</entry>
<entry>
<title>Planner: Change segment setpoint according to divemode</title>
<updated>2018-06-24T07:35:55Z</updated>
<author>
<name>Robert C. Helling</name>
<email>helling@atdotde.de</email>
</author>
<published>2018-06-17T19:30:51Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=0f77d73df28ff6c8c9f83c30232e6481e181ffae'/>
<id>urn:sha1:0f77d73df28ff6c8c9f83c30232e6481e181ffae</id>
<content type='text'>
When making a segment non-CCR, its setpoint should be 0.
OTOH, when it becomes CCR, use the default setpoint
(or should we try to find the last previous setpoint?)

Signed-off-by: Robert C. Helling &lt;helling@atdotde.de&gt;
</content>
</entry>
<entry>
<title>Copy divemode to Replan</title>
<updated>2018-06-24T07:35:55Z</updated>
<author>
<name>Robert C. Helling</name>
<email>helling@atdotde.de</email>
</author>
<published>2018-06-17T11:41:06Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=c64e4b159f38ce4e59766a363687ad3170c04cc9'/>
<id>urn:sha1:c64e4b159f38ce4e59766a363687ad3170c04cc9</id>
<content type='text'>
this needs copying the divemode from the dive to the plan.

Signed-off-by: Robert C. Helling &lt;helling@atdotde.de&gt;
</content>
</entry>
<entry>
<title>equipment: sanitize 'ws_info' loop limits</title>
<updated>2018-06-20T00:30:58Z</updated>
<author>
<name>Lubomir I. Ivanov</name>
<email>neolit123@gmail.com</email>
</author>
<published>2018-06-19T00:59:33Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=06a870c232513aca96a624535d648a6e7c098e5f'/>
<id>urn:sha1:06a870c232513aca96a624535d648a6e7c098e5f</id>
<content type='text'>
Instead of a constant or a macro for the maximum
number of 'ws_info' elements the 100 literal was used.

Define MAX_WS_INFO in dive.h and use it everywhere.

Also clamp loops that iterate `ws_info' to MAX_WS_INFO.
Prevents potential out-of-bounds reading, similarly to
the previous commit about 'tank_info'.

Signed-off-by: Lubomir I. Ivanov &lt;neolit123@gmail.com&gt;
</content>
</entry>
<entry>
<title>equipment: sanitize 'tank_info' loop limits</title>
<updated>2018-06-20T00:30:58Z</updated>
<author>
<name>Lubomir I. Ivanov</name>
<email>neolit123@gmail.com</email>
</author>
<published>2018-06-19T00:19:56Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=769aca9e956cd4bb7cc97be813968348f5e7f3d2'/>
<id>urn:sha1:769aca9e956cd4bb7cc97be813968348f5e7f3d2</id>
<content type='text'>
In a number of places the global 'tank_info' array
is being iterated based on a 'tank_info[idx].name != NULL'
condition.

This is dangerous because if the user has added a lot of tanks,
such loops can reach 'tank_info[MAX_TANK_INFO]'. This is an
out of bounds read and if the 'name' pointer there happens to be
non-NULL, passing that address to a peace of code that tries
to read it (like strlen()) would either SIGSEGV or have undefined
behavior.

Clamp all loops that iterate 'tank_info' to MAX_TANK_INFO.

Signed-off-by: Lubomir I. Ivanov &lt;neolit123@gmail.com&gt;
</content>
</entry>
<entry>
<title>Change from gettextFromC::instance()-&gt;tr() to gettextFromC::tr();</title>
<updated>2018-06-18T05:42:39Z</updated>
<author>
<name>Stefan Fuchs</name>
<email>sfuchs@gmx.de</email>
</author>
<published>2018-06-17T15:55:47Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=c953aadcf82ee050102e228bf08bcff76886caaa'/>
<id>urn:sha1:c953aadcf82ee050102e228bf08bcff76886caaa</id>
<content type='text'>
Code cleanup.

Suggested-by: Berthold Stoeger &lt;bstoeger@mail.tuwien.ac.at&gt;
Signed-off-by: Stefan Fuchs &lt;sfuchs@gmx.de&gt;
</content>
</entry>
</feed>
