mirror of
https://github.com/leozide/leocad
synced 2024-12-26 21:58:44 +01:00
Changed parts search to be just a simple substring search.
This commit is contained in:
parent
7d30c9bc88
commit
b1ed33ac3f
4 changed files with 37 additions and 11 deletions
|
@ -1887,13 +1887,10 @@ bool lcPiecesLibrary::PieceInCategory(PieceInfo* Info, const String& CategoryKey
|
||||||
|
|
||||||
void lcPiecesLibrary::GetCategoryEntries(int CategoryIndex, bool GroupPieces, lcArray<PieceInfo*>& SinglePieces, lcArray<PieceInfo*>& GroupedPieces)
|
void lcPiecesLibrary::GetCategoryEntries(int CategoryIndex, bool GroupPieces, lcArray<PieceInfo*>& SinglePieces, lcArray<PieceInfo*>& GroupedPieces)
|
||||||
{
|
{
|
||||||
if (gCategories[CategoryIndex].Name == "Search Results")
|
GetCategoryEntries(gCategories[CategoryIndex].Keywords, GroupPieces, SinglePieces, GroupedPieces);
|
||||||
GroupPieces = false;
|
|
||||||
|
|
||||||
SearchPieces(gCategories[CategoryIndex].Keywords, GroupPieces, SinglePieces, GroupedPieces);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcPiecesLibrary::SearchPieces(const String& CategoryKeywords, bool GroupPieces, lcArray<PieceInfo*>& SinglePieces, lcArray<PieceInfo*>& GroupedPieces)
|
void lcPiecesLibrary::GetCategoryEntries(const String& CategoryKeywords, bool GroupPieces, lcArray<PieceInfo*>& SinglePieces, lcArray<PieceInfo*>& GroupedPieces)
|
||||||
{
|
{
|
||||||
SinglePieces.RemoveAll();
|
SinglePieces.RemoveAll();
|
||||||
GroupedPieces.RemoveAll();
|
GroupedPieces.RemoveAll();
|
||||||
|
@ -1953,6 +1950,36 @@ void lcPiecesLibrary::SearchPieces(const String& CategoryKeywords, bool GroupPie
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void lcPiecesLibrary::SearchPieces(const char* Keyword, lcArray<PieceInfo*>& Pieces) const
|
||||||
|
{
|
||||||
|
Pieces.RemoveAll();
|
||||||
|
|
||||||
|
String LowerKeyword = Keyword;
|
||||||
|
LowerKeyword.MakeLower();
|
||||||
|
|
||||||
|
for (int PieceIdx = 0; PieceIdx < mPieces.GetSize(); PieceIdx++)
|
||||||
|
{
|
||||||
|
PieceInfo* Info = mPieces[PieceIdx];
|
||||||
|
|
||||||
|
char LowerName[sizeof(Info->m_strName)];
|
||||||
|
strcpy(LowerName, Info->m_strName);
|
||||||
|
strlwr(LowerName);
|
||||||
|
|
||||||
|
if (strstr(LowerName, LowerKeyword))
|
||||||
|
{
|
||||||
|
Pieces.Add(Info);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
char LowerDescription[sizeof(Info->m_strDescription)];
|
||||||
|
strcpy(LowerDescription, Info->m_strDescription);
|
||||||
|
strlwr(LowerDescription);
|
||||||
|
|
||||||
|
if (strstr(LowerDescription, LowerKeyword))
|
||||||
|
Pieces.Add(Info);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void lcPiecesLibrary::GetPatternedPieces(PieceInfo* Parent, lcArray<PieceInfo*>& Pieces) const
|
void lcPiecesLibrary::GetPatternedPieces(PieceInfo* Parent, lcArray<PieceInfo*>& Pieces) const
|
||||||
{
|
{
|
||||||
char Name[LC_PIECE_NAME_LEN];
|
char Name[LC_PIECE_NAME_LEN];
|
||||||
|
|
|
@ -130,8 +130,9 @@ public:
|
||||||
void CloseCache();
|
void CloseCache();
|
||||||
|
|
||||||
bool PieceInCategory(PieceInfo* Info, const String& CategoryKeywords) const;
|
bool PieceInCategory(PieceInfo* Info, const String& CategoryKeywords) const;
|
||||||
void SearchPieces(const String& CategoryKeywords, bool GroupPieces, lcArray<PieceInfo*>& SinglePieces, lcArray<PieceInfo*>& GroupedPieces);
|
void SearchPieces(const char* Keyword, lcArray<PieceInfo*>& Pieces) const;
|
||||||
void GetCategoryEntries(int CategoryIndex, bool GroupPieces, lcArray<PieceInfo*>& SinglePieces, lcArray<PieceInfo*>& GroupedPieces);
|
void GetCategoryEntries(int CategoryIndex, bool GroupPieces, lcArray<PieceInfo*>& SinglePieces, lcArray<PieceInfo*>& GroupedPieces);
|
||||||
|
void GetCategoryEntries(const String& CategoryKeywords, bool GroupPieces, lcArray<PieceInfo*>& SinglePieces, lcArray<PieceInfo*>& GroupedPieces);
|
||||||
void GetPatternedPieces(PieceInfo* Parent, lcArray<PieceInfo*>& Pieces) const;
|
void GetPatternedPieces(PieceInfo* Parent, lcArray<PieceInfo*>& Pieces) const;
|
||||||
|
|
||||||
void SetOfficialPieces()
|
void SetOfficialPieces()
|
||||||
|
|
|
@ -117,10 +117,8 @@ void lcQPartsTree::searchParts(const QString& searchString)
|
||||||
while (QTreeWidgetItem* Item = mSearchResultsItem->child(0))
|
while (QTreeWidgetItem* Item = mSearchResultsItem->child(0))
|
||||||
delete Item;
|
delete Item;
|
||||||
|
|
||||||
lcPiecesLibrary* library = lcGetPiecesLibrary();
|
lcArray<PieceInfo*> singleParts;
|
||||||
lcArray<PieceInfo*> singleParts, groupedParts;
|
lcGetPiecesLibrary()->SearchPieces(searchString.toLocal8Bit().data(), singleParts);
|
||||||
|
|
||||||
library->SearchPieces(searchString.toLocal8Bit().data(), false, singleParts, groupedParts);
|
|
||||||
singleParts.Sort(lcQPartsTreeSortFunc);
|
singleParts.Sort(lcQPartsTreeSortFunc);
|
||||||
|
|
||||||
for (int partIndex = 0; partIndex < singleParts.GetSize(); partIndex++)
|
for (int partIndex = 0; partIndex < singleParts.GetSize(); partIndex++)
|
||||||
|
|
|
@ -244,7 +244,7 @@ void lcQPreferencesDialog::updateParts()
|
||||||
{
|
{
|
||||||
lcArray<PieceInfo*> singleParts, groupedParts;
|
lcArray<PieceInfo*> singleParts, groupedParts;
|
||||||
|
|
||||||
library->SearchPieces(options->Categories[categoryIndex].Keywords, false, singleParts, groupedParts);
|
library->GetCategoryEntries(options->Categories[categoryIndex].Keywords, false, singleParts, groupedParts);
|
||||||
|
|
||||||
for (int partIndex = 0; partIndex < singleParts.GetSize(); partIndex++)
|
for (int partIndex = 0; partIndex < singleParts.GetSize(); partIndex++)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue