Skip to content
Snippets Groups Projects
Commit e91c3fdb authored by inso's avatar inso
Browse files

Load account "just in time"

parent 1fa87422
No related branches found
No related tags found
No related merge requests found
......@@ -25,16 +25,15 @@ class Application(object):
'''
Constructor
'''
self.accounts = []
self.accounts = {}
self.current_account = None
config.parse_arguments(argv)
self.load()
def get_account(self, name):
for a in self.accounts:
logging.debug('Name : ' + a.name + '/' + name)
if name == a.name:
return a
if not self.accounts[name]:
self.load_account(name)
return self.accounts[name]
def create_account(self, name):
for a in self.accounts:
......@@ -70,17 +69,19 @@ class Application(object):
if (os.path.exists(config.parameters['data'])
and os.path.isfile(config.parameters['data'])):
logging.debug("Loading data...")
json_data = open(config.parameters['data'], 'r')
with open(config.parameters['data'], 'r') as json_data:
data = json.load(json_data)
json_data.close()
for account_name in data['local_accounts']:
self.accounts[account_name] = None
def load_account(self, account_name):
account_path = os.path.join(config.parameters['home'],
account_name, 'properties')
json_data = open(account_path, 'r')
with open(account_path, 'r') as json_data:
data = json.load(json_data)
account = Account.load(data)
self.accounts.append(account)
self.accounts[account_name] = account
def load_cache(self, account):
for wallet in account.wallets:
......
......@@ -77,10 +77,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.menu_change_account.clear()
signal_mapper = QSignalMapper(self)
for account in self.app.accounts:
action = QAction(account.name, self)
for account_name in self.app.accounts.keys():
action = QAction(account_name, self)
self.menu_change_account.addAction(action)
signal_mapper.setMapping(action, account.name)
signal_mapper.setMapping(action, account_name)
action.triggered.connect(signal_mapper.map)
signal_mapper.mapped[str].connect(self.action_change_account)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment