Record Modification Status

Involved development of the OpenMW construction set.
User avatar
Zini
Posts: 5134
Joined: 06 Aug 2011, 15:16

Record Modification Status

Post by Zini » 27 Nov 2012, 10:22

The original CS is using a dual record modal (all but the edited plugin's records folded into one storage and the edited plugin's record as a second storage). That is what we have to do too. In total we have 4 states:

- Record exists in base only. It has not yet been modified in the edited plugin.
- Record exists in base and has been modified in the edited plugin. This is indicated by a "*" in the original CS in the ID column.
- Record did not exist in the base and has been added in the edited plugin. This is also indicated by a "*" in the original CS.
- Record did exist in the base but has been deleted in the edited plugin. This is indicated by "DELETED" in the original CS.

These information can be important to a mod developer, so we should display them more clearly. For this we have two options:

1. Add a column with an icon displaying the modification state.
2. Colour the table row background according to the modification state (not sure how to do that in Qt yet, but I am pretty certain that it is possible).

Option 1 is taking more space and we would need someone to design and draw us 4 icons.
Option 2 is more compact and more clearly visible. But it might not look so good and it would be hard to choose the colouring in a way that does not stop people with certain types of colour-blindnessses from reading the modification state.

Or we could do both (configurable from the user settings). A bit more work and we would still need those icons.

Opinions?

User avatar
Greendogo
Posts: 1292
Joined: 26 Aug 2011, 02:04

Re: Record Modification Status

Post by Greendogo » 27 Nov 2012, 11:33

Use different text colors to indicate the modification state.
Black = Record exists in base only. It has not yet been modified in the edited plugin.
Blue = Record exists in base and has been modified in the edited plugin.
Green = Record did not exist in the base and has been added in the edited plugin.
Red = Record did exist in the base but has been deleted in the edited plugin.

Just change the text color in the ID column. What do you think?

Also, changing colors is always something you can configure yourself.
Last edited by Greendogo on 27 Nov 2012, 11:41, edited 2 times in total.

User avatar
Zini
Posts: 5134
Joined: 06 Aug 2011, 15:16

Re: Record Modification Status

Post by Zini » 27 Nov 2012, 11:38

To be honest, sounds kinda ugly. If the text colour is used, I would at least use it in the entire row.

And we would have to do some work on the colour scheme. The colours you proposed probably wouldn't work nicely with the selection colours on most platforms (getting that right will be unpleasant).

User avatar
Greendogo
Posts: 1292
Joined: 26 Aug 2011, 02:04

Re: Record Modification Status

Post by Greendogo » 27 Nov 2012, 11:43

Sorry, I appended this to the end of my first post after you must have read it already, since you didn't see it, I'll just put it here instead:

"Edit: OK, never mind, I'm fairly certain both of your suggestions are better after some thought.

As long as your text highlighting (changing the color behind the text) isn't too bold or dark, and is only a tint, then I bet it would look really good.

As for Icons, you could have a red X or a red circle with a line through it if something was deleted, an exclamation point if something was changed or added and nothing for default."

User avatar
Zini
Posts: 5134
Joined: 06 Aug 2011, 15:16

Re: Record Modification Status

Post by Zini » 27 Nov 2012, 11:59

As long as your text highlighting (changing the color behind the text) isn't too bold or dark, and is only a tint, then I bet it would look really good.
I was considering relative light colours changes anyway. However we need to have at least a small difference in contrast to not lock out visually impaired people from this information (if we go for colour only and do not provide icons). In particular using the colours red and green to (elusively) indicate status is a big no-no. Red-green-blindness is surprisingly common (I read some statistics speaking about approximately 5-10% of the population).
As for Icons, you could have a red X or a red circle with a line through it if something was deleted, an exclamation point if something was changed or added and nothing for default."
That sounds like I good idea, though I definitely would want to have separate icons for "changed" and "added". The way the original CS folds these into a single "*" is annoying.

User avatar
Greendogo
Posts: 1292
Joined: 26 Aug 2011, 02:04

Re: Record Modification Status

Post by Greendogo » 27 Nov 2012, 12:10

We have a visual artist floating around the forums now, Craziwolf. We might ask him for some concept icons.

User avatar
Zini
Posts: 5134
Joined: 06 Aug 2011, 15:16

Re: Record Modification Status

Post by Zini » 27 Nov 2012, 12:45

Yeah, I was just thinking about that. Its a bit early to worry about icons, but if we have someone around who can do them, it wouldn't hurt to get them ready in advance. I'll make a separate posting in a bit.

User avatar
pvdk
Posts: 517
Joined: 12 Aug 2011, 16:34

Re: Record Modification Status

Post by pvdk » 28 Nov 2012, 16:25

You can accomplish that in several ways. One is to use different data models for the various states of the records, then combine them using a proxy model to show them in views.

On the visual aspect:
You should use a QItemDelegate/QStyledItemDelegate to get a different row color or icon, depending on the data in the model (i.e. a flag that holds the state). The data model should never have to worry about how things should look, so don't implement it there. While returning a color for Qt::BackgroundColorRole in flags might sound a good idea, it's the view and ultimately the item delegate that should figure out how to display the data. Using a delegate means it's quite easy to change the way it looks later on if you're not satisfied, without having to touch the underlying data model(s). You can also have different delegates for different views, with the same data model(s).

EDIT: My thoughts on what icons/symbols to use if we go for that: a star for modified items, a plus for added items and a minus for removed items. Also, the text in the view for items that are modified/removed should be bold in my opinion.

User avatar
Zini
Posts: 5134
Joined: 06 Aug 2011, 15:16

Re: Record Modification Status

Post by Zini » 28 Nov 2012, 21:52

You should use a QItemDelegate/QStyledItemDelegate to get a different row color or icon, depending on the data in the model (i.e. a flag that holds the state). The data model should never have to worry about how things should look, so don't implement it there. While returning a color for Qt::BackgroundColorRole in flags might sound a good idea, it's the view and ultimately the item delegate that should figure out how to display the data. Using a delegate means it's quite easy to change the way it looks later on if you're not satisfied, without having to touch the underlying data model(s). You can also have different delegates for different views, with the same data model(s).
I figured that out by now, mostly. But thanks anyway.
My thoughts on what icons/symbols to use if we go for that: a star for modified items, a plus for added items and a minus for removed items.
Sounds reasonable. But let's see what our new artist can come up with.
Also, the text in the view for items that are modified/removed should be bold in my opinion.
Not so sure about this one. Can't really put a finger on it, why that might not work for me. But from my experience status information displayed as bold style have always been confusing to me. If at all, then it should be modified/removed/added.

User avatar
Greendogo
Posts: 1292
Joined: 26 Aug 2011, 02:04

Re: Record Modification Status

Post by Greendogo » 28 Nov 2012, 23:16

@pvdk: I like the plus and minus ideas for the added and deleted items. Still prefer the exclamation point vs the star :D But I guess I'd still like to see both.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest