question on finding account id from name

Jack ostroffjh at users.sourceforge.net
Wed Jun 22 18:26:52 BST 2022


On 2022.06.22 12:07, Thomas Baumgart via KMyMoney-devel wrote:
> On Mittwoch, 22. Juni 2022 16:10:26 CEST Jack via KMyMoney-devel  
> wrote:
> 
> > 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.
> 
> Did you increase the version of the .rc menu file? Something that I  
> also run into myself.
I confirm that was the problem, so my changes now show up in the  
appropriate menus.
> 
> OTOH, this could be much different in 5.1.  I am not working on 5.1  
> anymore. Concentrate on master.
> 
> In the meantime I came across MyMoneyAccount::brokerageName() that  
> returns that constructed name for the brokerage account for an  
> account of type Investment. Not sure if that already exists in 5.1  
> though.

This now works, but I've got some tuning to do before I submit as an  
MR.  I think it's worth putting into 5.1 before adapting it to the new  
ledger in master.

Jack


More information about the KMyMoney-devel mailing list