My program is already works well but I want to add one more condition. The program opens a directory and display .h and .cpp files. But if there is a subdirectory, I can not see the .cpp and .h files inside subdirectory. Here is my code:
QFileInfoList MainWindow::getFileListFromDir(const QString &directory)
{
    QDir qdir(directory);
    QFileInfoList fileList = qdir.entryInfoList(QStringList() << "*.h"  << "*.hpp" << "*.c" << "*.cpp", QDir::Files | QDir::AllDirs
                                                                                                  | QDir::NoDotAndDotDot);
    QStringList files;
    return fileList;
}
void MainWindow::on_Browse_clicked()
{
    QString path = QFileDialog::getExistingDirectory(this, tr("Open Directory"), "/home", QFileDialog::ShowDirsOnly |
                                                                                      QFileDialog::DontResolveSymlinks);
    if(path.isEmpty())
        return;
    ui->FullPath->setText(path);
}
 void MainWindow::on_Ok_clicked()
{
    QString path = ui->FullPath->text();
    if(path.isEmpty())
        return;
    ui->tableWidget->setRowCount(0);
    QFileInfoList fileList = getFileListFromDir(path);
    int count = 0;
    foreach(const QFileInfo& file, fileList)
    { 
        count = m_ig->funcCountLines(file.filePath());
        addItemToList(file.filePath(), file.size(), count);
    }
}
				
                        
Change
getFileListFromDir()to call itself recursively for subdirs.