Bug 157015

Summary: Missing corner widgets (new shell. close tab)
Product: [Applications] konsole Reporter: András Manţia <amantia>
Component: generalAssignee: Konsole Developer <konsole-devel>
Status: RESOLVED FIXED    
Severity: wishlist CC: bitdealer, finex, gabriel_ambuehl, han.holl, robertknight, turtle
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description András Manţia 2008-01-31 10:00:35 UTC
Version:            (using Devel)
Installed from:    Compiled sources

Konsole from 4.x doesn't use anymore KTabWidget (why? I see the code is there, but disabled), and the new implementation misses many things. The context menu was already mentioned, here I mention the new shell/close tab button from the left/right. But tab reordering, tabbar positioning misses as well. :(
Comment 1 Robert Knight 2008-01-31 11:54:45 UTC
> (why? I see the code is there, but disabled)

To get rid of the frame surrounding which comes with tab widgets.  If I remember correctly, KTabBar is used though which is where the functionality you are after is or certainly should be implemented.

> here I mention the new shell/close tab button from the left/right

That is by design, for two reasons.  Firstly I wanted to keep the display uncluttered and secondly since the terminal is primarily a keyboard-orientated interface used by power-users I wished to make keyboard shortcuts the primary method for creating and closing tabs as well as performing other user interface actions.

> But tab reordering, tabbar positioning misses as well. :( 

You can change the tab order using Ctrl+Shift+<Left/Right>, this is not easily discoverable so I will try to find a better solution for that.  The tab re-ordering facility in KTabBar is not very easy to use, that needs improvement first. 

The tab bar position can be changed via Settings -> Edit Current Profile -> Tabs page.


Comment 2 Eike Hein 2008-01-31 12:41:05 UTC
> The tab bar position can be changed via Settings -> Edit Current Profile -> Tabs page. 

Which is a bit of a cludge, though. The position doesn't actually change when you switch between tabs that use different profiles with different tab bar positions (thank god), which however also means that if you actually do want to apply the position stored in the profile for your active tab, you have to reload the same profile. Granted, I doubt it's a big issue because people will hardly change the tab bar position frequently, but it's clearly unelegant. I can tell you're keen to avoid adding an additional app-global settings dialog - let's see how long you can get away with it ;).
Comment 3 András Manţia 2008-01-31 17:35:36 UTC
On Thursday 31 January 2008, Robert Knight wrote:
> > here I mention the new shell/close tab button from the left/right
>
> That is by design, for two reasons.  Firstly I wanted to keep the
> display uncluttered and secondly since the terminal is primarily a
> keyboard-orientated interface used by power-users I wished to make
> keyboard shortcuts the primary method for creating and closing tabs
> as well as performing other user interface actions.


Well:
- corner widgets can be optional (and I don't mind if they aren't shown 
by default)
- I consider myself a power user
- I use the mouse with konsole, after all I don't run the terminal 
fullscreen, but using a graphical desktop environment where the mouse is 
often used
- now to open a new tab or close one (or reorder), I have to work either 
with keyboard or navigate through menus :(
- this takes aways functionality that was there before, IIRC you said in 
a mail you want all konsole's features in KDE4 that were in KDE3.

> that.  The tab re-ordering facility in KTabBar is not very easy to
> use, that needs improvement first.


But at least it works in all applications using it, and once you 
discover, it is very nice and easy to do: grab and move.
Comment 4 András Manţia 2008-01-31 17:38:16 UTC
On Thursday 31 January 2008, Robert Knight wrote:
> The tab bar position can be changed via Settings -> Edit Current
> Profile -> Tabs page.


That is not good... You edit the position in a profile config, but it 
affects all profiles? Plus if you have a profile with tabs above and one 
with tabs below, the tabs will be on top/bottom depending on which 
profile you load last.
Comment 5 FiNeX 2008-02-01 19:12:19 UTC
Please, vote for the bug #155198 (wish) for having back the close/create buttons!
Comment 6 FiNeX 2008-02-01 19:13:21 UTC
Sorry, I've write the wrong bug number.... :-(
Comment 7 Matthew Woehlke 2008-02-08 19:29:52 UTC
Re-add 'new tab' button is bug #155439, and yes, please vote for it.

I'm of the opinion that totally removing 'configure konsole' was a bad idea... profiles are nice, but there are some things (like position of the tabs, visibility of the 'new tab'/'close tab' buttons, etc) that clearly belong to the application and not a profile.

For reference, some settings that should probably be application-wide:
- show terminal size (if not always-on)
- confirm quit when closing multiple sessions
- default profile
- tabstrip buttons visible
Comment 8 Robert Knight 2008-02-08 21:15:26 UTC
> That is not good... You edit the position in a profile config, but it
> affects all profiles?

One thing which is not made clear in the current user interface is that profiles inherit from other profiles - so supposing you have:

- One default profile
- Four profiles for various different tasks which were created from the default and only differ in their color scheme

Then any properties changed in the default profile other than the color scheme will also apply to the other profiles.  If you changed the font size of the default profile from 10 to 12 and then opened a new tab with one of the other schemes, it would have a font size of 12.


Comment 9 András Manţia 2008-02-08 21:23:40 UTC
I have no problem with that. The problem I have is that I created two 
profiles, one having the tabs at top, the other at bottom. I open the 
one having the tabs at bottom: tabs are at bottom. I click File-
>Profile2 (which has tabs at top): tabs are moved to top. I click File-
>Profile1 (which has tabs at bottom): tabs are moved to bottom. That is 

confusing, and IMO wrong.

BTW, I agree what Matthew told, some settings should really be 
application wide.
Comment 10 FiNeX 2008-02-09 00:46:40 UTC
The "double click" on the tab bar for open a new tab is ok.
I need a way to close quickly the tab with the mouse, the old "close" button was good enough. :-)
Comment 11 Robert Knight 2008-02-12 19:41:48 UTC
> I'm of the opinion that totally removing 'configure konsole' was a bad
> idea... profiles are nice, but there are some things (like position of the
> tabs, visibility of the 'new tab'/'close tab' buttons, etc) that clearly
> belong to the application and not a profile.

The problem with having both profiles and a "Configure Konsole" dialog is that there would be more than one place to look in order to find a particular setting.  At the moment everything is in the one dialog.  I'll have a think on that.

> tabs are moved to bottom. That is confusing, and IMO wrong. 

That is indeed a bug.  In the current design the tab position should behave like the 'Show Menu Bar' setting, ie. it should apply only to new windows.

> I need a way to close quickly the tab with the mouse, the old
> "close" button was good enough. :-) 

