[digikam] [Bug 386959] Properties view: wrong creation date

2017-11-15 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=386959

--- Comment #3 from Jan Wolter <onl...@wolter.re> ---
COMMENT FROM MAIL QUALMANN ON THE DIGIKAM-USERS LIST:

Jan,

here is the function.

https://cgit.kde.org/digikam.git/tree/libs/dmetadata/metaengine_image.cpp#n534

 Yes, if none of the many date/time sources are available, 
"Xmp.photoshop.DateCreated" will be queried before "Xmp.xmp.CreateDate". If 
"Xmp.photoshop.DateCreated" is so unreliable, I suggest giving it a lower 
priority.

Maik

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 386959] Properties view: wrong creation date

2017-11-15 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=386959

--- Comment #2 from Jan Wolter <onl...@wolter.re> ---
Created attachment 108886
  --> https://bugs.kde.org/attachment.cgi?id=108886=edit
xmp files of the image from the screenshot

The xmp file was created 3 years ago with dk 4.x and the attribute
"photoshop.DateCreated" does not contain the time part:

$ exiv2 -pa --grep Date 2014-08-04T15-23-11_Australien.ORF.xmp
Exif.Image.DateTime  Ascii  20  2014:08:04 15:23:11
Exif.Photo.DateTimeOriginal  Ascii  20  2014:08:04 02:00:00
Exif.Photo.DateTimeDigitized Ascii  20  2014:08:04 15:23:11
Iptc.Application2.DateCreatedDate8  2014-08-04
Iptc.Application2.DigitizationDate   Date8  2014-08-04
Xmp.exif.DateTimeDigitized   XmpText19  2014-08-04T15:23:11
Xmp.exif.DateTimeOriginalXmpText19  2014:08:04 15:23:11
Xmp.photoshop.DateCreatedXmpText10  2014-08-04
Xmp.tiff.DateTimeXmpText19  2014-08-04T15:23:11
Xmp.xmp.CreateDate   XmpText19  2014-08-04T15:23:11
Xmp.xmp.MetadataDate XmpText19  2014-08-04T15:23:11
Xmp.xmp.ModifyDate   XmpText19  2014-08-04T15:23:11

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 386959] Properties view: wrong creation date

2017-11-15 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=386959

--- Comment #1 from Jan Wolter <onl...@wolter.re> ---
Created attachment 108885
  --> https://bugs.kde.org/attachment.cgi?id=108885=edit
Correct creation date with dk 4.14

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 386959] New: Properties view: wrong creation date

2017-11-15 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=386959

Bug ID: 386959
   Summary: Properties view: wrong creation date
   Product: digikam
   Version: 5.8.0
  Platform: Other
OS: Linux
Status: UNCONFIRMED
  Severity: normal
  Priority: NOR
 Component: Albums-IconView
  Assignee: digikam-bugs-n...@kde.org
  Reporter: onl...@wolter.re
  Target Milestone: ---

Created attachment 108884
  --> https://bugs.kde.org/attachment.cgi?id=108884=edit
Wrong creation date with dk 5.6

I mentioned that the creation date of nearly all my raw files are not displayed
correctly in the photograph properties view: the date part is correct but the
time part is fixed to "1:00 AM" or "2:00 AM" depending on winter or sommer
time. For read-only files like raw files my digikam writes/reads all metadate
to/from XMP sidecar files. Currently, I use digikam version 5.7.0 (AppImage).

When I take a look in the *.xmp files, I see the following entries related to
dates:
exif:DateTimeDigitized="2014-07-29T11:22:08"
exif:DateTimeOriginal="2014-07-29T11:22:08"
tiff:DateTime="2014-07-29T11:22:08"
xmp:CreateDate="2014-07-29T11:22:08"
xmp:MetadataDate="2014-07-29T11:22:08"
xmp:ModifyDate="2014-07-29T11:22:08"
photoshop:DateCreated="2014-07-29"

All date related attributes except "photoshop:DateCreated" saves the date
including the time part. I noticed that this problem applies only to all raw
files which XMP sidecar files was created by an older dk version (in my case dk
4.14.0). Sidecar files created by digikam 5.x writes "photoshop:DateCreated"
including the time. But dk 5.x. is not able to show the creation date in the
properties view correctly, when "photoshop:DateCreated" contains only the date.

