From ac939b5f96b4ae2ed545f4e5698244346898e595 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Wed, 12 Aug 2015 10:12:53 -0700 Subject: [PATCH] Switched back to putting the subreddit name first on the submission page. --- rtv/content.py | 5 ++++- rtv/subreddit.py | 8 ++++---- rtv/subscriptions.py | 21 ++++++++++----------- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/rtv/content.py b/rtv/content.py index fca4830..afa64bd 100644 --- a/rtv/content.py +++ b/rtv/content.py @@ -385,14 +385,17 @@ class SubredditContent(BaseContent): return data class SubscriptionContent(BaseContent): + def __init__(self, subscriptions, loader): + self.name = "Subscriptions" + self.order = None self._loader = loader self._subscriptions = subscriptions self._subscription_data = [] @classmethod - def get_list(cls, reddit, loader): + def from_user(cls, reddit, loader): try: with loader(): subscriptions = reddit.get_my_subreddits(limit=None) diff --git a/rtv/subreddit.py b/rtv/subreddit.py index fdebfce..a869a3b 100644 --- a/rtv/subreddit.py +++ b/rtv/subreddit.py @@ -177,10 +177,10 @@ class SubredditPage(BasePage): page = SubscriptionPage(self.stdscr, self.reddit) page.loop() - # When user has chosen a subreddit in the subscriptions list, refresh content with the selected subreddit - chosen_subreddit = page.get_selected_subreddit_data() - if chosen_subreddit is not None: - self.refresh_content(name=chosen_subreddit['name']) + # When user has chosen a subreddit in the subscriptions list, + # refresh content with the selected subreddit + if page.selected_subreddit_data is not None: + self.refresh_content(name=page.selected_subreddit_data['name']) @staticmethod def draw_item(win, data, inverted=False): diff --git a/rtv/subscriptions.py b/rtv/subscriptions.py index cbb5926..8ef2094 100644 --- a/rtv/subscriptions.py +++ b/rtv/subscriptions.py @@ -14,12 +14,14 @@ class SubscriptionController(BaseController): character_map = {} class SubscriptionPage(BasePage): + def __init__(self, stdscr, reddit): + self.controller = SubscriptionController(self) self.loader = LoadScreen(stdscr) self.selected_subreddit_data = None - content = SubscriptionContent.get_list(reddit, self.loader) + content = SubscriptionContent.from_user(reddit, self.loader) super(SubscriptionPage, self).__init__(stdscr, reddit, content) def loop(self): @@ -31,9 +33,6 @@ class SubscriptionPage(BasePage): cmd = self.stdscr.getch() self.controller.trigger(cmd) - def get_selected_subreddit_data(self): - return self.selected_subreddit_data - @SubscriptionController.register(curses.KEY_F5, 'r') def refresh_content(self): "Re-download all subscriptions and reset the page index" @@ -48,7 +47,7 @@ class SubscriptionPage(BasePage): self.selected_subreddit_data = self.content.get(self.nav.absolute_index) self.active = False - @SubscriptionController.register(curses.KEY_LEFT, 's') + @SubscriptionController.register(curses.KEY_LEFT, 'h', 's') def close_subscriptions(self): "Close subscriptions and return to the subreddit page" @@ -63,12 +62,12 @@ class SubscriptionPage(BasePage): valid_rows = range(0, n_rows) offset = 0 if not inverted else -(data['n_rows'] - n_rows) - n_title = len(data['split_title']) - for row, text in enumerate(data['split_title'], start=offset): - if row in valid_rows: - add_line(win, text, row, 1) - - row = n_title + offset + row = offset if row in valid_rows: attr = curses.A_BOLD | Color.YELLOW add_line(win, u'{name}'.format(**data), row, 1, attr) + + row = offset + 1 + for row, text in enumerate(data['split_title'], start=row): + if row in valid_rows: + add_line(win, text, row, 1) \ No newline at end of file