mirror of
https://github.com/status-im/status-desktop.git
synced 2025-02-22 11:38:57 +00:00
fix: delete qmlobjects
This commit is contained in:
parent
a6493725b6
commit
5e03575285
@ -25,8 +25,8 @@ proc newController*(status: Status): ChatController =
|
||||
result.variant = newQVariant(result.view)
|
||||
|
||||
proc delete*(self: ChatController) =
|
||||
delete self.view
|
||||
delete self.variant
|
||||
delete self.view
|
||||
|
||||
proc handleChatEvents(self: ChatController) =
|
||||
# Display already saved messages
|
||||
|
@ -27,7 +27,13 @@ QtObject:
|
||||
|
||||
proc setup(self: ChatsView) = self.QAbstractListModel.setup
|
||||
|
||||
proc delete(self: ChatsView) = self.QAbstractListModel.delete
|
||||
proc delete(self: ChatsView) =
|
||||
self.chats.delete
|
||||
self.activeChannel.delete
|
||||
for msg in self.messageList.values:
|
||||
msg.delete
|
||||
self.messageList = initTable[string, ChatMessageList]()
|
||||
self.QAbstractListModel.delete
|
||||
|
||||
proc newChatsView*(status: Status): ChatsView =
|
||||
new(result, delete)
|
||||
|
@ -18,7 +18,9 @@ QtObject:
|
||||
|
||||
proc setup(self: ChannelsList) = self.QAbstractListModel.setup
|
||||
|
||||
proc delete(self: ChannelsList) = self.QAbstractListModel.delete
|
||||
proc delete(self: ChannelsList) =
|
||||
self.chats = @[]
|
||||
self.QAbstractListModel.delete
|
||||
|
||||
proc newChannelsList*(): ChannelsList =
|
||||
new(result, delete)
|
||||
|
@ -13,6 +13,7 @@ QtObject:
|
||||
self.QObject.setup
|
||||
|
||||
proc delete*(self: ChatItemView) =
|
||||
if not self.chatMembers.isNil: self.chatMembers.delete
|
||||
self.QObject.delete
|
||||
|
||||
proc newChatItemView*(status: Status): ChatItemView =
|
||||
|
@ -20,7 +20,9 @@ QtObject:
|
||||
|
||||
proc setup(self: ChatMembersView) = self.QAbstractListModel.setup
|
||||
|
||||
proc delete(self: ChatMembersView) = self.QAbstractListModel.delete
|
||||
proc delete(self: ChatMembersView) =
|
||||
self.members = @[]
|
||||
self.QAbstractListModel.delete
|
||||
|
||||
proc newChatMembersView*(status: Status): ChatMembersView =
|
||||
new(result, delete)
|
||||
|
@ -25,8 +25,8 @@ QtObject:
|
||||
messages*: seq[Message]
|
||||
|
||||
proc delete(self: ChatMessageList) =
|
||||
self.QAbstractListModel.delete
|
||||
self.messages = @[]
|
||||
self.QAbstractListModel.delete
|
||||
|
||||
proc setup(self: ChatMessageList) =
|
||||
self.QAbstractListModel.setup
|
||||
|
@ -17,8 +17,8 @@ proc newController*(status: Status): LoginController =
|
||||
result.variant = newQVariant(result.view)
|
||||
|
||||
proc delete*(self: LoginController) =
|
||||
delete self.view
|
||||
delete self.variant
|
||||
self.variant.delete
|
||||
self.view.delete
|
||||
|
||||
proc init*(self: LoginController) =
|
||||
let nodeAccounts = self.status.accounts.openAccounts()
|
||||
|
@ -29,8 +29,9 @@ QtObject:
|
||||
self.QAbstractListModel.setup
|
||||
|
||||
proc delete*(self: LoginView) =
|
||||
self.QAbstractListModel.delete
|
||||
self.currentAccount.delete
|
||||
self.accounts = @[]
|
||||
self.QAbstractListModel.delete
|
||||
|
||||
proc newLoginView*(status: Status): LoginView =
|
||||
new(result, delete)
|
||||
|
@ -20,8 +20,8 @@ proc newController*(status: Status): NodeController =
|
||||
result.variant = newQVariant(result.view)
|
||||
|
||||
proc delete*(self: NodeController) =
|
||||
delete self.view
|
||||
delete self.variant
|
||||
delete self.view
|
||||
|
||||
proc init*(self: NodeController) =
|
||||
discard
|
||||
|
@ -21,8 +21,8 @@ proc newController*(status: Status): OnboardingController =
|
||||
result.variant = newQVariant(result.view)
|
||||
|
||||
proc delete*(self: OnboardingController) =
|
||||
delete self.view
|
||||
delete self.variant
|
||||
delete self.view
|
||||
|
||||
proc init*(self: OnboardingController) =
|
||||
let accounts = self.status.accounts.generateAddresses()
|
||||
|
@ -26,8 +26,9 @@ QtObject:
|
||||
self.QAbstractListModel.setup
|
||||
|
||||
proc delete*(self: OnboardingView) =
|
||||
self.QAbstractListModel.delete
|
||||
self.currentAccount.delete
|
||||
self.accounts = @[]
|
||||
self.QAbstractListModel.delete
|
||||
|
||||
proc newOnboardingView*(status: Status): OnboardingView =
|
||||
new(result, delete)
|
||||
|
@ -23,8 +23,8 @@ proc newController*(status: Status): ProfileController =
|
||||
result.variant = newQVariant(result.view)
|
||||
|
||||
proc delete*(self: ProfileController) =
|
||||
delete self.view
|
||||
delete self.variant
|
||||
delete self.view
|
||||
|
||||
proc init*(self: ProfileController, account: Account) =
|
||||
let profile = account.toProfileModel()
|
||||
|
@ -10,6 +10,7 @@ QtObject:
|
||||
self.QObject.setup
|
||||
|
||||
proc delete*(self: ProfileView) =
|
||||
self.mailserversList.delete
|
||||
self.QObject.delete
|
||||
|
||||
proc newProfileView*(): ProfileView =
|
||||
|
@ -20,6 +20,9 @@ QtObject:
|
||||
self.QObject.setup
|
||||
|
||||
proc delete*(self: ProfileView) =
|
||||
if not self.mailserversList.isNil: self.mailserversList.delete
|
||||
if not self.contactList.isNil: self.contactList.delete
|
||||
if not self.profile.isNil: self.profile.delete
|
||||
self.QObject.delete
|
||||
|
||||
proc newProfileView*(status: Status): ProfileView =
|
||||
|
@ -17,7 +17,9 @@ QtObject:
|
||||
|
||||
proc setup(self: ContactList) = self.QAbstractListModel.setup
|
||||
|
||||
proc delete(self: ContactList) = self.QAbstractListModel.delete
|
||||
proc delete(self: ContactList) =
|
||||
self.contacts = @[]
|
||||
self.QAbstractListModel.delete
|
||||
|
||||
proc newContactList*(): ContactList =
|
||||
new(result, delete)
|
||||
|
@ -13,7 +13,9 @@ QtObject:
|
||||
|
||||
proc setup(self: MailServersList) = self.QAbstractListModel.setup
|
||||
|
||||
proc delete(self: MailServersList) = self.QAbstractListModel.delete
|
||||
proc delete(self: MailServersList) =
|
||||
self.mailservers = @[]
|
||||
self.QAbstractListModel.delete
|
||||
|
||||
proc newMailServersList*(): MailServersList =
|
||||
new(result, delete)
|
||||
|
@ -27,8 +27,8 @@ proc newController*(status: Status): WalletController =
|
||||
result.variant = newQVariant(result.view)
|
||||
|
||||
proc delete*(self: WalletController) =
|
||||
delete self.view
|
||||
delete self.variant
|
||||
delete self.view
|
||||
|
||||
proc init*(self: WalletController) =
|
||||
self.status.wallet.initAccounts()
|
||||
|
@ -23,6 +23,10 @@ QtObject:
|
||||
totalFiatBalance: string
|
||||
|
||||
proc delete(self: WalletView) =
|
||||
self.accounts.delete
|
||||
self.currentAssetList.delete
|
||||
self.currentAccount.delete
|
||||
self.currentTransactions.delete
|
||||
self.QAbstractListModel.delete
|
||||
|
||||
proc setup(self: WalletView) =
|
||||
|
@ -21,8 +21,8 @@ QtObject:
|
||||
proc setup(self: AccountList) = self.QAbstractListModel.setup
|
||||
|
||||
proc delete(self: AccountList) =
|
||||
self.QAbstractListModel.delete
|
||||
self.accounts = @[]
|
||||
self.QAbstractListModel.delete
|
||||
|
||||
proc newAccountList*(): AccountList =
|
||||
new(result, delete)
|
||||
|
@ -16,8 +16,8 @@ QtObject:
|
||||
proc setup(self: AssetList) = self.QAbstractListModel.setup
|
||||
|
||||
proc delete(self: AssetList) =
|
||||
self.QAbstractListModel.delete
|
||||
self.assets = @[]
|
||||
self.QAbstractListModel.delete
|
||||
|
||||
proc newAssetList*(): AssetList =
|
||||
new(result, delete)
|
||||
|
@ -25,8 +25,8 @@ QtObject:
|
||||
proc setup(self: TransactionList) = self.QAbstractListModel.setup
|
||||
|
||||
proc delete(self: TransactionList) =
|
||||
self.QAbstractListModel.delete
|
||||
self.transactions = @[]
|
||||
self.QAbstractListModel.delete
|
||||
|
||||
proc newTransactionList*(): TransactionList =
|
||||
new(result, delete)
|
||||
|
@ -27,10 +27,7 @@ proc mainProc() =
|
||||
let engine = newQQmlApplicationEngine()
|
||||
let signalController = signals.newController(app)
|
||||
|
||||
defer: # Defer will run this just before mainProc() function ends
|
||||
app.delete()
|
||||
engine.delete()
|
||||
signalController.delete()
|
||||
|
||||
|
||||
# We need this global variable in order to be able to access the application
|
||||
# from the non-closure callback passed to `libstatus.setSignalEventCallback`
|
||||
@ -59,9 +56,20 @@ proc mainProc() =
|
||||
var onboarding = onboarding.newController(status)
|
||||
|
||||
engine.setRootContextProperty("loginModel", login.variant)
|
||||
|
||||
engine.setRootContextProperty("onboardingModel", onboarding.variant)
|
||||
|
||||
defer:
|
||||
error "TODO: if user is logged in, logout"
|
||||
engine.delete()
|
||||
app.delete()
|
||||
signalController.delete()
|
||||
login.delete()
|
||||
onboarding.delete()
|
||||
wallet.delete()
|
||||
chat.delete()
|
||||
profile.delete()
|
||||
|
||||
|
||||
# Initialize only controllers whose init functions
|
||||
# do not need a running node
|
||||
proc initControllers() =
|
||||
|
@ -36,7 +36,9 @@ QtObject:
|
||||
discard
|
||||
|
||||
proc delete*(self: SignalsController) =
|
||||
self.variant.delete
|
||||
self.QObject.delete
|
||||
self.signalSubscribers = initTable[SignalType, seq[SignalSubscriber]]()
|
||||
|
||||
proc addSubscriber*(self: SignalsController, signalType: SignalType, subscriber: SignalSubscriber) =
|
||||
if not self.signalSubscribers.hasKey(signalType):
|
||||
|
Loading…
x
Reference in New Issue
Block a user