Sort Messages in Message Inbox to be most recent on top

Bug #763567 reported by Astuur on 2011-04-17
This bug affects 1 person
Affects Status Importance Assigned to Milestone

Bug Description

I think this would be more convienient to always have the most recent message displayed on top of the list.
Currently you have to scroll down for the newest message.

Related branches

Hans Joachim Desserud (hjd) wrote :

According to , there are some plans to redesign the message window, though I'm not sure if the details are actually posted anywhere.

I'm not sure if I should comment or not, as I for the most part don't use the message window all that much. Fwiw though, my main use of it, is to go through, quickly read all messages while i Archive them pressing 'del'. For me it seems logical that the messages receiving focus after archiving the previous one is cronologically newer, though perhaps it makes overall more sense to put the newest messages at the top.

Changed in widelands:
importance: Undecided → Wishlist
tags: added: ui
Astuur (wolfsteinmetz) wrote :

The idea came to me when I tried to finally really use that feature.
So, truth is, I haven't done much with it before.
As long as you always archive the new ones and stay up to date, it is okay.
Sometimes, however I am too busy to care.
Then I find myself constantly changing the sort order (clicking the Column head).
So, I think keeping it chronologiical but simply setting the default to "most recent on top" with
the focus on the most current one would help.

SirVer (sirver) wrote :

I also think this is a good idea IF we keep the current design with the listbox. Obviously, a new message should not automatically be selected if another message is already selected.

Astuur (wolfsteinmetz) wrote :

I have meanwhile gained some more experience with using the message inbox.

Starting out from the observation that almost all messages that ever appear there
are linked to a map location, and those messages are almost worthless without
showing the location, I wonder whether the window as it is now is not a wrong approach
for the funcionality we'd want.
Instead we might wnat to always show the message together with its location.

I would favour a button (and keyboard key) that would automatically do the following things in sequence:
1) save the viewport position that I currently have,
2) warp me to the location that has generated the latest acustical signal
3) open a window showing the message text (offset,not covering the location!) and these buttons:
  archive the message, close the window staying at this location
 archive the message, close the window going back to were I was (saved position)
 archive all unread messages, close the window going back to the saved position
 restart at 2) for the next most recently unread message,(newer messages that were generated meanwhile)
 restart at 2) for the next previous unread message (older unseen messages)
 invoke a "re-visit" functionality with a configurable timer (game time) to generate a new message with a (different) acoustical signal

Astuur (wolfsteinmetz) wrote :

Bah, had not finsihed!

The last option would have been, to show the archive, as a list.

Personally, I would like all those buttons to have a keyboard key alternative to use.

Hans Joachim Desserud (hjd) wrote :

I have read through your suggestions and have a few remarks (and perhaps improvements).

My main issue with it is the two close-buttons, how do you plan to separate these? What happens when the players right-clicks the window? I think it would be a lot easier if the player remains at the same location when the window closes, which would also be consistent with every other window. While it would be nice to get back to the starting point, I think dealing with both possibilities could be hard to differentiate.

I think a feasible (and probably not too hard) solution would be to add a checkbox next to the "go to location" marked "always go to message location". (Of course it would need to be designed it a bit better than that, but that's the rough idea.) That way the players could choose if they want to warp around the map for each message, or remain where they are. Personally, the few times I read the messages I am usually taking a break from other things and want to make sure I haven't missed any empty mines or similar. So I'm probably paying some attention to the background while going through the messages. Obviously, transporting me somewhere else makes this impossible.

Though as all options, adding such a checkbox will add complexity and more things that may break. I'm not sure what the "official" policy on adding options is, though.

I would also like to see some of the suggested redesign for the message inbox, to see how these suggestions fit overall.

Astuur (wolfsteinmetz) wrote :

Yes, I dug that up since you seem to be the person who might code this kind of thing :)

>My main issue with it is the two close-buttons, how do you plan to separate these?
 I'm not sure what you mean by separate.

>What happens when the players right-clicks the window?
Close it as usual. Nothing else, I'd suggest

>I think it would be a lot easier if the player remains at the same location when the window closes, which would also be consistent with every other window.

If he closes by right-click, I agree.
But if he chooses one of the buttons he of course should invoke the corresponding action.
Otherwise it's pointless.

>While it would be nice to get back to the starting point, I think dealing with both possibilities could be hard to differentiate.

If you prefer, we could have an "exit" button with the action "archive message, go back to saved location"
and closing by right-click could then be "archive message, stay here, forget about saved location"

