bool Dialog::get_all_file_linenum(const char* dir_or_file)
{
line_num=0;black_num=0;
std::string d(dir_or_file);
QString s(d.c_str());
QDir p(s);
if (!p.exists(s))
return false;
if(p.exists(s))
{
p.setFilter(QDir::Files|QDir::Dirs);
p.setSorting(QDir::DirsFirst);
list=p.entryInfoList();
ui->progressBar->setRange(0,list.size()-1);
ui->progressBar->setValue(0);
for(int i=0;i<list.size();i++)
{
QFileInfo fi=list.at(i);
ui->progressBar->setValue(i);
if(fi.fileName()=="."||fi.fileName()=="..")
{
i++;
continue;
}
bool bisDir=fi.isDir();
if(bisDir)
{
++file_num;
//sprintf(cur_info, "'%s':\t\t%d lines\r\n",fi.path().toAscii().data(),line_num);
get_all_file_linenum(fi.filePath().toAscii().data());
}
else
{
++file_num;
line_num=get_file_line_num(fi.filePath().toAscii().data());
memset(cur_info,0,MAX_LENGTH_ONE_LINE);
sprintf(cur_info,"'%s':\t\t%d lines",fi.path().toAscii().data(),line_num);
detail_info += cur_info;
black_num=get_file_black_num(fi.filePath().toAscii().data());
memset(cur_info,0,MAX_LENGTH_ONE_LINE);
sprintf(cur_info,",%d blacklines",black_num);
detail_info += cur_info;
note_num=get_file_black_num(fi.filePath().toAscii().data());
memset(cur_info,0,MAX_LENGTH_ONE_LINE);
sprintf(cur_info,",%d notelines\n",note_num);
detail_info += cur_info;
total_num +=line_num;
}
}
}
return true;
}