Exemplo n.º 1
0
bool UiTools::rmDirRecursive(QString path)
{
    bool isFullSuccess = true;

    QDir dir(path);

    if(dir.exists())
    {

        QStringListIterator filesIterator(dir.entryList(QDir::Files | QDir::Hidden | QDir::System));
        while (filesIterator.hasNext())
            isFullSuccess = dir.remove(filesIterator.next()) && isFullSuccess;

        QStringListIterator dirsIterator(dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot));
        while (dirsIterator.hasNext())
            isFullSuccess = rmDirRecursive(dir.filePath(dirsIterator.next())) && isFullSuccess;

        QString name = dir.dirName();
        isFullSuccess = isFullSuccess && dir.cdUp() && dir.rmdir(name);
    }

    return isFullSuccess;
}
Exemplo n.º 2
0
//-------------------------------------------------------------------------------
//
//-------------------------------------------------------------------------------
void tFilesTreeNodeBuilder::AppendDirContents( tFilesTreeItem* pParent, const QString& baseDir, unsigned long& itemCount, const bool translateNames )
{
    // Sort files and directories by name
    QDir dir( baseDir );
    QFileInfoList directories = dir.entryInfoList( QDir::AllDirs | QDir::NoDotAndDotDot, QDir::Name );
    QFileInfoList files = dir.entryInfoList( QDir::Files );

    // Append directories and subdirectories 
    QListIterator<QFileInfo> directoriesIterator( directories );
    while ( directoriesIterator.hasNext() )
    {
        if ( m_Quit )
        {
            return;
        } 
        
        QFileInfo directoryInfo = directoriesIterator.next();

        // Skipping Navionics chart directory due to large number of folders/files.
        if ( directoryInfo.fileName().compare( "Navionic", Qt::CaseInsensitive ) == 0 )
        {
            DbgPrintf( "tFilesTreeModel::AppendDirContents: Skipping Navionics charts directory." );
            continue;
        }

        tFilesTreeItem* pDirItem;
        if ( translateNames )
        {
            pDirItem = new tFilesTreeItem( directoryInfo, TranslatedFileName( directoryInfo.fileName() ), pParent );
        }
        else
        {
            pDirItem = new tFilesTreeItem( directoryInfo, directoryInfo.fileName(), pParent );
        }
        pDirItem->SetIcon( qApp->style()->standardIcon( QStyle::SP_DirIcon ) );
        pDirItem->SetOptionsIcon( qApp->style()->standardIcon( NIT(tNOSStyle::NIT_Options) ) );

        pDirItem->SetAllowOptionsColumn( true );
        m_pRootNode->SetAllowOptionsColumn( true );

        pParent->AppendChild( pDirItem );

        itemCount++;

        AppendDirContents( pDirItem, directoryInfo.filePath(), itemCount );
    }

    // Append files from current directory
    QListIterator<QFileInfo> filesIterator( files );
    while ( filesIterator.hasNext() )
    {
        if ( m_Quit )
        {
            return;
        } 

        QFileInfo fileInfo = filesIterator.next();

        tFilesTreeItem* pFileItem;
        if ( translateNames )
        {
            pFileItem = new tFilesTreeItem( fileInfo, TranslatedFileName( fileInfo.fileName() ), pParent );
        }
        else
        {
            pFileItem = new tFilesTreeItem( fileInfo, fileInfo.fileName(), pParent );
        }
        pParent->AppendChild( pFileItem );
        
        itemCount++;
    }   
}