Add more logging and stuff to screenlayout

master
Lars Vierbergen 7 years ago
parent f257117203
commit f45c6621c2
  1. 33
      modules/screenlayout.py

@ -113,10 +113,12 @@ class ScreenLayoutCycleAction(OrderedDictCycleAction):
def next(self): def next(self):
super().next() super().next()
logger.info("Setting screen layout to %s", self.current)
self.__set_screen_layout(next_layout=self.next, item=self.current) self.__set_screen_layout(next_layout=self.next, item=self.current)
def prev(self): def prev(self):
super().prev() super().prev()
logger.info("Setting screen layout to %s", self.current)
self.__set_screen_layout(next_layout=self.prev, item=self.current) self.__set_screen_layout(next_layout=self.prev, item=self.current)
def periodic(self): def periodic(self):
@ -138,7 +140,7 @@ class ScreenLayoutCycleAction(OrderedDictCycleAction):
logger.error('Default layout is not set. Cannot reset layout') logger.error('Default layout is not set. Cannot reset layout')
return False return False
self.__inhibited = False self.__inhibited = False
self.__set_screen_layout(next_layout=lambda: None, item=self.__default_layout) self.__set_screen_layout(next_layout=None, item=self.__default_layout)
return True return True
else: else:
return super().respond_to(command) return super().respond_to(command)
@ -165,13 +167,13 @@ class ScreenLayoutCycleAction(OrderedDictCycleAction):
layout_proc = subprocess.Popen([item]) layout_proc = subprocess.Popen([item])
self.current = item self.current = item
if layout_proc.wait(): if layout_proc.wait():
logger.warning('Screenlayout failed, continueing to next layout.') if next_layout:
next_layout() logger.warning('Screenlayout failed, continueing to next layout.')
next_layout()
except Exception: except Exception:
logger.exception('Screenlayout failed. Continueing to next layout') if next_layout:
next_layout() logger.exception('Screenlayout failed. Continueing to next layout')
next_layout()
def __create_tk(self): def __create_tk(self):
options = list(self.__od.keys())[1:] # Skip the first option, it is the current one options = list(self.__od.keys())[1:] # Skip the first option, it is the current one
@ -180,15 +182,22 @@ class ScreenLayoutCycleAction(OrderedDictCycleAction):
rows = math.ceil(num_options / cols) rows = math.ceil(num_options / cols)
root = tkinter.Tk(className="screenlayout") root = tkinter.Tk(className="screenlayout")
root.update_idletasks() root.update_idletasks()
width = root.winfo_screenwidth()//3 screen_width = root.winfo_screenwidth()
height = root.winfo_screenheight()//3 screen_height = root.winfo_screenheight()
x = (root.winfo_screenwidth() // 2) - (width // 2) logger.debug("screen_width=%d; screen_height=%d", screen_width, screen_height)
y = (root.winfo_screenheight() // 2) - (height // 2) width = screen_width//3
height = screen_height//3
x = (screen_width // 2) - (width // 2)
y = (screen_height // 2) - (height // 2)
logger.debug("geometry: width=%d, height=%d, x=%d, y=%d", width, height, x, y)
root.geometry('{}x{}+{}+{}'.format(width, height, x, y)) root.geometry('{}x{}+{}+{}'.format(width, height, x, y))
def create_callback(item): def create_callback(item):
def cb(): def cb():
self.__inhibited = False self.__inhibited = False
self.__set_screen_layout(lambda: None, item) current = self.current
def restore_current():
self.__set_screen_layout(None, current)
self.__set_screen_layout(restore_current, item)
root.destroy() root.destroy()
return cb return cb

Loading…
Cancel
Save