add dive implementation pushed

Henrik Brautaset Aronsen subsurface at henrik.synth.no
Sat Sep 21 02:56:41 UTC 2013


Dirk Hohndel wrote:
> This uses part of the planner widget to allow the user to actually
> create a profile for their dive.

Cool!  Some issues:

(1) when I double click one of the nodes on the graph, I'm unable to 
exit that dialog (see http://imgbin.org/images/15123.png) or save the dive.

(2) I think there's too many nodes on the graph, the user will have to 
move too many of them.  Not user friendly.  So:
     - either add an initial dialog where the dive depth can be entered, 
and the graph can be created after that
     - or (my favorite) just create *two* nodes, with a fairly square graph

(3) I got a "ASSERT failure in QVector<T>::at: "index out of range", 
file /opt/local/include/QtCore/qvector.h, line 351" when trying to edit 
the first node, with a subsequent crash.  Haven't been able to reproduce 
it, but still...:

0   libsystem_kernel.dylib            0x00007fff9892d212 __pthread_kill + 10
1   libsystem_c.dylib                 0x00007fff9030ab24 pthread_kill + 90
2   libsystem_c.dylib                 0x00007fff9034ef61 abort + 143
3   QtCore                            0x000000010be8ba9a 
qt_message_output(QtMsgType, char const*) + 154
4   QtCore                            0x000000010be8bd55 
qt_message(QtMsgType, char const*, __va_list_tag*) + 405
5   QtCore                            0x000000010be8b64f qFatal(char 
const*, ...) + 159
6   subsurface                        0x00000001091e6897 
QVector<divedatapoint>::at(int) const + 83 (qvector.h:351)
7   subsurface                        0x00000001091cd49f 
DivePlannerPointsModel::at(int) + 59 (diveplanner.cpp:1120)
8   subsurface                        0x00000001091d7285 
DivePlannerGraphics::moveActiveHandler(QPointF const&, int) + 49 
(diveplanner.cpp:552)
9   subsurface                        0x00000001091d7c34 
DivePlannerGraphics::mouseMoveEvent(QMouseEvent*) + 2056 
(diveplanner.cpp:536)

(4) The graph symbols at the top left and bottom right are still 
unintuitive and fairly ugly.  (ref. that screenshot in (1))

(5) The graph can become messed up after moving the nodes (see 
http://imgbin.org/images/15125.png)

(6) A node can be moved before time=0, and subsurface crashes when 
trying to save that dive (see http://imgbin.org/images/15126.png):

0   subsurface                        0x00000001038b178e 
MainTab::acceptChanges() + 4022 (maintab.cpp:401)
1   subsurface                        0x000000010399435c 
MainTab::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) + 
224 (maintab.moc.cpp:79)
2   QtCore                            0x00000001067390f9 
QMetaObject::activate(QObject*, QMetaObject const*, int, void**) + 2265
3   QtGui                             0x0000000105c700bd 
QDialogButtonBoxPrivate::_q_handleButtonClicked() + 253
4   QtGui                             0x0000000105c7083d 
QDialogButtonBox::qt_static_metacall(QObject*, QMetaObject::Call, int, 
void**) + 125
5   QtCore                            0x00000001067390f9 
QMetaObject::activate(QObject*, QMetaObject const*, int, void**) + 2265
6   QtGui                             0x0000000105ed9c60 
QAbstractButton::clicked(bool) + 64
7   QtGui                             0x0000000105c41dd2 
QAbstractButtonPrivate::emitClicked() + 50
8   QtGui                             0x0000000105c41c72 
QAbstractButtonPrivate::click() + 226
9   QtGui                             0x0000000105c428d9 
QAbstractButton::mouseReleaseEvent(QMouseEvent*) + 89
10  QtGui                             0x000000010595ef44 
QWidget::event(QEvent*) + 308
11  QtGui                             0x0000000105c427fd 
QAbstractButton::event(QEvent*) + 205
12  QtGui                             0x0000000105cd5ac1 
QPushButton::event(QEvent*) + 177
13  QtGui                             0x000000010591220f 
QApplicationPrivate::notify_helper(QObject*, QEvent*) + 255
14  QtGui                             0x0000000105913f9d 
QApplication::notify(QObject*, QEvent*) + 2749
15  QtCore                            0x0000000106722041 
QCoreApplication::notifyInternal(QObject*, QEvent*) + 113
16  QtGui                             0x0000000105912b5e 
QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, 
QWidget*, QWidget**, QPointer<QWidget>&, bool) + 446
17  QtGui                             0x00000001058c3821 
qt_mac_handleMouseEvent(NSEvent*, QEvent::Type, Qt::MouseButton, 
QWidget*, bool) + 1025
18  com.apple.AppKit                  0x00007fff91cde5d6 -[NSWindow 
sendEvent:] + 7053
19  QtGui                             0x00000001058bb1de -[QCocoaWindow 
sendEvent:] + 110
20  com.apple.AppKit                  0x00007fff91cda644 -[NSApplication 
sendEvent:] + 5761
21  QtGui                             0x00000001058bfdae 
-[QNSApplication sendEvent:] + 78
22  com.apple.AppKit                  0x00007fff91bf021a -[NSApplication 
run] + 636
23  QtGui                             0x00000001058c8963 
QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 
1219
24  QtCore                            0x000000010671f5b5 
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 501
25  QtCore                            0x000000010672257e 
QCoreApplication::exec() + 206
26  subsurface                        0x000000010389d4a9 run_ui() + 9 
(qt-gui.cpp:134)
27  subsurface                        0x00000001038974f6 main + 1174 
(main.cpp:59)

Cheers,
Henrik


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.hohndel.org/pipermail/subsurface/attachments/20130921/e626bc2c/attachment.html>


More information about the subsurface mailing list