Move conversation management from gtkconv.c to PidginConversationWindow.

Review Request #1108 — Created Oct. 28, 2021 and submitted

Information

pidgin/pidgin
default

Reviewers

This replaces the conversation window's notebook with a treeview and is the
first steps in keeping conversations alive even when they're closed in the
Pidgin ui.

Opened an im, closed the window, opened the same im again. Opened multiple ims and a chat, verified all functioned as expected.

Summary ID
Move conversation management from gtkconv.c to PidginConversationWindow.
This replaces the conversation window's notebook with a treeview and is the first steps in keeping conversations alive even when they're closed in the Pidgin ui.
bea831d8f9f7a4200fc96af25b7b91d6f34317f4
Description From Last Updated

instead?

QuLogicQuLogic

Does pidgin_conversation_window_foreach_destroy effectively empty the tree model? Dispose may be called multiple times, so we should be certain we're safe …

QuLogicQuLogic

Comparing to e.g., GtkStack, there is a visible-child property, and you can use a notify signal for this. Do we …

QuLogicQuLogic

Double semicolon.

QuLogicQuLogic

Surely we don't need to name it purplewin (considering it's a PidginConversationWindow) now that all the lines with it have …

QuLogicQuLogic
grim
grim
grim
grim
QuLogic
  1. Admittedly, I didn't check much of the .ui file, but that's not so important anyway if it'll be redesigned later.

  2. pidgin/pidginconversationwindow.h (Diff revision 4)
     
     
    Show all issues

    instead?

  3. pidgin/pidginconversationwindow.c (Diff revision 4)
     
     
    Show all issues

    Does pidgin_conversation_window_foreach_destroy effectively empty the tree model? Dispose may be called multiple times, so we should be certain we're safe to calling this again.

    1. Looks like we weren't emptying the list, but I'm updating it to remove the items now. That said, do you have any thoughts on how to test it being called multiple times? If you do it manually gtk complains and I'm not sure it actually calls it.

    2. I mean, that has to do with GObject cleanup, so I don't know if we can trigger it twice.

  4. pidgin/pidginconversationwindow.c (Diff revision 4)
     
     
    Show all issues

    Comparing to e.g., GtkStack, there is a visible-child property, and you can use a notify signal for this. Do we want to do something like that?

    1. I could really go whichever way on this, but changing this right now means we need to update the notification plugin and a quick search of the plugin pack shows 3 plugins that want this signal too. I'm all for making it better/easier, just not sure right now is the right time for that?

    2. Do they not already need to be changed anyway? I guess if not broken, then we could keep this as is.

    3. well they're using the conversation-switched signal, which could be changed, but they should be working as is right now.

    4. OK, let's leave it for now then.

  5. pidgin/pidginconversationwindow.c (Diff revision 4)
     
     
    Show all issues

    Double semicolon.

  6. pidgin/plugins/unity.c (Diff revision 4)
     
     
    Show all issues

    Surely we don't need to name it purplewin (considering it's a PidginConversationWindow) now that all the lines with it have changed?

  7. 
      
grim
QuLogic
  1. Ship It!
  2. 
      
grim
Review request changed
Status:
Completed