On 6/22/22 02:18, Thomas Baumgart via KMyMoney-devel wrote:
On Dienstag, 21. Juni 2022 22:46:35 CEST Jack via KMyMoney-devel wrote:
I'm trying to find an way to easily switch between an investment
account and it's brokerage account. I have figured out how to test for
the two types of accounts (testing the .accountType() or looking for "
(Brokerage)" at the end of the name.) However, I don't see any way to
look up an account by name. Does this actually require looping through
all accounts and testing if the name matches?
In master you can do this:
QString accountName;
auto account =
MyMoneyFile::instance()->accountsModel()->itemByName(accountName);
or if you want to stick with the model type access to the data:
auto idx =
MyMoneyFile::instance()->accountsModel()->indexByName(accountName);
auto name = idx.data(eMyMoney::Model::AccountNameRole).toString();
which in fact does the looping for you in AccountsModel::indexListByName().
Hope that helps.
Thanks. Either of those is shorter than what I came up with, although
mine does seem to work (looking with gdb.)
My current problem is that I'm trying to add a "go to brokerage" line
after the "go to account" and "go to payee" menu choices, but it is not
appearing in any of the menus (either main menu or context menu.) I
can't find anywhere in the code where either of the old ones appears
where I haven't added the new one, so I don't know what I am missing.
Jack