diff options
author | Henrik Brautaset Aronsen <subsurface@henrik.synth.no> | 2013-05-24 21:15:49 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-05-25 08:17:14 -0700 |
commit | 5d05bb120716707ae0438f5a0395759bbf740fe1 (patch) | |
tree | 5e3af3656ffa7bf85e7b1a7d4787c10d63eae67f /qt-ui | |
parent | 884e1c337981ba98a3a29c398cf1ab847009e954 (diff) | |
download | subsurface-5d05bb120716707ae0438f5a0395759bbf740fe1.tar.gz |
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>
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/globe.cpp | 18 | ||||
-rw-r--r-- | qt-ui/globe.h | 3 | ||||
-rw-r--r-- | qt-ui/mainwindow.cpp | 3 | ||||
-rw-r--r-- | 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 @@ -85,9 +85,6 @@ <widget class="QWidget" name="layoutWidget"> <layout class="QVBoxLayout" name="verticalLayout"> <item> - <widget class="KMessageWidget" name="globeMessage" native="true"/> - </item> - <item> <widget class="GlobeGPS" name="globe" native="true"/> </item> </layout> |