Avoid marble widget resize when switching dives

The "no dive location" message box was displayed above the marble
widget, which made the layout splitter move horizontally.

Made the message box as an overlay on the map instead.

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Henrik Brautaset Aronsen 2013-05-24 21:15:49 +02:00 committed by Dirk Hohndel
parent 884e1c3379
commit 5d05bb1207
4 changed files with 15 additions and 14 deletions

View file

@ -18,6 +18,9 @@
GlobeGPS::GlobeGPS(QWidget* parent) : MarbleWidget(parent), loadedDives(0)
{
messageWidget = new KMessageWidget(this);
messageWidget->setCloseButtonVisible(false);
messageWidget->setHidden(true);
setMapThemeId("earth/googlesat/googlesat.dgml");
//setMapThemeId("earth/openstreetmap/openstreetmap.dgml");
@ -51,8 +54,6 @@ void GlobeGPS::reload()
editingDiveCoords = 0;
}
messageWidget->animatedHide();
loadedDives = new GeoDataDocument;
diveLocations.clear();
@ -132,9 +133,16 @@ void GlobeGPS::mousePressEvent(QMouseEvent* event)
}
}
void GlobeGPS::setMessageWidget(KMessageWidget* globeMessage)
void GlobeGPS::resizeEvent(QResizeEvent* event)
{
messageWidget = globeMessage;
int size = event->size().width();
MarbleWidget::resizeEvent(event);
if (size > 600)
messageWidget->setGeometry((size - 600) / 2, 5, 600, 0);
else
messageWidget->setGeometry(5, 5, size - 10, 0);
messageWidget->setMaximumHeight(500);
}