subsurface/qt-ui
Linus Torvalds f8e33e171a Fix SIGSEGV after dive computer download
This fixes a crash in the current Qt subsurface code that can happen
after downloading dives from a dive computer, and the new dives merge
with old dives, causing the old dives to be re-allocated into the
merged one.

In that case, the list widgets don't get fully updated, and contain
stale pointers to old dives that no longer exists. Doing anything that
refreshes the display will hide this problem, and you do need to have
multiple dive computers on the same dive to trigger it in the first
place, so it's reasonably hard to hit, but very annoying when you do.

This patch just makes us reload all the dive UI tables, which may be
overkill. It also doesn't actually fix the fact that we seem to do
"process_dives()" within the context of the downloader thread, which
looks like a possible source of races. The "process_dives()" should
also be moved to the main thread, but needs the preferDownloaded()
information that is part of the download window, so it doesn't fit
here. Somebody else (Tomaz?) will hopefully fix that part.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-17 17:21:41 -04:00
..
css Added missing CSS file. 2013-09-02 05:57:08 -03:00
marble Work around broken Marble on Debian 2013-05-18 09:49:37 -07:00
about.cpp Fix compile on clean source 2013-07-19 10:24:59 -07:00
about.h Add an 'About' dialog for the Qt UI 2013-06-24 07:44:28 -07:00
about.ui About: improve dialog layout 2013-07-11 09:22:20 -03:00
completionmodels.cpp Compile fix 2013-08-13 20:29:22 +02:00
completionmodels.h Added classes to handle the Completion of Dive Editions. 2013-08-13 10:30:22 -03:00
divecomputermanagementdialog.cpp Close child windows and dialogs with main window 2013-06-28 20:23:59 +08:00
divecomputermanagementdialog.h Converting the device_info list into a Qt data structure 2013-06-18 00:24:28 -07:00
divecomputermanagementdialog.ui Converting the device_info list into a Qt data structure 2013-06-18 00:24:28 -07:00
divelistview.cpp Fix for double-rendering, double selection and other annoyances. 2013-08-16 12:31:09 -03:00
divelistview.h Qt: Implement trip merging logic 2013-07-04 23:00:12 -07:00
diveplanner.cpp Planner: start time is relative 2013-09-16 23:17:24 -04:00
diveplanner.h Plotted the Scale on the Ruler ( depth / time ) on the planner 2013-09-16 20:10:12 -03:00
diveplanner.ui Code Cleanup: Merged the three TableViews shared code 2013-09-02 16:21:08 -03:00
downloadfromdivecomputer.cpp implement device probe in C 2013-09-16 22:40:47 -03:00
downloadfromdivecomputer.h implement device probe in C 2013-09-16 22:40:47 -03:00
downloadfromdivecomputer.ui implement device probe in C 2013-09-16 22:40:47 -03:00
globe.cpp Coordinate some mark_divelist_changed() calls 2013-06-27 20:57:11 +08:00
globe.h Consistently use slots / signals 2013-06-19 10:20:56 -07:00
graphicsview-common.cpp Use the same line dimensions as the profile, on the planner. 2013-09-16 19:21:13 -03:00
graphicsview-common.h Use the same line dimensions as the profile, on the planner. 2013-09-16 19:21:13 -03:00
kmessagewidget.cpp Fixed the 'click in close doesn't close' on KMessageWidget. 2013-05-22 08:10:02 -03:00
kmessagewidget.h Compile fix 2013-05-17 22:27:50 -07:00
maintab.cpp Improved handling of latitude and longitude. 2013-09-17 16:48:36 -04:00
maintab.h Improved handling of latitude and longitude. 2013-09-17 16:48:36 -04:00
maintab.ui Improved handling of latitude and longitude. 2013-09-17 16:48:36 -04:00
mainwindow.cpp Fix SIGSEGV after dive computer download 2013-09-17 17:21:41 -04:00
mainwindow.h Use the same code for command line and gui for file handling. 2013-09-09 05:59:03 -03:00
mainwindow.ui Fixe: Show the profile and info window on opening. 2013-09-02 05:55:37 -03:00
modeldelegates.cpp Fill ws_info structure and use it when entering weight systems 2013-09-10 11:42:26 -07:00
modeldelegates.h Started the work of Editable Model for the Planner 2013-08-30 07:14:30 -03:00
models.cpp Fix row counting bug 2013-09-10 14:55:30 -07:00
models.h Fill ws_info structure and use it when entering weight systems 2013-09-10 11:42:26 -07:00
plotareascene.cpp Add Qtr_ macros that uses gettext in a tr() compatible manner 2013-04-13 20:44:02 -07:00
plotareascene.h Add Qtr_ macros that uses gettext in a tr() compatible manner 2013-04-13 20:44:02 -07:00
preferences.cpp Close child windows and dialogs with main window 2013-06-28 20:23:59 +08:00
preferences.h Tie all the pieces together and make Preferences work as intended 2013-06-03 21:08:49 +09:00
preferences.ui Corrected spelling of "weight" in the preferences dialog and code 2013-08-30 20:22:50 -07:00
printdialog.cpp Print: add experimental code for printing profiles 2013-07-18 12:00:12 -07:00
printdialog.h Print: add a print preview for testing purposes 2013-07-10 19:27:10 +03:00
printlayout.cpp Print: improve table printing by using QTableView 2013-08-05 06:59:19 +02:00
printlayout.h Print: improve table printing by using QTableView 2013-08-05 06:59:19 +02:00
printoptions.cpp Print: move some header includes to cpp files 2013-07-11 00:45:29 +03:00
printoptions.h Print: move some header includes to cpp files 2013-07-11 00:45:29 +03:00
printoptions.ui Print: correct tab order in the options widget 2013-07-10 10:50:33 +03:00
profilegraphics.cpp Bugfix plot of ceiling violation 2013-09-17 07:31:55 -04:00
profilegraphics.h Support more than one event of the same type in Qt tooltip. 2013-08-05 06:55:18 +02:00
renumber.ui add forgotten file. 2013-06-17 13:54:50 -03:00
simplewidgets.cpp Addes a simple 'Renumber Dialog', very similar to the GTK one. 2013-06-17 13:41:00 -03:00
simplewidgets.h Addes a simple 'Renumber Dialog', very similar to the GTK one. 2013-06-17 13:41:00 -03:00
starwidget.cpp The never ending, futile fight for whitespace consistency 2013-05-22 21:31:45 -07:00
starwidget.h Consistently use slots / signals 2013-06-19 10:20:56 -07:00
subsurfacewebservices.cpp A couple of dialog modality considerations 2013-06-28 20:24:14 +08:00
subsurfacewebservices.h Hoocked up the buttons and the parsing of the XML. 2013-06-06 11:31:55 -03:00
subsurfacewebservices.ui Hoocked up the buttons and the parsing of the XML. 2013-06-06 11:31:55 -03:00
tableview.cpp Missing Files. 2013-09-03 13:57:38 -03:00
tableview.h Missing Files. 2013-09-03 13:57:38 -03:00
tableview.ui Missing Files. 2013-09-03 13:57:38 -03:00