[Desktop Patch] - Add Dive with duration / depth.

Dirk Hohndel dirk at hohndel.org
Wed Apr 6 12:23:08 PDT 2016


On Tue, Apr 05, 2016 at 05:56:26PM -0300, Tomaz Canabrava wrote:
> Due massive request. :)

So this does not apply to master. Does this assume that I first apply the
patches in your "do not apply, this is broken and horrible" email? Could
you maybe create a clean patch series against current master?

/D

> From cb57ef13bdfe8d9c969c8e007b7c67e010c89c2d Mon Sep 17 00:00:00 2001
> From: Tomaz Canabrava <tomaz.canabrava at intel.com>
> Date: Wed, 30 Mar 2016 20:36:44 -0300
> Subject: [PATCH 3/3] Add signal to handle the button to add the dive
> 
> Signed-off-by: Tomaz Canabrava <tomaz.canabrava at intel.com>
> ---
>  profile-widget/profilewidget2.cpp | 8 ++++++++
>  profile-widget/profilewidget2.h   | 1 +
>  2 files changed, 9 insertions(+)
> 
> diff --git a/profile-widget/profilewidget2.cpp b/profile-widget/profilewidget2.cpp
> index 3c3d00d..537b888 100644
> --- a/profile-widget/profilewidget2.cpp
> +++ b/profile-widget/profilewidget2.cpp
> @@ -177,6 +177,7 @@ ProfileWidget2::ProfileWidget2(QWidget *parent) : QGraphicsView(parent),
>  	l->addWidget(addDiveDuration, 1, 1);
>  	l->addWidget(addDiveAccept, 2, 1);
>  	addDiveOverlay->setLayout(l);
> +	connect(addDiveAccept, &QPushButton::clicked, this, &ProfileWidget2::addDiveAcceptClicked);
>  #endif
>  }
>  
> @@ -216,6 +217,13 @@ ProfileWidget2::~ProfileWidget2()
>  	delete tankItem;
>  }
>  
> +#ifndef SUBSURFACE_MOBILE
> +void ProfileWidget2::addDiveAcceptClicked()
> +{
> +	qDebug() << "Clicked" << addDiveDepth->text() << addDiveDuration->text();
> +}
> +#endif
> +
>  #define SUBSURFACE_OBJ_DATA 1
>  #define SUBSURFACE_OBJ_DC_TEXT 0x42
>  
> diff --git a/profile-widget/profilewidget2.h b/profile-widget/profilewidget2.h
> index 4391116..aad9ac1 100644
> --- a/profile-widget/profilewidget2.h
> +++ b/profile-widget/profilewidget2.h
> @@ -151,6 +151,7 @@ protected:
>  	void mouseDoubleClickEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
>  	void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
>  	void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
> +	void addDiveAcceptClicked();
>  #endif
>  	void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE;
>  	void dragEnterEvent(QDragEnterEvent *event) Q_DECL_OVERRIDE;
> -- 
> 2.7.4
> 

> From c465d7b03744f0e3c9f50f03373902ab924e32a4 Mon Sep 17 00:00:00 2001
> From: Tomaz Canabrava <tomaz.canabrava at intel.com>
> Date: Wed, 30 Mar 2016 20:10:54 -0300
> Subject: [PATCH 2/3] Show the dialog to create the Dive
> 
> This dialog is horrible, we need to find a way to make it
> look good. One of the biggest issues is that the subsurface
> UI is really hard to hack on - something that I plan to fix
> soon, as already discussed with Dirk.
> 
> Signed-off-by: Tomaz Canabrava <tomaz.canabrava at intel.com>
> ---
>  profile-widget/profilewidget2.cpp | 32 +++++++++++++++++++-------------
>  profile-widget/profilewidget2.h   |  4 +++-
>  2 files changed, 22 insertions(+), 14 deletions(-)
> 
> diff --git a/profile-widget/profilewidget2.cpp b/profile-widget/profilewidget2.cpp
> index cd20c11..3c3d00d 100644
> --- a/profile-widget/profilewidget2.cpp
> +++ b/profile-widget/profilewidget2.cpp
> @@ -19,6 +19,8 @@
>  #include "diveplanner.h"
>  #include "simplewidgets.h"
>  #include "divepicturewidget.h"
> +#include <QLineEdit>
> +#include <QPushButton>
>  #endif
>  
>  #include <libdivecomputer/parser.h>
> @@ -118,10 +120,10 @@ ProfileWidget2::ProfileWidget2(QWidget *parent) : QGraphicsView(parent),
>  	mouseFollowerVertical(new DiveLineItem()),
>  	mouseFollowerHorizontal(new DiveLineItem()),
>  	rulerItem(new RulerItem2()),
> -	addDivePanel(new QGraphicsProxyWidget()),
> +	addDiveOverlay(new QWidget()),
>  	addDiveDuration(new QLineEdit()),
>  	addDiveDepth(new QLineEdit()),
> -	addDiveAccept(new QPushButton()),
> +	addDiveAccept(new QPushButton(tr("Create"))),
>  #endif
>  	tankItem(new TankItem()),
>  	isGrayscale(false),
> @@ -167,19 +169,17 @@ ProfileWidget2::ProfileWidget2(QWidget *parent) : QGraphicsView(parent),
>  	diveDepthTableView->show();
>  #endif
>  
> -	QWidget *panel = new QWidget();
> -	QHBoxLayout *l = new QHBoxLayout();
> -	l->addWidget(new QLabel("Depth:"));
> -	l->addWidget(addDiveDepth);
> -	l->addWidget(new QLabel("Duration:");
> -	l->addWidget(addDiveDuration);
> -	l->addWidget(addDiveAccept);
> -	panel->setLayout(l);
> -	addDivePanel->setWidget(panel);
> -	addDivePanel->setVisible(false);
> +#ifndef SUBSURFACE_MOBILE
> +	QGridLayout *l = new QGridLayout();
> +	l->addWidget(new QLabel("Depth:"), 0, 0);
> +	l->addWidget(addDiveDepth, 0, 1);
> +	l->addWidget(new QLabel("Duration:"), 1, 0);
> +	l->addWidget(addDiveDuration, 1, 1);
> +	l->addWidget(addDiveAccept, 2, 1);
> +	addDiveOverlay->setLayout(l);
> +#endif
>  }
>  
> -
>  ProfileWidget2::~ProfileWidget2()
>  {
>  	delete background;
> @@ -1259,6 +1259,12 @@ void ProfileWidget2::setAddState()
>  	diveCeiling->setVisible(true);
>  	decoModelParameters->setVisible(true);
>  	setBackgroundBrush(QColor("#A7DCFF"));
> +
> +	addDiveOverlay->setParent(this);
> +	QRect r = addDiveOverlay->geometry();
> +	addDiveOverlay->setStyleSheet("QWidget { background: white } QLineEdit { background: white}");
> +	addDiveOverlay->setGeometry(0,geometry().bottom() - 100,250,100);
> +	addDiveOverlay->setVisible(true);
>  }
>  
>  void ProfileWidget2::setPlanState()
> diff --git a/profile-widget/profilewidget2.h b/profile-widget/profilewidget2.h
> index 31f15ef..4391116 100644
> --- a/profile-widget/profilewidget2.h
> +++ b/profile-widget/profilewidget2.h
> @@ -47,6 +47,8 @@ class DiveHandler;
>  class QGraphicsSimpleTextItem;
>  class QModelIndex;
>  class DivePictureItem;
> +class QLineEdit;
> +class QPushButton;
>  
>  class ProfileWidget2 : public QGraphicsView {
>  	Q_OBJECT
> @@ -213,7 +215,7 @@ private:
>  	DiveLineItem *mouseFollowerHorizontal;
>  	RulerItem2 *rulerItem;
>  
> -	QGraphicsProxyWidget *addDivePanel;
> +	QWidget *addDiveOverlay;
>  	QLineEdit *addDiveDuration;
>  	QLineEdit *addDiveDepth;
>  	QPushButton *addDiveAccept;
> -- 
> 2.7.4
> 

> _______________________________________________
> subsurface mailing list
> subsurface at subsurface-divelog.org
> http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface



More information about the subsurface mailing list