I would expect that dk use "xmp:CreateDate" instead of "photoshop:DateCreated".

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 386123] Properties view does not include label properties

2017-10-23 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=386123

--- Comment #2 from Jan Wolter <onl...@wolter.re> ---
Created attachment 108530
  --> https://bugs.kde.org/attachment.cgi?id=108530=edit
Video

In the captions tab all label properties are correct but in the properties tab
they still not appear. I made a small video with digikam version 5.7. Please
compare the behavior there.

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 386123] New: Properties view does not include label properties

2017-10-23 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=386123

Bug ID: 386123
   Summary: Properties view does not include label properties
   Product: digikam
   Version: 5.8.0
  Platform: Mint (Ubuntu based)
OS: Linux
Status: UNCONFIRMED
  Severity: normal
  Priority: NOR
 Component: general
  Assignee: digikam-bugs-n...@kde.org
  Reporter: onl...@wolter.re
  Target Milestone: ---

Created attachment 108529
  --> https://bugs.kde.org/attachment.cgi?id=108529=edit
properties view

Since digikam version 5.6 the properties view does not include label properties
as pick or color label. I've tested it with different appimage versions. dk 5.5
includes the label properties. From dk 5.6 to 5.8 the label prob. are not
included.

See a comparison in the attached picture.

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 376928] New: Changes on mimetypes are applied after restart

2017-02-25 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=376928

Bug ID: 376928
   Summary: Changes on mimetypes are applied after restart
   Product: digikam
   Version: 5.5.0
  Platform: Mint (Ubuntu based)
OS: Linux
Status: UNCONFIRMED
  Severity: normal
  Priority: NOR
 Component: setup
  Assignee: digikam-de...@kde.org
  Reporter: onl...@wolter.re
  Target Milestone: ---

Created attachment 104222
  --> https://bugs.kde.org/attachment.cgi?id=104222=edit
Patch

Changes on mimetypes (Settings -> Views -> Mime Types) are applied only after
restarting digikam. The attached patch fixes that in a way that the changes are
directly applied (by scanning the collection) after confirming the dialog.

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 376820] Make mime type settings GUI more consistent

2017-02-22 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=376820

--- Comment #2 from Jan Wolter <onl...@wolter.re> ---
Created attachment 104175
  --> https://bugs.kde.org/attachment.cgi?id=104175=edit
patch

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 376820] Make mime type settings GUI more consistent

2017-02-22 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=376820

--- Comment #1 from Jan Wolter <onl...@wolter.re> ---
Created attachment 104174
  --> https://bugs.kde.org/attachment.cgi?id=104174=edit
mime type gui AFTER

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 376820] New: Make mime type settings GUI more consistent

2017-02-22 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=376820

Bug ID: 376820
   Summary: Make mime type settings GUI more consistent
   Product: digikam
   Version: 5.5.0
  Platform: Mint (Ubuntu based)
OS: Linux
Status: UNCONFIRMED
  Severity: minor
  Priority: NOR
 Component: setup
  Assignee: digikam-de...@kde.org
  Reporter: onl...@wolter.re
  Target Milestone: ---

Created attachment 104173
  --> https://bugs.kde.org/attachment.cgi?id=104173=edit
mime type gui BEFORE

In mime type settings GUI there are explicit revert buttons whereas in other
settings setClearButtonEnabled from class QLineEdit are used.

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2017-02-15 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=123097

Jan Wolter <onl...@wolter.re> changed:

   What|Removed |Added

 Attachment #103660|0   |1
is obsolete||

--- Comment #58 from Jan Wolter <onl...@wolter.re> ---
Created attachment 104043
  --> https://bugs.kde.org/attachment.cgi?id=104043=edit
Reworked patch

Hi Gilles,
attached is the reworked patch, which behaves exactly as the mime config now.
The settings are directly stored in SQLite DB. The @eaDir is now ignored by
default, but users are able to include it by prefixing it with a minus (the
same behaviour as in mime config).

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2017-02-05 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=123097

--- Comment #56 from Jan Wolter <onl...@wolter.re> ---
Yes, I agree that this is the most consistent way.

