summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Henrik Brautaset Aronsen <subsurface@henrik.synth.no>2013-05-24 21:15:49 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-05-25 08:17:14 -0700
commit5d05bb120716707ae0438f5a0395759bbf740fe1 (patch)
tree5e3af3656ffa7bf85e7b1a7d4787c10d63eae67f
parent884e1c337981ba98a3a29c398cf1ab847009e954 (diff)
downloadsubsurface-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>
-rw-r--r--qt-ui/globe.cpp18
-rw-r--r--qt-ui/globe.h3
-rw-r--r--qt-ui/mainwindow.cpp3
-rw-r--r--qt-ui/mainwindow.ui3
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>