Bug 137074 - Don't close channel tabs on non-user-induced PART
Summary: Don't close channel tabs on non-user-induced PART
Status: RESOLVED FIXED
Alias: None
Product: konversation
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Debian testing Linux
: NOR wishlist
Target Milestone: ---
Assignee: Konversation Developers
URL:
Keywords:
: 139715 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-11-09 05:48 UTC by Stephanie Daugherty
Modified: 2008-04-17 00:58 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stephanie Daugherty 2006-11-09 05:48:36 UTC
Version:            (using KDE KDE 3.5.5)
Installed from:    Debian testing/unstable Packages

When kicked from a channel, or losing connection to the server, channel tabs are closed. This potentially makes it difficult or impossible to see what happened prior to leaving the channel. While this may be expected behavior by some users, it's somewhat uninutitive and confusing, and depending on whether or not logging was active, potentially results in data loss (loss of the scrollback buffer for the channel in question).

I'd like to see a preference, defaulting to "on", to the effect of "Keep channel tabs open until explicitly closed", with the following behavior.

When activated, the channel tab is only closed under the following conditions.
- A user initiated /part command. For the purposes of this, if the part /part is generated by the server, by /quote, or by /cycle, or any other means outside the normal user interface, it's not "user-initiated". (In other words, it has to come from a context menu or by typing /part)
- A user initiated /join 0 (part all channels), (provided this isn't otherwise blocked in the client to prevent the common user error/social engineering case of /join #2,000 etc)
- The user, or an installed addin (once plugins or scripts are an option) closes the channel tab or parent server tab explicitly.

The following behaviors should also apply (possibly configurable).
- When reestablishing a server connection, the client will attempt to join all channels for which a channel tab already exists.
- The event removing the client from the channel should be shown in the channel tab if the keep channel tabs open preference is selected, or shown in the status window if the keep channel tabs open preference is not selected. (ie, kick, server part, quit, or server kill)
- When a channel tab persists after leaving the channel, for whatever reason, a visual indication should be made that the channel is no longer active, persisting until the channel tab is closed or the channel is successfully rejoined.
-When trying to rejoin a channel for which a channel tab exists, messages associated with the attempt should appear in that channels's tab (banned, invite only, channel is full, channel requires key, etc)
Comment 1 Eike Hein 2007-01-12 16:57:14 UTC
*** Bug 139715 has been marked as a duplicate of this bug. ***
Comment 2 Piotr Budny 2007-08-22 12:32:43 UTC
Yup, that is really annoying strange behaviour, and half a year without resolving...
Comment 3 Eike Hein 2008-04-04 00:30:35 UTC
I'm taking a renewed interest in this one. Renamed for clarity.

First of, the opening statement of the report is no longer true; losing connection to the server doesn't result in the views being closed. It's been that way for a while now. That creates an actual propblem, however, in that it makes the behavior inconsistent between connection loss and other reasons for a channel being PARTed by other means than a manual close, e.g. a kick. That's not good enough; it should either close every time, or stay open in both scenarios.

If we opt for the latter, the challenge becomes giving clear and hard-to-miss indication that a channel is not joined despite the view being open. 

We currently wipe a channel's nickname list on loss of connection, and the same should be done when keeping it open after a kick. Additionally, we need to make sure that an appropriate message always ends up being in that view, and at the end of the buffer. Furthermore, greying out the tab label might be nice to do, and showing a Rejoin action in the tab context menu.
Comment 4 argonel 2008-04-17 00:58:35 UTC
SVN commit 797886 by argonel:

prevent channel from closing when kicked, can rejoin with tab context menu or /join.
BUG:137074


 M  +47 -18    channel.cpp  
 M  +4 -2      channel.h  
 M  +1 -1      commit.h  
 M  +2 -0      konversationmainwindow.cpp  
 M  +14 -15    outputfilter.cpp  
 M  +1 -1      server.cpp  
 M  +44 -1     viewcontainer.cpp  
 M  +1 -0      viewcontainer.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=797886