summaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui')
-rw-r--r--qt-ui/modeldelegates.cpp11
-rw-r--r--qt-ui/modeldelegates.h1
-rw-r--r--qt-ui/profile/profilewidget2.cpp9
-rw-r--r--qt-ui/profile/profilewidget2.h2
4 files changed, 23 insertions, 0 deletions
diff --git a/qt-ui/modeldelegates.cpp b/qt-ui/modeldelegates.cpp
index 9720e3f9e..6eac66f87 100644
--- a/qt-ui/modeldelegates.cpp
+++ b/qt-ui/modeldelegates.cpp
@@ -6,6 +6,8 @@
#include "diveplanner.h"
#include "simplewidgets.h"
#include "gettextfromc.h"
+#include "profile/profilewidget2.h"
+#include "mainwindow.h"
#include <QtDebug>
#include <QPainter>
@@ -252,6 +254,14 @@ void TankInfoDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
TankInfoDelegate::TankInfoDelegate(QObject *parent) : ComboBoxDelegate(TankInfoModel::instance(), parent)
{
+ connect(this, SIGNAL(closeEditor(QWidget *, QAbstractItemDelegate::EndEditHint)),
+ this, SLOT(reenableReplot(QWidget *, QAbstractItemDelegate::EndEditHint)));
+}
+
+void TankInfoDelegate::reenableReplot(QWidget *widget, QAbstractItemDelegate::EndEditHint hint)
+{
+ MainWindow::instance()->graphics()->setReplot(true);
+ MainWindow::instance()->graphics()->replot();
}
void TankInfoDelegate::revertModelData(QWidget *widget, QAbstractItemDelegate::EndEditHint hint)
@@ -275,6 +285,7 @@ QWidget *TankInfoDelegate::createEditor(QWidget *parent, const QStyleOptionViewI
currCylinderData.type = copy_string(cyl->type.description);
currCylinderData.pressure = cyl->type.workingpressure.mbar;
currCylinderData.size = cyl->type.size.mliter;
+ MainWindow::instance()->graphics()->setReplot(false);
return delegate;
}
diff --git a/qt-ui/modeldelegates.h b/qt-ui/modeldelegates.h
index 173151a4a..f501c5214 100644
--- a/qt-ui/modeldelegates.h
+++ b/qt-ui/modeldelegates.h
@@ -57,6 +57,7 @@ public:
public
slots:
void revertModelData(QWidget *widget, QAbstractItemDelegate::EndEditHint hint);
+ void reenableReplot(QWidget *widget, QAbstractItemDelegate::EndEditHint hint);
};
class TankUseDelegate : public QStyledItemDelegate {
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp
index 1a9d5ccf7..649bda0d6 100644
--- a/qt-ui/profile/profilewidget2.cpp
+++ b/qt-ui/profile/profilewidget2.cpp
@@ -289,10 +289,14 @@ void ProfileWidget2::setupItemOnScene()
heartBeatAxis->setLinesVisible(true);
percentageAxis->setTextVisible(true);
percentageAxis->setLinesVisible(true);
+
+ replotEnabled = true;
}
void ProfileWidget2::replot()
{
+ if (!replotEnabled)
+ return;
dataModel->clear();
plotDive(0, true); // simply plot the displayed_dive again
}
@@ -1089,6 +1093,11 @@ struct plot_data *ProfileWidget2::getEntryFromPos(QPointF pos)
return entry;
}
+void ProfileWidget2::setReplot(bool state)
+{
+ replotEnabled = state;
+}
+
void ProfileWidget2::contextMenuEvent(QContextMenuEvent *event)
{
if (currentState == ADD || currentState == PLAN) {
diff --git a/qt-ui/profile/profilewidget2.h b/qt-ui/profile/profilewidget2.h
index a1f216e48..9808a964b 100644
--- a/qt-ui/profile/profilewidget2.h
+++ b/qt-ui/profile/profilewidget2.h
@@ -103,6 +103,7 @@ slots: // Necessary to call from QAction's signals.
void pointInserted(const QModelIndex &parent, int start, int end);
void pointsRemoved(const QModelIndex &, int start, int end);
void plotPictures();
+ void setReplot(bool state);
void replot();
/* this is called for every move on the handlers. maybe we can speed up this a bit? */
@@ -145,6 +146,7 @@ private:
QString backgroundFile;
ToolTipItem *toolTipItem;
bool isPlotZoomed;
+ bool replotEnabled;
// All those here should probably be merged into one structure,
// So it's esyer to replicate for more dives later.
// In the meantime, keep it here.