Exemplo n.º 1
0
//----------------------------------------------------------------------------
// Make copy of daya file
// TODO:Memory leak probably
//----------------------------------------------------------------------------
void CApp::makeBackup()
{
    try
    {
        QStringList listStr;

        listStr << sPersonnesFile
                << sEntreprisesFile
                << sFamilleFile
                << sSearchFile
                << "./xml/preferences.xml"; //TODO: Share prefernce filename

        QStringList::Iterator  ite = listStr.begin();

        for( ; ite != listStr.end(); ite++ )
        {
            QUrlOperator *op = new QUrlOperator();
        
            QString src = QDir::currentDirPath() + *ite;
            QString target = QDir::currentDirPath() + *ite + ".bak"; 
            op->copy( src, target, false, false );
        }

    }
    catch(...)
    {
        qDebug( "Impossible de sauvegarder les fichiers" );
    }
}
Exemplo n.º 2
0
void ktvschedule::correspondChannels()
{

	// clears all Columns before creating new ones
	t_TVGrid->removeAllColumns();
	Channels.clear();
	//
	     qInitNetworkProtocols ();
	     KStandardDirs *dirs = new KStandardDirs();
	     QString home = dirs->localkdedir () + "/share/apps/ktvschedule/";
	     QUrlOperator *urlOp = new QUrlOperator;
	//
	//Stats XML parsing
        QDomElement docElement = TvXML.documentElement();
	
	QDomNode node = docElement.firstChild();	
	
 	while( !node.isNull() )
 	{
	 QDomNode subnode=node.firstChild();
	 	 
	 QDomElement node_element=node.toElement();

	 ///////////////////////////
	 //If it is a channel, load channel name and Id

	 if (node_element.tagName()=="channel")
	  {
		ChannelNameIcon chanNameandIcon;
		bool Found = FALSE;

	 	while (!subnode.isNull())
		{
		
		QDomElement subnode_element=subnode.toElement();
		if (subnode_element.tagName()=="display-name")
			{
				if (!Found)
				{			
					chanNameandIcon.ChannelName = subnode_element.text();
					Found = TRUE;
				}
			//in fact some XML guides have many channel names. As from xmltv display names are : List the most canonical / common ones first and the most obscure names last. So we can stop.
			}
		
		if (subnode_element.tagName()=="icon")
		{
			chanNameandIcon.ChannelIcon = subnode_element.attribute("src","");

			// if the icon is on a remote location, try to fetch it localy
			if (chanNameandIcon.ChannelIcon.contains("http://")!=0)
			{
			  // if file does not exist localy, then download it
			  if (!QFile::exists(home + chanNameandIcon.ChannelIcon.section('/',-1) ) ) 
			  {
			  	urlOp->copy(chanNameandIcon.ChannelIcon, home); // donwload pixmap
			  }
			  
			   // Ok, we are going to save in the config file the url of the pics. It will be used in the channels to download missing pics.
			  QString temp = chanNameandIcon.ChannelIcon.section('/',-1); // We need a temp string
			  Config().picURL = chanNameandIcon.ChannelIcon.remove ( temp );
			  
			  // Change the location of the pixmap
			  chanNameandIcon.ChannelIcon = home + temp;
			}
			else if (chanNameandIcon.ChannelIcon.contains("file://")!=0)
			{
				// We create a temp string in order to config the picURL. Otherwise it removes usefull info from the channelIcon
				QString temp = chanNameandIcon.ChannelIcon;
				Config().picURL = temp.remove ( temp.section('/',-1) );
				
				QRegExp rx("^[0-9]{1,2}");
				QString dest=home + chanNameandIcon.ChannelName.lower().remove(" ").remove(rx)+"."+chanNameandIcon.ChannelIcon.right(3);
				if (!QFile::exists(dest))
				{
					urlOp->copy(chanNameandIcon.ChannelIcon,dest,FALSE,FALSE);
			 	}
				 // Change the location of the pixmap
			  	chanNameandIcon.ChannelIcon = dest;
				
			}
			else
			{
				qDebug("Pict is of unknown type"); 	 
			}
		}
			
		subnode=subnode.nextSibling();
			}
		
		Channels[node_element.attribute("id","")]=chanNameandIcon;
	  }
	  else
	  {
	  	// NxTvEPG have another field before the channels (about field). Do not stop
		if (node_element.tagName()!="about")
		{
			break; //no need to continue
		}
	  }
	node=node.nextSibling();
	}	
	
	// Creates collumns in the TvGrid. The QMap Channel has the channel name and id
	t_TVGrid->CreateColumns(Channels);
}