BIM: Fixed online search mode - fixes #17353

This commit is contained in:
Yorik van Havre
2024-10-22 13:23:19 +02:00
committed by Yorik van Havre
parent 954bae725e
commit 4d23ef8e4c

View File

@@ -383,25 +383,30 @@ class BIM_Library_TaskPanel:
import PartGui
from PySide import QtGui
def add_line(f, dp):
if self.isAllowed(f) and (text.lower() in f.lower()):
it = QtGui.QStandardItem(f)
it.setToolTip(os.path.join(dp, f))
self.filemodel.appendRow(it)
if f.endswith(".fcstd"):
it.setIcon(QtGui.QIcon(":icons/freecad-doc.png"))
elif f.endswith(".ifc"):
it.setIcon(QtGui.QIcon(":/icons/IFC.svg"))
else:
it.setIcon(QtGui.QIcon(":/icons/Part_document.svg"))
self.form.tree.setModel(self.filemodel)
self.filemodel.clear()
if self.form.checkOnline.isChecked():
res = self.getOfflineLib(structured=True)
for i in range(len(res[0])):
add_line(res[0][i], res[2][i])
else:
res = os.walk(self.librarypath)
for dp, dn, fn in res:
for f in fn:
if self.isAllowed(f) and (text.lower() in f.lower()):
for dp, dn, fn in res:
for f in fn:
if not os.path.isdir(os.path.join(dp, f)):
it = QtGui.QStandardItem(f)
it.setToolTip(os.path.join(dp, f))
self.filemodel.appendRow(it)
if f.endswith(".fcstd"):
it.setIcon(QtGui.QIcon(":icons/freecad-doc.png"))
elif f.endswith(".ifc"):
it.setIcon(QtGui.QIcon(":/icons/IFC.svg"))
else:
it.setIcon(QtGui.QIcon(":/icons/Part_document.svg"))
add_line(f, dp)
self.modelmode = 0
def getFilters(self):
@@ -476,16 +481,16 @@ class BIM_Library_TaskPanel:
dn = []
dp = []
for k, v in d.items():
if isinstance(v, dict):
if isinstance(v, dict) and v:
fn2, dn2, dp2 = addDir(v, root + "/" + k)
fn.extend(fn2)
dn.extend(dn2)
dp.extend(dp2)
else:
fn += k
dn += root
dp += root + "/" + k
return dp, dn, fn
elif v:
fn.append(k)
dn.append(root)
dp.append(root)
return fn, dn, dp
templibfile = os.path.join(TEMPLIBPATH, LIBINDEXFILE)
if not os.path.exists(templibfile):