Added dialog for HTML export. Grouping in Switchboard shortcuts
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/exporthtmldialog.cpp	Thu Feb 25 11:03:52 2010 +0000
     1.3 @@ -0,0 +1,368 @@
     1.4 +#include "exporthtmldialog.h"
     1.5 +
     1.6 +#include <QFileDialog>
     1.7 +#include <QMessageBox>
     1.8 +#include <QTextStream>
     1.9 +
    1.10 +#include "options.h"
    1.11 +#include "settings.h"
    1.12 +#include "warningdialog.h"
    1.13 +
    1.14 +
    1.15 +extern Options options;
    1.16 +extern QDir vymBaseDir;
    1.17 +extern Settings settings;
    1.18 +extern bool debug;
    1.19 +
    1.20 +ExportHTMLDialog::ExportHTMLDialog(QWidget* parent) : QDialog(parent)
    1.21 +{
    1.22 +    ui.setupUi(this);
    1.23 +
    1.24 +	filepath="";
    1.25 +	settingsChanged=false;
    1.26 +	scriptProc=new Process;
    1.27 +
    1.28 +    // signals and slots connections
    1.29 +    connect(ui.browseExportDirButton, SIGNAL(pressed()), this, SLOT(browseDirectoryPressed()));
    1.30 +    connect(ui.outputButton, SIGNAL(toggled(bool)), this, SLOT(outputButtonPressed(bool)));
    1.31 +    connect(ui.browseCSSButton, SIGNAL(pressed()), this, SLOT(browseCSSPressed()));
    1.32 +    connect(ui.imageButton, SIGNAL(toggled(bool)), this, SLOT(imageButtonPressed(bool)));
    1.33 +    connect(ui.textColorButton, SIGNAL(toggled(bool)), this, SLOT(textcolorButtonPressed(bool)));
    1.34 +    connect(ui.lineEditDir, SIGNAL(textChanged(const QString&)), this, SLOT(dirChanged()));
    1.35 +    connect(ui.lineEditCSS, SIGNAL(textChanged(const QString&)), this, SLOT(cssChanged()));
    1.36 +    connect(ui.saveSettingsInMapButton, SIGNAL(toggled(bool)), this, SLOT(saveSettingsInMapButtonPressed(bool)));
    1.37 +    connect(ui.browsePreExportButton, SIGNAL(pressed()), this, SLOT(browsePreExportButtonPressed()));
    1.38 +    connect(ui.lineEditPreScript, SIGNAL(textChanged(const QString&)), this, SLOT(prescriptChanged()));
    1.39 +    connect(ui.lineEditPostScript, SIGNAL(textChanged(const QString&)), this, SLOT(postscriptChanged()));
    1.40 +    connect(ui.browsePostExportButton, SIGNAL(pressed()), this, SLOT(browsePostExportButtonPressed()));
    1.41 +}	
    1.42 +
    1.43 +
    1.44 +void ExportHTMLDialog::readSettings()
    1.45 +{
    1.46 +
    1.47 +	dir=settings.readLocalEntry (filepath,"/export/html/exportDir",vymBaseDir.currentDirPath() );
    1.48 +	ui.lineEditDir->setText(dir);
    1.49 +	
    1.50 +    if ( settings.readLocalEntry (filepath,"/export/html/useImage","yes")=="yes")
    1.51 +		useImage=true;
    1.52 +	else	
    1.53 +		useImage=false;
    1.54 +	ui.imageButton->setChecked(useImage);
    1.55 +		
    1.56 +	if ( settings.readLocalEntry (filepath,"/export/html/useTextColor","no")=="yes")
    1.57 +		useTextColor=true;
    1.58 +	else	
    1.59 +		useTextColor=false;
    1.60 +	ui.textColorButton->setChecked(useTextColor);
    1.61 +	
    1.62 +/* TODO this was used in old html export, is not yet in new stylesheet
    1.63 +	if ( settings.readEntry ("/export/html/useHeading","no")=="yes")
    1.64 +		useHeading=true;
    1.65 +	else	
    1.66 +		useHeading=false;
    1.67 +	checkBox4_2->setChecked(useHeading);
    1.68 +*/		
    1.69 +
    1.70 +	if ( settings.readLocalEntry (filepath,"/export/html/saveSettingsInMap","no")=="yes")
    1.71 +		saveSettingsInMap=true;
    1.72 +	else	
    1.73 +		saveSettingsInMap=false;
    1.74 +	ui.saveSettingsInMapButton->setChecked(saveSettingsInMap);
    1.75 +
    1.76 +	if ( settings.readEntry ("/export/html/showOutput","no")=="yes")
    1.77 +		showOutput=true;
    1.78 +	else	
    1.79 +		showOutput=false;
    1.80 +	ui.outputButton->setChecked(showOutput);
    1.81 +
    1.82 +	// For testing better use local styles
    1.83 +    const QString defcss(vymBaseDir.path() + "/styles/vym.css");
    1.84 +	if (options.isOn ("local"))
    1.85 +	{
    1.86 +		css=defcss;
    1.87 +	} else
    1.88 +	{
    1.89 +		css=settings.readLocalEntry 
    1.90 +			(filepath,"/export/html/css",defcss);	
    1.91 +	}
    1.92 +	ui.lineEditCSS->setText(css);
    1.93 +	
    1.94 +	prescript=settings.readLocalEntry
    1.95 +		(filepath,"/export/html/prescript","");
    1.96 +	ui.lineEditPreScript->setText (prescript);	
    1.97 +	
    1.98 +	postscript=settings.readLocalEntry
    1.99 +		(filepath,"/export/html/postscript","");
   1.100 +	ui.lineEditPostScript->setText (postscript);	
   1.101 +
   1.102 +	if (!prescript.isEmpty() || !postscript.isEmpty())
   1.103 +	{
   1.104 +		QMessageBox::warning( 0, tr( "Warning" ),tr(
   1.105 +		"The settings saved in the map "
   1.106 +		"would like to run scripts:\n\n"
   1.107 +		"%1\n\n"
   1.108 +		"Please check, if you really\n"
   1.109 +		"want to allow this in your system!").arg(prescript+"  "+postscript));
   1.110 +		
   1.111 +	}
   1.112 +}
   1.113 +
   1.114 +void ExportHTMLDialog::setDir(const QString &d)
   1.115 +{
   1.116 +	dir=d;
   1.117 +	if (dir.right(1)!="/") dir+="/";
   1.118 +}
   1.119 +
   1.120 +void ExportHTMLDialog::dirChanged()
   1.121 +{
   1.122 +	setDir (ui.lineEditDir->text());
   1.123 +	settingsChanged=true;
   1.124 +}
   1.125 +
   1.126 +void ExportHTMLDialog::browseDirectoryPressed()
   1.127 +{
   1.128 +   	QFileDialog fd( this);
   1.129 +	fd.setMode (QFileDialog::DirectoryOnly);
   1.130 +	fd.setCaption(tr("VYM - Export HTML to directory"));
   1.131 +	fd.setModal (true);
   1.132 +	fd.setDirectory (QDir::current());
   1.133 +	fd.show();
   1.134 +
   1.135 +	if ( fd.exec() == QDialog::Accepted )
   1.136 +	{
   1.137 +		QDir dir=fd.selectedFile();
   1.138 +		ui.lineEditDir->setText (dir.path() );
   1.139 +		settingsChanged=true;
   1.140 +	}
   1.141 +}
   1.142 +
   1.143 +void ExportHTMLDialog::imageButtonPressed(bool b)
   1.144 +{
   1.145 +	useImage=b;
   1.146 +	settingsChanged=true;
   1.147 +}
   1.148 +
   1.149 +void ExportHTMLDialog::textcolorButtonPressed(bool b)
   1.150 +{
   1.151 +	useTextColor=b;	
   1.152 +	settingsChanged=true;
   1.153 +}
   1.154 +
   1.155 +void ExportHTMLDialog::saveSettingsInMapButtonPressed(bool b)
   1.156 +{
   1.157 +	saveSettingsInMap=b;	
   1.158 +	settingsChanged=true;
   1.159 +}
   1.160 +
   1.161 +void ExportHTMLDialog::warningsButtonPressed(bool b)
   1.162 +{
   1.163 +	showWarnings=b;
   1.164 +	settingsChanged=true;
   1.165 +}
   1.166 +
   1.167 +
   1.168 +void ExportHTMLDialog::outputButtonPressed(bool b)
   1.169 +{
   1.170 +	showOutput=b;
   1.171 +	settingsChanged=true;
   1.172 +}
   1.173 +
   1.174 +void ExportHTMLDialog::cssChanged()
   1.175 +{
   1.176 +	css=ui.lineEditCSS->text();
   1.177 +	settingsChanged=true;
   1.178 +}
   1.179 +
   1.180 +QString ExportHTMLDialog::getCSSPath()
   1.181 +{
   1.182 +	return css;
   1.183 +}
   1.184 +
   1.185 +void ExportHTMLDialog::browseCSSPressed()
   1.186 +{
   1.187 +   	QFileDialog fd( this);
   1.188 +	fd.setModal (true);
   1.189 +	fd.setFilter ("Cascading Stylesheet (*.css)");
   1.190 +	fd.setDirectory (QDir::current());
   1.191 +	fd.show();
   1.192 +
   1.193 +	if ( fd.exec() == QDialog::Accepted )
   1.194 +	{
   1.195 +		css=fd.selectedFile();
   1.196 +		ui.lineEditCSS->setText (css );
   1.197 +		settingsChanged=true;
   1.198 +	}
   1.199 +}
   1.200 +
   1.201 +void ExportHTMLDialog::prescriptChanged()
   1.202 +{
   1.203 +	prescript=ui.lineEditPreScript->text();
   1.204 +	settingsChanged=true;
   1.205 +}
   1.206 +
   1.207 +void ExportHTMLDialog::postscriptChanged()
   1.208 +{
   1.209 +	postscript=ui.lineEditPostScript->text();
   1.210 +	settingsChanged=true;
   1.211 +}
   1.212 +
   1.213 +void ExportHTMLDialog::browsePreExportButtonPressed()
   1.214 +{
   1.215 +	QFileDialog fd( this);
   1.216 +	fd.setModal (true);
   1.217 +	fd.setFilter ("Scripts (*.sh *.pl *.py *.php)");
   1.218 +	fd.setDirectory (QDir::current());
   1.219 +	fd.show();
   1.220 +
   1.221 +	if ( fd.exec() == QDialog::Accepted )
   1.222 +	{
   1.223 +		prescript=fd.selectedFile();
   1.224 +		ui.lineEditPreScript->setText (prescript );
   1.225 +		settingsChanged=true;
   1.226 +	}
   1.227 +
   1.228 +}
   1.229 +
   1.230 +void ExportHTMLDialog::browsePostExportButtonPressed()
   1.231 +{
   1.232 +	QFileDialog fd( this);
   1.233 +	fd.setModal (true);
   1.234 +	fd.setFilter ("Scripts (*.sh *.pl *.py *.php)");
   1.235 +	fd.setDirectory (QDir::current());
   1.236 +	fd.show();
   1.237 +
   1.238 +	if ( fd.exec() == QDialog::Accepted )
   1.239 +	{
   1.240 +		postscript=fd.selectedFile();
   1.241 +		ui.lineEditPostScript->setText (postscript );
   1.242 +		settingsChanged=true;
   1.243 +	}
   1.244 +}
   1.245 +
   1.246 +
   1.247 +void ExportHTMLDialog::doExport (const QString &mapname)
   1.248 +{
   1.249 +
   1.250 +	// Save options to settings file 
   1.251 +	// (but don't save at destructor, which
   1.252 +	// is called for "cancel", too)
   1.253 +	settings.setLocalEntry (filepath,"/export/html/exportDir",dir);
   1.254 +	settings.setLocalEntry (filepath,"/export/html/prescript",prescript);
   1.255 +	settings.setLocalEntry (filepath,"/export/html/postscript",postscript);
   1.256 +
   1.257 +    if (useImage)
   1.258 +		settings.setLocalEntry (filepath,"/export/html/useImage","yes");
   1.259 +    else
   1.260 +		settings.setLocalEntry (filepath,"/export/html/useImage","no");	
   1.261 +	
   1.262 +  if (useTextColor)
   1.263 +		settings.setLocalEntry (filepath,"/export/html/useTextColor","yes");
   1.264 +    else
   1.265 +		settings.setLocalEntry (filepath,"/export/html/useTextColor","no");	
   1.266 +	
   1.267 +   if (showWarnings)
   1.268 +		settings.writeEntry ("/export/html/showWarnings","yes");
   1.269 +    else
   1.270 +		settings.writeEntry ("/export/html/showWarnings","no");	
   1.271 +			
   1.272 +	if (showOutput)
   1.273 +		settings.writeEntry ("/export/html/showOutput","yes");
   1.274 +	else
   1.275 +		settings.writeEntry ("/export/html/showOutput","no");	
   1.276 +
   1.277 +	QString ipath;	
   1.278 +	ipath=vymBaseDir.path()+"/flags/flag-url-16x16.png";
   1.279 +	if (!options.isOn ("local"))
   1.280 +	{
   1.281 +		settings.setLocalEntry 
   1.282 +			(filepath,"/export/html/css",css);	
   1.283 +	}
   1.284 +
   1.285 +	if (!saveSettingsInMap)
   1.286 +		settings.clearLocal("/export/html");
   1.287 +	else	
   1.288 +		settings.setLocalEntry 
   1.289 +			(filepath,"/export/html/saveSettingsInMap","yes");
   1.290 +
   1.291 +	// Provide a smaller URL-icon to improve Layout //FIXME-1
   1.292 +	QPixmap pm;
   1.293 +	if (!pm.load(ipath,"PNG") )
   1.294 +		QMessageBox::warning( 0, tr( "Warning" ),tr("Could not open %1").arg(ipath));
   1.295 +		
   1.296 +		
   1.297 +	if(!pm.save (dir + "flags/flag-url-16x16.png","PNG"))
   1.298 +		QMessageBox::warning( 0, tr( "Warning" ),tr("Could not write %1").arg(ipath));
   1.299 +
   1.300 +	if (!prescript.isEmpty()) runScript (prescript,dir+mapname+".xml");
   1.301 +	
   1.302 +	/* FIXME-1
   1.303 +	if (useImage)
   1.304 +		p.addStringParam ("imagemap","images/"+mapname+".png");
   1.305 +	if (useTextColor)
   1.306 +		p.addStringParam ("use.textcolor","1");
   1.307 +	p.addStringParam ("mapname",mapname+".vym");
   1.308 +	
   1.309 +	p.setOutputFile (dir+mapname+".html");
   1.310 +	p.setInputFile (dir+mapname+".xml");
   1.311 +	p.process();
   1.312 +	*/
   1.313 +
   1.314 +	if (!postscript.isEmpty()) runScript (postscript,dir+mapname+".html");
   1.315 +
   1.316 +}
   1.317 +
   1.318 +void ExportHTMLDialog::setFilePath(const QString &s)
   1.319 +{
   1.320 +	filepath=s;
   1.321 +}
   1.322 +
   1.323 +void ExportHTMLDialog::setMapName(const QString &s)
   1.324 +{
   1.325 +	mapname=s;
   1.326 +}
   1.327 +
   1.328 +QString ExportHTMLDialog::getDir()
   1.329 +{
   1.330 +	return dir;
   1.331 +}
   1.332 +
   1.333 +bool ExportHTMLDialog::warnings()
   1.334 +{
   1.335 +	return showWarnings;
   1.336 +}
   1.337 +
   1.338 +bool ExportHTMLDialog::hasChanged()
   1.339 +{
   1.340 +	return settingsChanged;
   1.341 +}
   1.342 +
   1.343 +
   1.344 +void ExportHTMLDialog::runScript(QString spath, QString fpath)
   1.345 +{
   1.346 +	spath.replace ("%f",fpath);
   1.347 +	QStringList args=QStringList::split (' ',spath,false);
   1.348 +		
   1.349 +	//FIXME-1 p.addOutput ("vym is executing: \n" + spath+" "+args.join(" ") );	
   1.350 +	scriptProc->start (spath,args);
   1.351 +	if (!scriptProc->waitForStarted() )
   1.352 +	{
   1.353 +		QMessageBox::critical( 0, tr( "Critical Error" ),
   1.354 +					   tr("Could not start %1").arg(spath) );
   1.355 +	} else
   1.356 +	{
   1.357 +		if (!scriptProc->waitForFinished())
   1.358 +			QMessageBox::critical( 0, tr( "Critical Error" ),
   1.359 +			   tr("%1 didn't exit normally").arg(spath) +
   1.360 +			   scriptProc->getErrout() );
   1.361 +		else
   1.362 +			if (scriptProc->exitStatus()>0) showOutput=true;
   1.363 +			
   1.364 +	}	
   1.365 +	/* FIXME-1
   1.366 +	p.addOutput ("\n");
   1.367 +	p.addOutput (scriptProc->getErrout());
   1.368 +	p.addOutput (scriptProc->getStdout());
   1.369 +	*/
   1.370 +}
   1.371 +
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/exporthtmldialog.h	Thu Feb 25 11:03:52 2010 +0000
     2.3 @@ -0,0 +1,66 @@
     2.4 +#ifndef EXPORTHTMLDIALOG_H
     2.5 +#define EXPORTHTMLDIALOG_H
     2.6 +
     2.7 +#include "ui_exporthtmldialog.h"
     2.8 +
     2.9 +/*! \brief Dialog to export a map as HTML document
    2.10 +
    2.11 +This is an overloaded QDialog with various settings needed to call
    2.12 +convert the vym.xml to a HTML document. 
    2.13 +*/
    2.14 +
    2.15 +class ExportHTMLDialog:public QDialog
    2.16 +{
    2.17 +	Q_OBJECT
    2.18 +public:
    2.19 +    ExportHTMLDialog(QWidget* parent = 0);
    2.20 +
    2.21 +    virtual QString getDir();
    2.22 +    virtual bool warnings();
    2.23 +    virtual bool hasChanged();
    2.24 +
    2.25 +public slots:
    2.26 +    virtual void readSettings();
    2.27 +    virtual void setDir (const QString&);
    2.28 +    virtual void dirChanged();
    2.29 +    virtual void browseDirectoryPressed();
    2.30 +    virtual void imageButtonPressed( bool b );
    2.31 +    virtual void textcolorButtonPressed( bool b );
    2.32 +    virtual void saveSettingsInMapButtonPressed( bool b );
    2.33 +    virtual void warningsButtonPressed( bool b );
    2.34 +    virtual void outputButtonPressed( bool b );
    2.35 +    virtual void cssChanged();
    2.36 +	virtual QString getCSSPath();
    2.37 +    virtual void browseCSSPressed();
    2.38 +    virtual void prescriptChanged();
    2.39 +    virtual void postscriptChanged();
    2.40 +    virtual void browsePreExportButtonPressed();
    2.41 +    virtual void browsePostExportButtonPressed();
    2.42 +    virtual void doExport( const QString & mapname );
    2.43 +    virtual void setFilePath( const QString & s );
    2.44 +    virtual void setMapName( const QString & s );
    2.45 +
    2.46 +protected:
    2.47 +    bool useTextColor;
    2.48 +    bool showWarnings;
    2.49 +    QString css;
    2.50 +    bool useImage;
    2.51 +    bool showOutput;
    2.52 +    QString dir;
    2.53 +    QString filepath;
    2.54 +    QString prescript;
    2.55 +    QString postscript;
    2.56 +    bool settingsChanged;
    2.57 +    QString mapname;
    2.58 +    bool saveSettingsInMap;
    2.59 +    Process *scriptProc;
    2.60 +
    2.61 +private:
    2.62 +	Ui::ExportHTMLDialog ui;
    2.63 +    void init();
    2.64 +    void destroy();
    2.65 +    void runScript( QString spath, QString fpath );
    2.66 +
    2.67 +};
    2.68 +
    2.69 +#endif // EXPORTHTMLDIALOG_H
     3.1 --- a/exporthtmldialog.ui	Fri Feb 19 13:47:03 2010 +0000
     3.2 +++ b/exporthtmldialog.ui	Thu Feb 25 11:03:52 2010 +0000
     3.3 @@ -1,321 +1,457 @@
     3.4 -<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
     3.5 -<class>ExportHTMLDialog</class>
     3.6 -<author>Uwe Drechsel</author>
     3.7 -<widget class="QDialog">
     3.8 -    <property name="name">
     3.9 -        <cstring>ExportHTMLDialog</cstring>
    3.10 -    </property>
    3.11 -    <property name="geometry">
    3.12 -        <rect>
    3.13 -            <x>0</x>
    3.14 -            <y>0</y>
    3.15 -            <width>375</width>
    3.16 -            <height>346</height>
    3.17 -        </rect>
    3.18 -    </property>
    3.19 -    <property name="caption">
    3.20 -        <string>Export HTML</string>
    3.21 -    </property>
    3.22 -    <property name="modal">
    3.23 -        <bool>false</bool>
    3.24 -    </property>
    3.25 -    <vbox>
    3.26 -        <property name="name">
    3.27 -            <cstring>unnamed</cstring>
    3.28 +<?xml version="1.0" encoding="UTF-8"?>
    3.29 +<ui version="4.0">
    3.30 + <class>ExportHTMLDialog</class>
    3.31 + <widget class="QDialog" name="ExportHTMLDialog">
    3.32 +  <property name="geometry">
    3.33 +   <rect>
    3.34 +    <x>0</x>
    3.35 +    <y>0</y>
    3.36 +    <width>684</width>
    3.37 +    <height>471</height>
    3.38 +   </rect>
    3.39 +  </property>
    3.40 +  <property name="sizePolicy">
    3.41 +   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
    3.42 +    <horstretch>0</horstretch>
    3.43 +    <verstretch>0</verstretch>
    3.44 +   </sizepolicy>
    3.45 +  </property>
    3.46 +  <property name="minimumSize">
    3.47 +   <size>
    3.48 +    <width>0</width>
    3.49 +    <height>130</height>
    3.50 +   </size>
    3.51 +  </property>
    3.52 +  <property name="windowTitle">
    3.53 +   <string>Export HTML</string>
    3.54 +  </property>
    3.55 +  <layout class="QVBoxLayout" name="verticalLayout_2">
    3.56 +   <item>
    3.57 +    <layout class="QHBoxLayout">
    3.58 +     <property name="spacing">
    3.59 +      <number>6</number>
    3.60 +     </property>
    3.61 +     <property name="margin">
    3.62 +      <number>0</number>
    3.63 +     </property>
    3.64 +     <item>
    3.65 +      <widget class="QLabel" name="textLabel1">
    3.66 +       <property name="sizePolicy">
    3.67 +        <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
    3.68 +         <horstretch>0</horstretch>
    3.69 +         <verstretch>0</verstretch>
    3.70 +        </sizepolicy>
    3.71 +       </property>
    3.72 +       <property name="text">
    3.73 +        <string>Export to directory:</string>
    3.74 +       </property>
    3.75 +      </widget>
    3.76 +     </item>
    3.77 +     <item>
    3.78 +      <widget class="QLineEdit" name="lineEditDir">
    3.79 +       <property name="sizePolicy">
    3.80 +        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
    3.81 +         <horstretch>0</horstretch>
    3.82 +         <verstretch>0</verstretch>
    3.83 +        </sizepolicy>
    3.84 +       </property>
    3.85 +      </widget>
    3.86 +     </item>
    3.87 +     <item>
    3.88 +      <widget class="QPushButton" name="browseExportDirButton">
    3.89 +       <property name="sizePolicy">
    3.90 +        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
    3.91 +         <horstretch>0</horstretch>
    3.92 +         <verstretch>0</verstretch>
    3.93 +        </sizepolicy>
    3.94 +       </property>
    3.95 +       <property name="text">
    3.96 +        <string>Browse</string>
    3.97 +       </property>
    3.98 +      </widget>
    3.99 +     </item>
   3.100 +    </layout>
   3.101 +   </item>
   3.102 +   <item>
   3.103 +    <widget class="QGroupBox" name="groupBox">
   3.104 +     <property name="sizePolicy">
   3.105 +      <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
   3.106 +       <horstretch>0</horstretch>
   3.107 +       <verstretch>0</verstretch>
   3.108 +      </sizepolicy>
   3.109 +     </property>
   3.110 +     <property name="minimumSize">
   3.111 +      <size>
   3.112 +       <width>0</width>
   3.113 +       <height>200</height>
   3.114 +      </size>
   3.115 +     </property>
   3.116 +     <property name="title">
   3.117 +      <string>Options</string>
   3.118 +     </property>
   3.119 +     <widget class="QWidget" name="">
   3.120 +      <property name="geometry">
   3.121 +       <rect>
   3.122 +        <x>20</x>
   3.123 +        <y>20</y>
   3.124 +        <width>220</width>
   3.125 +        <height>106</height>
   3.126 +       </rect>
   3.127 +      </property>
   3.128 +      <layout class="QVBoxLayout" name="verticalLayout">
   3.129 +       <item>
   3.130 +        <widget class="QCheckBox" name="imageButton">
   3.131 +         <property name="sizePolicy">
   3.132 +          <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
   3.133 +           <horstretch>0</horstretch>
   3.134 +           <verstretch>0</verstretch>
   3.135 +          </sizepolicy>
   3.136 +         </property>
   3.137 +         <property name="text">
   3.138 +          <string>Include image</string>
   3.139 +         </property>
   3.140 +        </widget>
   3.141 +       </item>
   3.142 +       <item>
   3.143 +        <widget class="QCheckBox" name="textColorButton">
   3.144 +         <property name="sizePolicy">
   3.145 +          <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
   3.146 +           <horstretch>0</horstretch>
   3.147 +           <verstretch>0</verstretch>
   3.148 +          </sizepolicy>
   3.149 +         </property>
   3.150 +         <property name="text">
   3.151 +          <string>Colored headings in text</string>
   3.152 +         </property>
   3.153 +        </widget>
   3.154 +       </item>
   3.155 +       <item>
   3.156 +        <widget class="QCheckBox" name="saveSettingsInMapButton">
   3.157 +         <property name="sizePolicy">
   3.158 +          <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
   3.159 +           <horstretch>0</horstretch>
   3.160 +           <verstretch>0</verstretch>
   3.161 +          </sizepolicy>
   3.162 +         </property>
   3.163 +         <property name="text">
   3.164 +          <string>Save settings in map</string>
   3.165 +         </property>
   3.166 +        </widget>
   3.167 +       </item>
   3.168 +       <item>
   3.169 +        <widget class="QCheckBox" name="outputButton">
   3.170 +         <property name="sizePolicy">
   3.171 +          <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
   3.172 +           <horstretch>0</horstretch>
   3.173 +           <verstretch>0</verstretch>
   3.174 +          </sizepolicy>
   3.175 +         </property>
   3.176 +         <property name="text">
   3.177 +          <string>show output of external scripts</string>
   3.178 +         </property>
   3.179 +        </widget>
   3.180 +       </item>
   3.181 +      </layout>
   3.182 +     </widget>
   3.183 +    </widget>
   3.184 +   </item>
   3.185 +   <item>
   3.186 +    <widget class="Q3GroupBox" name="groupBox2">
   3.187 +     <property name="sizePolicy">
   3.188 +      <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
   3.189 +       <horstretch>0</horstretch>
   3.190 +       <verstretch>0</verstretch>
   3.191 +      </sizepolicy>
   3.192 +     </property>
   3.193 +     <property name="title">
   3.194 +      <string>Stylesheets</string>
   3.195 +     </property>
   3.196 +     <property name="orientation">
   3.197 +      <enum>Qt::Vertical</enum>
   3.198 +     </property>
   3.199 +     <layout class="QGridLayout">
   3.200 +      <property name="margin">
   3.201 +       <number>11</number>
   3.202 +      </property>
   3.203 +      <property name="spacing">
   3.204 +       <number>6</number>
   3.205 +      </property>
   3.206 +      <item row="0" column="0">
   3.207 +       <layout class="QHBoxLayout">
   3.208 +        <property name="spacing">
   3.209 +         <number>6</number>
   3.210          </property>
   3.211 -        <widget class="QLayoutWidget">
   3.212 -            <property name="name">
   3.213 -                <cstring>layout33</cstring>
   3.214 -            </property>
   3.215 -            <hbox>
   3.216 -                <property name="name">
   3.217 -                    <cstring>unnamed</cstring>
   3.218 -                </property>
   3.219 -                <widget class="QLabel">
   3.220 -                    <property name="name">
   3.221 -                        <cstring>textLabel1</cstring>
   3.222 -                    </property>
   3.223 -                    <property name="text">
   3.224 -                        <string>Directory:</string>
   3.225 -                    </property>
   3.226 -                </widget>
   3.227 -                <widget class="QLineEdit">
   3.228 -                    <property name="name">
   3.229 -                        <cstring>lineEdit1</cstring>
   3.230 -                    </property>
   3.231 -                </widget>
   3.232 -                <widget class="QPushButton">
   3.233 -                    <property name="name">
   3.234 -                        <cstring>browseButton</cstring>
   3.235 -                    </property>
   3.236 -                    <property name="text">
   3.237 -                        <string>Browse</string>
   3.238 -                    </property>
   3.239 -                </widget>
   3.240 -            </hbox>
   3.241 -        </widget>
   3.242 -        <widget class="QButtonGroup">
   3.243 -            <property name="name">
   3.244 -                <cstring>buttonGroup2</cstring>
   3.245 -            </property>
   3.246 -            <property name="sizePolicy">
   3.247 -                <sizepolicy>
   3.248 -                    <hsizetype>3</hsizetype>
   3.249 -                    <vsizetype>5</vsizetype>
   3.250 -                    <horstretch>0</horstretch>
   3.251 -                    <verstretch>0</verstretch>
   3.252 -                </sizepolicy>
   3.253 -            </property>
   3.254 -            <property name="minimumSize">
   3.255 -                <size>
   3.256 -                    <width>0</width>
   3.257 -                    <height>230</height>
   3.258 -                </size>
   3.259 -            </property>
   3.260 -            <property name="title">
   3.261 -                <string>Options</string>
   3.262 -            </property>
   3.263 -            <vbox>
   3.264 -                <property name="name">
   3.265 -                    <cstring>unnamed</cstring>
   3.266 -                </property>
   3.267 -                <widget class="QCheckBox">
   3.268 -                    <property name="name">
   3.269 -                        <cstring>checkBox4</cstring>
   3.270 -                    </property>
   3.271 -                    <property name="text">
   3.272 -                        <string>Include image of map</string>
   3.273 -                    </property>
   3.274 -                </widget>
   3.275 -                <widget class="QCheckBox">
   3.276 -                    <property name="name">
   3.277 -                        <cstring>checkBox5_2</cstring>
   3.278 -                    </property>
   3.279 -                    <property name="text">
   3.280 -                        <string>create image only</string>
   3.281 -                    </property>
   3.282 -                </widget>
   3.283 -                <widget class="QCheckBox">
   3.284 -                    <property name="name">
   3.285 -                        <cstring>checkBox5</cstring>
   3.286 -                    </property>
   3.287 -                    <property name="text">
   3.288 -                        <string>use WIKI style</string>
   3.289 -                    </property>
   3.290 -                </widget>
   3.291 -                <widget class="QCheckBox">
   3.292 -                    <property name="name">
   3.293 -                        <cstring>checkBox4_2</cstring>
   3.294 -                    </property>
   3.295 -                    <property name="text">
   3.296 -                        <string>use heading for URLs (instead of link target)</string>
   3.297 -                    </property>
   3.298 -                </widget>
   3.299 -                <widget class="QCheckBox">
   3.300 -                    <property name="name">
   3.301 -                        <cstring>checkBox6</cstring>
   3.302 -                    </property>
   3.303 -                    <property name="text">
   3.304 -                        <string>use image of earth to mark URLs in text</string>
   3.305 -                    </property>
   3.306 -                </widget>
   3.307 -                <widget class="QCheckBox">
   3.308 -                    <property name="name">
   3.309 -                        <cstring>checkBox7</cstring>
   3.310 -                    </property>
   3.311 -                    <property name="text">
   3.312 -                        <string>use default CSS file</string>
   3.313 -                    </property>
   3.314 -                </widget>
   3.315 -                <widget class="QCheckBox">
   3.316 -                    <property name="name">
   3.317 -                        <cstring>checkBox3</cstring>
   3.318 -                    </property>
   3.319 -                    <property name="sizePolicy">
   3.320 -                        <sizepolicy>
   3.321 -                            <hsizetype>1</hsizetype>
   3.322 -                            <vsizetype>0</vsizetype>
   3.323 -                            <horstretch>0</horstretch>
   3.324 -                            <verstretch>0</verstretch>
   3.325 -                        </sizepolicy>
   3.326 -                    </property>
   3.327 -                    <property name="text">
   3.328 -                        <string>show output of external scripts</string>
   3.329 -                    </property>
   3.330 -                </widget>
   3.331 -            </vbox>
   3.332 -        </widget>
   3.333 -        <spacer>
   3.334 -            <property name="name">
   3.335 -                <cstring>spacer6</cstring>
   3.336 -            </property>
   3.337 -            <property name="orientation">
   3.338 -                <enum>Vertical</enum>
   3.339 -            </property>
   3.340 -            <property name="sizeType">
   3.341 -                <enum>Expanding</enum>
   3.342 -            </property>
   3.343 -            <property name="sizeHint">
   3.344 -                <size>
   3.345 -                    <width>21</width>
   3.346 -                    <height>60</height>
   3.347 -                </size>
   3.348 -            </property>
   3.349 -        </spacer>
   3.350 -        <widget class="QLayoutWidget">
   3.351 -            <property name="name">
   3.352 -                <cstring>layout17</cstring>
   3.353 -            </property>
   3.354 -            <hbox>
   3.355 -                <property name="name">
   3.356 -                    <cstring>unnamed</cstring>
   3.357 -                </property>
   3.358 -                <spacer>
   3.359 -                    <property name="name">
   3.360 -                        <cstring>spacer5</cstring>
   3.361 -                    </property>
   3.362 -                    <property name="orientation">
   3.363 -                        <enum>Horizontal</enum>
   3.364 -                    </property>
   3.365 -                    <property name="sizeType">
   3.366 -                        <enum>Expanding</enum>
   3.367 -                    </property>
   3.368 -                    <property name="sizeHint">
   3.369 -                        <size>
   3.370 -                            <width>61</width>
   3.371 -                            <height>21</height>
   3.372 -                        </size>
   3.373 -                    </property>
   3.374 -                </spacer>
   3.375 -                <widget class="QPushButton">
   3.376 -                    <property name="name">
   3.377 -                        <cstring>pushButton4</cstring>
   3.378 -                    </property>
   3.379 -                    <property name="text">
   3.380 -                        <string>Export</string>
   3.381 -                    </property>
   3.382 -                    <property name="default">
   3.383 -                        <bool>true</bool>
   3.384 -                    </property>
   3.385 -                </widget>
   3.386 -                <widget class="QPushButton">
   3.387 -                    <property name="name">
   3.388 -                        <cstring>pushButton5</cstring>
   3.389 -                    </property>
   3.390 -                    <property name="text">
   3.391 -                        <string>Cancel</string>
   3.392 -                    </property>
   3.393 -                </widget>
   3.394 -            </hbox>
   3.395 -        </widget>
   3.396 -    </vbox>
   3.397 -</widget>
   3.398 -<connections>
   3.399 -    <connection>
   3.400 -        <sender>pushButton5</sender>
   3.401 -        <signal>pressed()</signal>
   3.402 -        <receiver>ExportHTMLDialog</receiver>
   3.403 -        <slot>reject()</slot>
   3.404 -    </connection>
   3.405 -    <connection>
   3.406 -        <sender>pushButton4</sender>
   3.407 -        <signal>clicked()</signal>
   3.408 -        <receiver>ExportHTMLDialog</receiver>
   3.409 -        <slot>accept()</slot>
   3.410 -    </connection>
   3.411 -    <connection>
   3.412 -        <sender>browseButton</sender>
   3.413 -        <signal>pressed()</signal>
   3.414 -        <receiver>ExportHTMLDialog</receiver>
   3.415 -        <slot>browseDirectory()</slot>
   3.416 -    </connection>
   3.417 -    <connection>
   3.418 -        <sender>checkBox4</sender>
   3.419 -        <signal>toggled(bool)</signal>
   3.420 -        <receiver>ExportHTMLDialog</receiver>
   3.421 -        <slot>includeImage(bool)</slot>
   3.422 -    </connection>
   3.423 -    <connection>
   3.424 -        <sender>checkBox5</sender>
   3.425 -        <signal>toggled(bool)</signal>
   3.426 -        <receiver>ExportHTMLDialog</receiver>
   3.427 -        <slot>useWIKIpressed(bool)</slot>
   3.428 -    </connection>
   3.429 -    <connection>
   3.430 -        <sender>lineEdit1</sender>
   3.431 -        <signal>textChanged(const QString&)</signal>
   3.432 -        <receiver>ExportHTMLDialog</receiver>
   3.433 -        <slot>dirChanged()</slot>
   3.434 -    </connection>
   3.435 -    <connection>
   3.436 -        <sender>checkBox3</sender>
   3.437 -        <signal>toggled(bool)</signal>
   3.438 -        <receiver>ExportHTMLDialog</receiver>
   3.439 -        <slot>showOut(bool)</slot>
   3.440 -    </connection>
   3.441 -    <connection>
   3.442 -        <sender>checkBox4_2</sender>
   3.443 -        <signal>toggled(bool)</signal>
   3.444 -        <receiver>ExportHTMLDialog</receiver>
   3.445 -        <slot>useHeadingPressed(bool)</slot>
   3.446 -    </connection>
   3.447 -    <connection>
   3.448 -        <sender>checkBox5_2</sender>
   3.449 -        <signal>toggled(bool)</signal>
   3.450 -        <receiver>ExportHTMLDialog</receiver>
   3.451 -        <slot>imgOnly(bool)</slot>
   3.452 -    </connection>
   3.453 -    <connection>
   3.454 -        <sender>checkBox6</sender>
   3.455 -        <signal>toggled(bool)</signal>
   3.456 -        <receiver>ExportHTMLDialog</receiver>
   3.457 -        <slot>useURLImagePressed(bool)</slot>
   3.458 -    </connection>
   3.459 -</connections>
   3.460 -<includes>
   3.461 -    <include location="local" impldecl="in declaration">showtextdialog.h</include>
   3.462 -    <include location="global" impldecl="in declaration">qprocess.h</include>
   3.463 -    <include location="global" impldecl="in implementation">iostream</include>
   3.464 -    <include location="local" impldecl="in implementation">settings.h</include>
   3.465 -    <include location="global" impldecl="in implementation">qfiledialog.h</include>
   3.466 -    <include location="global" impldecl="in implementation">qmessagebox.h</include>
   3.467 -    <include location="local" impldecl="in implementation">file.h</include>
   3.468 -    <include location="local" impldecl="in implementation">icons/flag-url.xpm</include>
   3.469 -    <include location="local" impldecl="in implementation">exporthtmldialog.ui.h</include>
   3.470 -</includes>
   3.471 -<variables>
   3.472 -    <variable>QString css;</variable>
   3.473 -    <variable>QString xsl;</variable>
   3.474 -    <variable>QString scriptpath;</variable>
   3.475 -    <variable>QString stylepath;</variable>
   3.476 -    <variable>QString dir;</variable>
   3.477 -    <variable>bool image;</variable>
   3.478 -    <variable>bool wikistyle;</variable>
   3.479 -    <variable>QString script;</variable>
   3.480 -    <variable>bool showOutput;</variable>
   3.481 -    <variable>QProcess *proc;</variable>
   3.482 -    <variable>ShowTextDialog *dia;</variable>
   3.483 -    <variable>bool imageOnly;</variable>
   3.484 -    <variable>bool useHeading;</variable>
   3.485 -    <variable>bool useURLImage;</variable>
   3.486 -</variables>
   3.487 -<slots>
   3.488 -    <slot>browseDirectory()</slot>
   3.489 -    <slot>useWIKIpressed( bool b )</slot>
   3.490 -    <slot>includeImage( bool b )</slot>
   3.491 -    <slot>imgOnly( bool b )</slot>
   3.492 -    <slot>useHeadingPressed( bool b )</slot>
   3.493 -    <slot>useURLImagePressed( bool b )</slot>
   3.494 -    <slot>showOut( bool b )</slot>
   3.495 -    <slot>dirChanged()</slot>
   3.496 -    <slot>doExport( const QString & mapname )</slot>
   3.497 -    <slot returnType="QString">getDir()</slot>
   3.498 -    <slot>readOutput()</slot>
   3.499 -</slots>
   3.500 -<functions>
   3.501 -    <function access="private" specifier="non virtual">init()</function>
   3.502 -    <function access="private" specifier="non virtual">destroy()</function>
   3.503 -</functions>
   3.504 -<pixmapinproject/>
   3.505 -<layoutdefaults spacing="6" margin="11"/>
   3.506 -</UI>
   3.507 +        <property name="margin">
   3.508 +         <number>0</number>
   3.509 +        </property>
   3.510 +        <item>
   3.511 +         <widget class="QLabel" name="textLabel1_2">
   3.512 +          <property name="sizePolicy">
   3.513 +           <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
   3.514 +            <horstretch>0</horstretch>
   3.515 +            <verstretch>0</verstretch>
   3.516 +           </sizepolicy>
   3.517 +          </property>
   3.518 +          <property name="minimumSize">
   3.519 +           <size>
   3.520 +            <width>125</width>
   3.521 +            <height>0</height>
   3.522 +           </size>
   3.523 +          </property>
   3.524 +          <property name="text">
   3.525 +           <string>CSS:</string>
   3.526 +          </property>
   3.527 +          <property name="alignment">
   3.528 +           <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
   3.529 +          </property>
   3.530 +         </widget>
   3.531 +        </item>
   3.532 +        <item>
   3.533 +         <widget class="QLineEdit" name="lineEditCSS"/>
   3.534 +        </item>
   3.535 +        <item>
   3.536 +         <widget class="QPushButton" name="browseCSSButton">
   3.537 +          <property name="sizePolicy">
   3.538 +           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
   3.539 +            <horstretch>0</horstretch>
   3.540 +            <verstretch>0</verstretch>
   3.541 +           </sizepolicy>
   3.542 +          </property>
   3.543 +          <property name="text">
   3.544 +           <string>Browse</string>
   3.545 +          </property>
   3.546 +         </widget>
   3.547 +        </item>
   3.548 +       </layout>
   3.549 +      </item>
   3.550 +     </layout>
   3.551 +    </widget>
   3.552 +   </item>
   3.553 +   <item>
   3.554 +    <widget class="Q3GroupBox" name="groupBox1">
   3.555 +     <property name="sizePolicy">
   3.556 +      <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
   3.557 +       <horstretch>0</horstretch>
   3.558 +       <verstretch>0</verstretch>
   3.559 +      </sizepolicy>
   3.560 +     </property>
   3.561 +     <property name="title">
   3.562 +      <string>Scripts</string>
   3.563 +     </property>
   3.564 +     <property name="orientation">
   3.565 +      <enum>Qt::Vertical</enum>
   3.566 +     </property>
   3.567 +     <layout class="QGridLayout">
   3.568 +      <property name="margin">
   3.569 +       <number>11</number>
   3.570 +      </property>
   3.571 +      <property name="spacing">
   3.572 +       <number>6</number>
   3.573 +      </property>
   3.574 +      <item row="0" column="0">
   3.575 +       <layout class="QHBoxLayout">
   3.576 +        <property name="spacing">
   3.577 +         <number>6</number>
   3.578 +        </property>
   3.579 +        <property name="margin">
   3.580 +         <number>0</number>
   3.581 +        </property>
   3.582 +        <item>
   3.583 +         <widget class="QLabel" name="textLabel1_3">
   3.584 +          <property name="sizePolicy">
   3.585 +           <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
   3.586 +            <horstretch>0</horstretch>
   3.587 +            <verstretch>0</verstretch>
   3.588 +           </sizepolicy>
   3.589 +          </property>
   3.590 +          <property name="minimumSize">
   3.591 +           <size>
   3.592 +            <width>125</width>
   3.593 +            <height>0</height>
   3.594 +           </size>
   3.595 +          </property>
   3.596 +          <property name="text">
   3.597 +           <string>Before export:</string>
   3.598 +          </property>
   3.599 +          <property name="alignment">
   3.600 +           <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
   3.601 +          </property>
   3.602 +         </widget>
   3.603 +        </item>
   3.604 +        <item>
   3.605 +         <widget class="QLineEdit" name="lineEditPreScript"/>
   3.606 +        </item>
   3.607 +        <item>
   3.608 +         <widget class="QPushButton" name="browsePreExportButton">
   3.609 +          <property name="sizePolicy">
   3.610 +           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
   3.611 +            <horstretch>0</horstretch>
   3.612 +            <verstretch>0</verstretch>
   3.613 +           </sizepolicy>
   3.614 +          </property>
   3.615 +          <property name="text">
   3.616 +           <string>Browse</string>
   3.617 +          </property>
   3.618 +         </widget>
   3.619 +        </item>
   3.620 +       </layout>
   3.621 +      </item>
   3.622 +      <item row="1" column="0">
   3.623 +       <layout class="QHBoxLayout">
   3.624 +        <property name="spacing">
   3.625 +         <number>6</number>
   3.626 +        </property>
   3.627 +        <property name="margin">
   3.628 +         <number>0</number>
   3.629 +        </property>
   3.630 +        <item>
   3.631 +         <widget class="QLabel" name="textLabel2_2">
   3.632 +          <property name="sizePolicy">
   3.633 +           <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
   3.634 +            <horstretch>0</horstretch>
   3.635 +            <verstretch>0</verstretch>
   3.636 +           </sizepolicy>
   3.637 +          </property>
   3.638 +          <property name="minimumSize">
   3.639 +           <size>
   3.640 +            <width>125</width>
   3.641 +            <height>0</height>
   3.642 +           </size>
   3.643 +          </property>
   3.644 +          <property name="frameShape">
   3.645 +           <enum>QFrame::NoFrame</enum>
   3.646 +          </property>
   3.647 +          <property name="text">
   3.648 +           <string>After Export:</string>
   3.649 +          </property>
   3.650 +          <property name="alignment">
   3.651 +           <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
   3.652 +          </property>
   3.653 +         </widget>
   3.654 +        </item>
   3.655 +        <item>
   3.656 +         <widget class="QLineEdit" name="lineEditPostScript"/>
   3.657 +        </item>
   3.658 +        <item>
   3.659 +         <widget class="QPushButton" name="browsePostExportButton">
   3.660 +          <property name="sizePolicy">
   3.661 +           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
   3.662 +            <horstretch>0</horstretch>
   3.663 +            <verstretch>0</verstretch>
   3.664 +           </sizepolicy>
   3.665 +          </property>
   3.666 +          <property name="text">
   3.667 +           <string>Browse</string>
   3.668 +          </property>
   3.669 +         </widget>
   3.670 +        </item>
   3.671 +       </layout>
   3.672 +      </item>
   3.673 +     </layout>
   3.674 +    </widget>
   3.675 +   </item>
   3.676 +   <item>
   3.677 +    <spacer>
   3.678 +     <property name="orientation">
   3.679 +      <enum>Qt::Vertical</enum>
   3.680 +     </property>
   3.681 +     <property name="sizeType">
   3.682 +      <enum>QSizePolicy::MinimumExpanding</enum>
   3.683 +     </property>
   3.684 +     <property name="sizeHint" stdset="0">
   3.685 +      <size>
   3.686 +       <width>20</width>
   3.687 +       <height>41</height>
   3.688 +      </size>
   3.689 +     </property>
   3.690 +    </spacer>
   3.691 +   </item>
   3.692 +   <item>
   3.693 +    <layout class="QHBoxLayout">
   3.694 +     <item>
   3.695 +      <spacer>
   3.696 +       <property name="orientation">
   3.697 +        <enum>Qt::Horizontal</enum>
   3.698 +       </property>
   3.699 +       <property name="sizeType">
   3.700 +        <enum>QSizePolicy::Expanding</enum>
   3.701 +       </property>
   3.702 +       <property name="sizeHint" stdset="0">
   3.703 +        <size>
   3.704 +         <width>61</width>
   3.705 +         <height>21</height>
   3.706 +        </size>
   3.707 +       </property>
   3.708 +      </spacer>
   3.709 +     </item>
   3.710 +     <item>
   3.711 +      <widget class="QPushButton" name="cancelButton">
   3.712 +       <property name="text">
   3.713 +        <string>Cancel</string>
   3.714 +       </property>
   3.715 +      </widget>
   3.716 +     </item>
   3.717 +     <item>
   3.718 +      <widget class="QPushButton" name="exportButton">
   3.719 +       <property name="text">
   3.720 +        <string>Export</string>
   3.721 +       </property>
   3.722 +       <property name="default">
   3.723 +        <bool>true</bool>
   3.724 +       </property>
   3.725 +      </widget>
   3.726 +     </item>
   3.727 +    </layout>
   3.728 +   </item>
   3.729 +  </layout>
   3.730 + </widget>
   3.731 + <layoutdefault spacing="6" margin="11"/>
   3.732 + <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
   3.733 + <customwidgets>
   3.734 +  <customwidget>
   3.735 +   <class>Q3GroupBox</class>
   3.736 +   <extends>QGroupBox</extends>
   3.737 +   <header>Qt3Support/Q3GroupBox</header>
   3.738 +   <container>1</container>
   3.739 +  </customwidget>
   3.740 + </customwidgets>
   3.741 + <includes>
   3.742 +  <include location="local">xsltproc.h</include>
   3.743 +  <include location="local">process.h</include>
   3.744 + </includes>
   3.745 + <resources/>
   3.746 + <connections>
   3.747 +  <connection>
   3.748 +   <sender>cancelButton</sender>
   3.749 +   <signal>clicked()</signal>
   3.750 +   <receiver>ExportHTMLDialog</receiver>
   3.751 +   <slot>reject()</slot>
   3.752 +   <hints>
   3.753 +    <hint type="sourcelabel">
   3.754 +     <x>459</x>
   3.755 +     <y>443</y>
   3.756 +    </hint>
   3.757 +    <hint type="destinationlabel">
   3.758 +     <x>256</x>
   3.759 +     <y>233</y>
   3.760 +    </hint>
   3.761 +   </hints>
   3.762 +  </connection>
   3.763 +  <connection>
   3.764 +   <sender>exportButton</sender>
   3.765 +   <signal>clicked()</signal>
   3.766 +   <receiver>ExportHTMLDialog</receiver>
   3.767 +   <slot>accept()</slot>
   3.768 +   <hints>
   3.769 +    <hint type="sourcelabel">
   3.770 +     <x>368</x>
   3.771 +     <y>443</y>
   3.772 +    </hint>
   3.773 +    <hint type="destinationlabel">
   3.774 +     <x>256</x>
   3.775 +     <y>233</y>
   3.776 +    </hint>
   3.777 +   </hints>
   3.778 +  </connection>
   3.779 + </connections>
   3.780 +</ui>
     4.1 --- a/exports.cpp	Fri Feb 19 13:47:03 2010 +0000
     4.2 +++ b/exports.cpp	Thu Feb 25 11:03:52 2010 +0000
     4.3 @@ -8,6 +8,7 @@
     4.4  #include "warningdialog.h"
     4.5  #include "xsltproc.h"
     4.6  
     4.7 +
     4.8  extern Main *mainWindow;
     4.9  extern QDir vymBaseDir;
    4.10  extern QString vymName;
    4.11 @@ -344,14 +345,11 @@
    4.12  	QString s;
    4.13  	QString curIndent("");
    4.14  	int i;
    4.15 -	BranchObj *bo;  //FIXME-3 still needed?
    4.16  	BranchItem *cur=NULL;
    4.17  	BranchItem *prev=NULL;
    4.18  	cur=model->nextBranch (cur,prev);
    4.19  	while (cur) 
    4.20  	{
    4.21 -		bo=(BranchObj*)(cur->getLMO());
    4.22 -
    4.23  		if (!cur->hasHiddenExportParent() )
    4.24  		{
    4.25  			// If necessary, write note
    4.26 @@ -487,6 +485,8 @@
    4.27  	noSingulars=true;	
    4.28  	frameURLs=true;
    4.29  	useMapColors=true;
    4.30 +	cssFileName="vym.css";
    4.31 +	cssOriginalPath="";	// Is set in VymModel, based on default setting in ExportHTMLDialog
    4.32  
    4.33  	if (model &&model->getMapEditor()) 
    4.34  		offset=model->getMapEditor()->getTotalBBox().topLeft();
    4.35 @@ -590,8 +590,37 @@
    4.36      return r;
    4.37  }
    4.38  
    4.39 +void ExportHTML::setCSSPath(const QString &p)
    4.40 +{
    4.41 +	cssOriginalPath=p;
    4.42 +}
    4.43 +
    4.44  void ExportHTML::doExport() 
    4.45  {
    4.46 +	//FIXME-1  check for errors// Copy CSS file
    4.47 +	QFile css_src (cssOriginalPath);
    4.48 +	QFile css_dst (outDir.path()+"/"+cssFileName);
    4.49 +	if (!css_src.open ( QIODevice::ReadOnly))
    4.50 +		QMessageBox::warning( 0, QObject::tr( "Warning","ExportHTML" ),QObject::tr("Could not open %1","ExportHTML").arg(cssOriginalPath));
    4.51 +	else
    4.52 +	{
    4.53 +		if (!css_dst.open( QIODevice::WriteOnly))
    4.54 +			QMessageBox::warning( 0, QObject::tr( "Warning" ), QObject::tr("Could not open %1").arg(css_dst.fileName()));
    4.55 +		else
    4.56 +		{	
    4.57 +		
    4.58 +			QTextStream tsout( &css_dst);
    4.59 +			QTextStream tsin ( &css_src);
    4.60 +			QString s= tsin.read();
    4.61 +			tsout << s;
    4.62 +			css_dst.close();
    4.63 +		}	
    4.64 +		css_src.close();
    4.65 +	}
    4.66 +
    4.67 +
    4.68 +
    4.69 +	// Open file for writing
    4.70  	QFile file (outputFile);
    4.71  	if ( !file.open( QIODevice::WriteOnly ) ) 
    4.72  	{
    4.73 @@ -604,7 +633,7 @@
    4.74  
    4.75  	// Write header
    4.76  	ts<<"<html><title>"+model->getMapName()<<"</title><body>";
    4.77 -	ts<<" <link rel='stylesheet' id='css.stylesheet' href='vym.css' />\n";
    4.78 +	ts<<" <link rel='stylesheet' id='css.stylesheet' href='"<<cssFileName<<"' />\n";
    4.79  
    4.80  	// Include image
    4.81  	ts<<"<center><img src=\""<<model->getMapName()<<".png\" usemap='#imagemap'></center>\n";
     5.1 --- a/exports.h	Fri Feb 19 13:47:03 2010 +0000
     5.2 +++ b/exports.h	Thu Feb 25 11:03:52 2010 +0000
     5.3 @@ -100,11 +100,14 @@
     5.4  	ExportHTML();
     5.5  	ExportHTML(VymModel *m);
     5.6  	virtual void init();
     5.7 +	virtual void setCSSPath(const QString &path);
     5.8  	virtual void doExport();
     5.9  private:
    5.10  	QString getBranchText(BranchItem *);
    5.11  	QString buildList (BranchItem *);
    5.12  	QString imageMap;
    5.13 +	QString cssFileName;
    5.14 +	QString cssOriginalPath;
    5.15  
    5.16  	bool frameURLs;
    5.17  	bool noSingulars;
     6.1 --- a/exportxhtmldialog.ui	Fri Feb 19 13:47:03 2010 +0000
     6.2 +++ b/exportxhtmldialog.ui	Thu Feb 25 11:03:52 2010 +0000
     6.3 @@ -1,7 +1,8 @@
     6.4 -<ui version="4.0" >
     6.5 +<?xml version="1.0" encoding="UTF-8"?>
     6.6 +<ui version="4.0">
     6.7   <class>ExportXHTMLDialog</class>
     6.8 - <widget class="QDialog" name="ExportXHTMLDialog" >
     6.9 -  <property name="geometry" >
    6.10 + <widget class="QDialog" name="ExportXHTMLDialog">
    6.11 +  <property name="geometry">
    6.12     <rect>
    6.13      <x>0</x>
    6.14      <y>0</y>
    6.15 @@ -9,50 +10,41 @@
    6.16      <height>523</height>
    6.17     </rect>
    6.18    </property>
    6.19 -  <property name="minimumSize" >
    6.20 +  <property name="minimumSize">
    6.21     <size>
    6.22      <width>0</width>
    6.23      <height>130</height>
    6.24     </size>
    6.25    </property>
    6.26 -  <property name="windowTitle" >
    6.27 +  <property name="windowTitle">
    6.28     <string>Export XHTML</string>
    6.29    </property>
    6.30 -  <layout class="QVBoxLayout" >
    6.31 +  <layout class="QVBoxLayout">
    6.32     <item>
    6.33 -    <layout class="QHBoxLayout" >
    6.34 -     <property name="spacing" >
    6.35 +    <layout class="QHBoxLayout">
    6.36 +     <property name="spacing">
    6.37        <number>6</number>
    6.38       </property>
    6.39 -     <property name="leftMargin" >
    6.40 -      <number>0</number>
    6.41 -     </property>
    6.42 -     <property name="topMargin" >
    6.43 -      <number>0</number>
    6.44 -     </property>
    6.45 -     <property name="rightMargin" >
    6.46 -      <number>0</number>
    6.47 -     </property>
    6.48 -     <property name="bottomMargin" >
    6.49 +     <property name="margin">
    6.50        <number>0</number>
    6.51       </property>
    6.52       <item>
    6.53 -      <widget class="QLabel" name="textLabel1" >
    6.54 -       <property name="sizePolicy" >
    6.55 -        <sizepolicy vsizetype="Preferred" hsizetype="Minimum" >
    6.56 +      <widget class="QLabel" name="textLabel1">
    6.57 +       <property name="sizePolicy">
    6.58 +        <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
    6.59           <horstretch>0</horstretch>
    6.60           <verstretch>0</verstretch>
    6.61          </sizepolicy>
    6.62         </property>
    6.63 -       <property name="text" >
    6.64 +       <property name="text">
    6.65          <string>Export to directory:</string>
    6.66         </property>
    6.67        </widget>
    6.68       </item>
    6.69       <item>
    6.70 -      <widget class="QLineEdit" name="lineEditDir" >
    6.71 -       <property name="sizePolicy" >
    6.72 -        <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
    6.73 +      <widget class="QLineEdit" name="lineEditDir">
    6.74 +       <property name="sizePolicy">
    6.75 +        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
    6.76           <horstretch>0</horstretch>
    6.77           <verstretch>0</verstretch>
    6.78          </sizepolicy>
    6.79 @@ -60,14 +52,14 @@
    6.80        </widget>
    6.81       </item>
    6.82       <item>
    6.83 -      <widget class="QPushButton" name="browseExportDirButton" >
    6.84 -       <property name="sizePolicy" >
    6.85 -        <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
    6.86 +      <widget class="QPushButton" name="browseExportDirButton">
    6.87 +       <property name="sizePolicy">
    6.88 +        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
    6.89           <horstretch>0</horstretch>
    6.90           <verstretch>0</verstretch>
    6.91          </sizepolicy>
    6.92         </property>
    6.93 -       <property name="text" >
    6.94 +       <property name="text">
    6.95          <string>Browse</string>
    6.96         </property>
    6.97        </widget>
    6.98 @@ -75,46 +67,27 @@
    6.99      </layout>
   6.100     </item>
   6.101     <item>
   6.102 -    <widget class="Q3ButtonGroup" name="buttonGroup2" >
   6.103 -     <property name="sizePolicy" >
   6.104 -      <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
   6.105 +    <widget class="Q3ButtonGroup" name="buttonGroup2">
   6.106 +     <property name="sizePolicy">
   6.107 +      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
   6.108         <horstretch>0</horstretch>
   6.109         <verstretch>0</verstretch>
   6.110        </sizepolicy>
   6.111       </property>
   6.112 -     <property name="minimumSize" >
   6.113 +     <property name="minimumSize">
   6.114        <size>
   6.115         <width>0</width>
   6.116         <height>160</height>
   6.117        </size>
   6.118       </property>
   6.119 -     <property name="title" >
   6.120 +     <property name="title">
   6.121        <string>Options</string>
   6.122       </property>
   6.123 -     <property name="orientation" >
   6.124 +     <property name="orientation">
   6.125        <enum>Qt::Vertical</enum>
   6.126       </property>
   6.127 -     <widget class="QCheckBox" name="outputButton" >
   6.128 -      <property name="geometry" >
   6.129 -       <rect>
   6.130 -        <x>22</x>
   6.131 -        <y>156</y>
   6.132 -        <width>521</width>
   6.133 -        <height>21</height>
   6.134 -       </rect>
   6.135 -      </property>
   6.136 -      <property name="sizePolicy" >
   6.137 -       <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
   6.138 -        <horstretch>0</horstretch>
   6.139 -        <verstretch>0</verstretch>
   6.140 -       </sizepolicy>
   6.141 -      </property>
   6.142 -      <property name="text" >
   6.143 -       <string>show output of external scripts</string>
   6.144 -      </property>
   6.145 -     </widget>
   6.146 -     <widget class="QWidget" name="layoutWidget" >
   6.147 -      <property name="geometry" >
   6.148 +     <widget class="QWidget" name="layoutWidget">
   6.149 +      <property name="geometry">
   6.150         <rect>
   6.151          <x>20</x>
   6.152          <y>30</y>
   6.153 @@ -122,189 +95,166 @@
   6.154          <height>104</height>
   6.155         </rect>
   6.156        </property>
   6.157 -      <layout class="QVBoxLayout" >
   6.158 -       <property name="spacing" >
   6.159 +      <layout class="QVBoxLayout">
   6.160 +       <property name="spacing">
   6.161          <number>6</number>
   6.162         </property>
   6.163 -       <property name="leftMargin" >
   6.164 -        <number>0</number>
   6.165 -       </property>
   6.166 -       <property name="topMargin" >
   6.167 -        <number>0</number>
   6.168 -       </property>
   6.169 -       <property name="rightMargin" >
   6.170 -        <number>0</number>
   6.171 -       </property>
   6.172 -       <property name="bottomMargin" >
   6.173 +       <property name="margin">
   6.174          <number>0</number>
   6.175         </property>
   6.176         <item>
   6.177 -        <widget class="QCheckBox" name="imageButton" >
   6.178 -         <property name="text" >
   6.179 +        <widget class="QCheckBox" name="imageButton">
   6.180 +         <property name="text">
   6.181            <string>Include image</string>
   6.182           </property>
   6.183          </widget>
   6.184         </item>
   6.185         <item>
   6.186 -        <widget class="QCheckBox" name="textColorButton" >
   6.187 -         <property name="text" >
   6.188 +        <widget class="QCheckBox" name="textColorButton">
   6.189 +         <property name="text">
   6.190            <string>Colored headings in text</string>
   6.191           </property>
   6.192          </widget>
   6.193         </item>
   6.194         <item>
   6.195 -        <widget class="QCheckBox" name="saveSettingsInMapButton" >
   6.196 -         <property name="text" >
   6.197 +        <widget class="QCheckBox" name="saveSettingsInMapButton">
   6.198 +         <property name="text">
   6.199            <string>Save settings in map</string>
   6.200           </property>
   6.201          </widget>
   6.202         </item>
   6.203         <item>
   6.204 -        <widget class="QCheckBox" name="warningsButton" >
   6.205 -         <property name="text" >
   6.206 +        <widget class="QCheckBox" name="warningsButton">
   6.207 +         <property name="text">
   6.208            <string>show warnings of xslt processor</string>
   6.209           </property>
   6.210          </widget>
   6.211         </item>
   6.212 +       <item>
   6.213 +        <widget class="QCheckBox" name="outputButton">
   6.214 +         <property name="sizePolicy">
   6.215 +          <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
   6.216 +           <horstretch>0</horstretch>
   6.217 +           <verstretch>0</verstretch>
   6.218 +          </sizepolicy>
   6.219 +         </property>
   6.220 +         <property name="text">
   6.221 +          <string>show output of external scripts</string>
   6.222 +         </property>
   6.223 +         <attribute name="buttonGroup">
   6.224 +          <string/>
   6.225 +         </attribute>
   6.226 +        </widget>
   6.227 +       </item>
   6.228        </layout>
   6.229       </widget>
   6.230      </widget>
   6.231     </item>
   6.232     <item>
   6.233 -    <widget class="Q3GroupBox" name="groupBox2" >
   6.234 -     <property name="title" >
   6.235 +    <widget class="Q3GroupBox" name="groupBox2">
   6.236 +     <property name="title">
   6.237        <string>Stylesheets</string>
   6.238       </property>
   6.239 -     <property name="orientation" >
   6.240 +     <property name="orientation">
   6.241        <enum>Qt::Vertical</enum>
   6.242       </property>
   6.243 -     <layout class="QGridLayout" >
   6.244 -      <property name="leftMargin" >
   6.245 +     <layout class="QGridLayout">
   6.246 +      <property name="margin">
   6.247         <number>11</number>
   6.248        </property>
   6.249 -      <property name="topMargin" >
   6.250 -       <number>11</number>
   6.251 -      </property>
   6.252 -      <property name="rightMargin" >
   6.253 -       <number>11</number>
   6.254 -      </property>
   6.255 -      <property name="bottomMargin" >
   6.256 -       <number>11</number>
   6.257 -      </property>
   6.258 -      <property name="horizontalSpacing" >
   6.259 +      <property name="spacing">
   6.260         <number>6</number>
   6.261        </property>
   6.262 -      <property name="verticalSpacing" >
   6.263 -       <number>6</number>
   6.264 -      </property>
   6.265 -      <item row="1" column="0" >
   6.266 -       <layout class="QHBoxLayout" >
   6.267 -        <property name="spacing" >
   6.268 +      <item row="1" column="0">
   6.269 +       <layout class="QHBoxLayout">
   6.270 +        <property name="spacing">
   6.271           <number>6</number>
   6.272          </property>
   6.273 -        <property name="leftMargin" >
   6.274 -         <number>0</number>
   6.275 -        </property>
   6.276 -        <property name="topMargin" >
   6.277 -         <number>0</number>
   6.278 -        </property>
   6.279 -        <property name="rightMargin" >
   6.280 -         <number>0</number>
   6.281 -        </property>
   6.282 -        <property name="bottomMargin" >
   6.283 +        <property name="margin">
   6.284           <number>0</number>
   6.285          </property>
   6.286          <item>
   6.287 -         <widget class="QLabel" name="textLabel2" >
   6.288 -          <property name="sizePolicy" >
   6.289 -           <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
   6.290 +         <widget class="QLabel" name="textLabel2">
   6.291 +          <property name="sizePolicy">
   6.292 +           <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
   6.293              <horstretch>0</horstretch>
   6.294              <verstretch>0</verstretch>
   6.295             </sizepolicy>
   6.296            </property>
   6.297 -          <property name="minimumSize" >
   6.298 +          <property name="minimumSize">
   6.299             <size>
   6.300              <width>125</width>
   6.301              <height>0</height>
   6.302             </size>
   6.303            </property>
   6.304 -          <property name="text" >
   6.305 +          <property name="text">
   6.306             <string>XSL:</string>
   6.307            </property>
   6.308 -          <property name="alignment" >
   6.309 +          <property name="alignment">
   6.310             <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
   6.311            </property>
   6.312           </widget>
   6.313          </item>
   6.314          <item>
   6.315 -         <widget class="QLineEdit" name="lineEditXSL" />
   6.316 +         <widget class="QLineEdit" name="lineEditXSL"/>
   6.317          </item>
   6.318          <item>
   6.319 -         <widget class="QPushButton" name="browseXSLButton" >
   6.320 -          <property name="sizePolicy" >
   6.321 -           <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
   6.322 +         <widget class="QPushButton" name="browseXSLButton">
   6.323 +          <property name="sizePolicy">
   6.324 +           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
   6.325              <horstretch>0</horstretch>
   6.326              <verstretch>0</verstretch>
   6.327             </sizepolicy>
   6.328            </property>
   6.329 -          <property name="text" >
   6.330 +          <property name="text">
   6.331             <string>Browse</string>
   6.332            </property>
   6.333           </widget>
   6.334          </item>
   6.335         </layout>
   6.336        </item>
   6.337 -      <item row="0" column="0" >
   6.338 -       <layout class="QHBoxLayout" >
   6.339 -        <property name="spacing" >
   6.340 +      <item row="0" column="0">
   6.341 +       <layout class="QHBoxLayout">
   6.342 +        <property name="spacing">
   6.343           <number>6</number>
   6.344          </property>
   6.345 -        <property name="leftMargin" >
   6.346 -         <number>0</number>
   6.347 -        </property>
   6.348 -        <property name="topMargin" >
   6.349 -         <number>0</number>
   6.350 -        </property>
   6.351 -        <property name="rightMargin" >
   6.352 -         <number>0</number>
   6.353 -        </property>
   6.354 -        <property name="bottomMargin" >
   6.355 +        <property name="margin">
   6.356           <number>0</number>
   6.357          </property>
   6.358          <item>
   6.359 -         <widget class="QLabel" name="textLabel1_2" >
   6.360 -          <property name="sizePolicy" >
   6.361 -           <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
   6.362 +         <widget class="QLabel" name="textLabel1_2">
   6.363 +          <property name="sizePolicy">
   6.364 +           <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
   6.365              <horstretch>0</horstretch>
   6.366              <verstretch>0</verstretch>
   6.367             </sizepolicy>
   6.368            </property>
   6.369 -          <property name="minimumSize" >
   6.370 +          <property name="minimumSize">
   6.371             <size>
   6.372              <width>125</width>
   6.373              <height>0</height>
   6.374             </size>
   6.375            </property>
   6.376 -          <property name="text" >
   6.377 +          <property name="text">
   6.378             <string>CSS:</string>
   6.379            </property>
   6.380 -          <property name="alignment" >
   6.381 +          <property name="alignment">
   6.382             <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
   6.383            </property>
   6.384           </widget>
   6.385          </item>
   6.386          <item>
   6.387 -         <widget class="QLineEdit" name="lineEditCSS" />
   6.388 +         <widget class="QLineEdit" name="lineEditCSS"/>
   6.389          </item>
   6.390          <item>
   6.391 -         <widget class="QPushButton" name="browseCSSButton" >
   6.392 -          <property name="sizePolicy" >
   6.393 -           <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
   6.394 +         <widget class="QPushButton" name="browseCSSButton">
   6.395 +          <property name="sizePolicy">
   6.396 +           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
   6.397              <horstretch>0</horstretch>
   6.398              <verstretch>0</verstretch>
   6.399             </sizepolicy>
   6.400            </property>
   6.401 -          <property name="text" >
   6.402 +          <property name="text">
   6.403             <string>Browse</string>
   6.404            </property>
   6.405           </widget>
   6.406 @@ -315,143 +265,113 @@
   6.407      </widget>
   6.408     </item>
   6.409     <item>
   6.410 -    <widget class="Q3GroupBox" name="groupBox1" >
   6.411 -     <property name="title" >
   6.412 +    <widget class="Q3GroupBox" name="groupBox1">
   6.413 +     <property name="title">
   6.414        <string>Scripts</string>
   6.415       </property>
   6.416 -     <property name="orientation" >
   6.417 +     <property name="orientation">
   6.418        <enum>Qt::Vertical</enum>
   6.419       </property>
   6.420 -     <layout class="QGridLayout" >
   6.421 -      <property name="leftMargin" >
   6.422 +     <layout class="QGridLayout">
   6.423 +      <property name="margin">
   6.424         <number>11</number>
   6.425        </property>
   6.426 -      <property name="topMargin" >
   6.427 -       <number>11</number>
   6.428 -      </property>
   6.429 -      <property name="rightMargin" >
   6.430 -       <number>11</number>
   6.431 -      </property>
   6.432 -      <property name="bottomMargin" >
   6.433 -       <number>11</number>
   6.434 -      </property>
   6.435 -      <property name="horizontalSpacing" >
   6.436 +      <property name="spacing">
   6.437         <number>6</number>
   6.438        </property>
   6.439 -      <property name="verticalSpacing" >
   6.440 -       <number>6</number>
   6.441 -      </property>
   6.442 -      <item row="0" column="0" >
   6.443 -       <layout class="QHBoxLayout" >
   6.444 -        <property name="spacing" >
   6.445 +      <item row="0" column="0">
   6.446 +       <layout class="QHBoxLayout">
   6.447 +        <property name="spacing">
   6.448           <number>6</number>
   6.449          </property>
   6.450 -        <property name="leftMargin" >
   6.451 -         <number>0</number>
   6.452 -        </property>
   6.453 -        <property name="topMargin" >
   6.454 -         <number>0</number>
   6.455 -        </property>
   6.456 -        <property name="rightMargin" >
   6.457 -         <number>0</number>
   6.458 -        </property>
   6.459 -        <property name="bottomMargin" >
   6.460 +        <property name="margin">
   6.461           <number>0</number>
   6.462          </property>
   6.463          <item>
   6.464 -         <widget class="QLabel" name="textLabel1_3" >
   6.465 -          <property name="sizePolicy" >
   6.466 -           <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
   6.467 +         <widget class="QLabel" name="textLabel1_3">
   6.468 +          <property name="sizePolicy">
   6.469 +           <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
   6.470              <horstretch>0</horstretch>
   6.471              <verstretch>0</verstretch>
   6.472             </sizepolicy>
   6.473            </property>
   6.474 -          <property name="minimumSize" >
   6.475 +          <property name="minimumSize">
   6.476             <size>
   6.477              <width>125</width>
   6.478              <height>0</height>
   6.479             </size>
   6.480            </property>
   6.481 -          <property name="text" >
   6.482 +          <property name="text">
   6.483             <string>Before export:</string>
   6.484            </property>
   6.485 -          <property name="alignment" >
   6.486 +          <property name="alignment">
   6.487             <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
   6.488            </property>
   6.489           </widget>
   6.490          </item>
   6.491          <item>
   6.492 -         <widget class="QLineEdit" name="lineEditPreScript" />
   6.493 +         <widget class="QLineEdit" name="lineEditPreScript"/>
   6.494          </item>
   6.495          <item>
   6.496 -         <widget class="QPushButton" name="browsePreExportButton" >
   6.497 -          <property name="sizePolicy" >
   6.498 -           <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
   6.499 +         <widget class="QPushButton" name="browsePreExportButton">
   6.500 +          <property name="sizePolicy">
   6.501 +           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
   6.502              <horstretch>0</horstretch>
   6.503              <verstretch>0</verstretch>
   6.504             </sizepolicy>
   6.505            </property>
   6.506 -          <property name="text" >
   6.507 +          <property name="text">
   6.508             <string>Browse</string>
   6.509            </property>
   6.510           </widget>
   6.511          </item>
   6.512         </layout>
   6.513        </item>
   6.514 -      <item row="1" column="0" >
   6.515 -       <layout class="QHBoxLayout" >
   6.516 -        <property name="spacing" >
   6.517 +      <item row="1" column="0">
   6.518 +       <layout class="QHBoxLayout">
   6.519 +        <property name="spacing">
   6.520           <number>6</number>
   6.521          </property>
   6.522 -        <property name="leftMargin" >
   6.523 -         <number>0</number>
   6.524 -        </property>
   6.525 -        <property name="topMargin" >
   6.526 -         <number>0</number>
   6.527 -        </property>
   6.528 -        <property name="rightMargin" >
   6.529 -         <number>0</number>
   6.530 -        </property>
   6.531 -        <property name="bottomMargin" >
   6.532 +        <property name="margin">
   6.533           <number>0</number>
   6.534          </property>
   6.535          <item>
   6.536 -         <widget class="QLabel" name="textLabel2_2" >
   6.537 -          <property name="sizePolicy" >
   6.538 -           <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
   6.539 +         <widget class="QLabel" name="textLabel2_2">
   6.540 +          <property name="sizePolicy">
   6.541 +           <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
   6.542              <horstretch>0</horstretch>
   6.543              <verstretch>0</verstretch>
   6.544             </sizepolicy>
   6.545            </property>
   6.546 -          <property name="minimumSize" >
   6.547 +          <property name="minimumSize">
   6.548             <size>
   6.549              <width>125</width>
   6.550              <height>0</height>
   6.551             </size>
   6.552            </property>
   6.553 -          <property name="frameShape" >
   6.554 +          <property name="frameShape">
   6.555             <enum>QFrame::NoFrame</enum>
   6.556            </property>
   6.557 -          <property name="text" >
   6.558 +          <property name="text">
   6.559             <string>After Export:</string>
   6.560            </property>
   6.561 -          <property name="alignment" >
   6.562 +          <property name="alignment">
   6.563             <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
   6.564            </property>
   6.565           </widget>
   6.566          </item>
   6.567          <item>
   6.568 -         <widget class="QLineEdit" name="lineEditPostScript" />
   6.569 +         <widget class="QLineEdit" name="lineEditPostScript"/>
   6.570          </item>
   6.571          <item>
   6.572 -         <widget class="QPushButton" name="browsePostExportButton" >
   6.573 -          <property name="sizePolicy" >
   6.574 -           <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
   6.575 +         <widget class="QPushButton" name="browsePostExportButton">
   6.576 +          <property name="sizePolicy">
   6.577 +           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
   6.578              <horstretch>0</horstretch>
   6.579              <verstretch>0</verstretch>
   6.580             </sizepolicy>
   6.581            </property>
   6.582 -          <property name="text" >
   6.583 +          <property name="text">
   6.584             <string>Browse</string>
   6.585            </property>
   6.586           </widget>
   6.587 @@ -463,13 +383,13 @@
   6.588     </item>
   6.589     <item>
   6.590      <spacer>
   6.591 -     <property name="orientation" >
   6.592 +     <property name="orientation">
   6.593        <enum>Qt::Vertical</enum>
   6.594       </property>
   6.595 -     <property name="sizeType" >
   6.596 +     <property name="sizeType">
   6.597        <enum>QSizePolicy::MinimumExpanding</enum>
   6.598       </property>
   6.599 -     <property name="sizeHint" >
   6.600 +     <property name="sizeHint" stdset="0">
   6.601        <size>
   6.602         <width>20</width>
   6.603         <height>41</height>
   6.604 @@ -478,16 +398,16 @@
   6.605      </spacer>
   6.606     </item>
   6.607     <item>
   6.608 -    <layout class="QHBoxLayout" >
   6.609 +    <layout class="QHBoxLayout">
   6.610       <item>
   6.611        <spacer>
   6.612 -       <property name="orientation" >
   6.613 +       <property name="orientation">
   6.614          <enum>Qt::Horizontal</enum>
   6.615         </property>
   6.616 -       <property name="sizeType" >
   6.617 +       <property name="sizeType">
   6.618          <enum>QSizePolicy::Expanding</enum>
   6.619         </property>
   6.620 -       <property name="sizeHint" >
   6.621 +       <property name="sizeHint" stdset="0">
   6.622          <size>
   6.623           <width>61</width>
   6.624           <height>21</height>
   6.625 @@ -496,18 +416,18 @@
   6.626        </spacer>
   6.627       </item>
   6.628       <item>
   6.629 -      <widget class="QPushButton" name="cancelButton" >
   6.630 -       <property name="text" >
   6.631 +      <widget class="QPushButton" name="cancelButton">
   6.632 +       <property name="text">
   6.633          <string>Cancel</string>
   6.634         </property>
   6.635        </widget>
   6.636       </item>
   6.637       <item>
   6.638 -      <widget class="QPushButton" name="exportButton" >
   6.639 -       <property name="text" >
   6.640 +      <widget class="QPushButton" name="exportButton">
   6.641 +       <property name="text">
   6.642          <string>Export</string>
   6.643         </property>
   6.644 -       <property name="default" >
   6.645 +       <property name="default">
   6.646          <bool>true</bool>
   6.647         </property>
   6.648        </widget>
   6.649 @@ -516,7 +436,7 @@
   6.650     </item>
   6.651    </layout>
   6.652   </widget>
   6.653 - <layoutdefault spacing="6" margin="11" />
   6.654 + <layoutdefault spacing="6" margin="11"/>
   6.655   <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
   6.656   <customwidgets>
   6.657    <customwidget>
   6.658 @@ -533,8 +453,8 @@
   6.659    </customwidget>
   6.660   </customwidgets>
   6.661   <includes>
   6.662 -  <include location="local" >xsltproc.h</include>
   6.663 -  <include location="local" >process.h</include>
   6.664 +  <include location="local">xsltproc.h</include>
   6.665 +  <include location="local">process.h</include>
   6.666   </includes>
   6.667   <resources/>
   6.668   <connections>
   6.669 @@ -544,11 +464,11 @@
   6.670     <receiver>ExportXHTMLDialog</receiver>
   6.671     <slot>reject()</slot>
   6.672     <hints>
   6.673 -    <hint type="sourcelabel" >
   6.674 +    <hint type="sourcelabel">
   6.675       <x>459</x>
   6.676       <y>443</y>
   6.677      </hint>
   6.678 -    <hint type="destinationlabel" >
   6.679 +    <hint type="destinationlabel">
   6.680       <x>256</x>
   6.681       <y>233</y>
   6.682      </hint>
   6.683 @@ -560,11 +480,11 @@
   6.684     <receiver>ExportXHTMLDialog</receiver>
   6.685     <slot>accept()</slot>
   6.686     <hints>
   6.687 -    <hint type="sourcelabel" >
   6.688 +    <hint type="sourcelabel">
   6.689       <x>368</x>
   6.690       <y>443</y>
   6.691      </hint>
   6.692 -    <hint type="destinationlabel" >
   6.693 +    <hint type="destinationlabel">
   6.694       <x>256</x>
   6.695       <y>233</y>
   6.696      </hint>
     7.1 --- a/flagrow.cpp	Fri Feb 19 13:47:03 2010 +0000
     7.2 +++ b/flagrow.cpp	Thu Feb 25 11:03:52 2010 +0000
     7.3 @@ -46,7 +46,7 @@
     7.4  }
     7.5  
     7.6  
     7.7 -bool FlagRow::isActive (const QString &name)	//FIXME-2 regression
     7.8 +bool FlagRow::isActive (const QString &name)
     7.9  {
    7.10  	QString n;
    7.11  	foreach (n,activeNames)
     8.1 --- a/geometry.cpp	Fri Feb 19 13:47:03 2010 +0000
     8.2 +++ b/geometry.cpp	Thu Feb 25 11:03:52 2010 +0000
     8.3 @@ -48,6 +48,11 @@
     8.4      return false;	
     8.5  }
     8.6  
     8.7 +qreal distance (const QPointF &p, const QPointF &q)
     8.8 +{
     8.9 +	return sqrt (p.x()*q.x() + p.y()*q.y());
    8.10 +}
    8.11 +
    8.12  Vector::Vector ():QPointF ()
    8.13  {
    8.14  }
     9.1 --- a/geometry.h	Fri Feb 19 13:47:03 2010 +0000
     9.2 +++ b/geometry.h	Thu Feb 25 11:03:52 2010 +0000
     9.3 @@ -5,6 +5,7 @@
     9.4  
     9.5  QRectF addBBox(QRectF r1, QRectF r2);
     9.6  bool isInBox(const QPointF &p, const QRectF &box);
     9.7 +qreal distance (const QPointF &p, const QPointF &q);
     9.8  
     9.9  
    9.10  class Vector:public QPointF
    10.1 --- a/main.cpp	Fri Feb 19 13:47:03 2010 +0000
    10.2 +++ b/main.cpp	Thu Feb 25 11:03:52 2010 +0000
    10.3 @@ -202,7 +202,7 @@
    10.4  #endif
    10.5  
    10.6  	//m.resize(m.sizeHint());
    10.7 -	m.setIcon (QPixmap (iconPath+"vym-48x48.png"));
    10.8 +	m.setIcon (QPixmap (iconPath+"vym.png"));
    10.9  	m.show();
   10.10  	m.fileNew();
   10.11  	// Paint Mainwindow first time
    11.1 --- a/mainwindow.cpp	Fri Feb 19 13:47:03 2010 +0000
    11.2 +++ b/mainwindow.cpp	Thu Feb 25 11:03:52 2010 +0000
    11.3 @@ -205,6 +205,8 @@
    11.4  	setupSettingsActions();
    11.5  	setupContextMenus();
    11.6  	setupMacros();
    11.7 +	if (debug) switchboard.print();
    11.8 +
    11.9  	if (settings.value( "/mainwindow/showTestMenu",false).toBool()) setupTestActions();
   11.10  	setupHelpActions();
   11.11  
   11.12 @@ -341,6 +343,7 @@
   11.13  	a = new QAction(QPixmap( iconPath+"filenew.png"), tr( "&New map","File menu" ),this);
   11.14  	a->setStatusTip ( tr( "New map","Status tip File menu" ) );
   11.15  	a->setShortcut ( Qt::CTRL + Qt::Key_N );		//New map
   11.16 +	switchboard.addConnection(a,tr("File","Shortcut group"));
   11.17  	a->addTo( tb );
   11.18  	fileMenu->addAction (a);
   11.19  	connect( a, SIGNAL( triggered() ), this, SLOT( fileNew() ) );
   11.20 @@ -348,6 +351,7 @@
   11.21  	a = new QAction(QPixmap( iconPath+"filenewcopy.png"), tr( "&Copy to new map","File menu" ),this);
   11.22  	a->setStatusTip ( tr( "Copy selection to mapcenter of a new map","Status tip File menu" ) );
   11.23  	a->setShortcut ( Qt::CTRL +Qt::SHIFT + Qt::Key_N );		//New map
   11.24 +	switchboard.addConnection(a,tr("File","Shortcut group"));
   11.25  	fileMenu->addAction (a);
   11.26  	connect( a, SIGNAL( triggered() ), this, SLOT( fileNewCopy() ) );
   11.27  	actionFileNewCopy=a;
   11.28 @@ -355,6 +359,7 @@
   11.29  	a = new QAction( QPixmap( iconPath+"fileopen.png"), tr( "&Open..." ,"File menu"),this);
   11.30  	a->setStatusTip (tr( "Open","Status tip File menu" ) );
   11.31  	a->setShortcut ( Qt::CTRL + Qt::Key_O );		//Open map
   11.32 +	switchboard.addConnection(a,tr("File","Shortcut group"));
   11.33  	a->addTo( tb );
   11.34  	fileMenu->addAction (a);
   11.35  	connect( a, SIGNAL( triggered() ), this, SLOT( fileLoad() ) );
   11.36 @@ -365,6 +370,7 @@
   11.37  	a = new QAction( QPixmap( iconPath+"filesave.png"), tr( "&Save...","File menu" ), this);
   11.38  	a->setStatusTip ( tr( "Save","Status tip file menu" ));
   11.39  	a->setShortcut (Qt::CTRL + Qt::Key_S );			//Save map
   11.40 +	switchboard.addConnection(a,tr("File","Shortcut group"));
   11.41  	a->addTo( tb );
   11.42  	fileMenu->addAction (a);
   11.43  	connect( a, SIGNAL( triggered() ), this, SLOT( fileSave() ) );
   11.44 @@ -372,6 +378,7 @@
   11.45  
   11.46  	a = new QAction( QPixmap(iconPath+"filesaveas.png"), tr( "Save &As...","File menu" ), this);
   11.47  	a->setStatusTip (tr( "Save &As","Status tip file menu" ) );
   11.48 +	switchboard.addConnection(a,tr("File","Shortcut group"));
   11.49  	fileMenu->addAction (a);
   11.50  	connect( a, SIGNAL( triggered() ), this, SLOT( fileSaveAs() ) );
   11.51  
   11.52 @@ -381,12 +388,14 @@
   11.53  
   11.54  	a = new QAction(tr("KDE 3 Bookmarks"), this);
   11.55  	a->setStatusTip ( tr( "Import %1","Status tip file menu" ).arg(tr("KDE 3 bookmarks")));
   11.56 +	switchboard.addConnection(a,tr("File","Shortcut group"));
   11.57  	a->addTo (fileImportMenu);
   11.58  	connect( a, SIGNAL( triggered() ), this, SLOT( fileImportKDE3Bookmarks() ) );
   11.59  
   11.60  	a = new QAction(tr("KDE 4 Bookmarks"), this);
   11.61  	a->setStatusTip ( tr( "Import %1","Status tip file menu" ).arg(tr("KDE 4 bookmarks")));
   11.62  	a->addTo (fileImportMenu);
   11.63 +	switchboard.addConnection(a,tr("File","Shortcut group"));
   11.64  	connect( a, SIGNAL( triggered() ), this, SLOT( fileImportKDE4Bookmarks() ) );
   11.65  
   11.66  	if (settings.value( "/mainwindow/showTestMenu",false).toBool()) 
   11.67 @@ -394,21 +403,25 @@
   11.68  		a = new QAction( QPixmap(), tr("Firefox Bookmarks","File menu"),this);
   11.69  		a->setStatusTip (tr( "Import %1","Status tip file menu").arg(tr("Firefox Bookmarks" ) ));
   11.70  		a->addTo (fileImportMenu);
   11.71 +		switchboard.addConnection(a,tr("File","Shortcut group"));
   11.72  		connect( a, SIGNAL( triggered() ), this, SLOT( fileImportFirefoxBookmarks() ) );
   11.73  	}	
   11.74  
   11.75  	a = new QAction("Freemind...",this);
   11.76  	a->setStatusTip ( tr( "Import %1","status tip file menu").arg(" Freemind")  );
   11.77 +	switchboard.addConnection(a,tr("File","Shortcut group"));
   11.78  	fileImportMenu->addAction (a);
   11.79  	connect( a, SIGNAL( triggered() ), this, SLOT( fileImportFreemind() ) );
   11.80  
   11.81  	a = new QAction("Mind Manager...",this);
   11.82  	a->setStatusTip ( tr( "Import %1","status tip file menu").arg(" Mind Manager")  );
   11.83 +	switchboard.addConnection(a,tr("File","Shortcut group"));
   11.84  	fileImportMenu->addAction (a);
   11.85  	connect( a, SIGNAL( triggered() ), this, SLOT( fileImportMM() ) );
   11.86  
   11.87  	a = new QAction( tr( "Import Dir%1","File menu").arg("..."), this);
   11.88  	a->setStatusTip (tr( "Import directory structure (experimental)","status tip file menu" ) );
   11.89 +	switchboard.addConnection(a,tr("File","Shortcut group"));
   11.90  	fileImportMenu->addAction (a);
   11.91  	connect( a, SIGNAL( triggered() ), this, SLOT( fileImportDir() ) );
   11.92  
   11.93 @@ -416,17 +429,20 @@
   11.94  
   11.95  	a = new QAction( tr("Image%1","File export menu").arg("..."), this);
   11.96  	a->setStatusTip( tr( "Export map as image","status tip file menu" ));
   11.97 +	switchboard.addConnection(a,tr("File","Shortcut group"));
   11.98  	connect( a, SIGNAL( triggered() ), this, SLOT( fileExportImage() ) );
   11.99  	fileExportMenu->addAction (a);
  11.100  
  11.101  	a = new QAction( "Open Office...", this);
  11.102  	a->setStatusTip( tr( "Export in Open Document Format used e.g. in Open Office ","status tip file menu" ));
  11.103 +	switchboard.addConnection(a,tr("File","Shortcut group"));
  11.104  	connect( a, SIGNAL( triggered() ), this, SLOT( fileExportOOPresentation() ) );
  11.105  	fileExportMenu->addAction (a);
  11.106  
  11.107  	a = new QAction(  "Webpage (HTML)...",this );
  11.108  	a->setShortcut (Qt::ALT + Qt::Key_X);			//Export HTML
  11.109  	a->setStatusTip ( tr( "Export as %1","status tip file menu").arg(tr(" webpage (XHTML)","status tip file menu")));
  11.110 +	switchboard.addConnection(a,tr("File","Shortcut group"));
  11.111  	connect( a, SIGNAL( triggered() ), this, SLOT( fileExportHTML() ) );
  11.112  	fileExportMenu->addAction (a);
  11.113  
  11.114 @@ -438,41 +454,49 @@
  11.115  
  11.116  	a = new QAction( "Text (A&O report)...", this);
  11.117  	a->setStatusTip ( tr( "Export as %1").arg("A&O report "+tr("(still experimental)" )));
  11.118 +	switchboard.addConnection(a,tr("File","Shortcut group"));
  11.119  	connect( a, SIGNAL( triggered() ), this, SLOT( fileExportAO() ) );
  11.120  	fileExportMenu->addAction (a);
  11.121  
  11.122  	a = new QAction( "Text (ASCII)...", this);
  11.123  	a->setStatusTip ( tr( "Export as %1").arg("ASCII "+tr("(still experimental)" )));
  11.124 +	switchboard.addConnection(a,tr("File","Shortcut group"));
  11.125  	connect( a, SIGNAL( triggered() ), this, SLOT( fileExportASCII() ) );
  11.126  	fileExportMenu->addAction (a);
  11.127  
  11.128  	a = new QAction( "Spreadsheet (CSV)...", this);
  11.129  	a->setStatusTip ( tr( "Export as %1").arg("CSV "+tr("(still experimental)" )));
  11.130 +	switchboard.addConnection(a,tr("File","Shortcut group"));
  11.131  	connect( a, SIGNAL( triggered() ), this, SLOT( fileExportCSV() ) );
  11.132  	fileExportMenu->addAction (a);
  11.133  
  11.134  	a = new QAction( tr("KDE 3 Bookmarks","File menu"), this);
  11.135  	a->setStatusTip( tr( "Export as %1").arg(tr("KDE 3 Bookmarks" )));
  11.136 +	switchboard.addConnection(a,tr("File","Shortcut group"));
  11.137  	connect( a, SIGNAL( triggered() ), this, SLOT( fileExportKDE3Bookmarks() ) );
  11.138  	fileExportMenu->addAction (a);
  11.139  
  11.140  	a = new QAction( tr("KDE 4 Bookmarks","File menu"), this);
  11.141  	a->setStatusTip( tr( "Export as %1").arg(tr("KDE 4 Bookmarks" )));
  11.142 +	switchboard.addConnection(a,tr("File","Shortcut group"));
  11.143  	connect( a, SIGNAL( triggered() ), this, SLOT( fileExportKDE4Bookmarks() ) );
  11.144  	fileExportMenu->addAction (a);
  11.145  
  11.146  	a = new QAction( "Taskjuggler...", this );
  11.147  	a->setStatusTip( tr( "Export as %1").arg("Taskjuggler "+tr("(still experimental)" )));
  11.148 +	switchboard.addConnection(a,tr("File","Shortcut group"));
  11.149  	connect( a, SIGNAL( triggered() ), this, SLOT( fileExportTaskjuggler() ) );
  11.150  	fileExportMenu->addAction (a);
  11.151  
  11.152  	a = new QAction( "LaTeX...", this);
  11.153  	a->setStatusTip( tr( "Export as %1").arg("LaTeX "+tr("(still experimental)" )));
  11.154 +	switchboard.addConnection(a,tr("File","Shortcut group"));
  11.155  	connect( a, SIGNAL( triggered() ), this, SLOT( fileExportLaTeX() ) );
  11.156  	fileExportMenu->addAction (a);
  11.157  
  11.158  	a = new QAction( "XML..." , this );
  11.159  	a->setStatusTip (tr( "Export as %1").arg("XML"));
  11.160 +	switchboard.addConnection(a,tr("File","Shortcut group"));
  11.161  	connect( a, SIGNAL( triggered() ), this, SLOT( fileExportXML() ) );
  11.162  	fileExportMenu->addAction (a);
  11.163  
  11.164 @@ -482,6 +506,7 @@
  11.165  	a->setStatusTip ( tr( "Print" ,"File menu") );
  11.166  	a->setShortcut (Qt::CTRL + Qt::Key_P );			//Print map
  11.167  	a->addTo( tb );
  11.168 +	switchboard.addConnection(a,tr("File","Shortcut group"));
  11.169  	fileMenu->addAction (a);
  11.170  	connect( a, SIGNAL( triggered() ), this, SLOT( filePrint() ) );
  11.171  	actionFilePrint=a;
  11.172 @@ -489,12 +514,14 @@
  11.173  	a = new QAction( QPixmap(iconPath+"fileclose.png"), tr( "&Close Map","File menu" ), this);
  11.174  	a->setStatusTip (tr( "Close Map" ) );
  11.175  	a->setShortcut (Qt::CTRL + Qt::Key_W );			//Close map
  11.176 +	switchboard.addConnection(a,tr("File","Shortcut group"));
  11.177  	fileMenu->addAction (a);
  11.178  	connect( a, SIGNAL( triggered() ), this, SLOT( fileCloseMap() ) );
  11.179  
  11.180  	a = new QAction(QPixmap(iconPath+"exit.png"), tr( "E&xit","File menu")+" "+vymName, this);
  11.181  	a->setStatusTip ( tr( "Exit")+" "+vymName );
  11.182  	a->setShortcut (Qt::CTRL + Qt::Key_Q );			//Quit vym
  11.183 +	switchboard.addConnection(a,tr("File","Shortcut group"));
  11.184  	fileMenu->addAction (a);
  11.185  	connect( a, SIGNAL( triggered() ), this, SLOT( fileExitVYM() ) );
  11.186  }
  11.187 @@ -515,6 +542,7 @@
  11.188  	a->setStatusTip (tr( "Undo" ) );
  11.189  	a->setShortcut ( Qt::CTRL + Qt::Key_Z );		//Undo last action
  11.190  	a->setEnabled (false);
  11.191 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.192  	tb->addAction (a);
  11.193  	editMenu->addAction (a);
  11.194  	actionUndo=a;
  11.195 @@ -522,6 +550,7 @@
  11.196  	a = new QAction( QPixmap( iconPath+"redo.png"), tr( "&Redo","Edit menu" ), this); 
  11.197  	a->setStatusTip (tr( "Redo" ));
  11.198  	a->setShortcut (Qt::CTRL + Qt::Key_Y );			//Redo last action
  11.199 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.200  	tb->addAction (a);
  11.201  	editMenu->addAction (a);
  11.202  	connect( a, SIGNAL( triggered() ), this, SLOT( editRedo() ) );
  11.203 @@ -532,6 +561,7 @@
  11.204  	a->setStatusTip ( tr( "Copy" ) );
  11.205  	a->setShortcut (Qt::CTRL + Qt::Key_C );			//Copy
  11.206  	a->setEnabled (false);
  11.207 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.208  	tb->addAction (a);
  11.209  	editMenu->addAction (a);
  11.210  	connect( a, SIGNAL( triggered() ), this, SLOT( editCopy() ) );
  11.211 @@ -542,6 +572,7 @@
  11.212  	a->setShortcut (Qt::CTRL + Qt::Key_X );			//Cut
  11.213  	a->setEnabled (false);
  11.214  	tb->addAction (a);
  11.215 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.216  	editMenu->addAction (a);
  11.217  	actionCut=a;
  11.218  	connect( a, SIGNAL( triggered() ), this, SLOT( editCut() ) );
  11.219 @@ -552,6 +583,7 @@
  11.220  	a->setShortcut ( Qt::CTRL + Qt::Key_V );		//Paste
  11.221  	a->setEnabled (false);
  11.222  	tb->addAction (a);
  11.223 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.224  	editMenu->addAction (a);
  11.225  	actionPaste=a;
  11.226  
  11.227 @@ -560,6 +592,7 @@
  11.228  	a->setStatusTip (tr( "Delete Selection" ));
  11.229  	a->setShortcut ( Qt::Key_Delete);				//Delete selection
  11.230  	a->setShortcutContext (Qt::WindowShortcut);
  11.231 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.232  	addAction (a);
  11.233  	connect( a, SIGNAL( triggered() ), this, SLOT( editDeleteSelection() ) );
  11.234  	actionDelete=a;
  11.235 @@ -568,6 +601,7 @@
  11.236  	a= new QAction(tr( "Add attribute" ), this);
  11.237  	a->setShortcut ( Qt::Key_Q);	
  11.238  	a->setShortcutContext (Qt::WindowShortcut);
  11.239 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.240  	addAction (a);
  11.241  	connect( a, SIGNAL( triggered() ), this, SLOT( editAddAttribute() ) );
  11.242  	actionAddAttribute= a;
  11.243 @@ -577,6 +611,7 @@
  11.244  	a= new QAction(QPixmap(iconPath+"newmapcenter.png"),tr( "Add mapcenter","Canvas context menu" ), this);
  11.245  	a->setShortcut ( Qt::Key_M);	
  11.246  	a->setShortcutContext (Qt::WindowShortcut);
  11.247 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.248  	connect( a, SIGNAL( triggered() ), this, SLOT( editAddMapCenter() ) );
  11.249  	//actionListBranches.append(a);
  11.250  	tb->addAction (a);
  11.251 @@ -588,11 +623,13 @@
  11.252  	alt->setStatusTip ( tr( "Add a branch as child of selection" ));
  11.253  	alt->setShortcut (Qt::Key_A);					//Add branch
  11.254  	alt->setShortcutContext (Qt::WindowShortcut);
  11.255 +	switchboard.addConnection(alt,tr("Edit","Shortcut group"));
  11.256  	addAction (alt);
  11.257  	connect( alt, SIGNAL( triggered() ), this, SLOT( editNewBranch() ) );
  11.258  	a = new QAction(QPixmap(iconPath+"newbranch.png"), tr( "Add branch as child","Edit menu" ), this);
  11.259  	a->setStatusTip ( tr( "Add a branch as child of selection" ));
  11.260  	a->setShortcut (Qt::Key_Insert);				//Add branch
  11.261 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.262  	connect( a, SIGNAL( triggered() ), this, SLOT( editNewBranch() ) );
  11.263  	actionListBranches.append(a);
  11.264  	#if defined (Q_OS_MACX)
  11.265 @@ -610,6 +647,7 @@
  11.266  	a->setStatusTip ( tr( "Add a branch by inserting and making selection its child" ));
  11.267  	a->setShortcut (Qt::ALT + Qt::Key_Insert );		//Insert branch
  11.268  	a->setShortcutContext (Qt::WindowShortcut);
  11.269 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.270  	addAction (a);
  11.271  	connect( a, SIGNAL( triggered() ), this, SLOT( editNewBranchBefore() ) );
  11.272  	a->setEnabled (false);
  11.273 @@ -619,6 +657,7 @@
  11.274  	a->setStatusTip ( tr( "Add a branch by inserting and making selection its child" ));
  11.275  	a->setShortcut ( Qt::ALT + Qt::Key_A );			//Insert branch
  11.276  	a->setShortcutContext (Qt::WindowShortcut);
  11.277 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.278  	addAction (a);
  11.279  	connect( a, SIGNAL( triggered() ), this, SLOT( editNewBranchBefore() ) );
  11.280  	actionListBranches.append(a);
  11.281 @@ -628,6 +667,7 @@
  11.282  	a->setStatusTip ( tr( "Add a branch above selection" ));
  11.283  	a->setShortcut (Qt::SHIFT+Qt::Key_Insert );		//Add branch above
  11.284  	a->setShortcutContext (Qt::WindowShortcut);
  11.285 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.286  	addAction (a);
  11.287  	connect( a, SIGNAL( triggered() ), this, SLOT( editNewBranchAbove() ) );
  11.288  	a->setEnabled (false);
  11.289 @@ -637,6 +677,7 @@
  11.290  	a->setStatusTip ( tr( "Add a branch above selection" ));
  11.291  	a->setShortcut (Qt::SHIFT+Qt::Key_A );			//Add branch above
  11.292  	a->setShortcutContext (Qt::WindowShortcut);
  11.293 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.294  	addAction (a);
  11.295  	connect( a, SIGNAL( triggered() ), this, SLOT( editNewBranchAbove() ) );
  11.296  	actionListBranches.append(a);
  11.297 @@ -646,6 +687,7 @@
  11.298  	a->setStatusTip ( tr( "Add a branch below selection" ));
  11.299  	a->setShortcut (Qt::CTRL +Qt::Key_Insert );		//Add branch below
  11.300  	a->setShortcutContext (Qt::WindowShortcut);
  11.301 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.302  	addAction (a);
  11.303  	connect( a, SIGNAL( triggered() ), this, SLOT( editNewBranchBelow() ) );
  11.304  	a->setEnabled (false);
  11.305 @@ -655,6 +697,7 @@
  11.306  	a->setStatusTip ( tr( "Add a branch below selection" ));
  11.307  	a->setShortcut (Qt::CTRL +Qt::Key_A );			// Add branch below
  11.308  	a->setShortcutContext (Qt::WindowShortcut);
  11.309 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.310  	addAction (a);
  11.311  	connect( a, SIGNAL( triggered() ), this, SLOT( editNewBranchBelow() ) );
  11.312  	actionListBranches.append(a);
  11.313 @@ -663,6 +706,7 @@
  11.314  	a->setStatusTip ( tr( "Move branch up" ) );
  11.315  	a->setShortcut (Qt::Key_PageUp );				// Move branch up
  11.316  	a->setEnabled (false);
  11.317 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.318  	tb->addAction (a);
  11.319  	editMenu->addAction (a);
  11.320  	connect( a, SIGNAL( triggered() ), this, SLOT( editMoveUp() ) );
  11.321 @@ -673,6 +717,7 @@
  11.322  	a->setStatusTip (tr( "Move branch down" ) );
  11.323  	a->setShortcut ( Qt::Key_PageDown );			// Move branch down
  11.324  	a->setEnabled (false);
  11.325 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.326  	tb->addAction (a);
  11.327  	editMenu->addAction (a);
  11.328  	actionMoveDown=a;
  11.329 @@ -680,6 +725,7 @@
  11.330  	a = new QAction(QPixmap(), tr( "&Detach","Context menu" ),this);
  11.331  	a->setStatusTip ( tr( "Detach branch and use as mapcenter","Context menu" ) );
  11.332  	a->setShortcut ( Qt::Key_D );					// Detach branch
  11.333 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.334  	editMenu->addAction (a);
  11.335  	connect( a, SIGNAL( triggered() ), this, SLOT( editDetach() ) );
  11.336  	actionDetach=a;
  11.337 @@ -688,6 +734,7 @@
  11.338  	connect( a, SIGNAL( activated() ), this, SLOT( editSortChildren() ) );
  11.339  	a->setEnabled (true);
  11.340  	a->addTo( tb );
  11.341 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.342  	editMenu->addAction (a);
  11.343  	actionSortChildren=a;
  11.344  
  11.345 @@ -695,12 +742,14 @@
  11.346  	connect( a, SIGNAL( activated() ), this, SLOT( editSortBackChildren() ) );
  11.347  	a->setEnabled (true);
  11.348  	a->addTo( tb );
  11.349 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.350  	editMenu->addAction (a);
  11.351  	actionSortBackChildren=a;
  11.352  
  11.353  	alt = new QAction( QPixmap(flagsPath+"flag-scrolled-right.png"), tr( "Scroll branch","Edit menu" ), this);
  11.354  	alt->setShortcut ( Qt::Key_S );					// Scroll branch
  11.355  	alt->setStatusTip (tr( "Scroll branch" )); 
  11.356 +	switchboard.addConnection(alt,tr("Edit","Shortcut group"));
  11.357  	connect( alt, SIGNAL( triggered() ), this, SLOT( editToggleScroll() ) );
  11.358  	#if defined(Q_OS_MACX)
  11.359  		actionToggleScroll=alt;
  11.360 @@ -719,6 +768,7 @@
  11.361  	a = new QAction( QPixmap(), tr( "Expand all branches","Edit menu" ), this);
  11.362  	a->setShortcut ( Qt::SHIFT + Qt::Key_X );		// Expand all branches 
  11.363  	a->setStatusTip (tr( "Expand all branches" )); 
  11.364 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.365  	connect( a, SIGNAL( triggered() ), this, SLOT( editExpandAll() ) );
  11.366  	actionExpandAll=a;
  11.367  	actionExpandAll->setEnabled (false);
  11.368 @@ -730,6 +780,7 @@
  11.369  
  11.370  	a = new QAction( QPixmap(), tr( "Expand one level","Edit menu" ), this);
  11.371  	a->setShortcut ( Qt::Key_Greater );		// Expand one level in tree editor
  11.372 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.373  	a->setStatusTip (tr( "Expand one level in tree editor" )); 
  11.374  	connect( a, SIGNAL( triggered() ), this, SLOT( editExpandOneLevel() ) );
  11.375  	a->setEnabled (false);
  11.376 @@ -742,6 +793,7 @@
  11.377  
  11.378  	a = new QAction( QPixmap(), tr( "Collapse one level","Edit menu" ), this);
  11.379  	a->setShortcut ( Qt::Key_Less);			// Collapse one level in tree editor
  11.380 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.381  	a->setStatusTip (tr( "Collapse one level in tree editor" )); 
  11.382  	connect( a, SIGNAL( triggered() ), this, SLOT( editCollapseOneLevel() ) );
  11.383  	a->setEnabled (false);
  11.384 @@ -754,6 +806,7 @@
  11.385  
  11.386  	a = new QAction( tr( "Unscroll children","Edit menu" ), this);
  11.387  	a->setStatusTip (tr( "Unscroll all scrolled branches in selected subtree" ));
  11.388 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.389  	editMenu->addAction (a);
  11.390  	connect( a, SIGNAL( triggered() ), this, SLOT( editUnscrollChildren() ) );
  11.391  
  11.392 @@ -762,12 +815,14 @@
  11.393  	a = new QAction( QPixmap(iconPath+"find.png"), tr( "Find...","Edit menu"), this);
  11.394  	a->setStatusTip (tr( "Find" ) );
  11.395  	a->setShortcut (Qt::CTRL + Qt::Key_F );				//Find
  11.396 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.397  	editMenu->addAction (a);
  11.398  	connect( a, SIGNAL( triggered() ), this, SLOT( editOpenFindWidget() ) );
  11.399  
  11.400  	a = new QAction( tr( "Find duplicate URLs","Edit menu"), this);
  11.401  	//a->setStatusTip (tr( "Find" ) );
  11.402  	a->setShortcut (Qt::SHIFT + Qt::Key_F);				//Find duplicate URLs
  11.403 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.404  	if (settings.value( "/mainwindow/showTestMenu",false).toBool() ) 
  11.405  		editMenu->addAction (a);
  11.406  	connect( a, SIGNAL( triggered() ), this, SLOT( editFindDuplicateURLs() ) );
  11.407 @@ -776,7 +831,7 @@
  11.408  
  11.409  	a = new QAction( QPixmap(flagsPath+"flag-url.png"), tr( "Open URL","Edit menu" ), this);
  11.410  	a->setShortcut (Qt::SHIFT + Qt::Key_U );
  11.411 -	a->setShortcut (tr( "Open URL" ));
  11.412 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.413  	tb->addAction (a);
  11.414  	addAction(a);
  11.415  	connect( a, SIGNAL( triggered() ), this, SLOT( editOpenURL() ) );
  11.416 @@ -785,6 +840,7 @@
  11.417  	a = new QAction( tr( "Open URL in new tab","Edit menu" ), this);
  11.418  	a->setStatusTip (tr( "Open URL in new tab" ));
  11.419  	//a->setShortcut (Qt::CTRL+Qt::Key_U );
  11.420 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.421  	addAction(a);
  11.422  	connect( a, SIGNAL( triggered() ), this, SLOT( editOpenURLTab() ) );
  11.423  	actionOpenURLTab=a;
  11.424 @@ -792,6 +848,7 @@
  11.425  	a = new QAction( tr( "Open all URLs in subtree (including scrolled branches)","Edit menu" ), this);
  11.426  	a->setStatusTip (tr( "Open all URLs in subtree (including scrolled branches)" ));
  11.427  	a->setShortcut ( Qt::CTRL + Qt::Key_U );
  11.428 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.429  	addAction(a);
  11.430  	actionListBranches.append(a);
  11.431  	connect( a, SIGNAL( triggered() ), this, SLOT( editOpenMultipleVisURLTabs() ) );
  11.432 @@ -799,6 +856,7 @@
  11.433  
  11.434  	a = new QAction( tr( "Open all URLs in subtree","Edit menu" ), this);
  11.435  	a->setStatusTip (tr( "Open all URLs in subtree" ));
  11.436 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.437  	addAction(a);
  11.438  	actionListBranches.append(a);
  11.439  	connect( a, SIGNAL( triggered() ), this, SLOT( editOpenMultipleURLTabs() ) );
  11.440 @@ -808,6 +866,7 @@
  11.441  	a->setStatusTip ( tr( "Edit URL" ) );
  11.442  	a->setShortcut ( Qt::Key_U );
  11.443  	a->setShortcutContext (Qt::WindowShortcut);
  11.444 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.445  	actionListBranches.append(a);
  11.446  	addAction(a);
  11.447  	connect( a, SIGNAL( triggered() ), this, SLOT( editURL() ) );
  11.448 @@ -817,6 +876,7 @@
  11.449  	a->setStatusTip ( tr( "Edit local URL" ) );
  11.450  	//a->setShortcut (Qt::SHIFT +  Qt::Key_U );
  11.451  	a->setShortcutContext (Qt::WindowShortcut);
  11.452 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.453  	actionListBranches.append(a);
  11.454  	addAction(a);
  11.455  	connect( a, SIGNAL( triggered() ), this, SLOT( editLocalURL() ) );
  11.456 @@ -825,6 +885,7 @@
  11.457  	a = new QAction( tr( "Use heading for URL","Edit menu" ), this);
  11.458  	a->setStatusTip ( tr( "Use heading of selected branch as URL" ));
  11.459  	a->setEnabled (false);
  11.460 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.461  	actionListBranches.append(a);
  11.462  	connect( a, SIGNAL( triggered() ), this, SLOT( editHeading2URL() ) );
  11.463  	actionHeading2URL=a;
  11.464 @@ -835,6 +896,7 @@
  11.465  	actionListBranches.append(a);
  11.466  	a->setShortcut ( Qt::Key_B );
  11.467  	a->setShortcutContext (Qt::WindowShortcut);
  11.468 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.469  	addAction(a);
  11.470  	connect( a, SIGNAL( triggered() ), this, SLOT( editBugzilla2URL() ) );
  11.471  	actionBugzilla2URL=a;
  11.472 @@ -845,6 +907,7 @@
  11.473  	actionListBranches.append(a);
  11.474  	a->setShortcut ( Qt::Key_B + Qt::SHIFT);
  11.475  	a->setShortcutContext (Qt::WindowShortcut);
  11.476 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.477  	addAction(a);
  11.478  	connect( a, SIGNAL( triggered() ), this, SLOT( getBugzillaData() ) );
  11.479  	actionGetBugzillaData=a;
  11.480 @@ -852,6 +915,7 @@
  11.481  	a = new QAction(tr( "Create URL to Novell FATE","Edit menu" ), this);
  11.482  	a->setStatusTip ( tr( "Create URL to Novell FATE" ));
  11.483  	a->setEnabled (false);
  11.484 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.485  	actionListBranches.append(a);
  11.486  	connect( a, SIGNAL( triggered() ), this, SLOT( editFATE2URL() ) );
  11.487  	actionFATE2URL=a;
  11.488 @@ -860,12 +924,14 @@
  11.489  	a->setStatusTip ( tr( "Jump to another vym map, if needed load it first" ));
  11.490  	tb->addAction (a);
  11.491  	a->setEnabled (false);
  11.492 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.493  	connect( a, SIGNAL( triggered() ), this, SLOT( editOpenVymLink() ) );
  11.494  	actionOpenVymLink=a;
  11.495  
  11.496  	a = new QAction(QPixmap(), tr( "Open all vym links in subtree","Edit menu" ), this);
  11.497  	a->setStatusTip ( tr( "Open all vym links in subtree" ));
  11.498  	a->setEnabled (false);
  11.499 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.500  	actionListBranches.append(a);
  11.501  	connect( a, SIGNAL( triggered() ), this, SLOT( editOpenMultipleVymLinks() ) );
  11.502  	actionOpenMultipleVymLinks=a;
  11.503 @@ -874,6 +940,7 @@
  11.504  	a = new QAction(tr( "Edit vym link...","Edit menu" ), this);
  11.505  	a->setEnabled (false);
  11.506  	a->setStatusTip ( tr( "Edit link to another vym map" ));
  11.507 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.508  	connect( a, SIGNAL( triggered() ), this, SLOT( editVymLink() ) );
  11.509  	actionListBranches.append(a);
  11.510  	actionVymLink=a;
  11.511 @@ -881,6 +948,7 @@
  11.512  	a = new QAction(tr( "Delete vym link","Edit menu" ),this);
  11.513  	a->setStatusTip ( tr( "Delete link to another vym map" ));
  11.514  	a->setEnabled (false);
  11.515 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.516  	connect( a, SIGNAL( triggered() ), this, SLOT( editDeleteVymLink() ) );
  11.517  	actionDeleteVymLink=a;
  11.518  
  11.519 @@ -890,6 +958,7 @@
  11.520  	a->setToggleAction(true);
  11.521  	tb->addAction (a);
  11.522  	a->setEnabled (false);
  11.523 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.524  	connect( a, SIGNAL( triggered() ), this, SLOT( editToggleHideExport() ) );
  11.525  	actionToggleHideExport=a;
  11.526  
  11.527 @@ -899,6 +968,7 @@
  11.528  	actionListBranches.append(a);
  11.529  	a->setShortcut ( Qt::Key_T );	// Add timestamp
  11.530  	a->setShortcutContext (Qt::WindowShortcut);
  11.531 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.532  	addAction(a);
  11.533  	connect( a, SIGNAL( triggered() ), this, SLOT( editAddTimestamp() ) );
  11.534  	actionAddTimestamp=a;
  11.535 @@ -906,6 +976,7 @@
  11.536  	a = new QAction(tr( "Edit Map Info...","Edit menu" ),this);
  11.537  	a->setStatusTip ( tr( "Edit Map Info" ));
  11.538  	a->setEnabled (true);
  11.539 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.540  	connect( a, SIGNAL( triggered() ), this, SLOT( editMapInfo() ) );
  11.541  	actionMapInfo=a;
  11.542  
  11.543 @@ -914,12 +985,14 @@
  11.544  	a->setStatusTip (tr( "Add map at selection" ));
  11.545  	connect( a, SIGNAL( triggered() ), this, SLOT( editImportAdd() ) );
  11.546  	a->setEnabled (false);
  11.547 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.548  	actionListBranches.append(a);
  11.549  	actionImportAdd=a;
  11.550  
  11.551  	// Import at selection (replacing selection)
  11.552  	a = new QAction( tr( "Add map (replace)","Edit menu" ), this);
  11.553  	a->setStatusTip (tr( "Replace selection with map" ));
  11.554 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.555  	connect( a, SIGNAL( triggered() ), this, SLOT( editImportReplace() ) );
  11.556  	a->setEnabled (false);
  11.557  	actionListBranches.append(a);
  11.558 @@ -930,6 +1003,7 @@
  11.559  	a->setStatusTip (tr( "Save selection" ));
  11.560  	connect( a, SIGNAL( triggered() ), this, SLOT( editSaveBranch() ) );
  11.561  	a->setEnabled (false);
  11.562 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.563  	actionListBranches.append(a);
  11.564  	actionSaveBranch=a;
  11.565  
  11.566 @@ -939,6 +1013,7 @@
  11.567  	a->setShortcut (Qt::ALT + Qt::Key_Delete );
  11.568  	connect( a, SIGNAL( triggered() ), this, SLOT( editDeleteKeepChildren() ) );
  11.569  	a->setEnabled (false);
  11.570 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.571  	addAction (a);
  11.572  	actionListBranches.append(a);
  11.573  	actionDeleteKeepChildren=a;
  11.574 @@ -947,6 +1022,7 @@
  11.575  	a = new QAction( tr( "Remove children","Edit menu" ), this);
  11.576  	a->setStatusTip (tr( "Remove children of branch" ));
  11.577  	a->setShortcut (Qt::SHIFT + Qt::Key_Delete );
  11.578 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.579  	connect( a, SIGNAL( triggered() ), this, SLOT( editDeleteChildren() ) );
  11.580  	a->setEnabled (false);
  11.581  	actionListBranches.append(a);
  11.582 @@ -954,6 +1030,7 @@
  11.583  
  11.584  	a = new QAction( tr( "Add Image...","Edit menu" ), this);
  11.585  	a->setStatusTip (tr( "Add Image" ));
  11.586 +	switchboard.addConnection(a,tr("Edit","Shortcut group"));
  11.587  	connect( a, SIGNAL( triggered() ), this, SLOT( editLoadImage() ) );
  11.588  	actionLoadImage=a;
  11.589  
  11.590 @@ -962,6 +1039,7 @@
  11.591  	a->setShortcut ( Qt::CTRL + Qt::Key_I );		//Property window
  11.592  	a->setShortcutContext (Qt::WindowShortcut);
  11.593  	a->setToggleAction (true);
  11.594 +	switchboard.addConnection(a,tr("View shortcuts","Shortcut group"));
  11.595  	addAction (a);
  11.596  	connect( a, SIGNAL( triggered() ), this, SLOT( windowToggleProperty() ) );
  11.597  	actionViewTogglePropertyWindow=a;
  11.598 @@ -1090,34 +1168,36 @@
  11.599  	tb->setObjectName ("viewTB");
  11.600  	QMenu *viewMenu = menuBar()->addMenu ( tr( "&View" ));
  11.601  
  11.602 -	Switchboard switchboard;	//FIXME-2 testing...
  11.603  
  11.604  	QAction *a;
  11.605  	a = new QAction(QPixmap(iconPath+"viewmag-reset.png"), tr( "reset Zoom","View action" ), this);
  11.606  	a->setStatusTip ( tr( "Zoom reset" ) );
  11.607  	a->setShortcut (Qt::CTRL + Qt::Key_0);	// Reset zoom
  11.608 -	switchboard.addConnection(a,"CTRL+0");
  11.609 +	switchboard.addConnection(a,tr("View shortcuts","Shortcut group"));
  11.610  	a->addTo( tb );
  11.611  	viewMenu->addAction (a);
  11.612  	connect( a, SIGNAL( triggered() ), this, SLOT(viewZoomReset() ) );
  11.613  
  11.614  	a = new QAction( QPixmap(iconPath+"viewmag+.png"), tr( "Zoom in","View action" ), this);
  11.615  	a->setStatusTip (tr( "Zoom in" ));
  11.616 -	switchboard.addConnection(a,"CTRL++");
  11.617 +	a->setShortcut(Qt::CTRL + Qt::Key_Plus);
  11.618 +	switchboard.addConnection(a,tr("View shortcuts","Shortcut group"));
  11.619  	a->addTo( tb );
  11.620  	viewMenu->addAction (a);
  11.621  	connect( a, SIGNAL( triggered() ), this, SLOT(viewZoomIn() ) );
  11.622  
  11.623  	a = new QAction( QPixmap(iconPath+"viewmag-.png"), tr( "Zoom out","View action" ), this);
  11.624  	a->setStatusTip (tr( "Zoom out" ));
  11.625 -	switchboard.addConnection(a,"CTRL+-");
  11.626 +	a->setShortcut(Qt::CTRL + Qt::Key_Minus);
  11.627 +	switchboard.addConnection(a,tr("View shortcuts","Shortcut group"));
  11.628  	a->addTo( tb );
  11.629  	viewMenu->addAction (a);
  11.630  	connect( a, SIGNAL( triggered() ), this, SLOT( viewZoomOut() ) );
  11.631  
  11.632  	a = new QAction( QPixmap(iconPath+"viewshowsel.png"), tr( "Show selection","View action" ), this);
  11.633  	a->setStatusTip (tr( "Show selection" ));
  11.634 -	switchboard.addConnection(a,".");
  11.635 +	a->setShortcut(Qt::CTRL + Qt::Key_Period);
  11.636 +	switchboard.addConnection(a,tr("View shortcuts","Shortcut group"));
  11.637  	a->addTo( tb );
  11.638  	viewMenu->addAction (a);
  11.639  	connect( a, SIGNAL( triggered() ), this, SLOT( viewCenter() ) );
  11.640 @@ -1127,6 +1207,7 @@
  11.641  	a = new QAction(QPixmap(flagsPath+"flag-note.png"), tr( "Show Note Editor","View action" ),this);
  11.642  	a->setStatusTip ( tr( "Show Note Editor" ));
  11.643  	a->setShortcut ( Qt::CTRL + Qt::Key_E );	// Toggle Note Editor
  11.644 +	switchboard.addConnection(a,tr("View shortcuts","Shortcut group"));
  11.645  	a->setToggleAction(true);
  11.646  	a->addTo( tb );
  11.647  	viewMenu->addAction (a);
  11.648 @@ -1135,7 +1216,8 @@
  11.649  
  11.650  	a = new QAction(QPixmap(), tr( "Show tree editor","View action" ),this);
  11.651  	a->setStatusTip ( tr( "Show tree editor" ));
  11.652 -	a->setShortcut ( Qt::CTRL + Qt::Key_T );	// Toggle Note Editor // FIXME-3 originally: color subtree
  11.653 +	a->setShortcut ( Qt::CTRL + Qt::Key_T );	// Toggle Tree Editor // FIXME-3 originally: color subtree
  11.654 +	switchboard.addConnection(a,tr("View shortcuts","Shortcut group"));
  11.655  	a->setToggleAction(true);
  11.656  	a->addTo( tb );
  11.657  	viewMenu->addAction (a);
  11.658 @@ -1145,6 +1227,7 @@
  11.659  	a = new QAction(QPixmap(iconPath+"history.png"),  tr( "History Window","View action" ),this );
  11.660  	a->setStatusTip ( tr( "Show History Window" ));
  11.661  	a->setShortcut ( Qt::CTRL + Qt::Key_H  );	// Toggle history window
  11.662 +	switchboard.addConnection(a,tr("View shortcuts","Shortcut group"));
  11.663  	a->setToggleAction(true);
  11.664  	a->addTo( tb );
  11.665  	viewMenu->addAction (a);
  11.666 @@ -1159,6 +1242,7 @@
  11.667  	a->setStatusTip ( tr( "Antialiasing" ));
  11.668  	a->setToggleAction(true);
  11.669  	a->setChecked (settings.value("/mainwindow/view/AntiAlias",true).toBool());
  11.670 +	switchboard.addConnection(a,tr("View shortcuts","Shortcut group"));
  11.671  	viewMenu->addAction (a);
  11.672  	connect( a, SIGNAL( triggered() ), this, SLOT(windowToggleAntiAlias() ) );
  11.673  	actionViewToggleAntiAlias=a;
  11.674 @@ -1167,6 +1251,7 @@
  11.675  	a->setStatusTip (a->text());
  11.676  	a->setToggleAction(true);
  11.677  	a->setChecked (settings.value("/mainwindow/view/SmoothPixmapTransformation",true).toBool());
  11.678 +	switchboard.addConnection(a,tr("View shortcuts","Shortcut group"));
  11.679  	viewMenu->addAction (a);
  11.680  	connect( a, SIGNAL( triggered() ), this, SLOT(windowToggleSmoothPixmap() ) );
  11.681  	actionViewToggleSmoothPixmapTransform=a;
  11.682 @@ -1174,16 +1259,16 @@
  11.683  	a = new QAction(tr( "Next Map","View action" ), this);
  11.684  	a->setStatusTip (a->text());
  11.685  	a->setShortcut (Qt::ALT + Qt::Key_N );
  11.686 +	switchboard.addConnection(a,tr("View shortcuts","Shortcut group"));
  11.687  	viewMenu->addAction (a);
  11.688  	connect( a, SIGNAL( triggered() ), this, SLOT(windowNextEditor() ) );
  11.689  
  11.690  	a = new QAction (tr( "Previous Map","View action" ), this );
  11.691  	a->setStatusTip (a->text());
  11.692  	a->setShortcut (Qt::ALT + Qt::Key_P );
  11.693 +	switchboard.addConnection(a,tr("View shortcuts","Shortcut group"));
  11.694  	viewMenu->addAction (a);
  11.695  	connect( a, SIGNAL( triggered() ), this, SLOT(windowPreviousEditor() ) );
  11.696 -
  11.697 -	if (debug) switchboard.print();
  11.698  }
  11.699  
  11.700  // Mode Actions
  11.701 @@ -1199,6 +1284,7 @@
  11.702  	actionGroupModModes->setExclusive (true);
  11.703  	a= new QAction( QPixmap(iconPath+"modecolor.png"), tr( "Use modifier to color branches","Mode modifier" ), actionGroupModModes);
  11.704  	a->setShortcut (Qt::Key_J);
  11.705 +	switchboard.addConnection(a,tr("Modes","Shortcut group"));
  11.706  	a->setStatusTip ( tr( "Use modifier to color branches" ));
  11.707  	a->setToggleAction(true);
  11.708  	a->addTo (tb);
  11.709 @@ -1207,6 +1293,7 @@
  11.710  
  11.711  	a= new QAction( QPixmap(iconPath+"modecopy.png"), tr( "Use modifier to copy","Mode modifier" ), actionGroupModModes );
  11.712  	a->setShortcut( Qt::Key_K); 
  11.713 +	switchboard.addConnection(a,tr("Modes","Shortcut group"));
  11.714  	a->setStatusTip( tr( "Use modifier to copy" ));
  11.715  	a->setToggleAction(true);
  11.716  	a->addTo (tb);
  11.717 @@ -1214,6 +1301,7 @@
  11.718  
  11.719  	a= new QAction(QPixmap(iconPath+"modelink.png"), tr( "Use modifier to draw xLinks","Mode modifier" ), actionGroupModModes );
  11.720  	a->setShortcut (Qt::Key_L);
  11.721 +	switchboard.addConnection(a,tr("Modes","Shortcut group"));
  11.722  	a->setStatusTip( tr( "Use modifier to draw xLinks" ));
  11.723  	a->setToggleAction(true);
  11.724  	a->addTo (tb);
  11.725 @@ -1458,12 +1546,14 @@
  11.726  	a = new QAction(  "Start TCPserver for MapEditor",this);
  11.727  	//a->setStatusTip ( "Set application to open pdf files"));
  11.728  	//a->setShortcut ( Qt::ALT + Qt::Key_T );		//New TCP server
  11.729 +	switchboard.addConnection(a,tr("Network shortcuts","Shortcut group"));
  11.730  	connect( a, SIGNAL( triggered() ), this, SLOT( networkStartServer() ) );
  11.731  	netMenu->addAction (a);
  11.732  
  11.733  	a = new QAction(  "Connect MapEditor to server",this);
  11.734  	//a->setStatusTip ( "Set application to open pdf files"));
  11.735  	a->setShortcut ( Qt::ALT + Qt::Key_C );		// Connect to server
  11.736 +	switchboard.addConnection(a,tr("Network shortcuts","Shortcut group"));
  11.737  	connect( a, SIGNAL( triggered() ), this, SLOT( networkConnect() ) );
  11.738  	netMenu->addAction (a);
  11.739  }
  11.740 @@ -1582,17 +1672,20 @@
  11.741  	a = new QAction( "Test function 1" , this);
  11.742  	a->setStatusTip( "Call test function 1" );
  11.743  	a->setShortcut (Qt::SHIFT + Qt::Key_T);	// Test function 1  
  11.744 +	switchboard.addConnection(a,tr("Test shortcuts","Shortcut group"));
  11.745  	testMenu->addAction (a);
  11.746  	connect( a, SIGNAL( triggered() ), this, SLOT( testFunction1() ) );
  11.747  
  11.748  	a = new QAction( "Test function 2" , this);
  11.749  	a->setStatusTip( "Call test function 2" );
  11.750  	a->setShortcut (Qt::ALT + Qt::Key_T);	// Test function 2
  11.751 +	switchboard.addConnection(a,tr("Test shortcuts","Shortcut group"));
  11.752  	testMenu->addAction (a);
  11.753  	connect( a, SIGNAL( triggered() ), this, SLOT( testFunction2() ) );
  11.754  
  11.755  	a = new QAction( "Command" , this);
  11.756  	a->setStatusTip( "Enter command to call in editor" );
  11.757 +	switchboard.addConnection(a,tr("Test shortcuts","Shortcut group"));
  11.758  	connect( a, SIGNAL( triggered() ), this, SLOT( testCommand() ) );
  11.759  	testMenu->addAction (a);
  11.760  }
  11.761 @@ -1605,11 +1698,13 @@
  11.762  	QAction *a;
  11.763  	a = new QAction(  tr( "Open VYM Documentation (pdf) ","Help action" ), this );
  11.764  	a->setStatusTip( tr( "Open VYM Documentation (pdf)" ));
  11.765 +	switchboard.addConnection(a,tr("Help shortcuts","Shortcut group"));
  11.766  	connect( a, SIGNAL( triggered() ), this, SLOT( helpDoc() ) );
  11.767  	helpMenu->addAction (a);
  11.768  
  11.769  	a = new QAction(  tr( "Open VYM example maps ","Help action" ), this );
  11.770  	a->setStatusTip( tr( "Open VYM example maps " ));
  11.771 +	switchboard.addConnection(a,tr("Help shortcuts","Shortcut group"));
  11.772  	connect( a, SIGNAL( triggered() ), this, SLOT( helpDemo() ) );
  11.773  	helpMenu->addAction (a);
  11.774  
  11.775 @@ -1758,6 +1853,7 @@
  11.776  		macroActions[i] = new QAction(this);
  11.777  		macroActions[i]->setData(i);
  11.778  		addAction (macroActions[i]);
  11.779 +		//switchboard.addConnection(macroActions[i],tr("Macro shortcuts","Shortcut group"));
  11.780  		connect(macroActions[i], SIGNAL(triggered()),
  11.781  				this, SLOT(callMacro()));
  11.782  	}			
    12.1 --- a/mainwindow.h	Fri Feb 19 13:47:03 2010 +0000
    12.2 +++ b/mainwindow.h	Thu Feb 25 11:03:52 2010 +0000
    12.3 @@ -11,6 +11,7 @@
    12.4  #include "file.h"
    12.5  #include "historywindow.h"
    12.6  #include "mapeditor.h"
    12.7 +#include "shortcuts.h"
    12.8  #include "simplescripteditor.h"
    12.9  #include "texteditor.h"
   12.10  #include "vymview.h"
   12.11 @@ -280,6 +281,8 @@
   12.12      QAction *macroActions[12];
   12.13  	QStringList macro;
   12.14  
   12.15 +	Switchboard switchboard;
   12.16 +
   12.17  	QAction* actionFileNewCopy;
   12.18  	QAction* actionFileSave;
   12.19  	QAction* actionFilePrint;
    13.1 --- a/mapeditor.cpp	Fri Feb 19 13:47:03 2010 +0000
    13.2 +++ b/mapeditor.cpp	Thu Feb 25 11:03:52 2010 +0000
    13.3 @@ -1527,7 +1527,10 @@
    13.4  				}
    13.5  
    13.6  				// Draw the original link, before selection was moved around
    13.7 -				if (settings.value("/animation/use",true).toBool() && seli->depth()>1) 
    13.8 +				if (settings.value("/animation/use",true).toBool() 
    13.9 +					&& seli->depth()>1
   13.10 +//					&& distance (lmosel->getRelPos(),movingObj_orgRelPos)<3
   13.11 +				) 
   13.12  				{
   13.13  					lmosel->setRelPos();	// calc relPos first for starting point
   13.14  					
    14.1 --- a/shortcuts.cpp	Fri Feb 19 13:47:03 2010 +0000
    14.2 +++ b/shortcuts.cpp	Thu Feb 25 11:03:52 2010 +0000
    14.3 @@ -1,8 +1,11 @@
    14.4 -#include "shortcuts.h"
    14.5 +#include <QDebug>
    14.6 +#include <QMultiMap>
    14.7  
    14.8  #include <iostream>
    14.9  using namespace std;
   14.10  
   14.11 +#include "shortcuts.h"
   14.12 +
   14.13  /////////////////////////////////////////////////////////////////
   14.14  // Shortcut
   14.15  /////////////////////////////////////////////////////////////////
   14.16 @@ -17,20 +20,24 @@
   14.17  {
   14.18  }
   14.19  
   14.20 -void Switchboard::addConnection (QAction *a, const QString &desc)
   14.21 +void Switchboard::addConnection (QAction *a, const QString &group)
   14.22  {	
   14.23 -	QKeySequence ks=QKeySequence::fromString (desc);
   14.24 -	actions.append (a);
   14.25 -	if (!desc.isEmpty()) keys.append (new QKeySequence (ks));
   14.26 -	if (a) a->setShortcut (ks);
   14.27 +	actions.insert(group,a);
   14.28  }
   14.29  
   14.30  void Switchboard::print ()
   14.31  {
   14.32 -	for (int i=0;i<actions.size();++i)
   14.33 +	QString g;
   14.34 +	foreach (g,actions.uniqueKeys())
   14.35  	{
   14.36 -		cout <<actions.at(i)->shortcut().toString().toStdString();
   14.37 -		cout << "  Action: " <<actions.at(i)->text().toStdString();
   14.38 +		cout <<"Group: "<<g.toStdString()<<endl;
   14.39 +		QList <QAction*> values=actions.values(g);
   14.40 +		for (int i=0;i<values.size();++i)
   14.41 +		{
   14.42 +			cout<<QString ("  %1: %2") 
   14.43 +				.arg(values.at(i)->text().left(30),30)
   14.44 +				.arg(values.at(i)->shortcut().toString()).toStdString()<<endl;
   14.45 +		}
   14.46  		cout <<endl;
   14.47  	}
   14.48  }
    15.1 --- a/shortcuts.h	Fri Feb 19 13:47:03 2010 +0000
    15.2 +++ b/shortcuts.h	Thu Feb 25 11:03:52 2010 +0000
    15.3 @@ -22,11 +22,9 @@
    15.4  public:
    15.5      Switchboard ();
    15.6  	void addConnection(QAction *a,const QString &s);
    15.7 -//	void addFunction (Function,
    15.8  	void print();
    15.9  protected:  
   15.10 -	QList <QKeySequence*> keys;
   15.11 -	QList <QAction*> actions;
   15.12 +	QMultiMap <QString,QAction*> actions;
   15.13  };
   15.14  
   15.15  #endif
    16.1 --- a/version.h	Fri Feb 19 13:47:03 2010 +0000
    16.2 +++ b/version.h	Thu Feb 25 11:03:52 2010 +0000
    16.3 @@ -7,7 +7,7 @@
    16.4  #define __VYM_VERSION "1.13.0"
    16.5  //#define __VYM_CODENAME "Codename: RC-1"
    16.6  #define __VYM_CODENAME "Codename: development version, not for production!"
    16.7 -#define __VYM_BUILD_DATE "2010-02-19"
    16.8 +#define __VYM_BUILD_DATE "2010-02-22"
    16.9  
   16.10  
   16.11  bool checkVersion(const QString &);
    17.1 --- a/vym.pro	Fri Feb 19 13:47:03 2010 +0000
    17.2 +++ b/vym.pro	Thu Feb 25 11:03:52 2010 +0000
    17.3 @@ -44,6 +44,8 @@
    17.4  	bugagent.h \
    17.5  	editxlinkdialog.h \
    17.6  	exportoofiledialog.h \
    17.7 +	exporthtmldialog.h\
    17.8 +	exporthtmldialog.h\
    17.9  	exportxhtmldialog.h\
   17.10  	exports.h \
   17.11  	extrainfodialog.h \
   17.12 @@ -111,6 +113,7 @@
   17.13  	editxlinkdialog.cpp \
   17.14  	exportoofiledialog.cpp \
   17.15  	exports.cpp \
   17.16 +	exporthtmldialog.cpp \
   17.17  	exportxhtmldialog.cpp \
   17.18  	extrainfodialog.cpp \
   17.19  	file.cpp \
   17.20 @@ -165,6 +168,7 @@
   17.21  FORMS = \
   17.22  	attributewidget.ui \
   17.23  	branchpropwindow.ui \
   17.24 +	exporthtmldialog.ui \
   17.25  	exportxhtmldialog.ui \
   17.26  	extrainfodialog.ui \
   17.27  	editxlinkdialog.ui \
    18.1 --- a/vymmodel.cpp	Fri Feb 19 13:47:03 2010 +0000
    18.2 +++ b/vymmodel.cpp	Thu Feb 25 11:03:52 2010 +0000
    18.3 @@ -9,6 +9,7 @@
    18.4  #include "bugagent.h"
    18.5  #include "editxlinkdialog.h"
    18.6  #include "exports.h"
    18.7 +#include "exporthtmldialog.h"
    18.8  #include "exportxhtmldialog.h"
    18.9  #include "file.h"
   18.10  #include "geometry.h"		// for addBBox
   18.11 @@ -4259,7 +4260,7 @@
   18.12  
   18.13  void VymModel::exportHTML (const QString &dir, bool askForName)	//FIXME-2 own dialogue missing and also option to save settings in map
   18.14  {
   18.15 -	ExportXHTMLDialog dia(NULL);	
   18.16 +	ExportHTMLDialog dia(NULL);	
   18.17  	dia.setFilePath (filePath );
   18.18  	dia.setMapName (mapName );
   18.19  	dia.readSettings();
   18.20 @@ -4297,11 +4298,11 @@
   18.21  
   18.22  		ExportHTML ex (this);
   18.23  		ex.setFile (d.path()+"/"+mapName+".html");
   18.24 -		cout << "VM::exportHTML  writing "<<ex.getFile().toStdString()<<endl;
   18.25 +		//qDebug()<< "VM::exportHTML  writing "<<ex.getFile();
   18.26 +		ex.setCSSPath(dia.getCSSPath() );
   18.27  		ex.doExport();
   18.28  		setExportMode (false);
   18.29  
   18.30 -		//exportXML (dia.getDir(),false );
   18.31  		//dia.doExport(mapName );
   18.32  		//if (dia.hasChanged()) setChanged();
   18.33  
   18.34 @@ -4694,7 +4695,7 @@
   18.35  }
   18.36  
   18.37  
   18.38 -void VymModel::animate()
   18.39 +void VymModel::animate()	//FIXME-2 animation causes flicker after cut/undo cut ?!?
   18.40  {
   18.41  	animationTimer->stop();
   18.42  	BranchObj *bo;
   18.43 @@ -4723,6 +4724,7 @@
   18.44  
   18.45  void VymModel::startAnimation(BranchObj *bo, const QPointF &start, const QPointF &dest)
   18.46  {
   18.47 +	qDebug()<<"Start animation for "<<bo->getTreeItem()<<getHeading();
   18.48  	if (start==dest) return;
   18.49  	if (bo && bo->getTreeItem()->depth()>0) 
   18.50  	{