fixed "disconnected" signals

This commit is contained in:
Martin Wagner 2022-09-19 23:18:32 +02:00
parent 1307566b35
commit 5e34ea7658
1 changed files with 11 additions and 10 deletions

View File

@ -689,7 +689,7 @@ class Client(MPDClient):
yield obj yield obj
_parse_objects_direct = _parse_objects _parse_objects_direct = _parse_objects
# overloads # overloads to use Song class
def currentsong(self, *args): def currentsong(self, *args):
return Song(super().currentsong(*args)) return Song(super().currentsong(*args))
def search(self, *args): def search(self, *args):
@ -719,7 +719,6 @@ class Client(MPDClient):
if profile.get_string("password"): if profile.get_string("password"):
self.password(profile.get_string("password")) self.password(profile.get_string("password"))
except: except:
self.emitter.emit("disconnected")
self.emitter.emit("connection_error") self.emitter.emit("connection_error")
return False return False
# connect successful # connect successful
@ -735,7 +734,6 @@ class Client(MPDClient):
return True return True
else: else:
self.disconnect() self.disconnect()
self.emitter.emit("disconnected")
self.emitter.emit("connection_error") self.emitter.emit("connection_error")
print("No read permission, check your mpd config.") print("No read permission, check your mpd config.")
return False return False
@ -744,10 +742,14 @@ class Client(MPDClient):
if self._main_timeout_id is not None: if self._main_timeout_id is not None:
GLib.source_remove(self._main_timeout_id) GLib.source_remove(self._main_timeout_id)
self._main_timeout_id=None self._main_timeout_id=None
self._last_status={}
self.disconnect() self.disconnect()
self.start() self.start()
def disconnect(self):
super().disconnect()
self._last_status={}
self.emitter.emit("disconnected")
def connected(self): def connected(self):
try: try:
self.ping() self.ping()
@ -968,8 +970,6 @@ class Client(MPDClient):
self._last_status=status self._last_status=status
except (ConnectionError, ConnectionResetError) as e: except (ConnectionError, ConnectionResetError) as e:
self.disconnect() self.disconnect()
self._last_status={}
self.emitter.emit("disconnected")
self.emitter.emit("connection_error") self.emitter.emit("connection_error")
self._main_timeout_id=None self._main_timeout_id=None
self.lib_path=None self.lib_path=None
@ -3637,6 +3637,7 @@ class MainWindow(Gtk.ApplicationWindow):
overlay.add_overlay(connection_notify) overlay.add_overlay(connection_notify)
self.add(overlay) self.add(overlay)
def open(self):
# bring player in consistent state # bring player in consistent state
self._client.emitter.emit("disconnected") self._client.emitter.emit("disconnected")
# indicate connection process in window title # indicate connection process in window title
@ -3646,10 +3647,10 @@ class MainWindow(Gtk.ApplicationWindow):
self.set_title("mpdevil "+_("connecting…")) self.set_title("mpdevil "+_("connecting…"))
# set default window size # set default window size
if self._settings.get_boolean("mini-player"): if self._settings.get_boolean("mini-player"):
self.set_default_size(settings.get_int("mini-player-width"), settings.get_int("mini-player-height")) self.set_default_size(self._settings.get_int("mini-player-width"), self._settings.get_int("mini-player-height"))
else: else:
self.set_default_size(settings.get_int("width"), settings.get_int("height")) self.set_default_size(self._settings.get_int("width"), self._settings.get_int("height"))
if settings.get_boolean("maximize"): if self._settings.get_boolean("maximize"):
self.maximize() # request maximize self.maximize() # request maximize
# show window # show window
self.show_all() self.show_all()
@ -3657,7 +3658,6 @@ class MainWindow(Gtk.ApplicationWindow):
Gtk.main_iteration_do(True) Gtk.main_iteration_do(True)
if not self._settings.get_boolean("mini-player"): if not self._settings.get_boolean("mini-player"):
self._bind_paned_settings() # restore paned settings when window is visible (fixes a bug when window is maximized) self._bind_paned_settings() # restore paned settings when window is visible (fixes a bug when window is maximized)
# start client # start client
def callback(*args): def callback(*args):
self._client.start() # connect client self._client.start() # connect client
@ -3831,6 +3831,7 @@ class mpdevil(Gtk.Application):
self._window=MainWindow(self._client, self._settings, application=self) self._window=MainWindow(self._client, self._settings, application=self)
self._window.connect("delete-event", self._on_quit) self._window.connect("delete-event", self._on_quit)
self._window.insert_action_group("mpd", MPDActionGroup(self._client)) self._window.insert_action_group("mpd", MPDActionGroup(self._client))
self._window.open()
# MPRIS # MPRIS
if self._settings.get_boolean("mpris"): if self._settings.get_boolean("mpris"):
dbus_service=MPRISInterface(self, self._window, self._client, self._settings) dbus_service=MPRISInterface(self, self._window, self._client, self._settings)