mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2024-11-22 19:28:09 -06:00
Session manager is now fully MVC, it can removes an account too
This commit is contained in:
parent
3f1b00af8f
commit
373ca24a96
@ -1059,11 +1059,14 @@ class Controller(object):
|
|||||||
sm.fill_list()
|
sm.fill_list()
|
||||||
sm.show()
|
sm.show()
|
||||||
for i in sm.new_sessions:
|
for i in sm.new_sessions:
|
||||||
call_threaded(self.add_account, i)
|
|
||||||
|
|
||||||
def add_account(self, i):
|
|
||||||
self.create_buffers(session_.sessions[i])
|
self.create_buffers(session_.sessions[i])
|
||||||
self.start_buffers(session_.sessions[i])
|
call_threaded(self.start_buffers, session_.sessions[i])
|
||||||
|
for i in sm.removed_sessions:
|
||||||
|
if session_.sessions[i].logged == True:
|
||||||
|
self.logout_account(session_.sessions[i].session_id)
|
||||||
|
self.destroy_buffer(session_.sessions[i].settings["twitter"]["user_name"], session_.sessions[i].settings["twitter"]["user_name"])
|
||||||
|
self.accounts.remove(session_.sessions[i].settings["twitter"]["user_name"])
|
||||||
|
session_.sessions.pop(i)
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
config.app.write()
|
config.app.write()
|
@ -1,5 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import wx
|
import shutil
|
||||||
|
import widgetUtils
|
||||||
import wxUI as view
|
import wxUI as view
|
||||||
import paths
|
import paths
|
||||||
import time
|
import time
|
||||||
@ -17,8 +18,11 @@ class sessionManagerController(object):
|
|||||||
super(sessionManagerController, self).__init__()
|
super(sessionManagerController, self).__init__()
|
||||||
log.debug("Setting up the session manager.")
|
log.debug("Setting up the session manager.")
|
||||||
manager.setup()
|
manager.setup()
|
||||||
self.view = view.sessionManagerWindow(self)
|
self.view = view.sessionManagerWindow()
|
||||||
|
widgetUtils.connect_event(self.view.new, widgetUtils.BUTTON_PRESSED, self.manage_new_account)
|
||||||
|
widgetUtils.connect_event(self.view.remove, widgetUtils.BUTTON_PRESSED, self.remove)
|
||||||
self.new_sessions = {}
|
self.new_sessions = {}
|
||||||
|
self.removed_sessions = []
|
||||||
|
|
||||||
def fill_list(self):
|
def fill_list(self):
|
||||||
sessionsList = []
|
sessionsList = []
|
||||||
@ -35,11 +39,11 @@ class sessionManagerController(object):
|
|||||||
self.sessions.append(i)
|
self.sessions.append(i)
|
||||||
# else:
|
# else:
|
||||||
# log.debug("Ignoring session %s" % (i,))
|
# log.debug("Ignoring session %s" % (i,))
|
||||||
if hasattr(self, "view"): self.view.fill_list(sessionsList)
|
self.view.fill_list(sessionsList)
|
||||||
|
|
||||||
def show(self):
|
def show(self):
|
||||||
if self.view.ShowModal() == wx.ID_CANCEL:
|
if self.view.get_response() == widgetUtils.OK:
|
||||||
self.view.Destroy()
|
self.do_ok()
|
||||||
|
|
||||||
def do_ok(self):
|
def do_ok(self):
|
||||||
log.debug("Starting sessions...")
|
log.debug("Starting sessions...")
|
||||||
@ -52,7 +56,8 @@ class sessionManagerController(object):
|
|||||||
session.sessions[i] = s
|
session.sessions[i] = s
|
||||||
self.new_sessions[i] = s
|
self.new_sessions[i] = s
|
||||||
|
|
||||||
def manage_new_account(self):
|
def manage_new_account(self, *args, **kwargs):
|
||||||
|
if self.view.new_account_dialog() == widgetUtils.YES:
|
||||||
location = (str(time.time())[-6:])
|
location = (str(time.time())[-6:])
|
||||||
log.debug("Creating session in the %s path" % (location,))
|
log.debug("Creating session in the %s path" % (location,))
|
||||||
s = session.Session(location)
|
s = session.Session(location)
|
||||||
@ -66,3 +71,11 @@ class sessionManagerController(object):
|
|||||||
log.exception("Error authorising the session")
|
log.exception("Error authorising the session")
|
||||||
self.view.show_unauthorised_error()
|
self.view.show_unauthorised_error()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def remove(self, *args, **kwargs):
|
||||||
|
if self.view.remove_account_dialog() == widgetUtils.YES:
|
||||||
|
selected_account = self.sessions[self.view.get_selected()]
|
||||||
|
self.view.remove_session(self.view.get_selected())
|
||||||
|
self.removed_sessions.append(selected_account)
|
||||||
|
self.sessions.remove(selected_account)
|
||||||
|
shutil.rmtree(path=paths.config_path(selected_account), ignore_errors=True)
|
||||||
|
@ -3,9 +3,8 @@ import wx
|
|||||||
from multiplatform_widgets import widgets
|
from multiplatform_widgets import widgets
|
||||||
|
|
||||||
class sessionManagerWindow(wx.Dialog):
|
class sessionManagerWindow(wx.Dialog):
|
||||||
def __init__(self, controller):
|
def __init__(self):
|
||||||
super(sessionManagerWindow, self).__init__(parent=None, title="Session manager", size=wx.DefaultSize)
|
super(sessionManagerWindow, self).__init__(parent=None, title="Session manager", size=wx.DefaultSize)
|
||||||
self.controller = controller
|
|
||||||
panel = wx.Panel(self)
|
panel = wx.Panel(self)
|
||||||
sizer = wx.BoxSizer(wx.VERTICAL)
|
sizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
label = wx.StaticText(panel, -1, u"Select a twitter account to start TW Blue", size=wx.DefaultSize)
|
label = wx.StaticText(panel, -1, u"Select a twitter account to start TW Blue", size=wx.DefaultSize)
|
||||||
@ -14,14 +13,13 @@ class sessionManagerWindow(wx.Dialog):
|
|||||||
listSizer.Add(label, 0, wx.ALL, 5)
|
listSizer.Add(label, 0, wx.ALL, 5)
|
||||||
listSizer.Add(self.list.list, 0, wx.ALL, 5)
|
listSizer.Add(self.list.list, 0, wx.ALL, 5)
|
||||||
sizer.Add(listSizer, 0, wx.ALL, 5)
|
sizer.Add(listSizer, 0, wx.ALL, 5)
|
||||||
new = wx.Button(panel, -1, u"New account", size=wx.DefaultSize)
|
self.new = wx.Button(panel, -1, u"New account", size=wx.DefaultSize)
|
||||||
new.Bind(wx.EVT_BUTTON, self.new_account)
|
self.remove = wx.Button(panel, -1, _(u"Remove account"))
|
||||||
ok = wx.Button(panel, wx.ID_OK, size=wx.DefaultSize)
|
ok = wx.Button(panel, wx.ID_OK, size=wx.DefaultSize)
|
||||||
ok.SetDefault()
|
ok.SetDefault()
|
||||||
ok.Bind(wx.EVT_BUTTON, self.ok)
|
|
||||||
cancel = wx.Button(panel, wx.ID_CANCEL, size=wx.DefaultSize)
|
cancel = wx.Button(panel, wx.ID_CANCEL, size=wx.DefaultSize)
|
||||||
buttons = wx.BoxSizer(wx.HORIZONTAL)
|
buttons = wx.BoxSizer(wx.HORIZONTAL)
|
||||||
buttons.Add(new, 0, wx.ALL, 5)
|
buttons.Add(self.new, 0, wx.ALL, 5)
|
||||||
buttons.Add(ok, 0, wx.ALL, 5)
|
buttons.Add(ok, 0, wx.ALL, 5)
|
||||||
buttons.Add(cancel, 0, wx.ALL, 5)
|
buttons.Add(cancel, 0, wx.ALL, 5)
|
||||||
sizer.Add(buttons, 0, wx.ALL, 5)
|
sizer.Add(buttons, 0, wx.ALL, 5)
|
||||||
@ -43,12 +41,8 @@ class sessionManagerWindow(wx.Dialog):
|
|||||||
self.controller.do_ok()
|
self.controller.do_ok()
|
||||||
self.EndModal(wx.ID_OK)
|
self.EndModal(wx.ID_OK)
|
||||||
|
|
||||||
def new_account(self, ev):
|
def new_account_dialog(self):
|
||||||
dlg = wx.MessageDialog(self, _(u"The request for the required Twitter authorization to continue will be opened on your browser. You only need to do it once. Would you like to autorhise a new account now?"), _(u"Authorisation"), wx.YES_NO)
|
return wx.MessageDialog(self, _(u"The request for the required Twitter authorization to continue will be opened on your browser. You only need to do it once. Would you like to autorhise a new account now?"), _(u"Authorisation"), wx.YES_NO).ShowModal()
|
||||||
if dlg.ShowModal() == wx.ID_NO:
|
|
||||||
return
|
|
||||||
else:
|
|
||||||
self.controller.manage_new_account()
|
|
||||||
|
|
||||||
def add_new_session_to_list(self):
|
def add_new_session_to_list(self):
|
||||||
total = self.list.get_count()
|
total = self.list.get_count()
|
||||||
@ -56,5 +50,19 @@ class sessionManagerWindow(wx.Dialog):
|
|||||||
self.list.insert_item(False, name)
|
self.list.insert_item(False, name)
|
||||||
if self.list.get_count() == 1:
|
if self.list.get_count() == 1:
|
||||||
self.list.select_item(0)
|
self.list.select_item(0)
|
||||||
|
|
||||||
def show_unauthorised_error(self):
|
def show_unauthorised_error(self):
|
||||||
wx.MessageDialog(None, _(u"Your access token is invalid or the authorisation has failed. Please try again."), _(u"Invalid user token"), wx.ICON_ERROR).ShowModal()
|
wx.MessageDialog(None, _(u"Your access token is invalid or the authorisation has failed. Please try again."), _(u"Invalid user token"), wx.ICON_ERROR).ShowModal()
|
||||||
|
|
||||||
|
def get_response(self):
|
||||||
|
return self.ShowModal()
|
||||||
|
|
||||||
|
def remove_account_dialog(self):
|
||||||
|
return wx.MessageDialog(self, _(u"Do you really want delete this account?"), _(u"Remove account"), wx.YES_NO).ShowModal()
|
||||||
|
|
||||||
|
def get_selected(self):
|
||||||
|
return self.list.get_selected()
|
||||||
|
|
||||||
|
def remove_session(self, sessionID):
|
||||||
|
self.list.remove_item(sessionID)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user