summaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui')
-rw-r--r--qt-ui/maintab.cpp35
-rw-r--r--qt-ui/maintab.h1
2 files changed, 21 insertions, 15 deletions
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
index 812760f5a..545632f75 100644
--- a/qt-ui/maintab.cpp
+++ b/qt-ui/maintab.cpp
@@ -34,7 +34,8 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
cylindersModel(CylindersModel::instance()),
editMode(NONE),
divePictureModel(DivePictureModel::instance()),
- currentTrip(0)
+ currentTrip(0),
+ copyPaste(false)
{
ui.setupUi(this);
ui.dateEdit->setDisplayFormat(getDateFormat());
@@ -265,6 +266,7 @@ void MainTab::enableEdition(EditMode newEditMode)
if (((newEditMode == DIVE || newEditMode == NONE) && current_dive == NULL) || editMode != NONE)
return;
modified = false;
+ copyPaste = false;
if ((newEditMode == DIVE || newEditMode == NONE) &&
current_dive->dc.model &&
strcmp(current_dive->dc.model, "manually added dive") == 0) {
@@ -648,15 +650,15 @@ void MainTab::reload()
mark_divelist_changed(true); \
} while (0)
-#define EDIT_TEXT(what) \
- if (same_string(mydive->what, cd->what)) { \
- free(mydive->what); \
- mydive->what = copy_string(displayed_dive.what); \
+#define EDIT_TEXT(what) \
+ if (same_string(mydive->what, cd->what) || copyPaste) { \
+ free(mydive->what); \
+ mydive->what = copy_string(displayed_dive.what); \
}
-#define EDIT_VALUE(what) \
- if (mydive->what == cd->what) { \
- mydive->what = displayed_dive.what; \
+#define EDIT_VALUE(what) \
+ if (mydive->what == cd->what || copyPaste) { \
+ mydive->what = displayed_dive.what; \
}
void MainTab::acceptChanges()
@@ -729,9 +731,10 @@ void MainTab::acceptChanges()
if (displayed_dive.latitude.udeg != cd->latitude.udeg ||
displayed_dive.longitude.udeg != cd->longitude.udeg)
MODIFY_SELECTED_DIVES(
- if (same_string(mydive->location, cd->location) &&
- mydive->latitude.udeg == cd->latitude.udeg &&
- mydive->longitude.udeg == cd->longitude.udeg)
+ if (copyPaste ||
+ (same_string(mydive->location, cd->location) &&
+ mydive->latitude.udeg == cd->latitude.udeg &&
+ mydive->longitude.udeg == cd->longitude.udeg))
gpsHasChanged(mydive, cd, ui.coordinates->text(), 0);
);
if (!same_string(displayed_dive.location, cd->location))
@@ -744,9 +747,10 @@ void MainTab::acceptChanges()
MODIFY_SELECTED_DIVES(
for (int i = 0; i < MAX_CYLINDERS; i++) {
if (mydive != cd) {
- if (same_string(mydive->cylinder[i].type.description, cd->cylinder[i].type.description)) {
- // if we started out with the same cylinder description make sure that we have the same cylinder type
- // and copy the gasmix, but DON'T copy the start and end pressures (those are per dive after all)
+ if (same_string(mydive->cylinder[i].type.description, cd->cylinder[i].type.description) || copyPaste) {
+ // if we started out with the same cylinder description (for multi-edit) or if we do copt & paste
+ // make sure that we have the same cylinder type and copy the gasmix, but DON'T copy the start
+ // and end pressures (those are per dive after all)
if (!same_string(mydive->cylinder[i].type.description, displayed_dive.cylinder[i].type.description)) {
free((void*)mydive->cylinder[i].type.description);
mydive->cylinder[i].type.description = copy_string(displayed_dive.cylinder[i].type.description);
@@ -771,7 +775,7 @@ void MainTab::acceptChanges()
mark_divelist_changed(true);
MODIFY_SELECTED_DIVES(
for (int i = 0; i < MAX_WEIGHTSYSTEMS; i++) {
- if (mydive != cd && same_string(mydive->weightsystem[i].description, cd->weightsystem[i].description))
+ if (mydive != cd && (copyPaste || same_string(mydive->weightsystem[i].description, cd->weightsystem[i].description)))
mydive->weightsystem[i] = displayed_dive.weightsystem[i];
}
);
@@ -1206,6 +1210,7 @@ void MainTab::showAndTriggerEditSelective(struct dive_components what)
{
// take the data in our copyPasteDive and apply it to selected dives
enableEdition();
+ copyPaste = true;
SHOW_SELECTIVE(location);
SHOW_SELECTIVE(buddy);
SHOW_SELECTIVE(divemaster);
diff --git a/qt-ui/maintab.h b/qt-ui/maintab.h
index 47e57c2b0..541e3fb79 100644
--- a/qt-ui/maintab.h
+++ b/qt-ui/maintab.h
@@ -103,6 +103,7 @@ private:
DivePictureModel *divePictureModel;
Completers completers;
bool modified;
+ bool copyPaste;
void resetPallete();
void saveTags();
void updateGpsCoordinates(const struct dive *dive);