diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2014-08-17 08:26:09 -0600 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-08-17 11:58:11 -0600 |
commit | 29f50c6aeeb31dfad7510d240e27905a9f62670d (patch) | |
tree | fb3315e456ad5470eb209cc1c24043636bd4bd0e /qt-ui/maintab.cpp | |
parent | 822eb7558dd7ab4c3dbb86b63be547cdbc2ebb47 (diff) | |
download | subsurface-29f50c6aeeb31dfad7510d240e27905a9f62670d.tar.gz |
Cut'n'paste for dive data: implement paste side
This should correctly set all the values and puts us in edit mode.
Testing so far looks good for both single dive and multiple dives selected
(i.e., you can paste into multiple dives).
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/maintab.cpp')
-rw-r--r-- | qt-ui/maintab.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp index e403e0b93..5002a2880 100644 --- a/qt-ui/maintab.cpp +++ b/qt-ui/maintab.cpp @@ -1173,3 +1173,43 @@ void MainTab::removeSelectedPhotos() QString fileUrl = photoIndex.data(Qt::DisplayPropertyRole).toString(); DivePictureModel::instance()->removePicture(fileUrl); } + +#define SHOW_SELECTIVE(_component) \ + if (what._component) \ + ui._component->setText(displayed_dive._component); + +void MainTab::showAndTriggerEditSelective(struct dive_components what) +{ + // take the data in our copyPasteDive and apply it to selected dives + enableEdition(); + SHOW_SELECTIVE(location); + SHOW_SELECTIVE(buddy); + SHOW_SELECTIVE(divemaster); + SHOW_SELECTIVE(suit); + if (what.notes) { + QString tmp(displayed_dive.notes); + if (tmp.contains("<table")) + ui.notes->setHtml(tmp); + else + ui.notes->setPlainText(tmp); + } + if (what.rating) + ui.rating->setCurrentStars(displayed_dive.rating); + if (what.visibility) + ui.visibility->setCurrentStars(displayed_dive.visibility); + if (what.gps) + updateGpsCoordinates(&displayed_dive); + if (what.tags) { + char buf[1024]; + taglist_get_tagstring(displayed_dive.tag_list, buf, 1024); + ui.tagWidget->setText(QString(buf)); + } + if (what.cylinders) { + cylindersModel->updateDive(); + cylindersModel->changed = true; + } + if (what.weights) { + weightModel->updateDive(); + weightModel->changed = true; + } +} |