I personally would prefer a close button on the tab as in say Firefox for two reasons:

1)  It is possible to close a tab other than the active one.  This is useful when you have a few tabs left over from earlier activities and they are not needed any more.
2)  It is more explicit which tab will be closed when clicked.

In Firefox the close buttons are visible but greyed-out on inactive tabs which means that they are accessible but don't add visual clutter.

Comment 12 FiNeX 2008-02-12 20:09:43 UTC
Having the close button on the tab is a good idea: it is better than the old corner button. :-)
Comment 13 András Manţia 2008-02-12 20:16:50 UTC
Another reason to use KTabBar (KTabWidget). :) 
You can have close buttons on tabs. And it will be consistent with other 
apps.
Comment 14 Robert Knight 2008-02-12 22:38:44 UTC
> Another reason to use KTabBar (KTabWidget). :) 

Konsole already uses the KTabBar widget.  See konsole/src/ViewContainer.h:350  

I'm pretty sure that KTabBar's close button doesn't work as I want at the moment.  It would need some changes first.
Comment 15 Phil Salkie 2008-02-25 02:38:51 UTC
I dislike the resizing tabs, and miss the New and Close buttons enough to make Konsole4 a non-starter for me.  "X" boxes on the tabs would be an acceptable substitute for a Close button, but I also want a mouse-driven method to create a new session which doesn't rely on finding blank space in the tab bar.  Firefox uses right-click on any tab, first item is "New Tab" - that would be good enough if we can't just have a configuration item for "do you want the old boxes back".  
Comment 16 Stephen Kelly 2008-03-05 23:09:10 UTC
Regarding the close tab button, I think the icon on a tab can be changed to a close button on mouseover. See Akregator browser tabs on kde3 at least for that.

Regarding the new tab button, I'd like to see it returned as it kind of makes konsole4 a non-starter for me too. In kde3 I can click and hold for a session menu to select a new python interpreter or root session. The only way to do that with konsole4 is to use the File menu as far as I know.

Also, if in a regular bash session I choose Settings->Change Profile->iPython nothing happens. The session simply has '/usr/bin/ipython' in the 'Command' line. I'm not sure if this is a bug or a design limitation in the way konsole profiles are intended to be used.
Comment 17 Robert Knight 2008-03-06 17:21:55 UTC
> Also, if in a regular bash session I choose Settings->Change Profile->iPython nothing happens.

Settings -> Change Profile applies the settings of the selected profile to the current session.  This only affects settings which can be changed after the session has been started (eg. colors, key bindings, font).  The command associated with a profile only has an effect when creating a new profile from the File menu or via a keyboard shortcut.

> The only way to do that with konsole4 is to use the File menu as far as I know

The assumption when I designed the UI was that users would define keyboard shortcuts for profiles they used very frequently and use those.  You can define shortcuts for profiles via Settings -> Manage Profiles.

Comment 18 Robert Knight 2008-03-06 17:23:25 UTC
> Settings -> Change Profile 

That may be a misleading name.  Did you interpret that to mean "Change the settings for a profile"?  Perhaps "Apply Profile" would be better.
Comment 19 Robert Knight 2008-03-17 18:33:13 UTC
*** Bug 155439 has been marked as a duplicate of this bug. ***
Comment 20 Robert Knight 2008-03-23 00:44:38 UTC
BUG 137938 has been implemented.  You can now close a tab by middle-clicking it.
Comment 21 Robert Knight 2008-04-30 12:28:39 UTC
*** Bug 161447 has been marked as a duplicate of this bug. ***
Comment 22 FiNeX 2008-05-01 14:43:32 UTC
I've just tried the middle click... it works... too much. Is it possible to detect if the tab contains active processes for avoiding to stop them?
Comment 23 Robert Knight 2008-05-01 17:37:30 UTC
> Is it possible to detect if the tab contains active processes
> for avoiding to stop them? 

Yes it is possible.  There is another bug report asking about warnings when closing tabs that have running processes.  


Comment 24 FiNeX 2008-05-01 18:53:30 UTC
Thanks a lot Robert!
Comment 25 Robert Knight 2008-05-02 03:00:18 UTC
SVN commit 803112 by knight:

* Add option to show new tab button with delayed popup menu on tab bar.
  Go to Settings -> Edit Current Profile -> Tabs page and tick "Show 'New tab' button in tab bar"

  This was added for the benefit of users with existing habits from KDE 3 and is not
  shown by default.

* Add close buttons on tabs using the new style ppenz added to KTabBar
* Add confirmation when closing via middle-click/close button if a program other than a shell or
  nested shell is running in the foreground of that session.

BUG: 157015

Squashed commit of the following:

commit 54a5db9c31a5527e44d7358b30587c28bab965bc
Author: Robert Knight <robertknight@gmail.com>
Date:   Fri May 2 01:48:05 2008 +0100

    UI text correction: 'on tab bar' -> 'in tab bar'

commit ed8e70238e2cc4240f8334cd091fa2707785a908
Author: Robert Knight <robertknight@gmail.com>
Date:   Fri May 2 01:46:42 2008 +0100

    Do not show the confirm-on-close prompt if the foreground program is another shell.

commit 010370c12950a532d93c99d0983c74c47e26ad07
Author: Robert Knight <robertknight@gmail.com>
Date:   Fri May 2 01:40:05 2008 +0100

    Add a confirmation which is displayed when closing a tab via middle-click / close button if the program has an active program running in the session (other than the shell itself).

commit 49812e26e5fd8c44dd01f1a6a4c0e7271c6366fd
Author: Robert Knight <robertknight@gmail.com>
Date:   Fri May 2 01:25:29 2008 +0100

    Add confirmClose() method to ViewProperties which is can be re-implemented to prompt whether to close the session.  Make the presence of the close button in the ViewContainer dependent on a QuickCloseView feature being enabled.

commit ece191ad5ad550af47cd2ca0bc75a517119e7189
Author: Robert Knight <robertknight@gmail.com>
Date:   Fri May 2 01:09:17 2008 +0100

    Show 'close' button on tabs using the new close button style added to KTabBar by ppenz.

commit f975f04c993effdd2afef588c5f765192b6fab5a
Author: Robert Knight <robertknight@gmail.com>
Date:   Fri May 2 01:03:54 2008 +0100

    Better UI text for 'Show New Tab' option.

commit 642c5b1d07cd2288c78446efe395da050730decb
Author: Robert Knight <robertknight@gmail.com>
Date:   Thu May 1 21:04:47 2008 +0100

    Sync 'new tab' tab bar menu actions with profile list.

commit c6c556980e43afcb1bb5fdfaaa9dd7e12e524688
Author: Robert Knight <robertknight@gmail.com>
Date:   Wed Apr 30 23:01:34 2008 +0100

    Hook up actions in new tab popup menu so a new tab is created with the right profile when an action is chosen.

commit dece8a23ff101dda47d495ba38e57e55059c4e63
Author: Robert Knight <robertknight@gmail.com>
Date:   Wed Apr 30 22:51:28 2008 +0100

    Apply ShowNewTabButton profile property to current view container.

