void PBIBackend::rmDesktopIcons(QStringList pbiID, bool allusers){ // remove XDG desktop icons for(int i=0; i<pbiID.length(); i++){ if( !APPHASH.contains(pbiID[i]) ){continue;} if( APPHASH[pbiID[i]].hasDE && APPHASH[pbiID[i]].isInstalled ){ //generate the command QString cmd = "pbi_icon del-desktop "+pbiID[i]; if(!allusers){ runCmdAsUser(cmd); }else{ QProcess::startDetached(cmd); } } } }
void PBIBackend::procFinished(int ret, QProcess::ExitStatus stat){ emit devMessage("** Process Finished **"); if(stat != QProcess::NormalExit){ //Process Crashed emit Error(tr("Process Crashed"), QString(tr("The process for %1 has quit unexpectedly. Please restart this operation at a later time.")).arg(PKGRUN), PROCLOG); }else if( ret != 0 ){ //Failure QString title, msg; if(PROCTYPE==0){ title = tr("Installation Failure"); msg = QString(tr("The following application installation experienced an error: %1")+"\n\n"+tr("Please try again later.")).arg(APPHASH[PKGRUN].name); }else if(PROCTYPE==1){ title = tr("Removal Failure"); msg = QString(tr("The following application removal experienced an error: %1")+"\n\n"+tr("Please try again later.")).arg(APPHASH[PKGRUN].name); } if(!msg.isEmpty()){ emit Error(title, msg, PROCLOG); } }else{ //Success - perform any cleanup operations if(PROCTYPE==0 && PKGCMD.contains("pbi_") && !PROCCANCELLED && PKGJAIL.isEmpty()){ //if new installation on main system Extras::getCmdOutput("pbi_icon add-menu add-mime "+PKGRUN); //don't care about result if(autoDE && APPHASH[PKGRUN].hasDE){ runCmdAsUser("pbi_icon add-desktop "+PKGRUN); } }else if(PROCTYPE==0 && PKGCMD.contains("pc-pkg ") && !PROCCANCELLED && PKGJAIL.isEmpty()){ Extras::getCmdOutput("pc-extractoverlay ports"); //make sure to extract the ports overlay after a pkg operation } } //Now clean up the process variables and update the app status if(PKGJAIL.isEmpty()){ //update the local system info slotSyncToDatabase(true); }else if(PKGJAIL=="--newjail"){ //Find the new jail checkForJails(); emit JailListChanged(); }else{ //Just update the pkg list for this particular jail checkForJails(PKGJAIL); } QString origin = PKGRUN; //temporary PKGCMD.clear(); PKGRUN.clear(); PKGJAIL.clear(); //Emit the proper signals emit PBIStatusChange(origin); emit LocalPBIChanges(); //so that it knows to look for a different install list //Now check for the next command to run QTimer::singleShot(1, this, SLOT(checkProcesses()) ); }
void PBIBackend::rmDesktopIcons(QStringList pbiID, bool allusers){ // remove XDG desktop icons for(int i=0; i<pbiID.length(); i++){ NGApp info = singleAppInfo(pbiID[i]); //only look at local system //qDebug() << "Rem DIcons:" << info.origin << info.hasDE << info.isInstalled << allusers; if(info.origin.isEmpty()){ continue; } if( info.hasDE && info.isInstalled ){ //generate the command QString cmd = "pbi_icon del-desktop "+info.origin; if(!allusers){ runCmdAsUser(cmd); }else{ QProcess::startDetached(cmd); } } } }