void SelectiveSyncTreeView::recursiveInsert(QTreeWidgetItem* parent, QStringList pathTrail, QString path, qint64 size) { QFileIconProvider prov; QIcon folderIcon = prov.icon(QFileIconProvider::Folder); if (pathTrail.size() == 0) { if (path.endsWith('/')) { path.chop(1); } parent->setToolTip(0, path); parent->setData(0, Qt::UserRole, path); } else { SelectiveSyncTreeViewItem *item = static_cast<SelectiveSyncTreeViewItem*>(findFirstChild(parent, pathTrail.first())); if (!item) { item = new SelectiveSyncTreeViewItem(parent); if (parent->checkState(0) == Qt::Checked || parent->checkState(0) == Qt::PartiallyChecked) { item->setCheckState(0, Qt::Checked); foreach(const QString &str , _oldBlackList) { if (str == path || str == QLatin1String("/")) { item->setCheckState(0, Qt::Unchecked); break; } else if (str.startsWith(path)) { item->setCheckState(0, Qt::PartiallyChecked); } } } else if (parent->checkState(0) == Qt::Unchecked) {
static void recursiveInsert(QTreeWidgetItem *parent, QStringList pathTrail, QString path) { QFileIconProvider prov; QIcon folderIcon = prov.icon(QFileIconProvider::Folder); if (pathTrail.size() == 0) { if (path.endsWith('/')) { path.chop(1); } parent->setToolTip(0, path); parent->setData(0, Qt::UserRole, path); } else { QTreeWidgetItem *item = findFirstChild(parent, pathTrail.first()); if (!item) { item = new QTreeWidgetItem(parent); item->setIcon(0, folderIcon); item->setText(0, pathTrail.first()); item->setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator); } pathTrail.removeFirst(); recursiveInsert(item, pathTrail, path); } }