parent
a4535ba807
commit
3e766aff66
3 changed files with 43 additions and 4 deletions
|
|
@ -160,8 +160,12 @@ class DiscordConnector:
|
|||
user["speaking"] = olduser["speaking"]
|
||||
if "nick" not in user and "nick" in olduser:
|
||||
user["nick"] = olduser["nick"]
|
||||
if "lastspoken" not in user and "lastspoken" in olduser:
|
||||
user["lastspoken"] = olduser["lastspoken"]
|
||||
if olduser["avatar"] != user["avatar"]:
|
||||
self.voice_overlay.delete_avatar(user["id"])
|
||||
if "lastspoken" not in user: # Still nothing?
|
||||
user["lastspoken"] = 0 # EEEEPOOCH EEEEEPOCH! BELIEVE MEEEE
|
||||
self.userlist[user["id"]] = user
|
||||
|
||||
def on_message(self, message):
|
||||
|
|
@ -205,6 +209,8 @@ class DiscordConnector:
|
|||
# It's only possible to get alerts for the room you're in
|
||||
self.set_channel(j["data"]["channel_id"])
|
||||
self.userlist[j["data"]["user_id"]]["speaking"] = True
|
||||
self.userlist[j["data"]["user_id"]]["lastspoken"] = time.time()
|
||||
self.list_altered = True
|
||||
self.set_in_room(j["data"]["user_id"], True)
|
||||
elif j["evt"] == "SPEAKING_STOP":
|
||||
self.list_altered = True
|
||||
|
|
|
|||
|
|
@ -88,7 +88,10 @@ class VoiceOverlayWindow(OverlayWindow):
|
|||
|
||||
def set_highlight_self(self, highlight_self):
|
||||
self.highlight_self = highlight_self
|
||||
|
||||
|
||||
def set_order(self, i):
|
||||
self.order = i
|
||||
|
||||
def set_icon_only(self, i):
|
||||
self.icon_only = i
|
||||
self.redraw()
|
||||
|
|
@ -121,7 +124,12 @@ class VoiceOverlayWindow(OverlayWindow):
|
|||
user["friendlyname"] = user["nick"]
|
||||
else:
|
||||
user["friendlyname"] = user["username"]
|
||||
self.userlist.sort(key=lambda x: x["friendlyname"])
|
||||
if self.order == 1: # ID Sort
|
||||
self.userlist.sort(key=lambda x: x["id"])
|
||||
elif self.order == 2: # Spoken sort
|
||||
self.userlist.sort(key=lambda x: x["lastspoken"], reverse=True)
|
||||
else: # Name sort
|
||||
self.userlist.sort(key=lambda x: x["friendlyname"])
|
||||
screen = self.get_screen()
|
||||
c = screen.is_composited()
|
||||
if not self.compositing == c:
|
||||
|
|
@ -230,13 +238,14 @@ class VoiceOverlayWindow(OverlayWindow):
|
|||
mute = False
|
||||
deaf = False
|
||||
alpha = 1.0
|
||||
if "speaking" in user and user["speaking"]:
|
||||
c = self.talk_col
|
||||
|
||||
if "mute" in user and user["mute"]:
|
||||
mute = True
|
||||
if "deaf" in user and user["deaf"]:
|
||||
deaf = True
|
||||
alpha = 0.5
|
||||
if "speaking" in user and user["speaking"] and not deaf and not mute:
|
||||
c = self.talk_col
|
||||
pix = None
|
||||
if user["id"] in self.avatars:
|
||||
pix = self.avatars[user["id"]]
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
self.floating_y = config.getint("main", "floating_y", fallback=0)
|
||||
self.floating_w = config.getint("main", "floating_w", fallback=400)
|
||||
self.floating_h = config.getint("main", "floating_h", fallback=400)
|
||||
self.order = config.getint("main", "order", fallback=0)
|
||||
|
||||
# Pass all of our config over to the overlay
|
||||
self.overlay.set_align_x(self.align_x)
|
||||
|
|
@ -86,6 +87,7 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
self.overlay.set_monitor(self.get_monitor_index(self.monitor))
|
||||
self.overlay.set_vert_edge_padding(self.vert_edge_padding)
|
||||
self.overlay.set_horz_edge_padding(self.horz_edge_padding)
|
||||
self.overlay.set_order(self.order)
|
||||
|
||||
self.overlay.set_floating(
|
||||
self.floating, self.floating_x, self.floating_y, self.floating_w, self.floating_h)
|
||||
|
|
@ -128,6 +130,7 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
config.set("main", "floating_y", "%s" % (self.floating_y))
|
||||
config.set("main", "floating_w", "%s" % (self.floating_w))
|
||||
config.set("main", "floating_h", "%s" % (self.floating_h))
|
||||
config.set("main", "order", "%s" % (self.order))
|
||||
|
||||
with open(self.configFile, 'w') as file:
|
||||
config.write(file)
|
||||
|
|
@ -281,6 +284,19 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
icon_only.set_active(self.icon_only)
|
||||
icon_only.connect("toggled", self.change_icon_only)
|
||||
|
||||
# Order avatars
|
||||
order_label = Gtk.Label.new("Order Avatars By")
|
||||
order_store = Gtk.ListStore(str)
|
||||
order_store.append(["Alphabetically"])
|
||||
order_store.append(["ID"])
|
||||
order_store.append(["Last Spoken"])
|
||||
order = Gtk.ComboBox.new_with_model(order_store)
|
||||
order.set_active(self.order)
|
||||
order.connect("changed", self.change_order)
|
||||
rt = Gtk.CellRendererText()
|
||||
order.pack_start(rt, True)
|
||||
order.add_attribute(rt, "text", 0)
|
||||
|
||||
box.attach(font_label, 0, 0, 1, 1)
|
||||
box.attach(font, 1, 0, 1, 1)
|
||||
box.attach(bg_col_label, 0, 1, 1, 1)
|
||||
|
|
@ -315,6 +331,8 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
box.attach(highlight_self, 1, 17, 1, 1)
|
||||
box.attach(icon_only_label, 0, 18, 1, 1)
|
||||
box.attach(icon_only, 1, 18, 1, 1)
|
||||
box.attach(order_label, 0, 19, 1, 1)
|
||||
box.attach(order, 1, 19, 1, 1)
|
||||
|
||||
self.add(box)
|
||||
|
||||
|
|
@ -485,3 +503,9 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
|
||||
self.icon_only = button.get_active()
|
||||
self.save_config()
|
||||
|
||||
def change_order(self, button):
|
||||
self.overlay.set_order(button.get_active())
|
||||
|
||||
self.order = button.get_active()
|
||||
self.save_config()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue