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