mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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>
This commit is contained in:
parent
822eb7558d
commit
29f50c6aee
3 changed files with 44 additions and 0 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,6 +49,8 @@ public:
|
|||
bool isEditing();
|
||||
void updateCoordinatesText(qreal lat, qreal lon);
|
||||
void nextInputField(QKeyEvent *event);
|
||||
void showAndTriggerEditSelective(struct dive_components what);
|
||||
|
||||
signals:
|
||||
void addDiveFinished();
|
||||
|
||||
|
|
|
@ -1314,4 +1314,6 @@ void MainWindow::on_copy_triggered()
|
|||
void MainWindow::on_paste_triggered()
|
||||
{
|
||||
// take the data in our copyPasteDive and apply it to selected dives
|
||||
selective_copy_dive(©PasteDive, &displayed_dive, what, false);
|
||||
ui.InfoWidget->showAndTriggerEditSelective(what);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue