Source code modification

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Source code modification

AndriusWild
Hello,

I want to make an image star rating visible in image preview view and wondering which file should I be modifying.
I am looking at imagepreviewview.cpp in https://github.com/KDE/digikam/tree/master/app/views
Is this the right one? Any tip would be greatly appreciated.

Best regards,
Andrey
Reply | Threaded
Open this post in threaded view
|

Re: Source code modification

Gilles Caulier-4
Hi Andrey,

This have been a long history in bugzilla about to be able to display
or edit some properties over the canvas (editor and preview mode), as
rating, tags, or labels.

The result is a shared point to implement or not this feature, as the
possibility already exist every where : context menu, sidebar, and
keyboard shortcuts.  And of course nothing have be done as it's
delcate to take a clear decision about.

But, something as been implemented in slideshow, as only keyboard
shortcuts was available to apply main properties to images. On the
botoom corner of the image while slide show, if the right option is
turned on in setup dialog, you are able to rate, tags, or change color
labels.So, the techical solution exists in slide show widget, and can
be backported to image preview.

But take a care, it's not the most simple task to do to start coding
in digiKam and to learn the implementation.

If rate/tags/labels will become available over canvas, well all of
then must be optional in setup preview section, to be homogeneous.
this will touch more code.

Also, the preview canvas, is also used in Light table and must be also
patched to provide this feature.

Even that you are right. The preview canvas, is partially implemented
in imagepreviewview.cpp. This is the derivated class to manage the
preview with F3 key from album view. There are parent classes in
core/libs/widgets/graphicsview/. The preview view is an item loaded in
canvas and implemented with imagepreviewviewitem.cpp (it's Qt
model/view based).

Something similar is implemented with Light Table with some difference
and customizations. Mostly the main code is located in core lib
classes, and customization is located in derivated classes. The parent
classes are free of database to be usable in Showfoto as this one
don't use the database. So with your proposal, the code to change is
mandatory located in customization classes.

Now the implementation from slideshow to be able to show and edit
rate/tags/labels over the preview is located in
core/utilities/slideshow/slideosd.cpp.There are 3 magic widgets which
perform 90 of the job with the properties to show/edit : RatingWidget,
ColorLabelSelector, and PickLabelsSelector. This one are usable as
well without change as it's done with slideosd.cpp.

But the real question, is more ambitious : why not to reuse as well
the slideosd implementation as an overlay widget for preview canvas.
This will be homogenous everwhere and factorize/simplify all codes

So the questions are open...

Best

Gilles Caulier

2017-07-26 1:03 GMT+02:00 Andrey Goreev <[hidden email]>:

> Hello,
>
> I want to make an image star rating visible in image preview view and
> wondering which file should I be modifying.
> I am looking at imagepreviewview.cpp in
> https://github.com/KDE/digikam/tree/master/app/views
> Is this the right one? Any tip would be greatly appreciated.
>
> Best regards,
> Andrey
Reply | Threaded
Open this post in threaded view
|

Re: Source code modification

Gilles Caulier-4
Relevant entries in bugzilla :

LT :

https://bugs.kde.org/show_bug.cgi?id=148572

PreviewView:

https://bugs.kde.org/show_bug.cgi?id=336593
https://bugs.kde.org/show_bug.cgi?id=380331
https://bugs.kde.org/show_bug.cgi?id=302559

Gilles Caulier

2017-07-26 6:23 GMT+02:00 Gilles Caulier <[hidden email]>:

> Hi Andrey,
>
> This have been a long history in bugzilla about to be able to display
> or edit some properties over the canvas (editor and preview mode), as
> rating, tags, or labels.
>
> The result is a shared point to implement or not this feature, as the
> possibility already exist every where : context menu, sidebar, and
> keyboard shortcuts.  And of course nothing have be done as it's
> delcate to take a clear decision about.
>
> But, something as been implemented in slideshow, as only keyboard
> shortcuts was available to apply main properties to images. On the
> botoom corner of the image while slide show, if the right option is
> turned on in setup dialog, you are able to rate, tags, or change color
> labels.So, the techical solution exists in slide show widget, and can
> be backported to image preview.
>
> But take a care, it's not the most simple task to do to start coding
> in digiKam and to learn the implementation.
>
> If rate/tags/labels will become available over canvas, well all of
> then must be optional in setup preview section, to be homogeneous.
> this will touch more code.
>
> Also, the preview canvas, is also used in Light table and must be also
> patched to provide this feature.
>
> Even that you are right. The preview canvas, is partially implemented
> in imagepreviewview.cpp. This is the derivated class to manage the
> preview with F3 key from album view. There are parent classes in
> core/libs/widgets/graphicsview/. The preview view is an item loaded in
> canvas and implemented with imagepreviewviewitem.cpp (it's Qt
> model/view based).
>
> Something similar is implemented with Light Table with some difference
> and customizations. Mostly the main code is located in core lib
> classes, and customization is located in derivated classes. The parent
> classes are free of database to be usable in Showfoto as this one
> don't use the database. So with your proposal, the code to change is
> mandatory located in customization classes.
>
> Now the implementation from slideshow to be able to show and edit
> rate/tags/labels over the preview is located in
> core/utilities/slideshow/slideosd.cpp.There are 3 magic widgets which
> perform 90 of the job with the properties to show/edit : RatingWidget,
> ColorLabelSelector, and PickLabelsSelector. This one are usable as
> well without change as it's done with slideosd.cpp.
>
> But the real question, is more ambitious : why not to reuse as well
> the slideosd implementation as an overlay widget for preview canvas.
> This will be homogenous everwhere and factorize/simplify all codes
>
> So the questions are open...
>
> Best
>
> Gilles Caulier
>
> 2017-07-26 1:03 GMT+02:00 Andrey Goreev <[hidden email]>:
>> Hello,
>>
>> I want to make an image star rating visible in image preview view and
>> wondering which file should I be modifying.
>> I am looking at imagepreviewview.cpp in
>> https://github.com/KDE/digikam/tree/master/app/views
>> Is this the right one? Any tip would be greatly appreciated.
>>
>> Best regards,
>> Andrey
Reply | Threaded
Open this post in threaded view
|

Re: Source code modification

Anders Lund
In reply to this post by AndriusWild
I would love that! Just displaying it would be a help, it is possible to
change it using keyboard also in preview mode :)
Rating and flags.

Kindly,
Anders

På Tue, 25 Jul 2017 17:03:41 -0600
Andrey Goreev <[hidden email]> skrev:

> Hello,
>
> I want to make an image star rating visible in image preview view and
> wondering which file should I be modifying.
> I am looking at *imagepreviewview.cpp* in
> https://github.com/KDE/digikam/tree/master/app/views
> Is this the right one? Any tip would be greatly appreciated.
>
> Best regards,
> Andrey

Reply | Threaded
Open this post in threaded view
|

Re: Source code modification

Gilles Caulier-4
Hi Anders,

All is possible (:=)))... but we must take care about direction to
take to achieve features. We must be to be sure to not duplicate code,
not duplicate functions, and not introduce regressions.

Currently, i'm review the _WHOLE_ bugzilla entries, to
branch/reroute/tag/close/check files histories. I read more than 3500
pending files, not sorted/classed/annoted and closed as fixed 350
files for 5.7.0. Since DK is ported to Qt5, with the drop of KIO
slave, the reduced KDE dependencies (and we will continue in this
way), the better factored codes everywhere, i can said that
application is more stable in all use cases. It's not perfect, but so
far it's better than version 4.x, 3.x, etc...

The big hole still in :

- metadata sync (exiv2)
- video metadata (exiv2)
- database migration
- face management (we working on currently with deep learning project)
- export tools (kipi-plugins).

For this last point, i'm currently plan to rewrite an low level
interface in digiKam core to play with remote/cloud/network web
service. It will be in digiKam core if you understand what i want
mean...

The authentication with web service is a big nightmare. each use a
dedicated solution, sometime automatized, sometime no. All evolve, but
in different direction. It's complex and long to understand all use
cases. But i'm confident.

Voilà, a sort resume of current tasks in progress...

Gilles Caulier

2017-07-26 9:22 GMT+02:00 Anders Lund <[hidden email]>:

> I would love that! Just displaying it would be a help, it is possible to
> change it using keyboard also in preview mode :)
> Rating and flags.
>
> Kindly,
> Anders
>
> På Tue, 25 Jul 2017 17:03:41 -0600
> Andrey Goreev <[hidden email]> skrev:
>> Hello,
>>
>> I want to make an image star rating visible in image preview view and
>> wondering which file should I be modifying.
>> I am looking at *imagepreviewview.cpp* in
>> https://github.com/KDE/digikam/tree/master/app/views
>> Is this the right one? Any tip would be greatly appreciated.
>>
>> Best regards,
>> Andrey
>
Reply | Threaded
Open this post in threaded view
|

Re: Source code modification

AndriusWild
In reply to this post by Gilles Caulier-4
It is related too

Best regards,

On Tue, Jul 25, 2017 at 10:32 PM, Gilles Caulier <[hidden email]> wrote:
Relevant entries in bugzilla :

LT :

https://bugs.kde.org/show_bug.cgi?id=148572

PreviewView:

https://bugs.kde.org/show_bug.cgi?id=336593
https://bugs.kde.org/show_bug.cgi?id=380331
https://bugs.kde.org/show_bug.cgi?id=302559

Gilles Caulier

2017-07-26 6:23 GMT+02:00 Gilles Caulier <[hidden email]>:
> Hi Andrey,
>
> This have been a long history in bugzilla about to be able to display
> or edit some properties over the canvas (editor and preview mode), as
> rating, tags, or labels.
>
> The result is a shared point to implement or not this feature, as the
> possibility already exist every where : context menu, sidebar, and
> keyboard shortcuts.  And of course nothing have be done as it's
> delcate to take a clear decision about.
>
> But, something as been implemented in slideshow, as only keyboard
> shortcuts was available to apply main properties to images. On the
> botoom corner of the image while slide show, if the right option is
> turned on in setup dialog, you are able to rate, tags, or change color
> labels.So, the techical solution exists in slide show widget, and can
> be backported to image preview.
>
> But take a care, it's not the most simple task to do to start coding
> in digiKam and to learn the implementation.
>
> If rate/tags/labels will become available over canvas, well all of
> then must be optional in setup preview section, to be homogeneous.
> this will touch more code.
>
> Also, the preview canvas, is also used in Light table and must be also
> patched to provide this feature.
>
> Even that you are right. The preview canvas, is partially implemented
> in imagepreviewview.cpp. This is the derivated class to manage the
> preview with F3 key from album view. There are parent classes in
> core/libs/widgets/graphicsview/. The preview view is an item loaded in
> canvas and implemented with imagepreviewviewitem.cpp (it's Qt
> model/view based).
>
> Something similar is implemented with Light Table with some difference
> and customizations. Mostly the main code is located in core lib
> classes, and customization is located in derivated classes. The parent
> classes are free of database to be usable in Showfoto as this one
> don't use the database. So with your proposal, the code to change is
> mandatory located in customization classes.
>
> Now the implementation from slideshow to be able to show and edit
> rate/tags/labels over the preview is located in
> core/utilities/slideshow/slideosd.cpp.There are 3 magic widgets which
> perform 90 of the job with the properties to show/edit : RatingWidget,
> ColorLabelSelector, and PickLabelsSelector. This one are usable as
> well without change as it's done with slideosd.cpp.
>
> But the real question, is more ambitious : why not to reuse as well
> the slideosd implementation as an overlay widget for preview canvas.
> This will be homogenous everwhere and factorize/simplify all codes
>
> So the questions are open...
>
> Best
>
> Gilles Caulier
>
> 2017-07-26 1:03 GMT+02:00 Andrey Goreev <[hidden email]>:
>> Hello,
>>
>> I want to make an image star rating visible in image preview view and
>> wondering which file should I be modifying.
>> I am looking at imagepreviewview.cpp in
>> https://github.com/KDE/digikam/tree/master/app/views
>> Is this the right one? Any tip would be greatly appreciated.
>>
>> Best regards,
>> Andrey

Reply | Threaded
Open this post in threaded view
|

Re: Source code modification

AndriusWild
In reply to this post by Gilles Caulier-4
What I really want is to be able to unstick the "Description" tab of "Captions" section from the right panel, drag it to the bottom of the screen, place it along the status bar, align all its elements (title, description, date, pick label, color label, rating) horizontally from left to right and maybe make its background transparent. I would also have a hot key or a mouse action to show/hide that panel quickly whenever I want.

Right now I constantly switch back and forth between "Description" and "Tags" tabs.

Best regards,

On Wed, Jul 26, 2017 at 1:58 AM, Gilles Caulier <[hidden email]> wrote:
Hi Anders,

All is possible (:=)))... but we must take care about direction to
take to achieve features. We must be to be sure to not duplicate code,
not duplicate functions, and not introduce regressions.

Currently, i'm review the _WHOLE_ bugzilla entries, to
branch/reroute/tag/close/check files histories. I read more than 3500
pending files, not sorted/classed/annoted and closed as fixed 350
files for 5.7.0. Since DK is ported to Qt5, with the drop of KIO
slave, the reduced KDE dependencies (and we will continue in this
way), the better factored codes everywhere, i can said that
application is more stable in all use cases. It's not perfect, but so
far it's better than version 4.x, 3.x, etc...

The big hole still in :

- metadata sync (exiv2)
- video metadata (exiv2)
- database migration
- face management (we working on currently with deep learning project)
- export tools (kipi-plugins).

For this last point, i'm currently plan to rewrite an low level
interface in digiKam core to play with remote/cloud/network web
service. It will be in digiKam core if you understand what i want
mean...

The authentication with web service is a big nightmare. each use a
dedicated solution, sometime automatized, sometime no. All evolve, but
in different direction. It's complex and long to understand all use
cases. But i'm confident.

Voilà, a sort resume of current tasks in progress...

Gilles Caulier

2017-07-26 9:22 GMT+02:00 Anders Lund <[hidden email]>:
> I would love that! Just displaying it would be a help, it is possible to
> change it using keyboard also in preview mode :)
> Rating and flags.
>
> Kindly,
> Anders
>
> På Tue, 25 Jul 2017 17:03:41 -0600
> Andrey Goreev <[hidden email]> skrev:
>> Hello,
>>
>> I want to make an image star rating visible in image preview view and
>> wondering which file should I be modifying.
>> I am looking at *imagepreviewview.cpp* in
>> https://github.com/KDE/digikam/tree/master/app/views
>> Is this the right one? Any tip would be greatly appreciated.
>>
>> Best regards,
>> Andrey
>

Reply | Threaded
Open this post in threaded view
|

Re: Source code modification

AndriusWild
In reply to this post by Gilles Caulier-4
Gilles,

Thanks for the explanation. I will try to copy the widget from slideshow to preview and see what happens.
Bad part about changing the source code is I will have to repeat it every time after next release...

Best regards,

On Tue, Jul 25, 2017 at 10:23 PM, Gilles Caulier <[hidden email]> wrote:
Hi Andrey,

This have been a long history in bugzilla about to be able to display
or edit some properties over the canvas (editor and preview mode), as
rating, tags, or labels.

The result is a shared point to implement or not this feature, as the
possibility already exist every where : context menu, sidebar, and
keyboard shortcuts.  And of course nothing have be done as it's
delcate to take a clear decision about.

But, something as been implemented in slideshow, as only keyboard
shortcuts was available to apply main properties to images. On the
botoom corner of the image while slide show, if the right option is
turned on in setup dialog, you are able to rate, tags, or change color
labels.So, the techical solution exists in slide show widget, and can
be backported to image preview.

But take a care, it's not the most simple task to do to start coding
in digiKam and to learn the implementation.

If rate/tags/labels will become available over canvas, well all of
then must be optional in setup preview section, to be homogeneous.
this will touch more code.

Also, the preview canvas, is also used in Light table and must be also
patched to provide this feature.

Even that you are right. The preview canvas, is partially implemented
in imagepreviewview.cpp. This is the derivated class to manage the
preview with F3 key from album view. There are parent classes in
core/libs/widgets/graphicsview/. The preview view is an item loaded in
canvas and implemented with imagepreviewviewitem.cpp (it's Qt
model/view based).

