This changes the code to more gracefully handle a hamster restart. Previously it would try to disable itself and then run into an error. Now it hides the panel item and shows it again when hamster is started again. The implementation is not perfect (see commit message for some rough edges), but that's ok since users normally have no need (or even a good way) to restart the hamster services, so this change mostly serves to make development easier.
In addition, I've preceded this change with two more commits that improve error handling for dbus calls. This was prompted because one of the rough edges is that you can now technically end up in a situation where the extension is shown and usable, but the windows service is not running, so clicking e.g. "Show Overview" will not work. That will now show an error to the user, which should make this an acceptable corner case. However, showing error messages when a dbus call fails seems an improvement in general too (for example, this now also shows an error for the case in #334 - though the python backtrace is so long the actual error message is cropped, at least it shows something at least - and the log shows the full error).
This changes the code to more gracefully handle a hamster restart. Previously it would try to disable itself and then run into an error. Now it hides the panel item and shows it again when hamster is started again. The implementation is not perfect (see commit message for some rough edges), but that's ok since users normally have no need (or even a good way) to restart the hamster services, so this change mostly serves to make development easier.
In addition, I've preceded this change with two more commits that improve error handling for dbus calls. This was prompted because one of the rough edges is that you can now technically end up in a situation where the extension is shown and usable, but the windows service is not running, so clicking e.g. "Show Overview" will not work. That will now show an error to the user, which should make this an acceptable corner case. However, showing error messages when a dbus call fails seems an improvement in general too (for example, this now also shows an error for the case in #334 - though the python backtrace is so long the actual error message is cropped, at least it shows something at least - and the log shows the full error).