Review Request: Use D-Bus to lock sessions and move "session locked" dialog (from KDevelop's main()) to kdevplatform
Ivan Shapovalov
intelfx100 at gmail.com
Thu Jan 10 05:52:55 UTC 2013
> On Jan. 9, 2013, 10:38 p.m., Milian Wolff wrote:
> > shell/sessioncontroller.cpp, line 914
> > <http://git.reviewboard.kde.org/r/105917/diff/5/?file=87030#file87030line914>
> >
> > this is wrong, no?
> >
> > just encountered this code while refactoring it.
> >
> > - we only reach this code path if we want to lock the session
> > - if we fail to "force remove" the lock file and cannot acquire the lockfile afterwards, something bad happened
> >
> > I'll turn this into an assertion, i.e.: ensure that after attempRelock the lockfile was properly acquired
The actual wrong is in my next commit, 61fd1270da44aebb1a4fe1a1ce4a4292b99e5545... Without it, the overall status of locking (LockSessionState::operator bool()) is determined by both lock-file status (LockSessionState::lockResult) and D-Bus status (LockSessionState::success), which is exactly what is needed.
Please, take a look at my github's master (git://github.com/intelfx/kdevplatform.git), revision 339e1c0 - I attempted to fix it once again :P
And about the assertion: IMO it isn't a right thing. If this happens, it means that we're encountering a problem in external environment (file system, permissions, or a user who decided to take a look at the lock-file and opened it in vim, etc.) and not an internal logic failure. Thus no sense in crashing application (and doing nothing in Release, btw)...
What do you think?
- Ivan
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/105917/#review25102
-----------------------------------------------------------
On Sept. 25, 2012, 10:19 a.m., Ivan Shapovalov wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/105917/
> -----------------------------------------------------------
>
> (Updated Sept. 25, 2012, 10:19 a.m.)
>
>
> Review request for KDevelop.
>
>
> Description
> -------
>
> 1: Use D-Bus instead of lock-files to lock kdevplatform sessions.
>
> 2: Moved the lockfile remove dialog which currently resides in KDevelop's main() - and which is usable only when the session name is explicitly given to the application - to kdevplatform's SessionController, adjusting the dialog for "lockfile -> dbus" changes.
>
> This allows to get rid of nasty non-informative error messages about a session being already used and replace them with code that does the following things:
> 1) Attempts a DBus call to make a running instance visible;
> 2) If it didn't succeed, shows a dialog window asking permission to retry, show session chooser dialog or quit;
> 3) Repeats the entire procedure if a newly-picked session is locked too.
>
> This code is also used when one picks a session from "Sessions" menu, so a nasty error message has also been removed also from there.
>
> Related change to KDevelop is here: https://git.reviewboard.kde.org/r/105918/ .
>
>
> Diffs
> -----
>
> shell/core.cpp 206d48d
> shell/sessioncontroller.h 551894d
> shell/sessioncontroller.cpp c9fac67
>
> Diff: http://git.reviewboard.kde.org/r/105917/diff/
>
>
> Testing
> -------
>
> Existing unit-tests + manual UI testing.
>
>
> Thanks,
>
> Ivan Shapovalov
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20130110/51b1c6cb/attachment-0001.html>
More information about the KDevelop-devel
mailing list