Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: New UI for tagging module #17488

Open
wants to merge 21 commits into
base: master
Choose a base branch
from
Open

Conversation

zisoft
Copy link
Collaborator

@zisoft zisoft commented Sep 17, 2024

Based on the mockup of @Ni-Ti in #15172 I have started to implement a new UI for the tagging module.

For now I have replaced the top treeview for the attached tags with a GTK Flowbox containing the tag labels:

Bildschirmfoto 2024-09-17 um 09 12 56

The tag labels only contain the leave of the tags. The full hierarchy can always be shown by hovering:

Bildschirmfoto 2024-09-17 um 09 14 56

The toggle switch for displaying the internal darktable tags is removed from the UI and now a module preference:

Bildschirmfoto 2024-09-17 um 09 15 32

The styling is completely done in CSS, widget name is #tag-label. A tag label can have additional CSS classes based on the type/status of the tag. I have setup a basic CSS styling as follows:

Internal darktable tags are dimmed. They cannot be selected. CSS class darktable

Bildschirmfoto 2024-09-17 um 09 15 48

Category tags have italic font. CSS class category

Bildschirmfoto 2024-09-17 um 09 16 27

Tags marked as private get the CSS class private (no basic design from me).

If multiple images are selected and some tags are attached to only some of these images they get a dashed border. CSS class some:

Bildschirmfoto 2024-09-17 um 09 16 47

/*---------------------------------------------------------
  - Tagging module                                        -
  ---------------------------------------------------------*/
flowbox.tagging
{
  padding: 0.21em;
}

.dt_flowbox_sw
{
  background-color: @field_bg;
}

#tag-label
{
  border: 1px solid @plugin_label_color;
  border-radius: 1em;
  padding: 0 0.4em;
  margin: 0.15em;
}

#tag-label:not(.darktable):selected,
#tag-label:not(.darktable).hover
{
  background-color: @selected_bg_color;
}

#tag-label.some
{
  border-style: dashed;
}

#tag-label.darktable
{
  border-color: @grey_80;
}

#tag-label.darktable label
{
  color: @grey_80;
}

#tag-label.category label
{
  font-style: italic;
}

#tag-label.private label
{
}

This part is fully functional so far and can be tested.

This is still WIP and if this doesn't get completely torn apart in the air I would continue with the dictionary part of the tagging module.

Would like to hear what you think so far.

closes #15172

@zisoft zisoft added the wip pull request in making, tests and feedback needed label Sep 17, 2024
@TurboGit
Copy link
Member

There is one thing that annoy me, some long tags are getting ellipsis and this makes reading the tag harder. Maybe have a longer default before adding ellipsis? A tag taking the whole width of the tag display should be fine by me.

@pehar1
Copy link

pehar1 commented Sep 20, 2024

Should this UI replace the old one or should this be a new mode, selectable via preference ?

I have well over a thousand tags, all hierarchical, most with a depth of 5 to 10. I strongly prefer the current display as a list as you can see the hierarchy for all attached tags at a glance. The new design requires hovering with the mouse for each individual tag and only the hierarchy for one single tag is visible at a time. For me, this is a considerable disadvantage.

@TurboGit TurboGit added the controversial this raises concerns, don't move on the technical work before reaching a consensus label Sep 28, 2024
@da-phil
Copy link
Contributor

da-phil commented Nov 1, 2024

Should this UI replace the old one or should this be a new mode, selectable via preference ?

I have well over a thousand tags, all hierarchical, most with a depth of 5 to 10. I strongly prefer the current display as a list as you can see the hierarchy for all attached tags at a glance. The new design requires hovering with the mouse for each individual tag and only the hierarchy for one single tag is visible at a time. For me, this is a considerable disadvantage.

Same for me, although I barely use more than 2 hierarchy levels. Seeing the full tag name with all levels really helps to quickly identify tags of the same hierarchy, which can be collapsed if not relevant.
The proposed design is going to make work with those tag scenarios a lot more time consuming.

While I like the sleek design and that you can adapt it by means of CSS, I think there should be an alternative design for workflows with hierarchical heavy tagging.

@wpferguson
Copy link
Member

For now I have replaced the top treeview

I use the treeview almost exclusively

The toggle switch for displaying the internal darktable tags is removed from the UI and now a module preference:

I also use this a lot while developing....

Internal darktable tags are dimmed. They cannot be selected. CSS class darktable

I select darktable tags and manipulate them while developing and testing (mostly delete when it's not correct so that I can rerun the code and test again). However, I can also see the point where you don't want the user manipulating them without knowing what they are doing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
controversial this raises concerns, don't move on the technical work before reaching a consensus wip pull request in making, tests and feedback needed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

New UI for tagging module
5 participants