// Delete focused folder in the file tree (archetype, package, world). void CMainWindow::DeleteFolder() { QTreeWidgetItem *pCurrentItem = ui->projectsTreeWidget->currentItem(); CFolder *pFolder = pCurrentItem->data(0, Qt::UserRole).value<CFolder*>(); SAM_ASSERT(pFolder && pFolder->GetDir().exists(), "Current directory doesn't exist!"); QString sMessage = "Are you sure you want to delete "; if(pCurrentItem->parent() == m_pTreePackages) { sMessage += "the package '"; } else { sMessage += "the folder '"; } // Ask the user to be sure. switch(CSamBox::Message(sMessage + pFolder->GetDir().dirName() + "' ?")) { case QMessageBox::No: case QMessageBox::Cancel: return; } // Delete the content. pFolder->GetDir().removeRecursively(); delete pCurrentItem; SAM_DELETE pFolder; }
void CMainWindow::OnFolderSelected(QTreeWidgetItem *p_pItem, int) { //ui->folderViewer->SetFolder(p_pItem->data(0, Qt::UserRole).value<CFolder*>()); CFolder *pFolder = p_pItem->data(0, Qt::UserRole).value<CFolder*>(); QString sPath = pFolder->GetDir().absolutePath(); QFileSystemModel *pModel = (QFileSystemModel *)ui->folderViewer->model(); pModel->setRootPath(sPath); ui->folderViewer->setRootIndex(pModel->index(sPath)); }