But what do you mean that "DB file to use with digiKam session can be passed on
CLI."?

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2017-02-05 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=123097

--- Comment #54 from Jan Wolter <onl...@wolter.re> ---
Hi Gilles,
ok, I will support default settings. I looked a bit deeper in the code defining
the default settings for mime types. They are all directly stored in the SQLite
DB in the settings table, supported by function setSettings in DbCore class.
Up to now, I store the ignored directories settings in DbEngineParameters.

What do you suppose:
1) Should I leave the ignored directories settings there and add just default
ignore directories?
2) Or should I move the settings to the database as its done for mime types.

Regarding the directories starting with a dot: They are ignored anyway and are
not touched by my patch. I think that should remain so in the future. Do you
agree?

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2017-01-29 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=123097

--- Comment #52 from Jan Wolter <onl...@wolter.re> ---
Hello Gilles,

I suppose, we have a misunderstanding here. My patch does not introduce new
directories that get ignored by default. Even the @eaDir directory gets ignored
only, when a user adds it to the new configuration dialog (the directories are
saved as part of DbEngineParameters). My approach was that digikam behaves with
my patch but without configuring directories in the new dialog in the same way
as in the current version without my patch.

Concerning your comment with the info dialog, I thought you want a list
including all directories from which we know that they will be ignored. And
that’s just all directories starting with a dot. Since, my patch does not
introduce additional ignored directories by default, such info dialog with
exemplary ignored directories could be skipped.

What do you think?

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2017-01-26 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=123097

--- Comment #48 from Jan Wolter <onl...@wolter.re> ---
Created attachment 103660
  --> https://bugs.kde.org/attachment.cgi?id=103660=edit
Newest version of patch

Hello Gilles,
I added an info pop-up as in the mime config including the explanation that all
directories starting with a dot will be ignored and a small list of explicit
directory names you mentioned (this list could be extended of course).
I would be glad if you check-in the patch in the repository :)

Best regards,
Jan

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2017-01-24 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=123097

--- Comment #46 from Jan Wolter <onl...@wolter.re> ---
Hello Gilles,

thanks for your help and your feedback. With your hint it generally works,
thats great!

Now to your point regarding a default ignore list: 
The examples you mentioned all begin with a dot and has been ignored by default
anyway. Do I understand you correctly, that you wish to establish a list (as in
View/Mime-Type) with ignored directories (e.g. all that begin with a dot) *just
to inform the user* about this default feature?
If that is your intension, I will add such a list.

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2016-12-15 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=123097

--- Comment #41 from Jan Wolter <onl...@wolter.re> ---
Hello Gilles,
do you have any hint for me to update CoreDbAccess after updating
dbEngineParameters?
It would be great if you could help me to fix this last problem to get it work
before dk 5.4 deadline.

Best regards,
Jan

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2016-12-12 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=123097

--- Comment #40 from Jan Wolter <onl...@wolter.re> ---
Created attachment 102753
  --> https://bugs.kde.org/attachment.cgi?id=102753=edit
Patch

Hi Gilles,
I have attached a version without the crash caused by the wrong call of
CoreDbAccess::setParameters.
The remaining problem is still that after updating the settings, the
CollectionScanner refers to CoreDbAccess().parameters() which do NOT contain
the newly inserted ignoredDirectories.

It would be nice to take a look on that and tell me how to update CoreDbAccess
after adding new settings.

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2016-12-09 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=123097

--- Comment #39 from Jan Wolter <onl...@wolter.re> ---
Created attachment 102709
  --> https://bugs.kde.org/attachment.cgi?id=102709=edit
New version of Patch

Hi Gilles,
see attached the patch. To update the paramters in CoreDbAccess according to
the dbEngineParameters, I call setupdatebase.cpp:
CoreDbAccess::setParameters(params);

See the complete snippet here:
if (d->databaseWidget->getDbEngineParameters().ignoredDirectories !=
d->databaseWidget->orgDatabasePrm().ignoredDirectories)
{
qCDebug(DIGIKAM_GENERAL_LOG) << "Ignored directories settings changes.
Update...";
DbEngineParameters params = d->databaseWidget->getDbEngineParameters();
settings->setDbEngineParameters(params);
settings->saveSettings();
CoreDbAccess::setParameters(params);
ScanController::instance()->completeCollectionScanInBackground(false);
}

But unfortunately, this crashed the hole application:
*** Error in `/opt/kf5/bin/digikam': double free or corruption (fasttop):
0x7fffc00dcbe0 ***
Program received signal SIGABRT, Aborted.

Do you know a way to update the parameters in CoreDbAccess correctly?

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2016-12-08 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=123097

--- Comment #37 from Jan Wolter <onl...@wolter.re> ---
Hi Gilles,
when changes in the new ignoredDirectories settings text field are made I
trigger now a album rescan to ignore the directories. At this moment the
dbEngineParameters contain the newly inserted ignoredDirectories. But the
CollectionScanner refers to CoreDbAccess().parameters() which do NOT contain
the newly inserted ignoredDirectories.
Could you give me a hint how to update CoreDbAccess().parameters() after
performing changes at dbEngineParameters?

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2016-11-23 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=123097

--- Comment #35 from Jan Wolter <onl...@wolter.re> ---
Hi Gilles,
since my last update there is no further progress, but I hope to find time to
complete the last 20% till next release.
For what date in December is version 5.4 planned?

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2016-11-10 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=123097

--- Comment #31 from Jan Wolter <onl...@wolter.re> ---
Created attachment 102158
  --> https://bugs.kde.org/attachment.cgi?id=102158=edit
Update Patch IgnoreDirectories

Hello Gilles,

yes there are progress.
The attached patch supports the requested feature: You are able to add
directories (separated by whitespaces in the text field) that you want to
ignore from your collection. The settings are stored in DbEngineParameters. All
directories that exactly match the configured directory name, will be ignored
from the photo collection.

But unfortunately, the configured directories gets ignored only after
restarting digikam.
When a user clicks the OK-Button of settings dialog, the DbEngineParameters are
updated correctly. But in the CollectionScanner CoreDbAccess().parameters()
delivers instead of the actual parameters, the parameters that were valid at
digikam startup.
Do you have, any hints to solve this?

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2016-11-04 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=123097

--- Comment #28 from Jan Wolter <onl...@wolter.re> ---
Hello Gilles,
thanks for your help. I will show your code the next days and complete the fix
for this issue.

@Note 1: Ok, I will replace tabs by blanks.

@Note 2: You are right, "@eaDir" is still hard-coded, but with adjusted patch I
should be able to use the new settings from DbEngineParameters.

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2016-10-26 Thread Jan Wolter
https://bugs.kde.org/show_bug.cgi?id=123097

--- Comment #26 from Jan Wolter <onl...@wolter.re> ---
Created attachment 101805
  --> https://bugs.kde.org/attachment.cgi?id=101805=edit
Patch on current repository status

The same problem on current status.
The problem seem to be somewhere under the hood. Would be nice, if someone with
deeper understanding of dk code could check that.

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2016-10-25 Thread Jan Wolter via KDE Bugzilla
https://bugs.kde.org/show_bug.cgi?id=123097

--- Comment #25 from Jan Wolter <onl...@wolter.re> ---
Created attachment 101781
  --> https://bugs.kde.org/attachment.cgi?id=101781=edit
IgnoreDirectories-Patch dk 5

Hello Gilles,

I found some time to port my fix to new dk version 5. The attached code depends
on tag v5.2.0.

It depends on the initial patch from Amilcar Lucas to ignore all @eaDir
directories (hard-coded in class collectionscanner.cpp). My part was to
configure what directories should be ignored. Therefore I added a text field to
the database settings menu. The entries a user make there will be stored in
digikamrc.

The last part to complete the task is to replace the hard-coded ignoration of
@eaDir by the entries made by users. Therefore, I need access to the database
parameters in collectionscanner class:
const DbEngineParameters prm =
ApplicationSettings::instance()->getDbEngineParameters();

Unfortunately, I get the same error as in dk 4 version:
CMakeFiles/digikamdatabase_src.dir/collection/collectionscanner.cpp.o: In
function `Digikam::CollectionScanner::CollectionScanner()':
/home/jan/Downloads/digikamGIT/core/libs/database/collection/collectionscanner.cpp:363:
undefined reference to `Digikam::ApplicationSettings::instance()'
/home/jan/Downloads/digikamGIT/core/libs/database/collection/collectionscanner.cpp:363:
undefined reference to `Digikam::ApplicationSettings::getDbEngineParameters()
const'
collect2: error: ld returned 1 exit status
make[2]: *** [core/libs/database/libdigikamdatabase.so.5.2.0] Error 1
make[1]: *** [core/libs/database/CMakeFiles/digikamdatabase.dir/all] Error 2
make: *** [all] Error 2

