From 5d05bb120716707ae0438f5a0395759bbf740fe1 Mon Sep 17 00:00:00 2001 From: Henrik Brautaset Aronsen Date: Fri, 24 May 2013 21:15:49 +0200 Subject: 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 Signed-off-by: Dirk Hohndel --- qt-ui/globe.cpp | 18 +++++++++++++----- qt-ui/globe.h | 3 +-- qt-ui/mainwindow.cpp | 3 --- qt-ui/mainwindow.ui | 3 --- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/qt-ui/globe.cpp b/qt-ui/globe.cpp index 19dbb048b..95db19083 100644 --- a/qt-ui/globe.cpp +++ b/qt-ui/globe.cpp @@ -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); +} diff --git a/qt-ui/globe.h b/qt-ui/globe.h index 1e0960b76..0d42ab90a 100644 --- a/qt-ui/globe.h +++ b/qt-ui/globe.h @@ -18,6 +18,7 @@ public: GlobeGPS(QWidget *parent); void reload(); void centerOn(struct dive* dive); + void resizeEvent(QResizeEvent *event); protected: virtual void mousePressEvent(QMouseEvent* event); @@ -30,8 +31,6 @@ private: public Q_SLOTS: void changeDiveGeoPosition(qreal lon,qreal lat,GeoDataCoordinates::Unit); - void setMessageWidget(KMessageWidget* globeMessage); - }; #endif diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index b343140b0..8e0e54eaa 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -40,10 +40,7 @@ MainWindow::MainWindow() : ui(new Ui::MainWindow()) ui->setupUi(this); setWindowIcon(QIcon(":subsurface-icon")); connect(ui->ListWidget, SIGNAL(currentDiveChanged(int)), this, SLOT(current_dive_changed(int))); - ui->globeMessage->hide(); ui->mainErrorMessage->hide(); - ui->globe->setMessageWidget(ui->globeMessage); - ui->globeMessage->setCloseButtonVisible(false); ui->ProfileWidget->setFocusProxy(ui->ListWidget); ui->ListWidget->reload(); readSettings(); diff --git a/qt-ui/mainwindow.ui b/qt-ui/mainwindow.ui index 658f22c41..3f9726785 100644 --- a/qt-ui/mainwindow.ui +++ b/qt-ui/mainwindow.ui @@ -84,9 +84,6 @@ - - - -- cgit v1.2.3-70-g09d2