[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [Bug 151735] New: [PATCH] Unless renamed,
From:       Christopher Layne <clayne () anodized ! com>
Date:       2007-11-02 10:19:03
Message-ID: 20071102111901.151735.clayne () anodized ! com
[Download RAW message or body]

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=151735         
           Summary: [PATCH] Unless renamed, make userTitle fully override
                    tab/window/icon text rather than prepend the default
           Product: konsole
           Version: unspecified
          Platform: Compiled Sources
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: wishlist
          Priority: NOR
         Component: general
        AssignedTo: konsole-devel kde org
        ReportedBy: clayne anodized com


Version:            (using KDE KDE 3.5.7)
Installed from:    Compiled From Sources
Compiler:          gcc 4.2 
OS:                Linux

Earlier bug from 2001, which is indirectly related:

http://bugs.kde.org/show_bug.cgi?id=33641

Anyways, in cases where the user has specified their own userTitle via escape \
sequences, etc, the userTitle will override the default title, and not append, e.g. \
"- Shell" to said userTitle.

However, if a user specifically renames a session via the tab rename or dcop rename, \
that title will then be sticky and fully override whatever title is there (default or \
userTitle).

Rationale for this is that a userTitle should, in an intuitive fashion, overwrite the \
default title by nature. Additionally, the current behaviour of prepending it to the \
default session title just ends up taking way too much horizontal room in each tab \
title.

Example:
Current behaviour:

def: [ Shell No. 2 ]
usr: [ user host:/var/log/httpd - Shell No. 2 ]
ren: [ user host:/var/log/httpd - httpd logs ]

Patched behaviour:

def: [ Shell No. 2 ]
usr: [ user host:/var/log/httpd ]
ren: [ httpd logs ]

I think it's quite apparent which one will take up the least space when one has, for \
example, 6+ tabs in a given konsole window. Also, as a long time user of konsole on a \
day to day basis, I think it would be prudent to remove the "No. x" code present in \
konsole.cpp (the double while loop deal). For one, it adds complexity to the code, \
but more importantly there is really no advantage to knowing which session number a \
given tab is. It's arbitrary and not something that one even takes note of - hence it \
just steals valuable horizontal space in the tab bar.

Patch for previously discussed changes:

Index: kdebase/konsole/konsole/session.cpp
===================================================================
--- kdebase/konsole/konsole/session.cpp (revision 722255)
+++ kdebase/konsole/konsole/session.cpp (working copy)
 @ -246,8 +246,8  @
 QString TESession::fullTitle() const
 {
     QString res = title;
-    if ( !userTitle.isEmpty() )
-        res = userTitle + " - " + res;
+    if ( !titleSticky && !userTitle.isEmpty() )
+        res = userTitle;
     return res;
 }

 @ -334,7 +334,8  @

 void TESession::renameSession(const QString &name)
 {
-  title=name;
+  setTitleSticky(name);
+
   emit renameSession(this,name);
 }

 @ -464,6 +465,12  @
   font_no = fn;
 }

+void TESession::setTitleSticky(const QString& _title)
+{
+  title = _title;
+  titleSticky = true;
+}
+
 void TESession::setTitle(const QString& _title)
 {
   title = _title;
Index: kdebase/konsole/konsole/konsole.cpp
===================================================================
--- kdebase/konsole/konsole/konsole.cpp (revision 722255)
+++ kdebase/konsole/konsole/konsole.cpp (working copy)
 @ -3790,7 +3790,7  @

   if (!ok) return;

-  ses->setTitle(title);
+  ses->setTitleSticky(title);
   slotRenameSession(ses,title);
 }

Index: kdebase/konsole/konsole/session.h
===================================================================
--- kdebase/konsole/konsole/session.h   (revision 722255)
+++ kdebase/konsole/konsole/session.h   (working copy)
 @ -85,6 +85,7  @
   void setKeymap(const QString& _id);
   void setFontNo(int fn);
   void setTitle(const QString& _title);
+  void setTitleSticky(const QString& _title);
   void setIconName(const QString& _iconName);
   void setIconText(const QString& _iconText);
   void setAddToUtmp(bool);
 @ -186,6 +187,7  @
   bool           masterMode;
   bool           autoClose;
   bool           wantedClose;
+  bool           titleSticky;
   QTimer*        monitorTimer;

   //FIXME: using the indices here


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic