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

List:       kde-core-devel
Subject:    Re: Review Request: Upgrade TerminalInterface to V2 and add two more
From:       "Robert Knight" <robertknight () gmail ! com>
Date:       2009-03-29 13:24:02
Message-ID: 20090329132402.6883.55169 () localhost
[Download RAW message or body]



> On 2009-03-29 04:38:13, David Nolden wrote:
> > Would it be technically possible to add a signal "foregroundProcessStarted(pid, \
> > name, cmdline)", and adding a function QString foregroundProcessCmdLine()? 
> > cmdline = command line = command used for starting the process, for example "ls \
> > *.h" = cmdline, "ls" = name 
> > Another very  useful feature would be something like \
> > "processWaitsForUserInput()", together with a signal. The use-case would be that \
> > a command could be launched with the konsole window hidden, and it would only  be \
> > shown when some user-input is needed. Is this implementable?
> 
> Rahman Duran wrote:
> Nope, dude :) I digged it too much. It's simply impossible to implement such \
> features, not even hard. It can be implemented only in the underlying shell program \
> like bash, sh etc. They don't tell us whats going in them.

> The use-case would be that a command could be launched with the konsole window \
> hidden, and it would only  be shown when some user-input is needed

The Ubuntu installer will do this if a package tries to ask a question during \
installation - which is against the rules but some bad packages still do.  I have a \
feeling that this is based on a timeout though.  Check with jriddell

> Would it be technically possible to add a signal "foregroundProcessStarted(pid, \
> name, cmdline)"

Not one that is guaranteed to work reliably as far as I know.  In Konsole a crude \
heuristic is used that when the user types into a shell we check which process is \
controlling the terminal a couple of seconds later and update the tab titles \
accordingly.  We could emit a signal at that point which would probably be okay if \
you just wanted to update the UI when a program was started in the terminal but not \
good enough for all use cases.

> cmdline = command line = command used for starting the process, for example "ls \
> *.h" = cmdline, "ls" = name

We can give you the command-line for foreground process, that's just a matter of \
reading the /proc/PID/cmdline file and there is code to do that in Konsole.  However, \
the functionality of extracting information from a process really shouldn't go in \
TerminalInterface.  Once you have got the PID of the process it would be better if \
you could pass this to some kdelibs library class which provides information about a \
process with a given ID.  In Konsole there is a ProcessInfo class which has \
implementations for Linux and Solaris.


- Robert


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/444/#review680
-----------------------------------------------------------


On 2009-03-28 15:58:08, Rahman Duran wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.kde.org/r/444/
> -----------------------------------------------------------
> 
> (Updated 2009-03-28 15:58:08)
> 
> 
> Review request for kdelibs and Konsole.
> 
> 
> Summary
> -------
> 
> This is a new interface that extends the old ones functionality. 
> 
> 
> Diffs
> -----
> 
> trunk/KDE/kdelibs/interfaces/terminal/CMakeLists.txt 945618 
> trunk/KDE/kdelibs/interfaces/terminal/kde_terminal_interface_v2.h PRE-CREATION 
> 
> Diff: http://reviewboard.kde.org/r/444/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rahman
> 
> 


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

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