From d6e57e622309135fac84a8ae008106d6696a8c4d Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Fri, 7 Feb 2014 22:27:11 +0100 Subject: [PATCH] =?UTF-8?q?Listing=20des=20communaut=C3=A9s,=20d=C3=A9marr?= =?UTF-8?q?age=20du=20coeur=20de=20l'application,=20avec=20de=20le=20la=20?= =?UTF-8?q?sauvegarde=20au=20format=20JSON?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- res/ui/addAccountDialog.ui | 2 +- res/ui/mainwindow.ui | 15 ++++++++-- src/cutecoin/__init__.py | 5 ++-- src/cutecoin/core/__init__.py | 30 +++++++++++++++++++ src/cutecoin/core/appData.py | 29 ++++++++++++++++++ src/cutecoin/core/config.py | 12 ++++++++ src/cutecoin/gui/addAccountDialog.py | 14 +++++---- src/cutecoin/gui/addCommunityDialog.py | 2 +- src/cutecoin/gui/mainWindow.py | 22 +++++++++++--- src/cutecoin/models/__init__.py | 0 .../models/account/communities/listModel.py | 4 +-- .../models/account/communities/treeModel.py | 2 ++ .../models/account/wallets/__init__.py | 15 ++++++++++ .../models/{coin.py => coin/__init__.py} | 0 src/cutecoin/models/community/__init__.py | 3 +- .../__init__.py} | 0 .../models/{wallet.py => wallet/__init__.py} | 0 17 files changed, 136 insertions(+), 19 deletions(-) create mode 100644 src/cutecoin/core/__init__.py create mode 100644 src/cutecoin/core/appData.py create mode 100644 src/cutecoin/core/config.py create mode 100644 src/cutecoin/models/__init__.py create mode 100644 src/cutecoin/models/account/wallets/__init__.py rename src/cutecoin/models/{coin.py => coin/__init__.py} (100%) rename src/cutecoin/models/{transaction.py => transaction/__init__.py} (100%) rename src/cutecoin/models/{wallet.py => wallet/__init__.py} (100%) diff --git a/res/ui/addAccountDialog.ui b/res/ui/addAccountDialog.ui index 807ffccb..87f25ce7 100644 --- a/res/ui/addAccountDialog.ui +++ b/res/ui/addAccountDialog.ui @@ -61,7 +61,7 @@ </property> <layout class="QVBoxLayout" name="verticalLayout_3"> <item> - <widget class="QTableView" name="communitiesTable"/> + <widget class="QListView" name="communitiesList"/> </item> <item> <layout class="QHBoxLayout" name="horizontalLayout_3"> diff --git a/res/ui/mainwindow.ui b/res/ui/mainwindow.ui index c9c3e646..c6ab23c0 100644 --- a/res/ui/mainwindow.ui +++ b/res/ui/mainwindow.ui @@ -14,7 +14,14 @@ <string notr="true">CuteCoin</string> </property> <widget class="QWidget" name="centralwidget"> - <layout class="QHBoxLayout" name="horizontalLayout_2"> + <layout class="QVBoxLayout" name="verticalLayout_6"> + <item> + <widget class="QLabel" name="accountNameLabel"> + <property name="text"> + <string>Please select an account</string> + </property> + </widget> + </item> <item> <widget class="QFrame" name="actionsFrame"> <property name="frameShape"> @@ -26,8 +33,11 @@ <layout class="QVBoxLayout" name="verticalLayout"> <item> <widget class="QTabWidget" name="tabWidget"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="currentIndex"> - <number>0</number> + <number>2</number> </property> <widget class="QWidget" name="walletsTab"> <attribute name="title"> @@ -153,6 +163,7 @@ </property> <addaction name="actionChange_account"/> <addaction name="actionAdd_account"/> + <addaction name="separator"/> </widget> <widget class="QMenu" name="menuEdit"> <property name="title"> diff --git a/src/cutecoin/__init__.py b/src/cutecoin/__init__.py index 16edd0be..baa65356 100644 --- a/src/cutecoin/__init__.py +++ b/src/cutecoin/__init__.py @@ -6,11 +6,12 @@ Created on 1 févr. 2014 import sys from PyQt5.QtWidgets import QApplication, QDialog from cutecoin.gui.mainWindow import MainWindow -from cutecoin.models.account import Account +from cutecoin.core import Core if __name__ == '__main__': app = QApplication(sys.argv) - window = MainWindow() + core = Core(sys.argv) + window = MainWindow(core) window.show() sys.exit(app.exec_()) pass \ No newline at end of file diff --git a/src/cutecoin/core/__init__.py b/src/cutecoin/core/__init__.py new file mode 100644 index 00000000..43ea9c67 --- /dev/null +++ b/src/cutecoin/core/__init__.py @@ -0,0 +1,30 @@ +''' +Created on 1 févr. 2014 + +@author: inso +''' + +from cutecoin.core.appData import AppData +from cutecoin.core import config + +class Core(object): + + def __init__(self, argv): + ''' + Constructor + ''' + self.account = [] + self.currentAccount = None + config.parseArguments(argv) + AppData().load(self) + + def getAccounts(self): + return self.accounts + + def addAccount(self, account): + self.accounts.append(account) + self.currentAccount = account + + def delAccount(self, account): + self.accounts.remove(account) + diff --git a/src/cutecoin/core/appData.py b/src/cutecoin/core/appData.py new file mode 100644 index 00000000..11e25062 --- /dev/null +++ b/src/cutecoin/core/appData.py @@ -0,0 +1,29 @@ +''' +Created on 7 févr. 2014 + +@author: inso +''' +import json +from cutecoin.core import config + +class AppData(object): + ''' + classdocs + ''' + + + def __init__(self): + ''' + Constructor + ''' + + def load(self, core): + json_data=open(config.data['home']) + data = json.load(json_data) + json_data.close() + data['accounts'] + + + def save(self, core): + #TODO: Sauvegarde de l'état de l'application + pass \ No newline at end of file diff --git a/src/cutecoin/core/config.py b/src/cutecoin/core/config.py new file mode 100644 index 00000000..ca1ce159 --- /dev/null +++ b/src/cutecoin/core/config.py @@ -0,0 +1,12 @@ +''' +Created on 7 févr. 2014 + +@author: inso +''' + + +data = { 'home' : '~/.cutecoin'} + +def parseArguments(argv): + #TODO: Parsing d'arguments + pass \ No newline at end of file diff --git a/src/cutecoin/gui/addAccountDialog.py b/src/cutecoin/gui/addAccountDialog.py index f66916b8..9af46cdd 100644 --- a/src/cutecoin/gui/addAccountDialog.py +++ b/src/cutecoin/gui/addAccountDialog.py @@ -8,7 +8,7 @@ from PyQt5.QtWidgets import QDialog from cutecoin.gui.addCommunityDialog import AddCommunityDialog from cutecoin.models.account import Account from cutecoin.models.account.communities import Communities -from cutecoin.models.account.communities.treeModel import CommunitiesTreeModel +from cutecoin.models.account.communities.listModel import CommunitiesListModel import gnupg @@ -19,7 +19,7 @@ class AddAccountDialog(QDialog, Ui_AddAccountDialog): ''' - def __init__(self): + def __init__(self, mainWindow): ''' Constructor ''' @@ -27,6 +27,11 @@ class AddAccountDialog(QDialog, Ui_AddAccountDialog): super(AddAccountDialog, self).__init__() self.setupUi(self) self.dialog = AddCommunityDialog(self) + self.mainWindow = mainWindow + + + self.buttonBox.accepted.connect(self.mainWindow.actionAddAccount) + self.setData() def setData(self): @@ -35,14 +40,13 @@ class AddAccountDialog(QDialog, Ui_AddAccountDialog): for key in availableKeys: self.pgpkeyList.addItem(key['uids'][0]) - self.account = Account(self.pgpkeyList.currentText(), "", Communities()) def openAddCommunityDialog(self): self.dialog.setCommunities(self.account.communities) self.dialog.exec_() - def validAddCommunityDialog(self): - self.communitiesTable.setModel(CommunitiesTreeModel(self.account)) + def actionAddCommunity(self): + self.communitiesList.setModel(CommunitiesListModel(self.account)) diff --git a/src/cutecoin/gui/addCommunityDialog.py b/src/cutecoin/gui/addCommunityDialog.py index 4f5966d6..0c930213 100644 --- a/src/cutecoin/gui/addCommunityDialog.py +++ b/src/cutecoin/gui/addCommunityDialog.py @@ -21,7 +21,7 @@ class AddCommunityDialog(QDialog, Ui_AddCommunityDialog): super(AddCommunityDialog, self).__init__() self.setupUi(self) self.accountDialog = accountDialog - self.buttonBox.accepted.connect(self.accountDialog.validAddCommunityDialog) + self.buttonBox.accepted.connect(self.accountDialog.actionAddCommunity) def setCommunities(self, communities): self.communities = communities diff --git a/src/cutecoin/gui/mainWindow.py b/src/cutecoin/gui/mainWindow.py index 945cb2d6..0a1613fd 100644 --- a/src/cutecoin/gui/mainWindow.py +++ b/src/cutecoin/gui/mainWindow.py @@ -13,15 +13,29 @@ class MainWindow(QMainWindow, Ui_MainWindow): ''' - def __init__(self): + def __init__(self, core): ''' Constructor ''' # Set up the user interface from Designer. super(MainWindow, self).__init__() self.setupUi(self) + self.core = core def openAddAccountDialog(self): - dialog = AddAccountDialog() - dialog.setData() - dialog.exec_() \ No newline at end of file + self.dialog = AddAccountDialog() + self.dialog.setData() + self.dialog.exec_() + + def actionAddAccount(self): + self.core.addAccount(self.dialog.account) + + ''' + Refresh main window + When the selected account changes, all the widgets + in the window have to be refreshed + ''' + def refreshMainWindow(self): + if self.core.currentAccount != None: + #TODO: rafraichissement de la fenetre + pass diff --git a/src/cutecoin/models/__init__.py b/src/cutecoin/models/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/cutecoin/models/account/communities/listModel.py b/src/cutecoin/models/account/communities/listModel.py index 62c68739..a176eb30 100644 --- a/src/cutecoin/models/account/communities/listModel.py +++ b/src/cutecoin/models/account/communities/listModel.py @@ -10,12 +10,12 @@ class CommunitiesListModel(QAbstractListModel): ''' A Qt abstract item model to display communities in a tree ''' - def __init__(self, communities, parent=None): + def __init__(self, account, parent=None): ''' Constructor ''' super(CommunitiesListModel, self).__init__(parent) - self.communities = communities + self.communities = account.communities def rowCount(self ,parent): diff --git a/src/cutecoin/models/account/communities/treeModel.py b/src/cutecoin/models/account/communities/treeModel.py index f375b6ef..13988dd7 100644 --- a/src/cutecoin/models/account/communities/treeModel.py +++ b/src/cutecoin/models/account/communities/treeModel.py @@ -9,6 +9,8 @@ from cutecoin.models.account.communities.itemModel import CommunitiesItemModel from cutecoin.models.community.itemModel import CommunityItemModel from cutecoin.models.node.itemModel import MainNodeItem, NodeItem +#TODO: Use it somewhere or remove it from the code + class CommunitiesTreeModel(QAbstractItemModel): ''' A Qt abstract item model to display communities in a tree diff --git a/src/cutecoin/models/account/wallets/__init__.py b/src/cutecoin/models/account/wallets/__init__.py new file mode 100644 index 00000000..2323764d --- /dev/null +++ b/src/cutecoin/models/account/wallets/__init__.py @@ -0,0 +1,15 @@ +''' +Created on 7 févr. 2014 + +@author: inso +''' + +class Wallets(object): + ''' + classdocs + ''' + def __init__(self): + ''' + Constructor + ''' + diff --git a/src/cutecoin/models/coin.py b/src/cutecoin/models/coin/__init__.py similarity index 100% rename from src/cutecoin/models/coin.py rename to src/cutecoin/models/coin/__init__.py diff --git a/src/cutecoin/models/community/__init__.py b/src/cutecoin/models/community/__init__.py index e6aa91d1..4dd21146 100644 --- a/src/cutecoin/models/community/__init__.py +++ b/src/cutecoin/models/community/__init__.py @@ -23,8 +23,7 @@ class Community(object): Listing members of a community ''' - # TODO : Try connecting with nodes of the list - # if the first fails + #TODO: Try connecting with nodes of the list if the first fails # Maybe create a method ucoin.settings['server'] = self.knowNodes[0].server ucoin.settings['port'] = self.knowNodes[0].port diff --git a/src/cutecoin/models/transaction.py b/src/cutecoin/models/transaction/__init__.py similarity index 100% rename from src/cutecoin/models/transaction.py rename to src/cutecoin/models/transaction/__init__.py diff --git a/src/cutecoin/models/wallet.py b/src/cutecoin/models/wallet/__init__.py similarity index 100% rename from src/cutecoin/models/wallet.py rename to src/cutecoin/models/wallet/__init__.py -- GitLab