mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Add checkbox to force images to match dives
Give the user the possibility to attach images to a dive even when the times do not match Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
5a1c041b78
commit
654a7be834
6 changed files with 25 additions and 4 deletions
4
dive.c
4
dive.c
|
@ -2989,12 +2989,12 @@ bool picture_check_valid(char *filename, int shift_time)
|
|||
return false;
|
||||
}
|
||||
|
||||
void dive_create_picture(struct dive *dive, char *filename, int shift_time)
|
||||
void dive_create_picture(struct dive *dive, char *filename, int shift_time, bool match_all)
|
||||
{
|
||||
timestamp_t timestamp = picture_get_timestamp(filename);
|
||||
if (!new_picture_for_dive(dive, filename))
|
||||
return;
|
||||
if (!dive_check_picture_time(dive, shift_time, timestamp))
|
||||
if (!match_all && !dive_check_picture_time(dive, shift_time, timestamp))
|
||||
return;
|
||||
|
||||
struct picture *picture = alloc_picture();
|
||||
|
|
2
dive.h
2
dive.h
|
@ -377,7 +377,7 @@ struct picture {
|
|||
|
||||
extern struct picture *alloc_picture();
|
||||
extern bool dive_check_picture_time(struct dive *d, int shift_time, timestamp_t timestamp);
|
||||
extern void dive_create_picture(struct dive *d, char *filename, int shift_time);
|
||||
extern void dive_create_picture(struct dive *d, char *filename, int shift_time, bool match_all);
|
||||
extern void dive_add_picture(struct dive *d, struct picture *newpic);
|
||||
extern void dive_remove_picture(char *filename);
|
||||
extern unsigned int dive_get_picture_count(struct dive *d);
|
||||
|
|
|
@ -925,7 +925,7 @@ void DiveListView::matchImagesToDives(QStringList fileNames)
|
|||
for_each_dive (j, dive) {
|
||||
if (!dive->selected)
|
||||
continue;
|
||||
dive_create_picture(dive, copy_string(fileName.toUtf8().data()), shiftDialog.amount());
|
||||
dive_create_picture(dive, copy_string(fileName.toUtf8().data()), shiftDialog.amount(), shiftDialog.matchAll());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -131,6 +131,13 @@ Not all images have timestamps in the range between
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="matchAllImages">
|
||||
<property name="text">
|
||||
<string>Load images even if the time does not match the dive time</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="invalidLabel">
|
||||
<property name="styleSheet">
|
||||
|
|
|
@ -312,12 +312,23 @@ void ShiftImageTimesDialog::dcDateTimeChanged(const QDateTime &newDateTime)
|
|||
setOffset(newDateTime.toTime_t() - dcImageEpoch);
|
||||
}
|
||||
|
||||
void ShiftImageTimesDialog::matchAllImagesToggled(bool state)
|
||||
{
|
||||
matchAllImages = state;
|
||||
}
|
||||
|
||||
bool ShiftImageTimesDialog::matchAll()
|
||||
{
|
||||
return matchAllImages;
|
||||
}
|
||||
|
||||
ShiftImageTimesDialog::ShiftImageTimesDialog(QWidget *parent, QStringList fileNames) : QDialog(parent), fileNames(fileNames), m_amount(0)
|
||||
{
|
||||
ui.setupUi(this);
|
||||
connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *)));
|
||||
connect(ui.syncCamera, SIGNAL(clicked()), this, SLOT(syncCameraClicked()));
|
||||
connect(ui.timeEdit, SIGNAL(timeChanged(const QTime &)), this, SLOT(timeEditChanged(const QTime &)));
|
||||
connect(ui.matchAllImages, SIGNAL(toggled(bool)), this, SLOT(matchAllImagesToggled(bool)));
|
||||
dcImageEpoch = (time_t)0;
|
||||
}
|
||||
|
||||
|
|
|
@ -101,6 +101,7 @@ public:
|
|||
explicit ShiftImageTimesDialog(QWidget *parent, QStringList fileNames);
|
||||
time_t amount() const;
|
||||
void setOffset(time_t offset);
|
||||
bool matchAll();
|
||||
private
|
||||
slots:
|
||||
void buttonClicked(QAbstractButton *button);
|
||||
|
@ -108,12 +109,14 @@ slots:
|
|||
void dcDateTimeChanged(const QDateTime &);
|
||||
void timeEditChanged(const QTime &time);
|
||||
void updateInvalid();
|
||||
void matchAllImagesToggled(bool);
|
||||
|
||||
private:
|
||||
QStringList fileNames;
|
||||
Ui::ShiftImageTimesDialog ui;
|
||||
time_t m_amount;
|
||||
time_t dcImageEpoch;
|
||||
bool matchAllImages;
|
||||
};
|
||||
|
||||
class URLDialog : public QDialog {
|
||||
|
|
Loading…
Add table
Reference in a new issue