77from .displaywidget import GuiScreen
88from .profiles import load_profiles , save_profile
99from .screens import displayInfo , load
10- from .settings import (
11- ALLOW_DESELECT ,
12- FONT ,
13- LEGACY ,
14- PROG_NAME ,
15- UI_RATIO ,
16- WINDOW_MARGIN ,
17- reload_pre_commands ,
18- )
10+ from .settings import ALLOW_DESELECT , FONT , LEGACY , PROG_NAME , UI_RATIO , WINDOW_MARGIN , reload_pre_commands
1911from .utils import (
2012 Rect ,
2113 compute_bounding_box ,
@@ -42,11 +34,12 @@ def get_closest_match(float_list, value):
4234
4335
4436def get_size (screen , scale = 0 ):
45- "Get the size of the window based on the screen size and UI_RATIO"
37+ """ Get the size of the window based on the screen size and UI_RATIO."" "
4638 if not scale :
4739 scale = UI_RATIO
48- w , h = ((screen .mode .width / scale ) / screen .scale ), (
49- (screen .mode .height / scale ) / screen .scale
40+ w , h = (
41+ ((screen .mode .width / scale ) / screen .scale ),
42+ ((screen .mode .height / scale ) / screen .scale ),
5043 )
5144 if screen .transform in (1 , 3 , 5 , 7 ):
5245 return (h , w )
@@ -63,9 +56,7 @@ def __init__(self, width, height):
6356 self .text_input : str | None = None
6457 self .error_message = ""
6558 self .error_message_duration = 0
66- self .require_selected_item : set [Widget ] = (
67- set ()
68- ) # Items that can't be displayed without a selection
59+ self .require_selected_item : set [Widget ] = set () # Items that can't be displayed without a selection
6960
7061 but_w = 120
7162 but_h = 28
@@ -217,7 +208,7 @@ def __init__(self, width, height):
217208 self .set_current_modes_as_ref ()
218209
219210 def set_current_modes_as_ref (self ):
220- "Set original cmd to allow reverting the selected mode"
211+ """ Set original cmd to allow reverting the selected mode."" "
221212 self .original_cmd = make_command (
222213 [s .screen for s in self .gui_screens ],
223214 [s .rect .scaled (UI_RATIO ) for s in self .gui_screens ],
@@ -234,9 +225,7 @@ def set_error(self, message, duration=200):
234225
235226 def sync_profiles (self ):
236227 self .profiles = load_profiles ()
237- self .profile_list .options = [
238- {"name" : k , "value" : v } for k , v in self .profiles .items ()
239- ]
228+ self .profile_list .options = [{"name" : k , "value" : v } for k , v in self .profiles .items ()]
240229
241230 def set_text_input (self , action ):
242231 self .validate_text_input = action
@@ -255,10 +244,7 @@ def load_screens(self):
255244 max_width = max (m .width for m in screen .available )
256245 max_height = max (m .height for m in screen .available )
257246
258- is_rotated = screen .transform in (1 , 3 , 5 , 7 )
259-
260247 if screen .mode :
261-
262248 w , h = get_size (screen )
263249 rect = Rect (
264250 int (x / UI_RATIO ),
@@ -299,9 +285,7 @@ def center_layout(self, immediate=False):
299285 offY = (win_res [1 ] // 2 ) - avg_y
300286 for screen in self .gui_screens :
301287 if immediate :
302- screen .set_position (
303- screen .target_rect .x + offX , screen .target_rect .y + offY
304- )
288+ screen .set_position (screen .target_rect .x + offX , screen .target_rect .y + offY )
305289 else :
306290 screen .target_rect .x = screen .target_rect .x + offX
307291 screen .target_rect .y = screen .target_rect .y + offY
@@ -358,10 +342,7 @@ def distance(point1: tuple[int, int], point2: tuple[int, int]):
358342 closest_match = None
359343 for coord in active_screen_coords :
360344 for other_screen_coord in other_screen_coords :
361- if (
362- min_distance is None
363- or distance (coord , other_screen_coord ) < min_distance
364- ):
345+ if min_distance is None or distance (coord , other_screen_coord ) < min_distance :
365346 min_distance = distance (coord , other_screen_coord )
366347 closest_match = other_screen_coord , coord
367348 assert closest_match is not None
@@ -443,9 +424,7 @@ def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers):
443424 self .cursor_coords = (x , y )
444425
445426 if self .selected_item and self .selected_item .dragging :
446- self .selected_item .set_position (
447- self .selected_item .rect .x + dx , self .selected_item .rect .y + dy
448- )
427+ self .selected_item .set_position (self .selected_item .rect .x + dx , self .selected_item .rect .y + dy )
449428
450429 def on_resize (self , width , height ):
451430 pyglet .window .Window .on_resize (self , width , height )
@@ -505,10 +484,8 @@ def draw_countdown(self):
505484 lbl2 .draw ()
506485
507486 def draw_text_input (self ):
508- w , h = self .get_size ()
509- pyglet .text .Label (
510- "Profile name: " , font_size = 24 , x = 10 , y = h // 2 + 40 , align = "left"
511- ).draw ()
487+ _w , h = self .get_size ()
488+ pyglet .text .Label ("Profile name: " , font_size = 24 , x = 10 , y = h // 2 + 40 , align = "left" ).draw ()
512489 text = self .text_input
513490 if int (time .time () * 1.5 ) % 2 :
514491 text += "_"
@@ -538,9 +515,7 @@ def draw_screens_and_widgets(self):
538515 def on_draw (self ):
539516 self .clear ()
540517 # Draw a grey background
541- pyglet .shapes .Rectangle (
542- 0 , 0 , self .width , self .height , color = (50 , 50 , 50 , 255 )
543- ).draw ()
518+ pyglet .shapes .Rectangle (0 , 0 , self .width , self .height , color = (50 , 50 , 50 , 255 )).draw ()
544519
545520 # Higher priority modes
546521 if self .text_input is not None :
@@ -587,26 +562,22 @@ def action_reload(self):
587562 self .center_layout (immediate = True )
588563
589564 def get_profile_data (self ):
590- screens_rect = [
591- screen .target_rect .scaled (UI_RATIO ) for screen in self .gui_screens
592- ]
565+ screens_rect = [screen .target_rect .scaled (UI_RATIO ) for screen in self .gui_screens ]
593566 trim_rects_flip_y (screens_rect )
594567 ret = []
595568 for rect , gs in zip (screens_rect , self .gui_screens ):
596569 assert gs .screen .mode
597- ret .append (
598- {
599- "active" : gs .screen .active ,
600- "width" : gs .screen .mode .width ,
601- "height" : gs .screen .mode .height ,
602- "freq" : gs .screen .mode .freq ,
603- "x" : rect .x ,
604- "y" : rect .y ,
605- "uid" : gs .screen .uid ,
606- "scale" : gs .screen .scale ,
607- "transform" : gs .screen .transform ,
608- }
609- )
570+ ret .append ({
571+ "active" : gs .screen .active ,
572+ "width" : gs .screen .mode .width ,
573+ "height" : gs .screen .mode .height ,
574+ "freq" : gs .screen .mode .freq ,
575+ "x" : rect .x ,
576+ "y" : rect .y ,
577+ "uid" : gs .screen .uid ,
578+ "scale" : gs .screen .scale ,
579+ "transform" : gs .screen .transform ,
580+ })
610581 return ret
611582
612583 def action_save_new_profile (self ):
@@ -617,9 +588,7 @@ def action_save_new_profile(self):
617588
618589 def action_save_profile (self ):
619590 if self .profile_list .options :
620- save_profile (
621- self .profile_list .get_selected_option ()["name" ], self .get_profile_data ()
622- )
591+ save_profile (self .profile_list .get_selected_option ()["name" ], self .get_profile_data ())
623592 self .sync_profiles ()
624593 else :
625594 self .set_error ("No profile selected!" )
@@ -660,10 +629,7 @@ def action_update_scale(self):
660629 monitor .target_rect .width , monitor .target_rect .height = get_size (monitor .screen )
661630
662631 def action_update_frequencies (self , screen , mode = None ):
663- if mode is None :
664- cur_mode = screen .screen .mode .width , screen .screen .mode .height
665- else :
666- cur_mode = mode
632+ cur_mode = (screen .screen .mode .width , screen .screen .mode .height ) if mode is None else mode
667633 freqs = sorted_frequencies (screen .screen .available , cur_mode [0 ], cur_mode [1 ])
668634 self .freqs .options = [{"name" : f"{ r :.2f} Hz" , "value" : r } for r in freqs ]
669635 if mode is None :
@@ -688,12 +654,10 @@ def action_toggle_screen_power(self):
688654 self .selected_item .screen .active = not self .selected_item .screen .active
689655
690656 def action_update_rotation (self ):
691- "Update the rotation of the selected screen"
657+ """ Update the rotation of the selected screen."" "
692658 assert self .selected_item
693659 self .selected_item .screen .transform = self .rotation .get_value ()
694- self .selected_item .target_rect .width , self .selected_item .target_rect .height = (
695- get_size (self .selected_item .screen )
696- )
660+ self .selected_item .target_rect .width , self .selected_item .target_rect .height = get_size (self .selected_item .screen )
697661
698662 def action_update_screen_spec (self ):
699663 self .action_update_frequencies (self .selected_item , self .resolutions .get_value ())
@@ -703,9 +667,7 @@ def action_update_screen_spec(self):
703667 def action_update_mode (self ):
704668 assert self .selected_item
705669 screen = self .selected_item .screen
706- screen .mode = find_matching_mode (
707- screen .available , self .resolutions .get_value (), self .freqs .get_value ()
708- )
670+ screen .mode = find_matching_mode (screen .available , self .resolutions .get_value (), self .freqs .get_value ())
709671 self .selected_item .target_rect .width = screen .mode .width // UI_RATIO
710672 self .selected_item .target_rect .height = screen .mode .height // UI_RATIO
711673
@@ -719,14 +681,10 @@ def action_select_screen(self, screen):
719681 cur_mode = screen .screen .mode
720682 # Update resolution
721683 res = sorted_resolutions (screen .screen .available )
722- self .resolutions .options = [
723- {"name" : f"{ r [0 ]} x { r [1 ]} " , "value" : r } for r in res
724- ]
684+ self .resolutions .options = [{"name" : f"{ r [0 ]} x { r [1 ]} " , "value" : r } for r in res ]
725685 self .rotation .selected_index = screen .screen .transform
726686 values = [o ["value" ] for o in self .scale_ratio .options ]
727- self .scale_ratio .selected_index = values .index (
728- get_closest_match (values , screen .screen .scale )
729- )
687+ self .scale_ratio .selected_index = values .index (get_closest_match (values , screen .screen .scale ))
730688 i = - 1
731689 for i , r in enumerate (res ):
732690 if r [0 ] == cur_mode .width and r [1 ] == cur_mode .height :
0 commit comments