From a7d27b44601bf187dbd291597dfb906947831681 Mon Sep 17 00:00:00 2001 From: dgelessus Date: Sat, 2 Mar 2024 19:05:27 +0100 Subject: [PATCH] Fix code that looked up tree items by their displayed text This no longer works for pages now that they might have IDs displayed. For ages it's technically still fine, but better to fix those as well to avoid unpleasant surprises later. --- src/PrpShop/Main.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/PrpShop/Main.cpp b/src/PrpShop/Main.cpp index 184b337..7b4ec0a 100644 --- a/src/PrpShop/Main.cpp +++ b/src/PrpShop/Main.cpp @@ -569,10 +569,10 @@ QPlasmaTreeItem* PrpShopMain::ensurePath(const plLocation& loc, short objType) plPageInfo* page = fResMgr.FindPage(loc); QPlasmaTreeItem* ageItem = NULL; QString ageName = st2qstr(page->getAge()); - QString pageName = st2qstr(page->getPage()); for (int i=0; itopLevelItemCount(); i++) { - if (fBrowserTree->topLevelItem(i)->text(0) == ageName) { - ageItem = (QPlasmaTreeItem*)fBrowserTree->topLevelItem(i); + auto topLevelItem = static_cast(fBrowserTree->topLevelItem(i)); + if (topLevelItem->age() == ageName) { + ageItem = topLevelItem; break; } } @@ -581,8 +581,9 @@ QPlasmaTreeItem* PrpShopMain::ensurePath(const plLocation& loc, short objType) QPlasmaTreeItem* pageItem = NULL; for (int i=0; ichildCount(); i++) { - if (ageItem->child(i)->text(0) == pageName) { - pageItem = (QPlasmaTreeItem*)ageItem->child(i); + auto child = static_cast(ageItem->child(i)); + if (child->page()->getLocation() == loc) { + pageItem = child; break; } } @@ -1076,8 +1077,9 @@ QPlasmaTreeItem* PrpShopMain::loadPage(plPageInfo* page, QString filename) // Find or create the Age folder QString ageName = st2qstr(page->getAge()); for (int i=0; itopLevelItemCount(); i++) { - if (fBrowserTree->topLevelItem(i)->text(0) == ageName) { - parent = (QPlasmaTreeItem*)fBrowserTree->topLevelItem(i); + auto topLevelItem = static_cast(fBrowserTree->topLevelItem(i)); + if (topLevelItem->age() == ageName) { + parent = topLevelItem; break; } }