Alternate Backlog Retrieval System - Timelines
The current system that the Quassel client uses to perform backlog retrieval has a problem in that you must continuously scroll up more and more in order to go back further in the logs, which will also increase memory usage since none of the text is ever cleared from memory.
Instead, I propose an entirely different system. Under normal circumstances, it will act just like any other IRC client in that it will only keep X amount of lines within the chat window, discarding lines from memory as they reach this limit. To access the backlog, the user will click a button that brings up a slider with which the user can select a date (and perhaps time), possibly with the option to also type in the date more precisely, and the client will discard all chat window lines and then download and display the chat text for the requested time period. The scroll bar will then be able to request more lines as per the current behavior, except it will also dynamically discard data to avoid high memory usage. When the user wants to leave this backlog mode, they click a button labeled "LIVE", much like the DVR systems available for television, or simply drag the slider all the way to the current date.
I see this as a safer, more user-friendly way to approach Quassel's novelty, where every chat buffer is essentially a giant log. And if we're going by this approach, we might as well make it easier to look through, right?