Something similar is implemented with Light Table with some difference
and customizations. Mostly the main code is located in core lib
classes, and customization is located in derivated classes. The parent
classes are free of database to be usable in Showfoto as this one
don't use the database. So with your proposal, the code to change is
mandatory located in customization classes.

Now the implementation from slideshow to be able to show and edit
rate/tags/labels over the preview is located in
core/utilities/slideshow/slideosd.cpp.There are 3 magic widgets which
perform 90 of the job with the properties to show/edit : RatingWidget,
ColorLabelSelector, and PickLabelsSelector. This one are usable as
well without change as it's done with slideosd.cpp.

But the real question, is more ambitious : why not to reuse as well
the slideosd implementation as an overlay widget for preview canvas.
This will be homogenous everwhere and factorize/simplify all codes

So the questions are open...

Best

Gilles Caulier

2017-07-26 1:03 GMT+02:00 Andrey Goreev <[hidden email]>:
> Hello,
>
> I want to make an image star rating visible in image preview view and
> wondering which file should I be modifying.
> I am looking at imagepreviewview.cpp in
> https://github.com/KDE/digikam/tree/master/app/views
> Is this the right one? Any tip would be greatly appreciated.
>
> Best regards,
> Andrey

Reply | Threaded
Open this post in threaded view
|

Re: Source code modification

AndriusWild
In reply to this post by Gilles Caulier-4
Re: Export tools (web services and not only)

I would consider dropping these options at all if there are more important things to do and the resources are very limited.
It might sound crazy but all these are available via drag and drop to browser nowadays.
I do upload pictures to Flickr and Google Photos as well as attach them to emails in gmail (web) and Outlook (app on my windows machine).
I have done this using digikam plugins and I have done it this via dragging pictures from digikam to firefox.
It is nice to have export options in digiKam but the plugins usually introduce bugs, for example email export not working on many linux distros, can't create a new album in Google Photos etc. etc.
If you going to rewrite the plugins that is a lot of code to write and maintain after (flickr and google change APIs all the time)
Just an idea.



Best regards,

On Wed, Jul 26, 2017 at 1:58 AM, Gilles Caulier <[hidden email]> wrote:
Hi Anders,

All is possible (:=)))... but we must take care about direction to
take to achieve features. We must be to be sure to not duplicate code,
not duplicate functions, and not introduce regressions.

Currently, i'm review the _WHOLE_ bugzilla entries, to
branch/reroute/tag/close/check files histories. I read more than 3500
pending files, not sorted/classed/annoted and closed as fixed 350
files for 5.7.0. Since DK is ported to Qt5, with the drop of KIO
slave, the reduced KDE dependencies (and we will continue in this
way), the better factored codes everywhere, i can said that
application is more stable in all use cases. It's not perfect, but so
far it's better than version 4.x, 3.x, etc...

The big hole still in :

- metadata sync (exiv2)
- video metadata (exiv2)
- database migration
- face management (we working on currently with deep learning project)
- export tools (kipi-plugins).

For this last point, i'm currently plan to rewrite an low level
interface in digiKam core to play with remote/cloud/network web
service. It will be in digiKam core if you understand what i want
mean...

The authentication with web service is a big nightmare. each use a
dedicated solution, sometime automatized, sometime no. All evolve, but
in different direction. It's complex and long to understand all use
cases. But i'm confident.

Voilà, a sort resume of current tasks in progress...

Gilles Caulier

2017-07-26 9:22 GMT+02:00 Anders Lund <[hidden email]>:
> I would love that! Just displaying it would be a help, it is possible to
> change it using keyboard also in preview mode :)
> Rating and flags.
>
> Kindly,
> Anders
>
> På Tue, 25 Jul 2017 17:03:41 -0600
> Andrey Goreev <[hidden email]> skrev:
>> Hello,
>>
>> I want to make an image star rating visible in image preview view and
>> wondering which file should I be modifying.
>> I am looking at *imagepreviewview.cpp* in
>> https://github.com/KDE/digikam/tree/master/app/views
>> Is this the right one? Any tip would be greatly appreciated.
>>
>> Best regards,
>> Andrey
>

Reply | Threaded
Open this post in threaded view
|

Re: Source code modification

Gilles Caulier-4
2017-07-27 14:59 GMT+02:00 Andrey Goreev <[hidden email]>:

> Re: Export tools (web services and not only)
>
> I would consider dropping these options at all if there are more important
> things to do and the resources are very limited.
> It might sound crazy but all these are available via drag and drop to
> browser nowadays.
> I do upload pictures to Flickr and Google Photos as well as attach them to
> emails in gmail (web) and Outlook (app on my windows machine).
> I have done this using digikam plugins and I have done it this via dragging
> pictures from digikam to firefox.
> It is nice to have export options in digiKam but the plugins usually
> introduce bugs, for example email export not working on many linux distros,
> can't create a new album in Google Photos etc. etc.
> If you going to rewrite the plugins that is a lot of code to write and
> maintain after (flickr and google change APIs all the time)
> Just an idea.

In fact, we don't have any alternative.

We are alone to maintain this plugins. Nobody from other KDE hosts
application as Gwenview or KPhotoAlbum contribute.

So there no advantage to share the tools with the rest of the world.
We recieve the bug to fix from non digiKam host. Thanks...

So step by step this tool must be re-written, and the most important
the code factored to the max to limit the maintenance to the
essential.

The plugins will become step by step unusable due to migration to
Oauth protocol everywhere to authentificate users at login. So we must
in all case change the code.

The goal to drop plugins is also to reduce time loading and fix
runtime problems everywhere. Under MacOS and Windows, it's a pain to
include plugins and see these loaded at startup. It's not acceptable.

And finally, the main goal on long time, to drop the last 20% of KDE
dependencies is to cut the KDE plugins interface. We need a pure Qt5
application, working everywhere as expected.

Gilles Caulier

>
>
>
> Best regards,
>
> On Wed, Jul 26, 2017 at 1:58 AM, Gilles Caulier <[hidden email]>
> wrote:
>>
>> Hi Anders,
>>
>> All is possible (:=)))... but we must take care about direction to
>> take to achieve features. We must be to be sure to not duplicate code,
>> not duplicate functions, and not introduce regressions.
>>
>> Currently, i'm review the _WHOLE_ bugzilla entries, to
>> branch/reroute/tag/close/check files histories. I read more than 3500
>> pending files, not sorted/classed/annoted and closed as fixed 350
>> files for 5.7.0. Since DK is ported to Qt5, with the drop of KIO
>> slave, the reduced KDE dependencies (and we will continue in this
>> way), the better factored codes everywhere, i can said that
>> application is more stable in all use cases. It's not perfect, but so
>> far it's better than version 4.x, 3.x, etc...
>>
>> The big hole still in :
>>
>> - metadata sync (exiv2)
>> - video metadata (exiv2)
>> - database migration
>> - face management (we working on currently with deep learning project)
>> - export tools (kipi-plugins).
>>
>> For this last point, i'm currently plan to rewrite an low level
>> interface in digiKam core to play with remote/cloud/network web
>> service. It will be in digiKam core if you understand what i want
>> mean...
>>
>> The authentication with web service is a big nightmare. each use a
>> dedicated solution, sometime automatized, sometime no. All evolve, but
>> in different direction. It's complex and long to understand all use
>> cases. But i'm confident.
>>
>> Voilà, a sort resume of current tasks in progress...
>>
>> Gilles Caulier
>>
>> 2017-07-26 9:22 GMT+02:00 Anders Lund <[hidden email]>:
>> > I would love that! Just displaying it would be a help, it is possible to
>> > change it using keyboard also in preview mode :)
>> > Rating and flags.
>> >
>> > Kindly,
>> > Anders
>> >
>> > På Tue, 25 Jul 2017 17:03:41 -0600
>> > Andrey Goreev <[hidden email]> skrev:
>> >> Hello,
>> >>
>> >> I want to make an image star rating visible in image preview view and
>> >> wondering which file should I be modifying.
>> >> I am looking at *imagepreviewview.cpp* in
>> >> https://github.com/KDE/digikam/tree/master/app/views
>> >> Is this the right one? Any tip would be greatly appreciated.
>> >>
>> >> Best regards,
>> >> Andrey
>> >
>
>