mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Edit: prevent not needed change marking
While trying to understand more of the big change from PR 1528, I found that the divelist was marked changed while it was not changed at all. Reason is simple. The MODIFY_DIVES code assumes its called only for truly changed data. But in case of saving tagged strings, it was not. This fixes this. And I do not believe this has any visual effects. Further, the now broken indentation is fixed seperately. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
This commit is contained in:
parent
6137e0bc60
commit
a47df05ce5
2 changed files with 5 additions and 4 deletions
|
@ -1279,7 +1279,7 @@ void MainTab::saveTaggedStrings(const QVector<dive *> &selectedDives)
|
|||
QStringList addedList, removedList;
|
||||
struct dive *cd = current_dive;
|
||||
|
||||
diffTaggedStrings(cd->buddy, displayed_dive.buddy, addedList, removedList);
|
||||
if (diffTaggedStrings(cd->buddy, displayed_dive.buddy, addedList, removedList))
|
||||
MODIFY_DIVES(selectedDives,
|
||||
QStringList oldList = QString(mydive->buddy).split(QRegExp("\\s*,\\s*"), QString::SkipEmptyParts);
|
||||
QString newString;
|
||||
|
@ -1301,7 +1301,7 @@ void MainTab::saveTaggedStrings(const QVector<dive *> &selectedDives)
|
|||
);
|
||||
addedList.clear();
|
||||
removedList.clear();
|
||||
diffTaggedStrings(cd->divemaster, displayed_dive.divemaster, addedList, removedList);
|
||||
if (diffTaggedStrings(cd->divemaster, displayed_dive.divemaster, addedList, removedList))
|
||||
MODIFY_DIVES(selectedDives,
|
||||
QStringList oldList = QString(mydive->divemaster).split(QRegExp("\\s*,\\s*"), QString::SkipEmptyParts);
|
||||
QString newString;
|
||||
|
@ -1323,7 +1323,7 @@ void MainTab::saveTaggedStrings(const QVector<dive *> &selectedDives)
|
|||
);
|
||||
}
|
||||
|
||||
void MainTab::diffTaggedStrings(QString currentString, QString displayedString, QStringList &addedList, QStringList &removedList)
|
||||
int MainTab::diffTaggedStrings(QString currentString, QString displayedString, QStringList &addedList, QStringList &removedList)
|
||||
{
|
||||
QStringList displayedList, currentList;
|
||||
currentList = currentString.split(',', QString::SkipEmptyParts);
|
||||
|
@ -1336,6 +1336,7 @@ void MainTab::diffTaggedStrings(QString currentString, QString displayedString,
|
|||
if (!currentList.contains(tag, Qt::CaseInsensitive))
|
||||
addedList << tag.trimmed();
|
||||
}
|
||||
return removedList.length() + addedList.length();
|
||||
}
|
||||
|
||||
void MainTab::on_tagWidget_textChanged()
|
||||
|
|
|
@ -119,7 +119,7 @@ private:
|
|||
void copyTagsToDisplayedDive();
|
||||
void saveTags(const QVector<dive *> &selectedDives);
|
||||
void saveTaggedStrings(const QVector<dive *> &selectedDives);
|
||||
void diffTaggedStrings(QString currentString, QString displayedString, QStringList &addedList, QStringList &removedList);
|
||||
int diffTaggedStrings(QString currentString, QString displayedString, QStringList &addedList, QStringList &removedList);
|
||||
void markChangedWidget(QWidget *w);
|
||||
dive_trip_t *currentTrip;
|
||||
dive_trip_t displayedTrip;
|
||||
|
|
Loading…
Add table
Reference in a new issue