You guessed last year it is a linking problem. Could you please check that?

-- 
You are receiving this mail because:
You are watching all bug changes.


[digikam] [Bug 123097] SCAN : ignore some directories in digiKam [patch]

2016-07-23 Thread Jan Wolter via KDE Bugzilla
https://bugs.kde.org/show_bug.cgi?id=123097

--- Comment #24 from Jan Wolter <onl...@wolter.re> ---
Hi Gilles, at the moment I didn't tested it. But I hope I will find some time
to test it with dg 5 during the next 2-3 weeks.

-- 
You are receiving this mail because:
You are watching all bug changes.


[digikam] [Bug 357952] New: Problem with conversion from ‘int’ to ‘boolean’ when using libjpeg 9a

2016-01-13 Thread Jan Wolter via KDE Bugzilla
https://bugs.kde.org/show_bug.cgi?id=357952

Bug ID: 357952
   Summary: Problem with conversion from ‘int’ to ‘boolean’ when
using libjpeg 9a
   Product: digikam
   Version: 5.0.0
  Platform: Other
OS: Linux
Status: UNCONFIRMED
  Severity: major
  Priority: NOR
 Component: Raw-Engine
  Assignee: digikam-de...@kde.org
  Reporter: jan.wol...@upb.de

During compilation I get the following error:

[ 36%] Building CXX object
core/libs/rawengine/libraw/CMakeFiles/libraw.dir/RawSpeed/DngDecoderSlices.cpp.o
/home/jan/Downloads/digikamGIT/core/libs/rawengine/libraw/RawSpeed/DngDecoderSlices.cpp:
In member function ‘void
RawSpeed::DngDecoderSlices::decodeSlice(RawSpeed::DngDecoderThread*)’:
/home/jan/Downloads/digikamGIT/core/libs/rawengine/libraw/RawSpeed/DngDecoderSlices.cpp:180:60:
error: invalid conversion from ‘int’ to ‘boolean’ [-fpermissive]
 if (JPEG_HEADER_OK != jpeg_read_header(, TRUE))
^
In file included from
/home/jan/Downloads/digikamGIT/core/libs/rawengine/libraw/RawSpeed/StdAfx.h:71:0,
 from
/home/jan/Downloads/digikamGIT/core/libs/rawengine/libraw/RawSpeed/DngDecoderSlices.cpp:1:
/usr/local/include/jpeglib.h:1039:13: error:   initializing argument 2 of ‘int
jpeg_read_header(j_decompress_ptr, boolean)’ [-fpermissive]
 EXTERN(int) jpeg_read_header JPP((j_decompress_ptr cinfo,
 ^
make[2]: ***
[core/libs/rawengine/libraw/CMakeFiles/libraw.dir/RawSpeed/DngDecoderSlices.cpp.o]
Error 1
make[1]: *** [core/libs/rawengine/libraw/CMakeFiles/libraw.dir/all] Error 2
make: *** [all] Error 2

Reproducible: Always




The same problem is documented for darktable, see
https://bugs.gentoo.org/show_bug.cgi?id=520894

I will post the copied bugfix immediately.

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 357952] Problem with conversion from ‘int’ to ‘boolean’ when using libjpeg 9a

2016-01-13 Thread Jan Wolter via KDE Bugzilla
https://bugs.kde.org/show_bug.cgi?id=357952

--- Comment #1 from Jan Wolter <jan.wol...@upb.de> ---
Created attachment 96627
  --> https://bugs.kde.org/attachment.cgi?id=96627=edit
Patch for conversion problem

-- 
You are receiving this mail because:
You are watching all bug changes.