Fix segfault on mouseOver at the Profile with an invalid dive selected ( trip )

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
Tomaz Canabrava 2013-05-13 15:28:17 -03:00
parent 605f42daa4
commit 61373eaccf
4 changed files with 16 additions and 7 deletions

View file

@ -140,8 +140,8 @@ void MainTab::updateDiveInfo(int dive)
* if we don't use the gtk widget to drive this? * if we don't use the gtk widget to drive this?
* Maybe call process_selected_dives? Or re-write to query our Qt list view. * Maybe call process_selected_dives? Or re-write to query our Qt list view.
*/ */
qDebug("max temp %u",stats_selection.max_temp); // qDebug("max temp %u",stats_selection.max_temp);
qDebug("min temp %u",stats_selection.min_temp); // qDebug("min temp %u",stats_selection.min_temp);
} }
void MainTab::on_addCylinder_clicked() void MainTab::on_addCylinder_clicked()

View file

@ -43,6 +43,8 @@ MainWindow::MainWindow() : ui(new Ui::MainWindow()),
ui->ListWidget->setCurrentIndex(sortModel->index(0,0, firstDiveOrTrip)); ui->ListWidget->setCurrentIndex(sortModel->index(0,0, firstDiveOrTrip));
else else
ui->ListWidget->setCurrentIndex(firstDiveOrTrip); ui->ListWidget->setCurrentIndex(firstDiveOrTrip);
#if 0
QAction *actionNextDive = new QAction(this); QAction *actionNextDive = new QAction(this);
addAction(actionNextDive); addAction(actionNextDive);
actionNextDive->setShortcut(Qt::Key_Down); actionNextDive->setShortcut(Qt::Key_Down);
@ -51,6 +53,7 @@ MainWindow::MainWindow() : ui(new Ui::MainWindow()),
addAction(actionPreviousDive); addAction(actionPreviousDive);
actionPreviousDive->setShortcut(Qt::Key_Up); actionPreviousDive->setShortcut(Qt::Key_Up);
connect(actionPreviousDive, SIGNAL(triggered()), this, SLOT(previousDive_triggered())); connect(actionPreviousDive, SIGNAL(triggered()), this, SLOT(previousDive_triggered()));
#endif
} }
void MainWindow::redrawProfile() void MainWindow::redrawProfile()
@ -58,6 +61,7 @@ void MainWindow::redrawProfile()
ui->ProfileWidget->plot(get_dive(selected_dive)); ui->ProfileWidget->plot(get_dive(selected_dive));
} }
#if 0
void MainWindow::nextDive_triggered() void MainWindow::nextDive_triggered()
{ {
// Get the current Selection: // Get the current Selection:
@ -147,6 +151,7 @@ void MainWindow::previousDive_triggered()
} }
} }
} }
#endif
void MainWindow::on_actionNew_triggered() void MainWindow::on_actionNew_triggered()
{ {

View file

@ -69,9 +69,11 @@ private Q_SLOTS:
void on_actionAboutSubsurface_triggered(); void on_actionAboutSubsurface_triggered();
void on_actionUserManual_triggered(); void on_actionUserManual_triggered();
#if 0
/* keyboard actions */ /* keyboard actions */
void nextDive_triggered(); void nextDive_triggered();
void previousDive_triggered(); void previousDive_triggered();
#endif
void dive_selection_changed(const QItemSelection& newSelection, void dive_selection_changed(const QItemSelection& newSelection,
const QItemSelection& oldSelection); const QItemSelection& oldSelection);

View file

@ -214,15 +214,13 @@ void ProfileGraphicsView::plot(struct dive *d)
resetTransform(); resetTransform();
zoomLevel = 0; zoomLevel = 0;
dive = d; dive = d;
toolTip = 0;
} }
if(!isVisible()){ if(!isVisible() || !dive){
return; return;
} }
if(!dive)
return;
scene()->setSceneRect(0,0, viewport()->width()-50, viewport()->height()-50); scene()->setSceneRect(0,0, viewport()->width()-50, viewport()->height()-50);
QSettings s; QSettings s;
@ -1278,8 +1276,12 @@ void ToolTipItem::collapse()
void ToolTipItem::expand() void ToolTipItem::expand()
{ {
QRectF nextRectangle;
if (!title){
return;
}
QRectF nextRectangle;
double width = 0, height = title->boundingRect().height() + SPACING; double width = 0, height = title->boundingRect().height() + SPACING;
Q_FOREACH(ToolTip t, toolTips) { Q_FOREACH(ToolTip t, toolTips) {
if (t.second->boundingRect().width() > width) if (t.second->boundingRect().width() > width)