Or are you talking about the graphical represenatation of the action on the buttons here?
True, I have not yet though of a design that would be easily intelligible without any letters, but I guess it will be possible
using arrows and such.... I'll give it a try.

>... add a checkbox next to the "go to location" marked "always go to message location".
Sure, even more flexible - but should remember the state (checked or not) between the calls for the message window.
However, I would not want to sacrifice the "go where I was before invoking the messagebox".
This is because I use the message box in much the same way as you do, but maybe more frequently.
I usually check the messages while waiting for a building to be constructed, trees to fall, stones to be quarried and so on.
I archive all the old stuff, then want to quickly check what a new messsage means when it arrives, and immediately go back to my current point of interest.
That is my main use, actually. I rarely check older messenges at all.
Not being sent to the place the message is about, often makes the message meaningless for me, becaue I cannot know which one of my fishermen runs empty. Quickly go there, burn it, maybe setup a replacement, and then back. would be most helpful to me most of the time.

As for the "come back in x minutes", that clearly would be a new feature in WL, I am not sure what others may say.
It's strangely underpopulated here currently, but that will change and we will hear more opinions then.
Are there already other ideas for a "new message window"?

Hans Joachim Desserud (hjd) wrote :

By allowing to either go back to the stored location, or remain where the message originated, the player has two possible outcomes to using the message window. See this sketch (if Launchpad doesn't break it):

open message window -> do stuff -> close window (remain)
                                                              \-> close window (go back)

For every other window:

open window -> do stuff -> close window (remain)

For the player it should be obvious what happens when window closes. All other windows in widelands have only one possible outcome when it is closed, and that is to keep the point of view where it was. Besides the obvious challenge of creating buttons to clearly state this, I think it is a bit strange this is the only window which would allow to give different results depending on how it is closed. A user should be able to anticipate what happens in interaction with the program, and a window working in a different way than all others could work against this goal.

For quickly going back to where you were, I think the stored locations could help here (ctrl+number to store, number to recall (though I assume you already knew)). I normally store interesting areas such as HQ, ware houses and enemy borders. So even though the messages take me elsewhere I would be able to quickly recall without requiring additional features from the message window. I imagine that would be just as effective.

Oh and of course the "take me to message location"-checkbox would remember it's state. However it will probably be off by default, like statistics and building names.

>Yes, I dug that up since you seem to be the person who might code this kind of thing :)

Uhm, me? While I do know programming, I don't really know c++ (which Widelands is written in) so I'm not so sure how well that would work.

>It's strangely underpopulated here currently, but that will change and we will hear more opinions then.

I've noticed that as well. Perhaps everyone else went on a summer holiday? :)

Astuur (wolfsteinmetz) wrote :

That was more to say "you care about such details in the mechanics" :)
Well, whatever.
Programmers have their principles and there will probably be a good reason
to stick to such principles.
My approach is far away from any theories about user guidance and I naively
suggest what seems most convenient, still hoping that users can improve and
be taught new tricks.
I said I was naive, didn't I? :)
Okay, so not this way.....
Yes, I know and use the CTRL-Number mechanism.
How about saving the "position before checking the meessages" in one of these?
So that you wouldn't have to remember to press Ctrl-0 before using
the message window, but can go back any time by pressing "0" ?
Sounds like a good solution to me, no?

Venatrix (elisabeth) wrote :

Well I think that there could be a button (oh no, not another one…) for going back to the starting location. Then the player had the choice between going back before closing the window or staying where the last message has brought him. The right-click-action wouldn’t change in this way.

Hans Joachim Desserud (hjd) wrote :

Astuur> Saving the position in the Ctrl+0 slot, to be able to go back. (roughly summarized)

There's a couple of problems with this approach. First off, the game should not overwrite if the player has already stored something in 0 already. The game should not change something the user has set without the user being aware it has happened. This is why for instance autosave uses it's own slot separate from the ones the user stores. The obvious counter would be to disable that slot for the player so that only the game is able to change it. While this is possible, I don't really see the need to in effect disable one slot to have it used for this purpose.

Secondly, when a player is closing the window, how is it logical to press 0 to go back to where (s)he was? Even after the player has been informed in some way, I'm not sure how obvious this is.

Venatrix > a button for going back to the starting location

I actually like this a bit better than close and go back.

