summaryrefslogtreecommitdiffstats
path: root/qt-ui/diveplanner.cpp
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-07-21 13:54:21 -0300
committerGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-07-21 13:54:21 -0300
commit67fec4da704086f40f5d6699fc93603fdd0baaef (patch)
treec6008b7d002f852d862ba1950616f47f373bfae1 /qt-ui/diveplanner.cpp
parent83c73168b035064899cc992398d55dd03b422b6f (diff)
downloadsubsurface-67fec4da704086f40f5d6699fc93603fdd0baaef.tar.gz
Added the possibility to choose gases in the planner.
Added the possibility to choose gases in the planner, now the user should click on the name of the gas, a popup window will appear, asking the user to choose what gas he wants for that ascent / descent. now we need to hook that up with the createDecoStops method that calculates the decompression. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Diffstat (limited to 'qt-ui/diveplanner.cpp')
-rw-r--r--qt-ui/diveplanner.cpp29
1 files changed, 25 insertions, 4 deletions
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index fa959cf97..25d5df11d 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -11,7 +11,10 @@
#include <QGraphicsSceneMouseEvent>
#include <QMessageBox>
#include <QStringListModel>
-#include <boost/graph/graph_concepts.hpp>
+#include <QGraphicsProxyWidget>
+#include <QListView>
+#include <QDesktopWidget>
+#include <QModelIndex>
#include "ui_diveplanner.h"
#include "mainwindow.h"
@@ -136,8 +139,14 @@ DivePlannerGraphics::DivePlannerGraphics(QWidget* parent): QGraphicsView(parent)
ADD_ACTION(Qt::Key_Right, keyRightAction());
#undef ADD_ACTION
- QStringListModel *model = new QStringListModel(QStringList() << tr("AIR") << tr("EAN32") << tr("EAN36"));
+ // Prepare the stuff for the gas-choices.
+ gasChoices = new QStringListModel(QStringList() << tr("AIR") << tr("EAN32") << tr("EAN36"));
+ gasListView = new QListView();
+ gasListView->setWindowFlags(Qt::FramelessWindowHint);
+ gasListView->setModel(gasChoices);
+ gasListView->hide();
+ connect(gasListView, SIGNAL(activated(QModelIndex)), this, SLOT(selectGas(QModelIndex)));
setRenderHint(QPainter::Antialiasing);
}
@@ -363,16 +372,28 @@ void DivePlannerGraphics::mouseDoubleClickEvent(QMouseEvent* event)
gasChooseBtn ->setText(tr("Air"));
scene()->addItem(gasChooseBtn);
gasChooseBtn->setZValue(10);
- connect(gasChooseBtn, SIGNAL(clicked()), this, SLOT(selectGasClicked()));
+ connect(gasChooseBtn, SIGNAL(clicked()), this, SLOT(prepareSelectGas()));
gases << gasChooseBtn;
createDecoStops();
}
-void DivePlannerGraphics::selectGasClicked()
+void DivePlannerGraphics::prepareSelectGas()
{
+ currentGasChoice = static_cast<Button*>(sender());
+ QPoint c = QCursor::pos();
+ gasListView->setGeometry(c.x(), c.y(), 150, 100);
+ gasListView->show();
}
+void DivePlannerGraphics::selectGas(const QModelIndex& index)
+{
+ QString gasSelected = gasListView->model()->data(index, Qt::DisplayRole).toString();
+ currentGasChoice->setText(gasSelected);
+ gasListView->hide();
+}
+
+
void DivePlannerGraphics::createDecoStops()
{
qDeleteAll(lines);