예제 #1
0
void FindFilesDialog::setupDirectory()
{
	setDirName(QDir::home().absolutePath());

	// use a filter for 'find in files' dialog
	KileDocument::Extensions *extensions = m_ki->extensions();
	QString filter = extensions->latexDocumentFileFilter() + '\n'
									 + extensions->latexPackageFileFilter() + '\n'
									 + extensions->bibtexFileFilter() + '\n'
									 + extensions->metapostFileFilter() + '\n'
									 + "*|" + i18n("All Files");
	setFilter(filter);
}
예제 #2
0
uint8_t	FileNameRecovery::deletedFileNames(uint8_t * tab,
					   uint64_t content_addr,
					   Node * parent,
					   Directory * inode_dir,
					   DirEntry * dir)
{
  DirEntry *	del_dirent = new DirEntry;
  std::string	name;
  Node *	new_node = NULL;
  inodes_t *	_inter = new (inodes_t);
  uint8_t	valid = 0, tmp;

  for (uint64_t pos = content_addr;
       pos < (dir->entry_length() + content_addr - dir->next() - 12); )
    {

      del_dirent->setDir((dir_entry_v2 *)(tab + pos));
      tmp = valid_entry(del_dirent);

      valid = (valid == 2 ? valid : tmp);
      if (!tmp)
	{
	  if (inode_dir->i_list()->find(del_dirent->inode_value()))
	    {
	      new_node = inode_dir->createNewNode(0, parent,
						  setDirName(del_dirent, tab, pos),
						  _inter);
	      pos += del_dirent->next();
	      new_node->setDeleted();
	      continue ;
	    }
	  if (!(name = setDirName(del_dirent, tab, pos)).empty())
	    {
	      Directory * inode_d = new Directory(inode_dir);

#ifdef DIR_DEBUG
	      if (name.compare(std::string("os-prober.VzowBI")) == 0)
		std::cout << "matched deleted" << std::endl;
	      std::cout << "\tdel file : " << name << "\tcontent_addr : "
			<< content_addr << std::endl;
#endif

	      if ((new_node = retrieve_inode(inode_d, del_dirent, parent, name,
					     _inter)))
		{
		  if (((_inter->file_mode & __IFMT) == __IFDIR)
		      && (del_dirent->file_type_v2() == DirEntry::_DIRECTORY))
		    {
		      if (!inode_dir->isAllocated(dir->inode_value(), _journal->extfs()->vfile()))
			{
			  new_node->setDeleted();
			  Directory * new_dir = new Directory(inode_dir);
			  new_dir->dirContent(new_node, _inter, __addr,
					      del_dirent->inode_value());
			  delete new_dir;
			}
		    }
		}
	      delete inode_d;
	    }

	  pos += del_dirent->next();
	  new_node = NULL;
	}
      else
	pos += 4;
      if (pos >= inode_dir->SB()->block_size() 
	  || pos >= (dir->entry_length() + content_addr))
	break ;
    }
  delete _inter;
  delete del_dirent;
  return valid;
}