In application/gui/mounts_manager_window.py:
Code: Alles auswählen
# use spinner if possible to denote busy operation
if hasattr(gtk, 'Spinner'):
self._spinner = gtk.Spinner()
self._spinner.set_size_request(20, 20)
self._spinner.set_property('no-show-all', True)
else:
self._spinner = None
# pack interface
container.add(self._list)
self._controls.pack_start(self._spinner, False, False, 0)
self._controls.pack_end(button_unmount, False, False, 0)
self._controls.pack_end(button_mount, False, False, 0)
self._container.pack_start(container, True, True, 0)
Es wird self._spinner=None gesetzt, und einfach als widget verwendet,
was aber nach der Fehlermeldung wohl ein gar nicht erlaubter Wert ist.
Welches Paket fehlt noch, damit
hasattr(gtk, 'Spinner')
positiv wird?
Widget Spinner ist wohl aus python-gtk entfernt.
Taucht auch auf in application/widgets/title_bar.py:
Code: Alles auswählen
def set_state(self, state):
"""Set GTK control state for title bar"""
self._state = state
self._spinner = gtk.Spinner()
self._spinner.set_size_request(20, 20)
self._spinner.set_property('no-show-all', True)
else:
self._spinner = None
# pack interface
vbox.pack_start(self._title_label, True, True, 0)
vbox.pack_start(self._subtitle_label, False, False, 0)
self._hbox.pack_start(self._button_menu, False, False, 0)
self._hbox.pack_start(vbox, True, True, 3)
if self._spinner is not None:
self._hbox.pack_start(self._spinner, False, False, 5)
self._container.add(self._hbox)
Hier aber gibt es eine "None"-Behandlung.
Das ist auch an anderen Stellen so, also ist application/gui/mounts_manager_window.py da wohl buggy.
Ein bei mir funktionierender walkaround, statt:
Code: Alles auswählen
else:
self._spinner = None
# pack interface
container.add(self._list)
self._controls.pack_start(self._spinner, False, False, 0)
self._controls.pack_end(button_unmount, False, False, 0)
self._controls.pack_end(button_mount, False, False, 0)
self._container.pack_start(container, True, True, 0)
auskommentieren:
Code: Alles auswählen
else:
self._spinner = None
# pack interface
container.add(self._list)
#self._controls.pack_start(self._spinner, False, False, 0)
self._controls.pack_end(button_unmount, False, False, 0)
self._controls.pack_end(button_mount, False, False, 0)
self._container.pack_start(container, True, True, 0)
wohl etwas besser:
Code: Alles auswählen
else:
self._spinner = None
# pack interface
container.add(self._list)
if self._spinner is not None:
self._controls.pack_start(self._spinner, False, False, 0)
self._controls.pack_end(button_unmount, False, False, 0)
self._controls.pack_end(button_mount, False, False, 0)
self._container.pack_start(container, True, True, 0)
Da ich gar nix Python kann, weiß ich nicht,
ob die drei Zeilen
self._controls.pack
_start(...) und self._controls.pack
_end(...)
zusammengehören und die
self._controls.pack_end also genauso behandelt werden müssen.