2014-11-13 03:41:29 +01:00
# -*- coding: utf-8 -*-
import wx
from multiplatform_widgets import widgets
2015-04-20 01:28:27 +02:00
import application
2014-11-13 03:41:29 +01:00
class sessionManagerWindow ( wx . Dialog ) :
2015-03-05 18:27:48 +01:00
def __init__ ( self ) :
2014-11-13 03:41:29 +01:00
super ( sessionManagerWindow , self ) . __init__ ( parent = None , title = " Session manager " , size = wx . DefaultSize )
panel = wx . Panel ( self )
sizer = wx . BoxSizer ( wx . VERTICAL )
2015-04-20 01:23:31 +02:00
label = wx . StaticText ( panel , - 1 , u " Select a twitter account to start " + application . name , size = wx . DefaultSize )
2014-11-13 03:41:29 +01:00
listSizer = wx . BoxSizer ( wx . HORIZONTAL )
self . list = widgets . list ( panel , u " Account " , style = wx . LC_SINGLE_SEL | wx . LC_REPORT )
listSizer . Add ( label , 0 , wx . ALL , 5 )
listSizer . Add ( self . list . list , 0 , wx . ALL , 5 )
sizer . Add ( listSizer , 0 , wx . ALL , 5 )
2015-03-05 18:27:48 +01:00
self . new = wx . Button ( panel , - 1 , u " New account " , size = wx . DefaultSize )
self . remove = wx . Button ( panel , - 1 , _ ( u " Remove account " ) )
2015-04-22 22:34:44 +02:00
self . configuration = wx . Button ( panel , - 1 , _ ( u " Global Settings " ) )
2014-11-13 03:41:29 +01:00
ok = wx . Button ( panel , wx . ID_OK , size = wx . DefaultSize )
ok . SetDefault ( )
cancel = wx . Button ( panel , wx . ID_CANCEL , size = wx . DefaultSize )
buttons = wx . BoxSizer ( wx . HORIZONTAL )
2015-03-05 18:27:48 +01:00
buttons . Add ( self . new , 0 , wx . ALL , 5 )
2015-04-22 22:34:44 +02:00
buttons . Add ( self . configuration , 0 , wx . ALL , 5 )
2014-11-13 03:41:29 +01:00
buttons . Add ( ok , 0 , wx . ALL , 5 )
buttons . Add ( cancel , 0 , wx . ALL , 5 )
sizer . Add ( buttons , 0 , wx . ALL , 5 )
panel . SetSizer ( sizer )
min = sizer . CalcMin ( )
self . SetClientSize ( min )
def fill_list ( self , sessionsList ) :
for i in sessionsList :
self . list . insert_item ( False , i )
if self . list . get_count ( ) > 0 :
self . list . select_item ( 0 )
self . list . list . SetSize ( self . list . list . GetBestSize ( ) )
def ok ( self , ev ) :
if self . list . get_count ( ) == 0 :
wx . MessageDialog ( None , _ ( u " You need to configure an account. " ) , _ ( u " Account Error " ) , wx . ICON_ERROR ) . ShowModal ( )
return
self . controller . do_ok ( )
self . EndModal ( wx . ID_OK )
2015-03-05 18:27:48 +01:00
def new_account_dialog ( self ) :
2015-04-05 23:39:55 +02:00
return wx . MessageDialog ( self , _ ( u " The request for the required Twitter authorisation 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 ( )
2014-11-13 03:41:29 +01:00
def add_new_session_to_list ( self ) :
total = self . list . get_count ( )
name = _ ( u " Authorised account %d " ) % ( total + 1 )
self . list . insert_item ( False , name )
if self . list . get_count ( ) == 1 :
self . list . select_item ( 0 )
2015-03-05 18:27:48 +01:00
2014-11-13 03:41:29 +01:00
def show_unauthorised_error ( self ) :
2015-03-05 18:27:48 +01:00
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 ) :
2015-04-05 23:39:55 +02:00
return wx . MessageDialog ( self , _ ( u " Do you really want to delete this account? " ) , _ ( u " Remove account " ) , wx . YES_NO ) . ShowModal ( )
2015-03-05 18:27:48 +01:00
def get_selected ( self ) :
return self . list . get_selected ( )
def remove_session ( self , sessionID ) :
self . list . remove_item ( sessionID )
2015-04-22 22:34:44 +02:00
def hide_configuration ( self ) :
self . configuration . Hide ( )