Exemplo n.º 1
0
void dragTarget::recursivePopulate ( QTreeWidgetItem *folder ) //questa funzione è molto simile a quella precedente a parte qualche differenza per la ricorsione
{
  QString folderPath = folder -> text ( 1 ) + folder -> text ( 0 );
  //QMessageBox::information(this, "DEBUG", folderPath);
  QDir folderDir ( folderPath );
  QStringList folderEntries;

  /**QDir::Filters filtri = sourceView -> filters();
  if(filtri.testFlag(QDir::Hidden) == true) folderEntries =  folderDir.entryList (QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Hidden);
  else folderEntries =  folderDir.entryList ( QDir::NoDotAndDotDot | QDir::AllDirs ); //elenchiamo le cartelle figlie**/
  if(sourceView -> hiddenShown() == true )
    folderEntries =  folderDir.entryList (QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Hidden);
  else
    folderEntries =  folderDir.entryList ( QDir::NoDotAndDotDot | QDir::AllDirs ); //elenchiamo le cartelle figlie
  //scansione delle cartelle
  QString joint = folderEntries.join ( " " );
  for ( int i = 0; i < folderEntries.size(); i++ )
  {
    QTreeWidgetItem *child = new QTreeWidgetItem ( folder );
    child -> setText ( 0, folderEntries[i] );
    child -> setText ( 1, folderPath+"/" );
    child -> setText ( 2, "inode/directory" );
    child -> setIcon ( 0, KIcon ( "inode-directory" ) );
    recursivePopulate ( child );
  }
  /**if(filtri.testFlag(QDir::Hidden) == true) folderEntries =  folderDir.entryList (  QDir::NoDotAndDotDot | QDir::Files | QDir::Hidden);
  else folderEntries =  folderDir.entryList ( QDir::NoDotAndDotDot | QDir::Files ); //elenchiamo i file figli**/
  if(sourceView -> hiddenShown() == true )
    folderEntries =  folderDir.entryList (  QDir::NoDotAndDotDot | QDir::Files | QDir::Hidden);
  else
    folderEntries =  folderDir.entryList ( QDir::NoDotAndDotDot | QDir::Files ); //elenchiamo i file figli
  for ( int i = 0; i < folderEntries.size(); i++ )
  {
    QTreeWidgetItem *child = new QTreeWidgetItem ( folder );
    child -> setText ( 0, folderEntries[i] );
    child -> setText ( 1, folderPath +"/" );
    //scriviamo le informazioni sulla dimensione
    QFile sizeInfo ( child -> text ( 1 ) + child -> text ( 0 ) );
    child -> setText ( 3, KLocale("").formatByteSize(sizeInfo.size())); //usiamo la funzione della classe rar per la conversione della dimensione
    child -> setTextAlignment ( 3, Qt::AlignRight | Qt::AlignVCenter );
    //-----------------------------------------------------//
    //-------troviamo e impostiamo l'icona grazie al mime ricavato-----//
    //speziamo il nome del file per ricavare il mime
    QString mime = KMimeType::findByUrl(KUrl(folderEntries[i])) -> iconName(); ///fileItem.iconName();
    child -> setIcon ( 0, KIcon ( mime ) ); //se sono riuscito a ricavare il mime setto l'icona
    child -> setText ( 2, KMimeType::findByUrl(KUrl(folderEntries[i])) -> name() ); //scrivo il mime nella colonna appropriata
    //----------------------------------------------------------------------//
  }
}
Exemplo n.º 2
0
void dragTarget::retrieveChildren ( QTreeWidgetItem *rootItem ) //si preoccupa di allocare tutti i figli a partire dall'elemento passato
{
  QString rootPath = rootItem -> text ( 1 ) + rootItem -> text ( 0 ); //percorso completo del file
  QDir rootDir ( rootPath );
  //scansione separata, una per le directory e l'altra per i figli
  QStringList rootEntries;
  ///QDir::Filters filtri = sourceView -> filters();
  /**if(filtri.testFlag(QDir::Hidden) == true) rootEntries = rootDir.entryList (QDir::NoDotAndDotDot | QDir::AllDirs| QDir::Hidden);
  else rootEntries = rootDir.entryList ( QDir::NoDotAndDotDot |  QDir::AllDirs); //elenchiamo le cartelle figlie**/
  if(sourceView -> hiddenShown() == true)
    rootEntries = rootDir.entryList (QDir::NoDotAndDotDot | QDir::AllDirs| QDir::Hidden);
  else
    rootEntries = rootDir.entryList ( QDir::NoDotAndDotDot |  QDir::AllDirs); //elenchiamo le cartelle figlie
  for ( int i = 0; i < rootEntries.size(); i++ )
  {
    QTreeWidgetItem *child = new QTreeWidgetItem ( rootItem );
    child -> setText ( 0, rootEntries[i] );
    child -> setText ( 1, rootPath +"/" );
    child -> setText ( 2, "inode/directory" );
    child -> setIcon ( 0, KIcon ( "inode-directory" ) );
    recursivePopulate ( child );
  }
  /**if(filtri.testFlag(QDir::Hidden) == true) rootEntries = rootDir.entryList ( QDir::NoDotAndDotDot | QDir::Files |  QDir::Hidden);
  else rootEntries = rootDir.entryList (QDir::NoDotAndDotDot | QDir::Files); //elenchiamo le cartelle figlie**/
  if(sourceView ->hiddenShown() == true)
    rootEntries = rootDir.entryList ( QDir::NoDotAndDotDot | QDir::Files |  QDir::Hidden);
  else
    rootEntries = rootDir.entryList (QDir::NoDotAndDotDot | QDir::Files); //elenchiamo le cartelle figlie
  for ( int i = 0; i < rootEntries.size(); i++ )
  {
    QTreeWidgetItem *child = new QTreeWidgetItem ( rootItem );
    child -> setText ( 0, rootEntries[i] );
    child -> setText ( 1, rootPath +"/" );
    //scriviamo le informazioni sulla dimensione
    QFile sizeInfo ( child -> text ( 1 ) + child -> text ( 0 ) );
    child -> setText ( 3, KLocale("").formatByteSize(sizeInfo.size()) ); //usiamo la funzione della classe rar per la conversione della dimensione
    child -> setTextAlignment ( 3, Qt::AlignRight | Qt::AlignVCenter );
    //-----------------------------------------------------//
    //-------troviamo e impostiamo l'icona grazie al mime ricavato-----//
    //speziamo il nome del file per ricavare il mime
    //----------------------------------------------------------------------//
    QString mime = KMimeType::findByUrl(KUrl(rootEntries[i])) -> iconName();///fileItem.iconName();
    child -> setIcon ( 0, KIcon ( mime ) ); //se sono riuscito a ricavare il mime setto l'icona
    child -> setText ( 2, KMimeType::findByUrl(KUrl(rootEntries[i])) -> name() ); //scrivo il mime nella colonna appropriata
  }

}
Exemplo n.º 3
0
Game::Game(void)
{
	// Build the tree:
	auto top=tree_.begin();

	PositionedCurl child;

	// Add the root node:
	auto root = tree_.insert(top, child);

	// Add children:
	recursivePopulate(root);
	/*
	auto child2 = tree_.append_child(root, child);
	auto child3 = tree_.append_child(child2, child);
	auto child4 = tree_.append_child(child3, child);
	*/
}
Exemplo n.º 4
0
void Game::recursivePopulate(CurlTree::iterator & it)
{
	if(tree_.depth(it)>4)
	{
		return;
	}

	for(int i=0; i<3; i++)
	{
		if(rand() % 5 == 0)
		{
			continue;
		}

		float randomAngle = distribution(engine);
		PositionedCurl p(randomAngle*0.9f, /*rand() % 2 == 0 ? */Curl::Direction::Clockwise/* :Curl::Direction::AntiClockwise*/);
		CurlTree::iterator ci = tree_.append_child(it, p);
		recursivePopulate(ci);
	}
}