Auto-expand agenda
Added feature to automatically expand agenda module if the bottom section is emtpy
This commit is contained in:
		| @@ -35,14 +35,19 @@ event_col_start = time_col_start + time_col_width | |||||||
|  |  | ||||||
| """Find max number of lines that can fit in the middle section and allocate | """Find max number of lines that can fit in the middle section and allocate | ||||||
| a position for each line""" | a position for each line""" | ||||||
| max_lines = int((middle_section_height - border_top*2) // line_height) | if bottom_section: | ||||||
| line_pos = [(border_left, int(top_section_height + line * line_height)) |   max_lines = int((middle_section_height - border_top*2) // line_height) | ||||||
|  | else: | ||||||
|  |   max_lines = int(middle_section_height+bottom_section_height - | ||||||
|  |                   (border_top * 2))// line_height | ||||||
|  |  | ||||||
|  | line_pos = [(border_left, int(top_section_height + border_top + line * line_height)) | ||||||
|   for line in range(max_lines)] |   for line in range(max_lines)] | ||||||
|  |  | ||||||
| def main(): | def main(): | ||||||
|   try: |   try: | ||||||
|     clear_image('middle_section') |     clear_image('middle_section') | ||||||
|                  |  | ||||||
|     print('Agenda module: Generating image...', end = '') |     print('Agenda module: Generating image...', end = '') | ||||||
|     now = arrow.now(get_tz()) |     now = arrow.now(get_tz()) | ||||||
|     today_start = arrow.get(now.year, now.month, now.day) |     today_start = arrow.get(now.year, now.month, now.day) | ||||||
| @@ -64,7 +69,7 @@ def main(): | |||||||
|         print('{0} {1} | {2} | {3} | All day ='.format(events.name, |         print('{0} {1} | {2} | {3} | All day ='.format(events.name, | ||||||
|           ' '* (auto_line_width - len(events.name)), events.begin.format(style), |           ' '* (auto_line_width - len(events.name)), events.begin.format(style), | ||||||
|           events.end.format(style)), events.all_day) |           events.end.format(style)), events.all_day) | ||||||
|      |  | ||||||
|     """Convert the event-timings from utc to the specified locale's time |     """Convert the event-timings from utc to the specified locale's time | ||||||
|     and create a ready-to-display list for the agenda view""" |     and create a ready-to-display list for the agenda view""" | ||||||
|     for events in filtered_events: |     for events in filtered_events: | ||||||
| @@ -96,15 +101,15 @@ def main(): | |||||||
|             'date']: |             'date']: | ||||||
|             write_text(date_col_width, line_height, |             write_text(date_col_width, line_height, | ||||||
|               agenda_events[events]['date_str'], line_pos[events], font = font) |               agenda_events[events]['date_str'], line_pos[events], font = font) | ||||||
|              |  | ||||||
|           previous_date = agenda_events[events]['date']         |           previous_date = agenda_events[events]['date'] | ||||||
|           draw.line((date_col_start, line_pos[events][1], |           draw.line((date_col_start, line_pos[events][1], | ||||||
|             line_width,line_pos[events][1]), fill = 'red' if display_type == 'colour' else 'black') |             line_width,line_pos[events][1]), fill = 'red' if display_type == 'colour' else 'black') | ||||||
|  |  | ||||||
|         elif agenda_events[events]['type'] == 'timed_event': |         elif agenda_events[events]['type'] == 'timed_event': | ||||||
|           write_text(time_col_width, line_height, agenda_events[events]['time'], |           write_text(time_col_width, line_height, agenda_events[events]['time'], | ||||||
|             (time_col_start, line_pos[events][1]), font = font) |             (time_col_start, line_pos[events][1]), font = font) | ||||||
|           |  | ||||||
|           write_text(event_col_width, line_height, ('• '+agenda_events[events][ |           write_text(event_col_width, line_height, ('• '+agenda_events[events][ | ||||||
|             'name']), (event_col_start, line_pos[events][1]), |             'name']), (event_col_start, line_pos[events][1]), | ||||||
|              alignment = 'left', font = font) |              alignment = 'left', font = font) | ||||||
| @@ -112,12 +117,16 @@ def main(): | |||||||
|         else: |         else: | ||||||
|           write_text(time_col_width, line_height, agenda_events[events]['time'], |           write_text(time_col_width, line_height, agenda_events[events]['time'], | ||||||
|             (time_col_start, line_pos[events][1]), font = font) |             (time_col_start, line_pos[events][1]), font = font) | ||||||
|           |  | ||||||
|           write_text(event_col_width, line_height, ('• '+agenda_events[events]['name']), |           write_text(event_col_width, line_height, ('• '+agenda_events[events]['name']), | ||||||
|             (event_col_start, line_pos[events][1]), alignment = 'left', font = font) |             (event_col_start, line_pos[events][1]), alignment = 'left', font = font) | ||||||
|  |  | ||||||
|     """Crop the image to show only the middle section""" |     """Crop the image to show only the middle section""" | ||||||
|     agenda_image = crop_image(image, 'middle_section') |     if bottom_section: | ||||||
|  |       agenda_image = crop_image(image, 'middle_section') | ||||||
|  |     else: | ||||||
|  |       agenda_image = image.crop((0,middle_section_offset,display_width, display_height)) | ||||||
|  |  | ||||||
|     agenda_image.save(image_path+'agenda.png') |     agenda_image.save(image_path+'agenda.png') | ||||||
|     print('Done') |     print('Done') | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user