However, when thinking about it I suddenly realized something in general about the "go-back-to-where-I-started"-approach. Say I open the messages in position A, read some, scroll a bit around on the map to point B which is close to my border and observe that section for a while. I receive some messages which I read, and then I want back to B which is where I was recently. Instead I will be brought back to A instead where the window was first opened. I know I for one like to keep some windows open as I move about on the map, without really remembering where they were opened.

Counter A: "have it timebased or something, so that if you move your vision it will update to that place rather than where you opened the window". I think this would be too imprecise and would create problems by guessing which area the player meant.
Counter B: "close and reopen messages" Would work, but it is sort of a strange requirement. Plus people will still leave their windows open.
Counter C: "have yet another button to set current position to the go back point" Would work, but fills the window with buttons :p plus it duplicates the CTRL+number slots already in existance.

So that's some arguments. Please let me know if I'm getting too negative commenting here... :)

I still think this problem is better handled by features already available:
1. It is possible to delay responding to messages. If my border is under attack and a mine runs out of resources I'll handle the mine when I have the time. My border is more important and more harm will happen if I leave that unattended than the mine.
2. Getting back to an area quickly. If the area is important, and you need to go back often, use CTRL+number, click on the minimap or scroll to the area. You may not back to exactly where you want as suggested here, but you should be close enough.

Venatrix (elisabeth) wrote :

One approach could be to use the go-back-button to that place where you were first using the go-to-location-button. The problem here is, if you scroll in between two messages it could mean to go back where you really started or go back where you scrolled to…

On the other hand it is questionable if such a go-back-possibility really is needed. As I understand, you use the inbox in another way than me. ;-) I normally finish what I’m doing if it is important to me, then I read the messages and in this case it isn’t important where I am, when I’m ready with them. For really important areas I normally use the watch window, so I can go there quickly, too, without using the CTRL-hotkeys, which I don’t use, by the way, or have to scroll.

Astuur (wolfsteinmetz) wrote :

Nah, this is "striving for the best solution" ; nothing negative about it.
And I can fully comprehend your doubts.
Yes, I was thinking about reserving that CTRL-0 combo in this case for the exclusive use of the program.
I never used all of that combos - and if I did, I wouldn't remember what I had stored there.
So it isn't much of a sacrifice for most players.
But the argument is still valid of course.

I try to summarize the problem again here.
(I need it)

1) Messages are often useless when you cannot see the location it pertains to.
So it would be nice to be sent there automatically, instead of marking and pressing "G".
2) If you do that (same as with pressing "G") you currently loose the location you came from.
So, implementing a "go back from where I came" functionality, should be welcome.

For clarity, I'd want to make a distinction between "scrolling" to a location,
and "jumping" to one. In the fist case you have visual control, and can identify where you
are going, while in the second case you sort of travel blindly and wake up with the need to
identify where you really are.
It's that second case, (and only that), where I would like an automated "go back" function,
which is my chief concern here.

The situation reminds me of the surfing with a webbrowser.
You follow a link, (jump to a message location) see what it reveals and maybe do something there,
and then you either follow a link from that new site (keep the message window open, archive the current
entry, and jump to the next one),
or you go back to the most recent site (press Backspace)
(archive the current entry, close the message window, and are back at the position
where you have opened the message window.)
See the similarities?

Why do we not try a similar approach like a webbrowser
and create a "history of jumps"?

Each event that triggers a message stores its coordinates in a
buffer, in the chronological sequence that they happen.

By opening the message window and marking an entry,
you are automatically warped to the corresponding coordinates.
Once visited, the message is marked for archival and erase from the visible list
in the message window.
You can jump to the next (forward in time) message (and location) or go back to the
earlier (backward in time), while the message window is opened.
CTRL-Cursor-right and CTRL-Cursor-left might be suitable keys for that.

When you close the message window, what happens is:
Seen message entries are archieved (deleted from the visible list)
The history is erased.
you are back from where you came.

How is that?

_aD (ad-simplypeachy) on 2012-03-25
tags: added: messages
cghislai (charlyghislain) wrote :

I commited the sorting issue in the linked branch.
Please open another bug report for other improvements.

Hans Joachim Desserud (hjd) wrote :

Verified. New messages are now added to the top of the list. (r6643)

As a reminder; for anyone who want messages sorted in a different way, click the headers to resort the messages. ;)

Changed in widelands:
status: New → Fix Committed
milestone: none → build18-rc1
SirVer (sirver) wrote :

Released in build-18 rc1.

Changed in widelands:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers