[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