comparison ui/main_window.py @ 1:b6d0a1e6ba3a

Linter cleanup
author Brad Greco <brad@bgreco.net>
date Tue, 02 Feb 2021 19:46:01 -0500
parents 11a9d346aa7a
children 091a1f59a79c
comparison
equal deleted inserted replaced
0:11a9d346aa7a 1:b6d0a1e6ba3a
1 import gi 1 import gi
2 import os 2 import os
3 gi.require_version("Gtk", "3.0")
4 from gi.repository import Gtk 3 from gi.repository import Gtk
5 from keyboard_colors.color_profile import ProfileManager 4 from keyboard_colors.color_profile import ProfileManager
5 gi.require_version("Gtk", "3.0")
6 # from ui.keyboard_section import KeyboardSection 6 # from ui.keyboard_section import KeyboardSection
7
7 8
8 class MainWindow: 9 class MainWindow:
9 10
10 def init(self): 11 def init(self):
11 self.profile_manager = ProfileManager() 12 self.profile_manager = ProfileManager()
12 13
13 self.builder = Gtk.Builder() 14 self.builder = Gtk.Builder()
14 dirname = os.path.dirname(os.path.realpath(__file__)) 15 dirname = os.path.dirname(os.path.realpath(__file__))
15 self.builder.add_from_file(os.path.join(dirname, 'MainWindow.glade')) 16 self.builder.add_from_file(os.path.join(dirname, 'MainWindow.glade'))
16 self.builder.connect_signals(self) 17 self.builder.connect_signals(self)
17 window = self.builder.get_object('main_window') 18 window = self.builder.get_object('main_window')
18 19
19 color_profile_list_store = self.builder.get_object('color_profile_list_store') 20 color_profile_list_store = self.builder.get_object('color_profile_list_store')
20 # color_profile_list_store.append(["1", "test"]) 21 # color_profile_list_store.append(["1", "test"])
21 22
22 keyboard_section = self.builder.get_object('keyboard_section') 23 keyboard_section = self.builder.get_object('keyboard_section')
23 keyboard_section.pack_start(KeyboardSection(color_profile_list_store), False, False, 0) 24 keyboard_section.pack_start(KeyboardSection(color_profile_list_store), False, False, 0)
24 keyboard_section.pack_start(KeyboardSection(color_profile_list_store), False, False, 0) 25 keyboard_section.pack_start(KeyboardSection(color_profile_list_store), False, False, 0)
25 keyboard_section.pack_start(KeyboardSection(color_profile_list_store), False, False, 0) 26 keyboard_section.pack_start(KeyboardSection(color_profile_list_store), False, False, 0)
26 27
27 # for profile_id, profile_type in self.profile_manager.get_types().items(): 28 # for profile_id, profile_type in self.profile_manager.get_types().items():
28 29
29 menu = Gtk.Menu() 30 menu = Gtk.Menu()
30 menu.set_halign(Gtk.Align.CENTER) 31 menu.set_halign(Gtk.Align.CENTER)
31 for profile_type in self.profile_manager.get_types(): 32 for profile_type in self.profile_manager.get_types():
32 item = Gtk.MenuItem.new_with_label(profile_type.type_name) 33 item = Gtk.MenuItem.new_with_label(profile_type.type_name)
33 item.connect('activate', self.create_profile, profile_type) 34 item.connect('activate', self.create_profile, profile_type)
34 item.show() 35 item.show()
35 menu.append(item) 36 menu.append(item)
36 add_button = Gtk.MenuButton() 37 add_button = Gtk.MenuButton()
37 add_button.set_popup(menu) 38 add_button.set_popup(menu)
38 add_profile_button_contents = self.builder.get_object('add_profile_button_contents') 39 add_profile_button_contents = self.builder.get_object('add_profile_button_contents')
39 add_button.add(add_profile_button_contents) 40 add_button.add(add_profile_button_contents)
40 41
41 profile_pane = self.builder.get_object('profile_pane') 42 profile_pane = self.builder.get_object('profile_pane')
42 profile_pane.add(add_button) 43 profile_pane.add(add_button)
43 44
44 window.show_all() 45 window.show_all()
45 Gtk.main() 46 Gtk.main()
46 47
47 def create_profile(self, widget, profile_type): 48 def create_profile(self, widget, profile_type):
48 profile = profile_type() 49 profile = profile_type()
49 color_profile_list_store = self.builder.get_object('color_profile_list_store') 50 color_profile_list_store = self.builder.get_object('color_profile_list_store')
50 color_profile_list_store.append([profile.id, 'New ' + profile.type_name]) 51 color_profile_list_store.append([profile.id, 'New ' + profile.type_name])
51 self.builder.get_object('profile_tree_view').set_cursor(len(color_profile_list_store) - 1) 52 self.builder.get_object('profile_tree_view').set_cursor(len(color_profile_list_store) - 1)
52 self.edit_profile(profile) 53 self.edit_profile(profile)
53 self.builder.get_object('edit_profile_name_entry').grab_focus() 54 self.builder.get_object('edit_profile_name_entry').grab_focus()
54 55
55 def edit_profile(self, profile): 56 def edit_profile(self, profile):
56 self.builder.get_object('edit_profile_box').show() 57 self.builder.get_object('edit_profile_box').show()
57 58
58 self.builder.get_object('edit_profile_type_name_label').set_text(profile.type_name) 59 self.builder.get_object('edit_profile_type_name_label').set_text(profile.type_name)
59 self.builder.get_object('edit_profile_name_entry').set_text(profile.name) 60 self.builder.get_object('edit_profile_name_entry').set_text(profile.name)
60 61
61 edit_profile_details_box = self.builder.get_object('edit_profile_details_box') 62 edit_profile_details_box = self.builder.get_object('edit_profile_details_box')
62 for child in edit_profile_details_box.get_children(): 63 for child in edit_profile_details_box.get_children():
63 edit_profile_details_box.remove(child) 64 edit_profile_details_box.remove(child)
64 edit_profile_details_box.add(profile.build_settings_ui()) 65 edit_profile_details_box.add(profile.build_settings_ui())
65 66
66 def edit_profile_name_changed(self, entry): 67 def edit_profile_name_changed(self, entry):
67 profile_name = entry.get_text() 68 profile_name = entry.get_text()
68 color_profile_list_store = self.builder.get_object('color_profile_list_store') 69 color_profile_list_store = self.builder.get_object('color_profile_list_store')
69 selection = self.builder.get_object('profile_tree_view').get_selection() 70 selection = self.builder.get_object('profile_tree_view').get_selection()
70 (model, tree_iter) = selection.get_selected() 71 (model, tree_iter) = selection.get_selected()
71 model.set_value(tree_iter, 1, profile_name) 72 model.set_value(tree_iter, 1, profile_name)
72 73
73 def edit_profile_name_entry_focus_out(self, entry, event): 74 def edit_profile_name_entry_focus_out(self, entry, event):
74 pass 75 pass
76
75 77
76 class KeyboardSection(Gtk.Grid): 78 class KeyboardSection(Gtk.Grid):
77 79
78 def __init__(self, model): 80 def __init__(self, model):
79 super().__init__() 81 super().__init__()
80 82
81 profile_label = Gtk.Label('Color profile') 83 profile_label = Gtk.Label('Color profile')
82 # profile_combo_box = Gtk.ComboBox(model) 84 # profile_combo_box = Gtk.ComboBox(model)
83 profile_combo_box = Gtk.ComboBox.new_with_model(model) 85 profile_combo_box = Gtk.ComboBox.new_with_model(model)
84 # profile_combo_box.set_entry_text_column(1) 86 # profile_combo_box.set_entry_text_column(1)
85 # profile_combo_box.append_text('asdf') 87 # profile_combo_box.append_text('asdf')
86 renderer_text = Gtk.CellRendererText() 88 renderer_text = Gtk.CellRendererText()
87 profile_combo_box.pack_start(renderer_text, True) 89 profile_combo_box.pack_start(renderer_text, True)
88 profile_combo_box.add_attribute(renderer_text, 'text', 1) 90 profile_combo_box.add_attribute(renderer_text, 'text', 1)
89 91
90 self.add(profile_label) 92 self.add(profile_label)
91 self.add(profile_combo_box) 93 self.add(profile_combo_box)