Refactoring the way a selected sub is opened
This commit is contained in:
@@ -153,7 +153,7 @@ class BaseContent(object):
|
|||||||
data = {}
|
data = {}
|
||||||
data['object'] = subscription
|
data['object'] = subscription
|
||||||
data['type'] = 'Subscription'
|
data['type'] = 'Subscription'
|
||||||
data['name'] = "/r/" + subscription._case_name
|
data['name'] = "/r/" + subscription.display_name
|
||||||
data['title'] = subscription.title
|
data['title'] = subscription.title
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|||||||
@@ -167,9 +167,15 @@ class SubredditPage(BasePage):
|
|||||||
show_notification(self.stdscr, ['Not logged in'])
|
show_notification(self.stdscr, ['Not logged in'])
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# Open subscriptions page
|
||||||
page = SubscriptionPage(self.stdscr, self.reddit)
|
page = SubscriptionPage(self.stdscr, self.reddit)
|
||||||
page.loop()
|
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'])
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def draw_item(win, data, inverted=False):
|
def draw_item(win, data, inverted=False):
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ class SubscriptionPage(BasePage):
|
|||||||
def __init__(self, stdscr, reddit):
|
def __init__(self, stdscr, reddit):
|
||||||
self.controller = SubscriptionController(self)
|
self.controller = SubscriptionController(self)
|
||||||
self.loader = LoadScreen(stdscr)
|
self.loader = LoadScreen(stdscr)
|
||||||
|
self.selected_subreddit_data = None
|
||||||
|
|
||||||
content = SubscriptionContent.get_list(reddit, self.loader)
|
content = SubscriptionContent.get_list(reddit, self.loader)
|
||||||
super(SubscriptionPage, self).__init__(stdscr, reddit, content)
|
super(SubscriptionPage, self).__init__(stdscr, reddit, content)
|
||||||
@@ -30,6 +31,9 @@ class SubscriptionPage(BasePage):
|
|||||||
cmd = self.stdscr.getch()
|
cmd = self.stdscr.getch()
|
||||||
self.controller.trigger(cmd)
|
self.controller.trigger(cmd)
|
||||||
|
|
||||||
|
def get_selected_subreddit_data(self):
|
||||||
|
return self.selected_subreddit_data
|
||||||
|
|
||||||
@SubscriptionController.register(curses.KEY_F5, 'r')
|
@SubscriptionController.register(curses.KEY_F5, 'r')
|
||||||
def refresh_content(self):
|
def refresh_content(self):
|
||||||
"Re-download all subscriptions and reset the page index"
|
"Re-download all subscriptions and reset the page index"
|
||||||
@@ -38,13 +42,11 @@ class SubscriptionPage(BasePage):
|
|||||||
self.nav = Navigator(self.content.get)
|
self.nav = Navigator(self.content.get)
|
||||||
|
|
||||||
@SubscriptionController.register(curses.KEY_ENTER, 10, curses.KEY_RIGHT)
|
@SubscriptionController.register(curses.KEY_ENTER, 10, curses.KEY_RIGHT)
|
||||||
def open_selected_subreddit(self):
|
def store_selected_subreddit(self):
|
||||||
"Open the selected subreddit"
|
"Store the selected subreddit and return to the subreddit page"
|
||||||
|
|
||||||
from .subreddit import SubredditPage
|
self.selected_subreddit_data = self.content.get(self.nav.absolute_index)
|
||||||
data = self.content.get(self.nav.absolute_index)
|
self.active = False
|
||||||
page = SubredditPage(self.stdscr, self.reddit, data['name'][2:]) # Strip the leading /r
|
|
||||||
page.loop()
|
|
||||||
|
|
||||||
@SubscriptionController.register(curses.KEY_LEFT, 's')
|
@SubscriptionController.register(curses.KEY_LEFT, 's')
|
||||||
def close_subscriptions(self):
|
def close_subscriptions(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user