[ImoLUG] QtSwaret

Luca Golinelli l.golinelli@linuxtimes.net
Mer 13 Ott 2004 15:24:46 CEST


Ecco il codice che cerca il pacchetto e stampa le info sulla finestra dei 
logs...
Ho gia' anche creato l'interfaccia...
Lo comincio a provare...

// Invocata sul click del bottone CERCA

void QtSwaret::SearchPacket()
{
    // Prendo il nome del pacchetto che si vuol cercare
    QString myPacketName = EditSearchPacket->text();
    
    // Scrivo il log
    EditLogs->append("*** Sto cercando: " + myPacketName + "... ***");
    
    // Creo il processo Swaret --show
    proc = new QProcess;
    proc->addArgument("swaret");
    proc->addArgument("--show");
    proc->addArgument(myPacketName);
    
    // Connetto il processo per catturare l'output
    connect(proc, SIGNAL(readyReadStdout()), this, SLOT(ReadOutput()) );
    connect(proc, SIGNAL(processExited()), this, SLOT(ProcFinished()) );
    
    // Lancio il processo
    proc->start();
}

// Questa funzione serve per catturare l'output di Swaret

void QtSwaret::ReadOutput()
{    
    // Fino a che il processo restituisce un output 
    while(!((StdoutStr = new QString(proc->readStdout()))->isNull()))
    {  
    	// Lo scrivo nella finestra dei logs
	EditLogs->append(*StdoutStr); 
    }    
}

// Invocata alla fine del processo

void QtSwaret::ProcFinished()
{   
    // Se il processo e' terminato con errore
    if(!(proc->normalExit()))
    {
    	EditLogs->append("*** Si e' verificato un errore! ***");
    }
    // Se il processo e' terminato correttamente
    else
    {
    	EditLogs->append("*** Terminato correttamente... ***");
    }   
} // Invocata sul click del bottone CERCA

void QtSwaret::SearchPacket()
{
    // Prendo il nome del pacchetto che si vuol cercare
    QString myPacketName = EditSearchPacket->text();
    
    // Scrivo il log
    EditLogs->append("*** Sto cercando: " + myPacketName + "... ***");
    
    // Creo il processo Swaret --show
    proc = new QProcess;
    proc->addArgument("swaret");
    proc->addArgument("--show");
    proc->addArgument(myPacketName);
    
    // Connetto il processo per catturare l'output
    connect(proc, SIGNAL(readyReadStdout()), this, SLOT(ReadOutput()) );
    connect(proc, SIGNAL(processExited()), this, SLOT(ProcFinished()) );
    
    // Lancio il processo
    proc->start();
}

// Questa funzione serve per catturare l'output di Swaret

void QtSwaret::ReadOutput()
{    
    // Fino a che il processo restituisce un output 
    while(!((StdoutStr = new QString(proc->readStdout()))->isNull()))
    {  
    	// Lo scrivo nella finestra dei logs
	EditLogs->append(*StdoutStr); 
    }    
}

// Invocata alla fine del processo

void QtSwaret::ProcFinished()
{   
    // Se il processo e' terminato con errore
    if(!(proc->normalExit()))
    {
    	EditLogs->append("*** Si e' verificato un errore! ***");
    }
    // Se il processo e' terminato correttamente
    else
    {
    	EditLogs->append("*** Terminato correttamente... ***");
    }   
}
 
-- 
Luca Golinelli
ImoLUG Staff

ImoLUG - The Imola Linux User Group
http://www.imolug.org - info@imolug.org


Maggiori informazioni sulla lista Imolug