cleanup folder tree

This commit is contained in:
2019-03-06 22:26:26 +01:00
parent a02e060f9b
commit e96dd47f8c
2 changed files with 36 additions and 12 deletions
+20 -11
View File
@@ -187,14 +187,13 @@ void cMainWindow::displayData()
QStandardItem* findItem(QStandardItemModel* lpModel, QModelIndex parent, const QString& text)
{
// qDebug() << lpModel->rowCount(parent);
for(int x = 0;x < lpModel->rowCount(parent);x++)
{
// qDebug() << lpModel->data(index, Qt::UserRole+2).toString();
QModelIndex index = lpModel->index(x, 0, parent);
if(lpModel->data(index, Qt::UserRole+2).toString() == text)
{
return(lpModel->itemFromIndex(index));
}
if(lpModel->hasChildren(index))
{
@@ -220,18 +219,28 @@ void cMainWindow::cleanFolderTree(const QString& folder)
return;
QModelIndex indexSource = m_lpFolderViewModel->indexFromItem(lpItem);
qDebug() << indexSource.row();
QModelIndex indexParent = indexSource.parent();
QStandardItem* lpItem1 = m_lpFolderViewModel->itemFromIndex(indexSource);
qDebug() << lpItem1->text();
QString szFolder = folder;
QModelIndex indexFilter = m_lpFolderSortFilterProxyModel->mapFromSource(indexSource);
qDebug() << indexFilter.row();
while(indexParent.isValid() && !folder.isEmpty())
{
m_lpFolderViewModel->removeRow(indexSource.row(), indexParent);
qDebug() << lpItem->text();
if(!szFolder.contains("/"))
break;
if(indexFilter.isValid())
m_lpFolderSortFilterProxyModel->removeRow(indexFilter.row());
szFolder = szFolder.left(szFolder.lastIndexOf("/"));
indexSource = indexParent;
indexParent = indexSource.parent();
QStandardItem* lpItem = m_lpFolderViewModel->itemFromIndex(indexSource);
if(!lpItem)
break;
if(m_pictureList.hasPath(lpItem->data(Qt::UserRole+2).toString()))
break;
}
}
void cMainWindow::closeEvent(QCloseEvent *event)
+16 -1
View File
@@ -26,7 +26,22 @@ QString cThumbnailSortFilterProxyModel::filterPath()
bool cThumbnailSortFilterProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
{
if(m_szPath.isEmpty())
return(true);
QModelIndex index0 = sourceModel()->index(sourceRow, 0, sourceParent);
QString tmp = sourceModel()->data(index0, Qt::UserRole+2).toString();
return(sourceModel()->data(index0, Qt::UserRole+2).toString().startsWith(m_szPath));
QString szPath = sourceModel()->data(index0, Qt::UserRole+2).toString();
if(!szPath.startsWith(m_szPath))
return(false);
if(szPath.length() == m_szPath.length())
return(true);
if(szPath.mid(m_szPath.length(), 1) == "/")
return(true);
return(false);
}