diff --git a/src/cutecoin/core/app.py b/src/cutecoin/core/app.py index 8ff973b70f8014c27b1f301e6417d53b34f9fb93..7d0cc5d3c41d95a839b72629735971934b0e47d4 100644 --- a/src/cutecoin/core/app.py +++ b/src/cutecoin/core/app.py @@ -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') - data = json.load(json_data) - - json_data.close() - for account_name in data['local_accounts']: - account_path = os.path.join(config.parameters['home'], - account_name, 'properties') - json_data = open(account_path, 'r') + with open(config.parameters['data'], 'r') as json_data: data = json.load(json_data) - account = Account.load(data) - self.accounts.append(account) + 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') + with open(account_path, 'r') as json_data: + data = json.load(json_data) + account = Account.load(data) + self.accounts[account_name] = account def load_cache(self, account): for wallet in account.wallets: diff --git a/src/cutecoin/gui/mainwindow.py b/src/cutecoin/gui/mainwindow.py index 035376145308476d4f58e509d3369595d96d70ff..ad505cd28e88a6b884c92f458333de53090d58f9 100644 --- a/src/cutecoin/gui/mainwindow.py +++ b/src/cutecoin/gui/mainwindow.py @@ -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)