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

Reply via email to