commit e244a95512dc535198fa69c3afe34b597402de15
Author: Robert Knight <robertknight@gmail.com>
Date:   Wed Apr 30 22:50:57 2008 +0100

    Add support for enabling/disabling a 'quick new view' widget in view containers.  Add an implementation of it (quick new tab button) in TabbedViewContainerV2

commit 9fdc2e450aefb9b602f8fb6b66d3508e6750531b
Author: Robert Knight <robertknight@gmail.com>
Date:   Wed Apr 30 22:50:22 2008 +0100

    Hook up 'Show new tab button' UI option.

commit 7326e6dccbc095f0f784fd6f4da532f250ca5437
Author: Robert Knight <robertknight@gmail.com>
Date:   Wed Apr 30 22:50:04 2008 +0100

    Add ShowNewTabButton profile property and set a default for it (false)

commit 273f85f0d21d8b755712c67c50a939400f15a169
Author: Robert Knight <robertknight@gmail.com>
Date:   Wed Apr 30 21:22:09 2008 +0100

    Add checkbox for toggling new tab menu button.

commit 200744ce620cd6bd9a9d1791e62863c618921788
Author: Robert Knight <robertknight@gmail.com>
Date:   Wed Apr 30 21:21:33 2008 +0100

    Formatting. Remove extra lines.


 M  +5 -0      EditProfileDialog.cpp  
 M  +1 -0      EditProfileDialog.h  
 M  +18 -6     EditProfileDialog.ui  
 M  +4 -1      MainWindow.cpp  
 M  +3 -1      Profile.cpp  
 M  +4 -1      Profile.h  
 M  +21 -2     ProfileList.cpp  
 M  +4 -0      ProfileList.h  
 M  +30 -0     SessionController.cpp  
 M  +1 -0      SessionController.h  
 M  +51 -9     ViewContainer.cpp  
 M  +40 -16    ViewContainer.h  
 M  +28 -0     ViewManager.cpp  
 M  +8 -8      ViewManager.h  
 M  +20 -11    ViewProperties.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=803112
Comment 26 FiNeX 2008-05-02 11:17:33 UTC
Great commit. There is only a small thing left about the warning message while closing tab with running processes: it could be used even when the application is closed. 
Actually the check is done only when the tab is manually closed but if you have only a tab (with an active process) and you close konsole with the "X" button, or with the "exit" action, konsole is closed without asking.
Comment 27 Eike Hein 2008-05-02 11:27:07 UTC
Wonderful, finally. Thanks.
Comment 28 Caleb Cushing 2008-05-17 10:02:40 UTC
Go to Settings -> Edit Current Profile -> Tabs page and tick "Show 'New tab' button in tab bar" 

I don't see this in kde 4.04 is it supposed to be there? if yes it isn't.
Comment 29 Robert Knight 2008-05-17 10:32:50 UTC
> I don't see this in kde 4.04 is it supposed to be there? if yes it isn't. 

No, it is only in KDE 4.1.
Comment 30 FiNeX 2008-05-17 11:30:42 UTC
@Robert: about the comment #26, what do you think?
Comment 31 Robert Knight 2008-05-17 13:57:20 UTC
Sure but I think it needs an additional setting to avoid prompting when certain programs are closed.
Comment 32 Matthew Woehlke 2008-05-21 22:25:11 UTC
Small glitch here, seems the setting isn't being loaded; every time I start konsole, I have to go to 'edit profile', and uncheck and recheck the option before the new button shows up
Comment 33 Robert Knight 2008-05-22 00:20:24 UTC
SVN commit 810949 by knight:


Fix "Show 'New Tab' and 'Close Tab' buttons on tab bar" setting not being 
applied correctly on startup.

Test for the tab bar being explicitly hidden with isHidden() rather than just
isVisible() which will return true if the setting is applied before the 
container widget is shown.

BUG: 162420
CCBUG: 157015



 M  +3 -27     ViewContainer.cpp  
 M  +1 -1      ViewManager.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=810949
Comment 34 Matthew Woehlke 2008-05-29 00:11:07 UTC
*** Bug 162651 has been marked as a duplicate of this bug. ***
Comment 35 FiNeX 2008-11-04 12:23:44 UTC
@Robert: About comment #26 and your answer on #31: do you need a new bug report as reminder?
Comment 36 Robert Knight 2008-11-04 19:55:35 UTC
Hi Finex,

That has been implemented in trunk.  There was a bug report for it although I cannot remember which one right now.
Comment 37 FiNeX 2008-11-04 20:20:01 UTC
Ok, thanks Robert :-)
Comment 38 FiNeX 2009-08-01 19:39:14 UTC
*** Bug 202208 has been marked as a duplicate of this bug. ***