with this, the Location Edit should behave more like the old MainTab edit. there's still work to be done, I'v used a bit of free time today to try to do that.
From f782e03831ba88bc05cdcf3131bc36ef61181bc0 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <[email protected]> Date: Mon, 9 Mar 2015 15:55:49 -0300 Subject: [PATCH 6/6] Clear after accepting / rejecting the LocationEdit
Signed-off-by: Tomaz Canabrava <[email protected]> --- qt-ui/simplewidgets.cpp | 13 +++++++++++++ qt-ui/simplewidgets.h | 1 + 2 files changed, 14 insertions(+) diff --git a/qt-ui/simplewidgets.cpp b/qt-ui/simplewidgets.cpp index e1ad6b8..08e6f1d 100644 --- a/qt-ui/simplewidgets.cpp +++ b/qt-ui/simplewidgets.cpp @@ -740,6 +740,8 @@ void LocationInformationWidget::acceptChanges() setLocationId(currentDs->uuid); } mark_divelist_changed(true); + resetPallete(); + ui.diveSiteNotes->hide(); emit informationManagementEnded(); } @@ -753,6 +755,8 @@ void LocationInformationWidget::rejectChanges() } else { setLocationId(currentDs->uuid); } + resetPallete(); + ui.diveSiteNotes->hide(); emit informationManagementEnded(); } @@ -800,3 +804,12 @@ void LocationInformationWidget::on_diveSiteNotes_textChanged() if (!same_string(qPrintable(ui.diveSiteNotes->toPlainText()), currentDs->notes)) markChangedWidget(ui.diveSiteNotes); } + +void LocationInformationWidget::resetPallete() +{ + QPalette p; + ui.diveSiteCoordinates->setPalette(p); + ui.diveSiteDescription->setPalette(p); + ui.diveSiteName->setPalette(p); + ui.diveSiteNotes->setPalette(p); +} diff --git a/qt-ui/simplewidgets.h b/qt-ui/simplewidgets.h index f90e5bc..d86fefd 100644 --- a/qt-ui/simplewidgets.h +++ b/qt-ui/simplewidgets.h @@ -232,6 +232,7 @@ public slots: void updateGpsCoordinates(void); void markChangedWidget(QWidget *w); void enableEdition(); + void resetPallete(); void on_diveSiteCoordinates_textChanged(const QString& text); void on_diveSiteDescription_textChanged(const QString& text); -- 2.3.2
From 2033a7be076c519f1058c58fc9ca7e265aa5fbcf Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <[email protected]> Date: Mon, 9 Mar 2015 15:51:32 -0300 Subject: [PATCH 5/6] Change color / Mark widget as changed correctly on LocationEdit Signed-off-by: Tomaz Canabrava <[email protected]> --- qt-ui/simplewidgets.cpp | 37 +++++++++++++++++++++++++++++++++---- qt-ui/simplewidgets.h | 5 +++++ 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/qt-ui/simplewidgets.cpp b/qt-ui/simplewidgets.cpp index edee3ec..e1ad6b8 100644 --- a/qt-ui/simplewidgets.cpp +++ b/qt-ui/simplewidgets.cpp @@ -696,10 +696,14 @@ void LocationInformationWidget::setLocationId(uint32_t uuid) ui.diveSiteCoordinates->clear(); } displayed_dive_site = *currentDs; - ui.diveSiteName->setText(displayed_dive_site.name); - ui.diveSiteDescription->setText(displayed_dive_site.description); - ui.diveSiteNotes->setPlainText(displayed_dive_site.notes); - ui.diveSiteCoordinates->setText(printGPSCoords(displayed_dive_site.latitude.udeg, displayed_dive_site.longitude.udeg)); + if (displayed_dive_site.name) + ui.diveSiteName->setText(displayed_dive_site.name); + if (displayed_dive_site.description) + ui.diveSiteDescription->setText(displayed_dive_site.description); + if (displayed_dive_site.notes) + ui.diveSiteNotes->setPlainText(displayed_dive_site.notes); + if (displayed_dive_site.latitude.udeg || displayed_dive_site.longitude.udeg) + ui.diveSiteCoordinates->setText(printGPSCoords(displayed_dive_site.latitude.udeg, displayed_dive_site.longitude.udeg)); } void LocationInformationWidget::updateGpsCoordinates() @@ -769,5 +773,30 @@ void LocationInformationWidget::markChangedWidget(QWidget *w) void LocationInformationWidget::enableEdition() { + MainWindow::instance()->dive_list()->setEnabled(false); + MainWindow::instance()->setEnabledToolbar(false); + ui.diveSiteMessage->show(); +} + +void LocationInformationWidget::on_diveSiteCoordinates_textChanged(const QString& text) +{ + markChangedWidget(ui.diveSiteCoordinates); +} + +void LocationInformationWidget::on_diveSiteDescription_textChanged(const QString& text) +{ + if (!same_string(qPrintable(text), currentDs->description)) + markChangedWidget(ui.diveSiteDescription); +} + +void LocationInformationWidget::on_diveSiteName_textChanged(const QString& text) +{ + if (!same_string(qPrintable(text), currentDs->name)) + markChangedWidget(ui.diveSiteName); +} +void LocationInformationWidget::on_diveSiteNotes_textChanged() +{ + if (!same_string(qPrintable(ui.diveSiteNotes->toPlainText()), currentDs->notes)) + markChangedWidget(ui.diveSiteNotes); } diff --git a/qt-ui/simplewidgets.h b/qt-ui/simplewidgets.h index f9e4b46..f90e5bc 100644 --- a/qt-ui/simplewidgets.h +++ b/qt-ui/simplewidgets.h @@ -232,6 +232,11 @@ public slots: void updateGpsCoordinates(void); void markChangedWidget(QWidget *w); void enableEdition(); + + void on_diveSiteCoordinates_textChanged(const QString& text); + void on_diveSiteDescription_textChanged(const QString& text); + void on_diveSiteName_textChanged(const QString& text); + void on_diveSiteNotes_textChanged(); signals: void informationManagementEnded(); -- 2.3.2
From 9d3d27f19cab0437cb9a766c24aecdeed25b0654 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <[email protected]> Date: Mon, 9 Mar 2015 15:22:52 -0300 Subject: [PATCH 4/6] Clone a bit of code to mark the Location Widget chagned This code is the same that is used on the MainTab, but since they are different objects, I can't just call it. so I'm duplicating them for the time being. Signed-off-by: Tomaz Canabrava <[email protected]> --- qt-ui/simplewidgets.cpp | 18 +++++++++++++++++- qt-ui/simplewidgets.h | 4 +++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/qt-ui/simplewidgets.cpp b/qt-ui/simplewidgets.cpp index 8a808d2..edee3ec 100644 --- a/qt-ui/simplewidgets.cpp +++ b/qt-ui/simplewidgets.cpp @@ -667,7 +667,7 @@ void MultiFilter::closeFilter() #include <QDebug> #include <QShowEvent> -LocationInformationWidget::LocationInformationWidget(QWidget *parent) : QGroupBox(parent) +LocationInformationWidget::LocationInformationWidget(QWidget *parent) : QGroupBox(parent), modified(false) { ui.setupUi(this); ui.diveSiteMessage->setText("You are editing the Dive Site"); @@ -755,3 +755,19 @@ void LocationInformationWidget::rejectChanges() void LocationInformationWidget::showEvent(QShowEvent *ev) { ui.diveSiteMessage->setCloseButtonVisible(false); } + +void LocationInformationWidget::markChangedWidget(QWidget *w) +{ + QPalette p; + qreal h, s, l, a; + enableEdition(); + qApp->palette().color(QPalette::Text).getHslF(&h, &s, &l, &a); + p.setBrush(QPalette::Base, (l <= 0.3) ? QColor(Qt::yellow).lighter() : (l <= 0.6) ? QColor(Qt::yellow).light() : /* else */ QColor(Qt::yellow).darker(300)); + w->setPalette(p); + modified = true; +} + +void LocationInformationWidget::enableEdition() +{ + +} diff --git a/qt-ui/simplewidgets.h b/qt-ui/simplewidgets.h index d0cb605..f9e4b46 100644 --- a/qt-ui/simplewidgets.h +++ b/qt-ui/simplewidgets.h @@ -230,13 +230,15 @@ public slots: void setLocationId(uint32_t uuid); void updateGpsCoordinates(void); - + void markChangedWidget(QWidget *w); + void enableEdition(); signals: void informationManagementEnded(); private: struct dive_site *currentDs; Ui::LocationInformation ui; + bool modified; }; bool isGnome3Session(); -- 2.3.2
From 7e89b79afbefd508015841a667cc68a73865754b Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <[email protected]> Date: Mon, 9 Mar 2015 15:12:48 -0300 Subject: [PATCH 3/6] Remove redundant code Another bit of piece of software that shouldn't exist. Signed-off-by: Tomaz Canabrava <[email protected]> --- qt-ui/maintab.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp index 956a1bc..dff49d8 100644 --- a/qt-ui/maintab.cpp +++ b/qt-ui/maintab.cpp @@ -71,6 +71,7 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent), // filled from a dive, they are made writeable setEnabled(false); + Q_FOREACH (QObject *obj, ui.statisticsTab->children()) { QLabel *label = qobject_cast<QLabel *>(obj); if (label) @@ -955,10 +956,7 @@ void MainTab::markChangedWidget(QWidget *w) qApp->palette().color(QPalette::Text).getHslF(&h, &s, &l, &a); p.setBrush(QPalette::Base, (l <= 0.3) ? QColor(Qt::yellow).lighter() : (l <= 0.6) ? QColor(Qt::yellow).light() : /* else */ QColor(Qt::yellow).darker(300)); w->setPalette(p); - if (!modified) { - modified = true; - enableEdition(); - } + modified = true; } void MainTab::on_buddy_textChanged() -- 2.3.2
From 855defb191beb5be9636956a4d9c35662c0fc98e Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <[email protected]> Date: Mon, 9 Mar 2015 15:01:18 -0300 Subject: [PATCH 2/6] Removed dead code. This code used to trigger the edit mode a long time ago since now I'm re-reading the code to implement the same stuff on the Location edit mode, I realized that this is not needed anymore. Signed-off-by: Tomaz Canabrava <[email protected]> --- qt-ui/maintab.cpp | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp index 3f6345c..956a1bc 100644 --- a/qt-ui/maintab.cpp +++ b/qt-ui/maintab.cpp @@ -71,20 +71,6 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent), // filled from a dive, they are made writeable setEnabled(false); - ui.location->installEventFilter(this); - ui.divemaster->installEventFilter(this); - ui.buddy->installEventFilter(this); - ui.suit->installEventFilter(this); - ui.notes->viewport()->installEventFilter(this); - ui.rating->installEventFilter(this); - ui.visibility->installEventFilter(this); - ui.airtemp->installEventFilter(this); - ui.watertemp->installEventFilter(this); - ui.dateEdit->installEventFilter(this); - ui.timeEdit->installEventFilter(this); - ui.tagWidget->installEventFilter(this); - ui.DiveType->installEventFilter(this); - Q_FOREACH (QObject *obj, ui.statisticsTab->children()) { QLabel *label = qobject_cast<QLabel *>(obj); if (label) -- 2.3.2
From a5c390c8cf41573768090290d346b5b437d2241a Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <[email protected]> Date: Mon, 9 Mar 2015 14:56:40 -0300 Subject: [PATCH 1/6] Do not show the Edit mode message when enter location Signed-off-by: Tomaz Canabrava <[email protected]> --- qt-ui/simplewidgets.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/qt-ui/simplewidgets.cpp b/qt-ui/simplewidgets.cpp index 003fc05..8a808d2 100644 --- a/qt-ui/simplewidgets.cpp +++ b/qt-ui/simplewidgets.cpp @@ -672,6 +672,7 @@ LocationInformationWidget::LocationInformationWidget(QWidget *parent) : QGroupBo ui.setupUi(this); ui.diveSiteMessage->setText("You are editing the Dive Site"); ui.diveSiteMessage->setCloseButtonVisible(false); + ui.diveSiteMessage->hide(); QAction *action = new QAction(tr("Apply changes"), this); connect(action, SIGNAL(triggered(bool)), this, SLOT(acceptChanges())); -- 2.3.2
_______________________________________________ subsurface mailing list [email protected] http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
