Bug 292309

Summary: Konsole dbus sessions count is broken
Product: [Applications] konsole Reporter: Cédric Bellegarde <web>
Component: generalAssignee: Konsole Developer <konsole-devel>
Severity: normal CC: adaptee
Priority: NOR    
Version: 2.7.4   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 4.9.0

Description Cédric Bellegarde 2012-01-24 08:53:00 UTC
Version:           2.7.4 (using KDE 4.7.4) 
OS:                Linux

Sometimes, org.kde.konsole /Konsole isn't available...

Reproducible: Always

Steps to Reproduce:
Launch a konsole:
$ qdbus org.kde.konsole /Konsole org.kde.konsole.Konsole.sessionCount

Launch a second konsole (via launcher otherwise, it will create a new org-kde-konsole-number):

$ qdbus org.kde.konsole /Konsole org.kde.konsole.Konsole.sessionCount

Result wrong, there is too session in org.kde.Konsole /Sessions

Close the first konsole:
qdbus org.kde.konsole /Konsole org.kde.konsole.Konsole.sessionCount
Error: org.freedesktop.DBus.Error.UnknownObject
No such object path '/Konsole'

Object path invalid but there is on remaining session in org.kde.konsole

Actual Results:  
Session count is wrong

Expected Results:  
Good sessions count, available dbus interface
Comment 1 Jekyll Wu 2012-01-24 09:31:46 UTC
Thanks for reporting. 

This is actually a known issue. See comment #2 in bug 281513 to get a general feeling of why some dbus methods work strangely sometimes.
Comment 2 Jekyll Wu 2012-02-08 17:52:58 UTC
Git commit 07cddfe302233c3555258f077429e55ce622e262 by Jekyll Wu.
Committed on 08/02/2012 at 18:49.
Pushed by jekyllwu into branch 'master'.

Create dbus object for each Konsole window respectively

Its naming scheme is "/Windows/N", similar to "/Sessions/N" for
sessions. That is not the final decision and might change before next
major release.

The old "/Konsole" dbus object is still available at this moment, but
it might disappear or be used for something different in the future, so
it is better to use "/Windows/N" from now on.

For convenience, $KONSOLE_DBUS_WINDOW can be used to refer to the dbus
object corresponding to the Konsole window containing current session.
Note, that environment variable does not work well with detaching and
draging. Maybe it should not be added at all.
Related: bug 276912, bug 281513


M  +2    -0    src/Application.cpp
M  +5    -0    src/Session.cpp
M  +2    -0    src/Session.h
M  +11   -0    src/ViewManager.cpp
M  +5    -0    src/ViewManager.h