From 377787ef29586d496d37de6f77f39c5ddfee983d Mon Sep 17 00:00:00 2001 From: trigg Date: Mon, 12 Oct 2020 18:40:26 +0000 Subject: [PATCH] - Put all the setings windows together --- discover_overlay/discover_overlay.py | 42 +++++------------------- discover_overlay/general_settings.py | 2 +- discover_overlay/settings.py | 2 +- discover_overlay/settings_window.py | 49 ++++++++++++++++++++++++++++ discover_overlay/text_settings.py | 2 +- discover_overlay/voice_settings.py | 2 +- 6 files changed, 62 insertions(+), 37 deletions(-) create mode 100644 discover_overlay/settings_window.py diff --git a/discover_overlay/discover_overlay.py b/discover_overlay/discover_overlay.py index 8207f1d..4558aff 100755 --- a/discover_overlay/discover_overlay.py +++ b/discover_overlay/discover_overlay.py @@ -14,12 +14,10 @@ import gi gi.require_version("Gtk", "3.0") from gi.repository import Gtk, GLib, Gio import select -from .voice_settings import VoiceSettingsWindow -from .text_settings import TextSettingsWindow +from .settings_window import MainSettingsWindow from .voice_overlay import VoiceOverlayWindow from .text_overlay import TextOverlayWindow from .discord_connector import DiscordConnector -from .general_settings import GeneralSettingsWindow import logging import pidfile import os @@ -35,7 +33,7 @@ class Discover: def __init__(self, rpc_file, args): self.create_gui() self.connection = DiscordConnector( - self.text_settings, self.voice_settings, + self.settings.text_settings, self.settings.voice_settings, self.text_overlay, self.voice_overlay) self.connection.connect() GLib.timeout_add((1000 / 60), self.connection.do_read) @@ -55,16 +53,8 @@ class Discover: pass elif "--about" in data: pass - elif "--configure-general" in data: - self.show_gsettings() - elif "--configure-voice" in data: - self.show_vsettings() - elif "--configure-text" in data: - self.show_tsettings() elif "--configure" in data: - self.show_tsettings() - self.show_vsettings() - self.show_gsettings() + self.show_settings() elif "--close" in data: sys.exit(0) @@ -80,9 +70,7 @@ class Discover: self.text_overlay = TextOverlayWindow(self) self.menu = self.make_menu() self.make_sys_tray_icon(self.menu) - self.voice_settings = VoiceSettingsWindow(self.voice_overlay) - self.text_settings = TextSettingsWindow(self.text_overlay) - self.general_settings = GeneralSettingsWindow(self.text_overlay, self.voice_overlay) + self.settings = MainSettingsWindow(self.text_overlay, self.voice_overlay) def make_sys_tray_icon(self, menu): # Create AppIndicator @@ -104,19 +92,13 @@ class Discover: def make_menu(self): # Create System Menu menu = Gtk.Menu() - vsettings_opt = Gtk.MenuItem.new_with_label("Voice Settings") - tsettings_opt = Gtk.MenuItem.new_with_label("Text Settings") - gsettings_opt = Gtk.MenuItem.new_with_label("General Settings") + settings_opt = Gtk.MenuItem.new_with_label("Settings") close_opt = Gtk.MenuItem.new_with_label("Close") - menu.append(vsettings_opt) - menu.append(tsettings_opt) - menu.append(gsettings_opt) + menu.append(settings_opt) menu.append(close_opt) - vsettings_opt.connect("activate", self.show_vsettings) - tsettings_opt.connect("activate", self.show_tsettings) - gsettings_opt.connect("activate", self.show_gsettings) + settings_opt.connect("activate", self.show_settings) close_opt.connect("activate", self.close) menu.show_all() return menu @@ -126,14 +108,8 @@ class Discover: self.menu.popup( None, None, Gtk.StatusIcon.position_menu, obj, button, time) - def show_vsettings(self, obj=None, data=None): - self.voice_settings.present() - - def show_tsettings(self, obj=None, data=None): - self.text_settings.present() - - def show_gsettings(self, obj=None, data=None): - self.general_settings.present() + def show_settings(self, obj=None, data=None): + self.settings.present() def close(self, a=None, b=None, c=None): Gtk.main_quit() diff --git a/discover_overlay/general_settings.py b/discover_overlay/general_settings.py index 01d24df..b74764c 100644 --- a/discover_overlay/general_settings.py +++ b/discover_overlay/general_settings.py @@ -11,7 +11,7 @@ import logging class GeneralSettingsWindow(SettingsWindow): def __init__(self, overlay, overlay2): - Gtk.Window.__init__(self) + Gtk.VBox.__init__(self) self.overlay = overlay self.overlay2 = overlay self.set_size_request(400, 200) diff --git a/discover_overlay/settings.py b/discover_overlay/settings.py index a839f0c..f3cd426 100644 --- a/discover_overlay/settings.py +++ b/discover_overlay/settings.py @@ -12,7 +12,7 @@ except ModuleNotFoundError: from xdg import XDG_CONFIG_HOME as xdg_config_home -class SettingsWindow(Gtk.Window): +class SettingsWindow(Gtk.VBox): def init_config(self): self.configDir = os.path.join(xdg_config_home, "discover_overlay") os.makedirs(self.configDir, exist_ok=True) diff --git a/discover_overlay/settings_window.py b/discover_overlay/settings_window.py new file mode 100644 index 0000000..c088581 --- /dev/null +++ b/discover_overlay/settings_window.py @@ -0,0 +1,49 @@ +from .voice_settings import VoiceSettingsWindow +from .text_settings import TextSettingsWindow +from .general_settings import GeneralSettingsWindow + +import gi +gi.require_version("Gtk", "3.0") +import sys +import os +from gi.repository import Gtk, Gdk +import logging + + +class MainSettingsWindow(Gtk.Window): + def __init__(self, text_overlay, voice_overlay): + Gtk.Window.__init__(self) + + self.connect("destroy", self.close_window) + self.connect("delete-event", self.close_window) + + self.text_overlay = text_overlay + self.voice_overlay = voice_overlay + + # Create + nb = Gtk.Notebook() + #nb.set_tab_pos(Gtk.POS_TOP) + + self.voice_settings = VoiceSettingsWindow(self.voice_overlay) + nb.append_page(self.voice_settings) + nb.set_tab_label_text(self.voice_settings, "Voice") + self.text_settings = TextSettingsWindow(self.text_overlay) + nb.append_page(self.text_settings) + nb.set_tab_label_text(self.text_settings, "Text") + self.core_settings = GeneralSettingsWindow(self.text_overlay,self.voice_overlay) + nb.append_page(self.core_settings) + nb.set_tab_label_text(self.core_settings, "Core") + self.add(nb) + + def close_window(self,a=None,b=None): + self.text_settings.close_window(a,b) + self.voice_settings.close_window(a,b) + self.core_settings.close_window(a,b) + self.hide() + return True + + def present(self): + self.voice_settings.present() + self.text_settings.present() + self.core_settings.present() + self.show_all() \ No newline at end of file diff --git a/discover_overlay/text_settings.py b/discover_overlay/text_settings.py index 96115d0..2e40128 100644 --- a/discover_overlay/text_settings.py +++ b/discover_overlay/text_settings.py @@ -10,7 +10,7 @@ import logging class TextSettingsWindow(SettingsWindow): def __init__(self, overlay): - Gtk.Window.__init__(self) + Gtk.VBox.__init__(self) self.overlay = overlay self.set_size_request(400, 200) self.connect("destroy", self.close_window) diff --git a/discover_overlay/voice_settings.py b/discover_overlay/voice_settings.py index 2cda7d8..aea4051 100644 --- a/discover_overlay/voice_settings.py +++ b/discover_overlay/voice_settings.py @@ -10,7 +10,7 @@ import logging class VoiceSettingsWindow(SettingsWindow): def __init__(self, overlay): - Gtk.Window.__init__(self) + Gtk.VBox.__init__(self) self.overlay = overlay self.set_size_request(400, 200) self.connect("destroy", self.close_window)