exports.cpp
changeset 194 de97201180ea
parent 183 97e0bd468439
child 199 202572375c98
     1.1 --- a/exports.cpp	Tue Jan 24 15:09:49 2006 +0000
     1.2 +++ b/exports.cpp	Wed Jan 25 09:04:00 2006 +0000
     1.3 @@ -1,3 +1,5 @@
     1.4 +#include <qmessagebox.h>
     1.5 +
     1.6  #include "exports.h"
     1.7  #include "file.h"
     1.8  #include "linkablemapobj.h"
     1.9 @@ -143,15 +145,8 @@
    1.10  
    1.11  ExportOO::ExportOO()
    1.12  {
    1.13 -	// Create tmpdir and set paths
    1.14 +	// Create tmpdir
    1.15  	tmpDir.setPath (makeUniqueDir("/tmp/vym-XXXXXX"));
    1.16 -	templateDir="exports/novell/template/";
    1.17 -	contentTemplateFile=templateDir+"content-template.xml";
    1.18 -	contentFile=tmpDir.path()+"/content.xml";
    1.19 -	pageTemplateFile=templateDir+"page-template.xml";
    1.20 -	chapterTemplateFile=templateDir+"chapter-template.xml";
    1.21 -
    1.22 -	outputFile=tmpDir.currentDirPath()+"/test.odp";
    1.23  }
    1.24  
    1.25  ExportOO::~ExportOO()
    1.26 @@ -194,7 +189,7 @@
    1.27  {
    1.28  	QString allPages;
    1.29  
    1.30 -	bool useChapters=true;
    1.31 +	bool useSections=true;
    1.32  
    1.33  	// Insert new content
    1.34  	content.replace ("<!-- INSERT TITLE -->",quotemeta(mapCenter->getHeading()));
    1.35 @@ -203,29 +198,29 @@
    1.36  	QString	onePage;
    1.37  	QString list;
    1.38  	
    1.39 -	BranchObj *chapterBO=mapCenter->getFirstBranch();
    1.40 +	BranchObj *sectionBO=mapCenter->getFirstBranch();
    1.41      int i=0;
    1.42  	BranchObj *pagesBO;
    1.43      int j=0;
    1.44  
    1.45 -	// Walk chapters
    1.46 -	while (chapterBO)
    1.47 +	// Walk sections
    1.48 +	while (sectionBO)
    1.49  	{
    1.50 -		if (useChapters)
    1.51 +		if (useSections)
    1.52  		{
    1.53 -			// Add page with chapter title
    1.54 -			onePage=chapterTemplate;
    1.55 -			onePage.replace ("<!-- INSERT PAGE HEADING -->", quotemeta(chapterBO->getHeading() ) );
    1.56 +			// Add page with section title
    1.57 +			onePage=sectionTemplate;
    1.58 +			onePage.replace ("<!-- INSERT PAGE HEADING -->", quotemeta(sectionBO->getHeading() ) );
    1.59  			allPages+=onePage;
    1.60  		} else
    1.61  		{
    1.62  			i=-2;	// only use inner loop to 
    1.63  			        // turn mainbranches into pages
    1.64 -			chapterBO=mapCenter;
    1.65 +			sectionBO=mapCenter;
    1.66  		}
    1.67  
    1.68  		// Walk mainpages
    1.69 -		pagesBO=chapterBO->getFirstBranch();
    1.70 +		pagesBO=sectionBO->getFirstBranch();
    1.71  		j=0;
    1.72  		while (pagesBO)
    1.73  		{
    1.74 @@ -236,10 +231,10 @@
    1.75  			onePage.replace ("<!-- INSERT LIST -->", list);
    1.76  			allPages+=onePage;
    1.77  			j++;
    1.78 -			pagesBO=chapterBO->getBranchNum(j);
    1.79 +			pagesBO=sectionBO->getBranchNum(j);
    1.80  		}
    1.81  		i++;
    1.82 -		chapterBO=mapCenter->getBranchNum(i);
    1.83 +		sectionBO=mapCenter->getBranchNum(i);
    1.84  	}
    1.85  	
    1.86  	content.replace ("<!-- INSERT PAGES -->",allPages);
    1.87 @@ -260,7 +255,7 @@
    1.88  	zipDir (tmpDir,outputFile);	
    1.89  }
    1.90  
    1.91 -void ExportOO::setConfigFile (const QString &cf)
    1.92 +bool ExportOO::setConfigFile (const QString &cf)
    1.93  {
    1.94  	configFile=cf;
    1.95  	int i=cf.findRev ("/");
    1.96 @@ -271,39 +266,44 @@
    1.97  	// set paths
    1.98  	templateDir=configDir+"/"+set.readEntry ("Template");
    1.99  
   1.100 -	//FIXME check if templateDir is really set, otherwise abort
   1.101 +	QDir d (templateDir);
   1.102 +	if (!d.exists())
   1.103 +	{
   1.104 +		QMessageBox::critical (0,QObject::tr("Critical Export Error"),QObject::tr("Check \"%1\" in\n%2").arg("Template="+set.readEntry ("Template")).arg(configFile));
   1.105 +		return false;
   1.106 +
   1.107 +	}
   1.108  
   1.109  	contentTemplateFile=templateDir+"content-template.xml";
   1.110  	contentFile=tmpDir.path()+"/content.xml";
   1.111  	pageTemplateFile=templateDir+"page-template.xml";
   1.112 -	chapterTemplateFile=templateDir+"chapter-template.xml";
   1.113 +	sectionTemplateFile=templateDir+"section-template.xml";
   1.114  
   1.115 -	outputFile=tmpDir.currentDirPath()+"/test.odp";
   1.116 +	outputFile=tmpDir.currentDirPath()+"/vym-out.odp";
   1.117  	
   1.118  	// Copy template to tmpdir
   1.119  	system ("cp -r "+templateDir+"* "+tmpDir.path());
   1.120 -	
   1.121  
   1.122  	// Read content-template
   1.123  	if (!loadStringFromDisk (contentTemplateFile,content))
   1.124  	{
   1.125 -		qWarning ("Export::exportOO() Couldn't load from "+contentTemplateFile);
   1.126 -		return;
   1.127 +		QMessageBox::critical (0,QObject::tr("Critical Export Error"),QObject::tr("Could not read %1").arg(contentTemplateFile));
   1.128 +		return false;
   1.129  	}
   1.130  
   1.131  	// Read page-template
   1.132  	if (!loadStringFromDisk (pageTemplateFile,pageTemplate))
   1.133  	{
   1.134 -		qWarning ("Export::exportOO() Couldn't load from "+pageTemplateFile);
   1.135 -		return;
   1.136 +		QMessageBox::critical (0,QObject::tr("Critical Export Error"),QObject::tr("Could not read %1").arg(pageTemplateFile));
   1.137 +		return false;
   1.138  	}
   1.139  	
   1.140 -	// Read chapter-template
   1.141 -	if (!loadStringFromDisk (chapterTemplateFile,chapterTemplate))
   1.142 +	// Read section-template
   1.143 +	if (!loadStringFromDisk (sectionTemplateFile,sectionTemplate))
   1.144  	{
   1.145 -		qWarning ("Export::exportOO() Couldn't load from "+chapterTemplateFile);
   1.146 -		return;
   1.147 +		QMessageBox::critical (0,QObject::tr("Critical Export Error"),QObject::tr("Could not read %1").arg(sectionTemplateFile));
   1.148 +		return false;
   1.149  	}
   1.150 -
   1.151 +	return true;
   1.152  }
   1.153