void QFrankQtSBSAManifestExportieren::run()
{
	K_mtProzess=new QProcess();
	K_mtProzess->setProcessChannelMode(QProcess::MergedChannels);
	connect(K_mtProzess,SIGNAL(finished(int)),this,SLOT(K_mtFertig(int)));
	QStringList Argumente;
	QString Datei=K_Parameter->QtBibliothekenHohlen().at(K_Dateinummer).DateinameHohlen();
	if(K_Parameter->QtBibliothekenHohlen().at(K_Dateinummer).istPlugIn())
		Datei=K_Parameter->ZielverzeichnisHohlen()+"/"+
			  K_Parameter->QtBibliothekenHohlen().at(K_Dateinummer).PlugInTypeHohlen()+"/"+Datei;
	else
		Datei=K_Parameter->ZielverzeichnisHohlen()+"/"+Datei;
	Argumente<<"-inputresource:"+Datei+";#2"
			 <<"-out:"+Datei+".manifest"
			 <<"-verbose"<<"-nologo";
	K_mtProzess->setWorkingDirectory(K_Parameter->ZielverzeichnisHohlen());
	K_mtProzess->start("\""+K_Parameter->WindowsSDKPfadHohlen()+"\\mt.exe\"",Argumente);
		
	if(!K_mtProzess->waitForStarted(5000))
	{
		K_Fehlercode=1;
		K_Fehlermeldung=trUtf8("Das Werkzeug mt.exe konnte nicht ausgeführt werden.");
		emit fertig(this);
		return;
	}
	K_Fehlercode=exec();
	emit fertig(this);
}
Example #2
0
void Programmanalisator::ProgramEinladen(QTextDocument* dok)

{
    LBL_lin.clear();
    LBL_rep.clear();
    LBL_call.clear();
    int Nstr = dok->lineCount();

    for (int i=0; i<(dok->lineCount()); i++ ) {

        QString* Kadr= new QString(dok->findBlockByLineNumber(i).text());

        int Res = processCommand(Kadr, i);

        if (Res<0) {
            QString str1=tr("Ошибка: Строка: ")+QString::number(i); // ошибка - выдадим сообщение
            errorMessage(str1);
        } else if (Res>0) {
            i=LBL_lin[I1];
            qDebug()<<"linie"<<I1;
        }

        int progress=(int)(((i+1)*100)/Nstr);
        qDebug()<<progress<<"%";
        emit Progress(progress);
        delete Kadr;
    }

    emit fertig();
}
void QFrankQtSBSAManifestBearbeiten::run()
{
	QString Dateiname=K_Parameter->QtBibliothekenHohlen().at(K_Dateinummer).DateinameHohlen();
	if(!K_QtKomponenteErmitteln(Dateiname))
	{
		K_Fehlercode=1;
		K_Fehlermeldung=trUtf8("Nicht erkannte oder ungültige Qt4 Komponente %1.").arg(Dateiname);
		emit fertig(this);
		return;
	}
	QDomDocument Manifest;
	if(K_Parameter->QtBibliothekenHohlen().at(K_Dateinummer).istPlugIn())
	{
		K_Dateipfad=K_Parameter->QtBibliothekenHohlen().at(K_Dateinummer).PlugInTypeHohlen()+"\\";
		Dateiname=K_Parameter->ZielverzeichnisHohlen()+"/"+K_Dateipfad+Dateiname;		
	}
	else
		Dateiname=K_Parameter->ZielverzeichnisHohlen()+"/"+Dateiname;
	QFile Datei(Dateiname+".manifest");
	if(!Datei.open(QIODevice::ReadOnly))
	{
		K_Fehlercode=1;
		K_Fehlermeldung=trUtf8("Die Datei %1 konnte nicht göffnet werden.").arg(Dateiname);
		emit fertig(this);
		return;
	}
	if(!Manifest.setContent(&Datei))
	{
		K_Fehlercode=1;
		K_Fehlermeldung=trUtf8("%1 ist keine gültige XML Datei.").arg(Dateiname);
		Datei.close();
		emit fertig(this);
		return;
	}
	Datei.close();
	// Auf gehts:)

	QDomElement Rootelement=Manifest.documentElement();
	QDomElement AssemblyID=K_AssemblyIdentifikationEinfuegen(Manifest);
	Rootelement.insertBefore(AssemblyID,Rootelement.firstChild());
	//File Tag einfügen
	QDomElement DateiTag=Manifest.createElement("file");
	DateiTag.setAttribute("name",K_Parameter->QtBibliothekenHohlen().at(K_Dateinummer).DateinameHohlen());
	Rootelement.insertAfter(DateiTag,AssemblyID);
	//Abhängigkeiten von anderen Qt Komponenten ermitteln
	if(!K_AbhaengigkeitenErmitteln())
	{
		K_Fehlercode=1;
		emit fertig(this);
		return;
	}
	QString Komponente;
	Q_FOREACH(Komponente,K_BenoetigeQtKomponenten)
	{
		if(!K_AbhaengigkeitEinfuegen(Manifest,Komponente))
		{
			K_Fehlercode=1;
			emit fertig(this);
			return;
			break;
		}
	}

	//Und wieder in die Datei Speichern:)
	if(!Datei.open(QIODevice::WriteOnly))
	{
		K_Fehlercode=1;
		K_Fehlermeldung=trUtf8("%1 konnte nicht überschrieben werden.").arg(Dateiname);
		Datei.close();
		emit fertig(this);
		return;
	}
	QTextStream Datenstrom(&Datei);
	Datenstrom.setCodec("UTF-8");
	Datenstrom<<Manifest.toString();
	Datenstrom.flush();
	Datei.close();
	K_Fehlercode=0;
	emit fertig(this);
}