# HG changeset patch
# User insilmaril
# Date 1237463313 0
# Node ID 85683324f94a0e24c0acf86509babc99816a44f6
# Parent  bd98be838da967098dfd83d43d45de19c7273bc5
Added traditional chinese and KDE4 support

diff -r bd98be838da9 -r 85683324f94a aboutdialog.cpp
--- a/aboutdialog.cpp	Mon Mar 16 15:40:49 2009 +0000
+++ b/aboutdialog.cpp	Thu Mar 19 11:48:33 2009 +0000
@@ -59,6 +59,8 @@
 	"    <li>Brasilian: Amadeu Júnior</li>"
 	"    <li>Russion: Anton Olenev</li>"
 	"    <li>Simplified Chinese: Moligaloo</li>"
+	"    <li>Traditional Chinese: Wei-Lun Chao </li>"
+
 	"  </ul>"
 	"</li>"
 	"<li> Patches"
diff -r bd98be838da9 -r 85683324f94a exports.cpp
--- a/exports.cpp	Mon Mar 16 15:40:49 2009 +0000
+++ b/exports.cpp	Thu Mar 19 11:48:33 2009 +0000
@@ -249,7 +249,7 @@
 }
 
 ////////////////////////////////////////////////////////////////////////
-void ExportKDEBookmarks::doExport() 
+void ExportKDE3Bookmarks::doExport() 
 {
 	MapEditor *me=model->getMapEditor();
 	if (me)
@@ -257,7 +257,7 @@
 		WarningDialog dia;
 		dia.showCancelButton (true);
 		dia.setText(QObject::tr("Exporting the %1 bookmarks will overwrite\nyour existing bookmarks file.").arg("KDE"));
-		dia.setCaption(QObject::tr("Warning: Overwriting %1 bookmarks").arg("KDE"));
+		dia.setCaption(QObject::tr("Warning: Overwriting %1 bookmarks").arg("KDE 3"));
 		dia.setShowAgainName("/exports/KDE/overwriteKDEBookmarks");
 		if (dia.exec()==QDialog::Accepted)
 		{
@@ -280,6 +280,40 @@
 			}	
 		}
 	}
+}
+
+////////////////////////////////////////////////////////////////////////
+void ExportKDE4Bookmarks::doExport() 
+{
+	MapEditor *me=model->getMapEditor();
+	if (me)
+	{
+		WarningDialog dia;
+		dia.showCancelButton (true);
+		dia.setText(QObject::tr("Exporting the %1 bookmarks will overwrite\nyour existing bookmarks file.").arg("KDE"));
+		dia.setCaption(QObject::tr("Warning: Overwriting %1 bookmarks").arg("KDE 4"));
+		dia.setShowAgainName("/exports/KDE/overwriteKDEBookmarks");
+		if (dia.exec()==QDialog::Accepted)
+		{
+			me->exportXML(tmpDir.path(),false);
+
+			XSLTProc p;
+			p.setInputFile (tmpDir.path()+"/"+me->getMapName()+".xml");
+			p.setOutputFile (tmpDir.home().path()+"/.kde4/share/apps/konqueror/bookmarks.xml");
+			p.setXSLFile (vymBaseDir.path()+"/styles/vym2kdebookmarks.xsl");
+			p.process();
+
+			QString ub=vymBaseDir.path()+"/scripts/update-bookmarks";
+			QProcess *proc= new QProcess ;
+			proc->start( ub);
+			if (!proc->waitForStarted())
+			{
+				QMessageBox::warning(0, 
+					QObject::tr("Warning"),
+					QObject::tr("Couldn't find script %1\nto notifiy Browsers of changed bookmarks.").arg(ub));
+			}	
+		}
+	}
 
 }
 
diff -r bd98be838da9 -r 85683324f94a exports.h
--- a/exports.h	Mon Mar 16 15:40:49 2009 +0000
+++ b/exports.h	Thu Mar 19 11:48:33 2009 +0000
@@ -6,29 +6,118 @@
 #include <iostream>
 
 #include "mapcenterobj.h"
+#include "settings.h"
+#include "vymmodel.h"
 
-using namespace std;
 
-/////////////////////////////////////////////////////////////////////////////
-class Export
+/*! \brief Base class for all exports
+*/
+
+///////////////////////////////////////////////////////////////////////
+
+class ExportBase
 {
 public:
-	Export();
-	bool setOutputDir (QString);
-	void setPath(const QString &);
-	void setMapCenter (MapCenterObj*);
-	void setIndentPerDepth (QString);
-	void exportMap();
-	void exportAsHTML();
+	ExportBase();
+	virtual ~ExportBase();
+	virtual void setDir(const QDir&);
+	virtual void setFile(const QString &);
+	virtual QString getFile ();
+	virtual void setModel (VymModel *m);
+	virtual void setCaption(const QString &);
+	virtual void addFilter (const QString &);
+	virtual bool execDialog();
+	virtual bool canceled();
 protected:  
-	QString getSectionString (BranchObj*);
-	void write (QString);
+	VymModel *model;
+	virtual QString getSectionString (BranchObj*);
 
-private:
-	QDir outdir;
-	QString filepath;
-	MapCenterObj *mapCenter;
+	QDir tmpDir;
+	QDir outDir;
+	QString outputFile;
 	QString	indentPerDepth;
+	QString caption;
+	QString filter;
+	bool cancelFlag;
 };
 
+///////////////////////////////////////////////////////////////////////
+class ExportASCII:public ExportBase
+{
+public:
+	ExportASCII();
+	virtual void doExport();
+	virtual QString underline (const QString &text, const QString &line);
+};
+
+///////////////////////////////////////////////////////////////////////
+class ExportCSV:public ExportBase
+{
+public:
+	virtual void doExport();
+};
+
+///////////////////////////////////////////////////////////////////////
+class ExportXMLBase:public ExportBase
+{
+};
+
+///////////////////////////////////////////////////////////////////////
+class ExportKDE3Bookmarks:public ExportXMLBase
+{
+public:
+	virtual void doExport();
+};	
+
+///////////////////////////////////////////////////////////////////////
+class ExportKDE4Bookmarks:public ExportXMLBase
+{
+public:
+	virtual void doExport();
+};	
+
+///////////////////////////////////////////////////////////////////////
+class ExportFirefoxBookmarks:public ExportXMLBase
+{
+public:
+	virtual void doExport();
+};	
+
+///////////////////////////////////////////////////////////////////////
+class ExportTaskjuggler:public ExportXMLBase
+{
+public:
+	virtual void doExport();
+};	
+
+///////////////////////////////////////////////////////////////////////
+class ExportLaTeX:public ExportBase
+{
+public:
+	virtual void doExport();
+};	
+
+///////////////////////////////////////////////////////////////////////
+class ExportOO:public ExportBase
+{
+public:
+	ExportOO();
+	~ExportOO();
+	void exportPresentation();
+	bool setConfigFile (const QString &);
+private:
+	QString buildList (BranchObj*);
+	bool useSections;
+	QString configFile;
+	QString configDir;
+	QString templateDir;
+	QString content;
+	QString contentTemplate;
+	QString contentTemplateFile;
+	QString contentFile;
+	QString pageTemplate;
+	QString pageTemplateFile;
+	QString sectionTemplate;
+	QString sectionTemplateFile;
+};
 #endif
diff -r bd98be838da9 -r 85683324f94a imports.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imports.cpp	Thu Mar 19 11:48:33 2009 +0000
@@ -0,0 +1,125 @@
+#include "file.h"
+#include "imports.h"
+#include "linkablemapobj.h"
+#include "misc.h"
+#include "mainwindow.h"
+#include "xsltproc.h"
+
+extern Main *mainWindow;
+extern QDir vymBaseDir;
+
+ImportBase::ImportBase()
+{
+	bool ok;
+    tmpDir.setPath (makeTmpDir(ok,"vym-import"));
+	if (!tmpDir.exists() || !ok)
+		QMessageBox::critical( 0, QObject::tr( "Error" ),
+					   QObject::tr("Couldn't access temporary directory\n"));
+}
+
+
+ImportBase::~ImportBase()
+{
+	// Remove tmpdir
+	removeDir (tmpDir);
+}
+
+void ImportBase::setDir(const QString &p)
+{
+	inputDir=p;
+}
+
+void ImportBase::setFile (const QString &p)
+{
+	inputFile=p;
+}
+
+void ImportBase::setMapCenter(MapCenterObj *mc)
+{
+	mapCenter=mc;
+}
+
+bool ImportBase::transform()
+{
+	return true;
+}
+
+QString ImportBase::getTransformedFile()
+{
+	return transformedFile;
+}
+
+/////////////////////////////////////////////////
+bool ImportKDE3Bookmarks::transform()
+{
+	transformedFile=tmpDir.path()+"/bookmarks.xml";
+
+	XSLTProc p;
+	p.setInputFile (tmpDir.home().path()+"/.kde/share/apps/konqueror/bookmarks.xml");
+	p.setOutputFile (transformedFile);
+	p.setXSLFile (vymBaseDir.path()+"/styles/kdebookmarks2vym.xsl");
+	p.process();
+
+	return true;
+}
+
+/////////////////////////////////////////////////
+bool ImportKDE4Bookmarks::transform()
+{
+	transformedFile=tmpDir.path()+"/bookmarks.xml";
+
+	XSLTProc p;
+	p.setInputFile (tmpDir.home().path()+"/.kde4/share/apps/konqueror/bookmarks.xml");
+	p.setOutputFile (transformedFile);
+	p.setXSLFile (vymBaseDir.path()+"/styles/kdebookmarks2vym.xsl");
+	p.process();
+
+	return true;
+}
+
+
+
+/////////////////////////////////////////////////
+bool ImportFirefoxBookmarks::transform()
+{
+	transformedFile=tmpDir.path()+"/bookmarks.xml";
+
+	QStringList lines;
+	QFile file( inputFile );
+	if ( file.open( QIODevice::ReadOnly ) ) 
+	{
+		QTextStream stream( &file );
+		while ( !stream.atEnd() ) 
+			lines += stream.readLine(); // line of text excluding '\n'
+		file.close();
+	}
+	// TODO Generate vym from broken bookmarks above...
+
+	return true;
+}
+
+/////////////////////////////////////////////////
+bool ImportMM::transform()
+{
+	// try to unzip 
+	if (success==unzipDir (tmpDir, inputFile))
+	{
+		
+		// Set short name, too. Search from behind:
+		transformedFile=inputFile;
+		int i=transformedFile.findRev("/");
+		if (i>=0) transformedFile=transformedFile.remove (0,i+1);
+		transformedFile.replace(".mmap",".xml");
+		transformedFile=tmpDir.path()+"/"+transformedFile;
+
+		XSLTProc p;
+		p.setInputFile (tmpDir.path()+"/Document.xml");
+		p.setOutputFile (transformedFile);
+		p.setXSLFile (vymBaseDir.path()+"/styles/mmap2vym.xsl");
+		p.process();
+
+		return true;
+	} else
+		return false;
+	
+}
diff -r bd98be838da9 -r 85683324f94a imports.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imports.h	Thu Mar 19 11:48:33 2009 +0000
@@ -0,0 +1,64 @@
+#ifndef IMPORTS_H
+#define IMPORTS_H
+
+#include <qdir.h>
+#include <qstring.h>
+#include <iostream>
+
+#include "mapcenterobj.h"
+#include "settings.h"
+
+
+///////////////////////////////////////////////////////////////////////
+
+class ImportBase
+{
+public:
+	ImportBase();
+	virtual ~ImportBase();
+	virtual void setDir(const QString &);
+	virtual void setFile(const QString &);
+	virtual void setMapCenter (MapCenterObj*);
+	virtual bool transform();
+	virtual QString getTransformedFile();
+protected:
+	QDir tmpDir;
+	QString inputDir;
+	QString inputFile;
+	MapCenterObj *mapCenter;
+	QString transformedFile;
+	
+};
+
+///////////////////////////////////////////////////////////////////////
+class ImportKDE3Bookmarks:public ImportBase
+{
+public:
+	bool transform();
+};	
+
+class ImportKDE4Bookmarks:public ImportBase
+{
+public:
+	bool transform();
+};	
+
+
+///////////////////////////////////////////////////////////////////////
+class ImportFirefoxBookmarks:public ImportBase
+{
+public:
+	bool transform();
+};	
+
+
+///////////////////////////////////////////////////////////////////////
+class ImportMM:public ImportBase
+{
+public:
+	bool transform();
+};	
+
+
+
+#endif
diff -r bd98be838da9 -r 85683324f94a lang/vym-zh_TW.ts
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/vym-zh_TW.ts	Thu Mar 19 11:48:33 2009 +0000
@@ -0,0 +1,1746 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS>
+    <context>
+        <name>AboutDialog</name>
+        <message>
+            <source>Ok</source>
+            <translation>確定</translation>
+        </message>
+    </context>
+    <context>
+        <name>EditXLinkDialog</name>
+        <message>
+            <source>Edit XLink</source>
+            <translation>編輯 XLink</translation>
+        </message>
+        <message>
+            <source>XLink width:</source>
+            <translation>XLink 寬度:</translation>
+        </message>
+        <message>
+            <source>Set color of heading</source>
+            <translation>設定標頭的顏色</translation>
+        </message>
+        <message>
+            <source>XLink color:</source>
+            <translation>XLink 顏色:</translation>
+        </message>
+        <message>
+            <source>Use as default:</source>
+            <translation>做為預設:</translation>
+        </message>
+        <message>
+            <source>Delete XLink</source>
+            <translation>刪除 XLink</translation>
+        </message>
+        <message>
+            <source>Ok</source>
+            <translation>確定</translation>
+        </message>
+    </context>
+    <context>
+        <name>ExportXHTMLDialog</name>
+        <message>
+            <source>Export XHTML</source>
+            <translation>匯出 XHTML</translation>
+        </message>
+        <message>
+            <source>Browse</source>
+            <translation>瀏覽</translation>
+        </message>
+        <message>
+            <source>Options</source>
+            <translation>選項</translation>
+        </message>
+        <message>
+            <source>Include image</source>
+            <translation>包含圖像</translation>
+        </message>
+        <message>
+            <source>show output of external scripts</source>
+            <translation>顯示外部命令稿的輸出</translation>
+        </message>
+        <message>
+            <source>Export</source>
+            <translation>匯出</translation>
+        </message>
+        <message>
+            <source>Cancel</source>
+            <translation>取消</translation>
+        </message>
+        <message>
+            <source>VYM - Export HTML to directory</source>
+            <translation>VYM - 匯出 HTML 到目錄</translation>
+        </message>
+        <message>
+            <source>Critical Error</source>
+            <translation>嚴重錯誤</translation>
+        </message>
+        <message>
+            <source>Export to directory:</source>
+            <translation>匯出至目錄:</translation>
+        </message>
+        <message>
+            <source>Colored headings in text</source>
+            <translation>文字中著色的標頭</translation>
+        </message>
+        <message>
+            <source>showWarnings e.g. if directory is not empty</source>
+            <translation>showWarnings 例如:如果目錄並非為空</translation>
+        </message>
+        <message>
+            <source>Stylesheets</source>
+            <translation>樣式表</translation>
+        </message>
+        <message>
+            <source>CSS:</source>
+            <translation>CSS:</translation>
+        </message>
+        <message>
+            <source>XSL:</source>
+            <translation>XSL:</translation>
+        </message>
+        <message>
+            <source>VYM - Path to CSS file</source>
+            <translation>VYM - 到 CSS 檔案的路徑</translation>
+        </message>
+        <message>
+            <source>VYM - Path to XSL file</source>
+            <translation>VYM - 到 XSL 檔案的路徑</translation>
+        </message>
+        <message>
+            <source>Warning</source>
+            <translation>警告</translation>
+        </message>
+        <message>
+            <source>Save settings in map</source>
+            <translation>在圖中儲存設定值</translation>
+        </message>
+        <message>
+            <source>Scripts</source>
+            <translation>命令稿</translation>
+        </message>
+        <message>
+            <source>Before export:</source>
+            <translation>匯出之前:</translation>
+        </message>
+        <message>
+            <source>After Export:</source>
+            <translation>匯出之後:</translation>
+        </message>
+        <message>
+            <source>VYM - Path to pre export script</source>
+            <translation>VYM - 到匯出前命令稿的路徑</translation>
+        </message>
+        <message>
+            <source>VYM - Path to post export script</source>
+            <translation>VYM - 到匯出後命令稿的路徑</translation>
+        </message>
+        <message>
+            <source>The settings saved in the map would like to run scripts:
+
+%1
+
+Please check, if you really
+want to allow this in your system!</source>
+            <translation>在圖中儲存的設定值想要執行命令稿:
+
+%1
+
+請檢查一下,是否真的允許在您的系統中如此做!</translation>
+        </message>
+        <message>
+            <source>Could not open %1</source>
+            <translation>無法開啟 %1</translation>
+        </message>
+        <message>
+            <source>Could not write %1</source>
+            <translation>無法寫入 %1</translation>
+        </message>
+        <message>
+            <source>Could not start %1</source>
+            <translation>無法開啟 %1</translation>
+        </message>
+        <message>
+            <source>%1 didn&apos;t exit normally</source>
+            <translation>%1 並未正常離開</translation>
+        </message>
+    </context>
+    <context>
+        <name>ExtraInfoDialog</name>
+        <message>
+            <source>VYM - Info</source>
+            <translation>VYM - 資訊</translation>
+        </message>
+        <message>
+            <source>Map:</source>
+            <translation>圖譜:</translation>
+        </message>
+        <message>
+            <source>Author:</source>
+            <translation>作者:</translation>
+        </message>
+        <message>
+            <source>Comment:</source>
+            <translation>註釋:</translation>
+        </message>
+        <message>
+            <source>Statistics:</source>
+            <translation>統計:</translation>
+        </message>
+        <message>
+            <source>Cancel</source>
+            <translation>取消</translation>
+        </message>
+        <message>
+            <source>Close</source>
+            <translation>關閉</translation>
+        </message>
+    </context>
+    <context>
+        <name>FindWindow</name>
+        <message>
+            <source>Clear</source>
+            <translation>清空</translation>
+        </message>
+        <message>
+            <source>Cancel</source>
+            <translation>取消</translation>
+        </message>
+        <message>
+            <source>Find</source>
+            <translation>尋找</translation>
+        </message>
+        <message>
+            <source>Find Text</source>
+            <translation>尋找文字</translation>
+        </message>
+    </context>
+    <context>
+        <name>Main</name>
+        <message>
+            <source>&amp;File</source>
+            <translation>檔案(&amp;F)</translation>
+        </message>
+        <message>
+            <source>&amp;New...</source>
+            <translation>新增(&amp;N)…</translation>
+        </message>
+        <message>
+            <source>&amp;Open...</source>
+            <translation>開啟(&amp;O)…</translation>
+        </message>
+        <message>
+            <source>Save</source>
+            <translation>儲存</translation>
+        </message>
+        <message>
+            <source>&amp;Save...</source>
+            <translation>儲存(&amp;S)…</translation>
+        </message>
+        <message>
+            <source>Save &amp;As...</source>
+            <translation>另存新檔(&amp;A)…</translation>
+        </message>
+        <message>
+            <source>Import directory structure (experimental)</source>
+            <translation>匯入目錄結構 (實驗性質)</translation>
+        </message>
+        <message>
+            <source>Print</source>
+            <translation>列印</translation>
+        </message>
+        <message>
+            <source>Close Map</source>
+            <translation>關閉圖譜</translation>
+        </message>
+        <message>
+            <source>&amp;Close Map</source>
+            <translation>關閉圖譜(&amp;C)</translation>
+        </message>
+        <message>
+            <source>&amp;Edit</source>
+            <translation>編輯(&amp;E)</translation>
+        </message>
+        <message>
+            <source>Undo</source>
+            <translation>復原</translation>
+        </message>
+        <message>
+            <source>&amp;Undo</source>
+            <translation>復原(&amp;U)</translation>
+        </message>
+        <message>
+            <source>Copy</source>
+            <translation>複製</translation>
+        </message>
+        <message>
+            <source>&amp;Copy</source>
+            <translation>複製(&amp;C)</translation>
+        </message>
+        <message>
+            <source>Cut</source>
+            <translation>剪下</translation>
+        </message>
+        <message>
+            <source>Cu&amp;t</source>
+            <translation>剪下(&amp;T)</translation>
+        </message>
+        <message>
+            <source>Paste</source>
+            <translation>貼上</translation>
+        </message>
+        <message>
+            <source>&amp;Paste</source>
+            <translation>貼上(&amp;P)</translation>
+        </message>
+        <message>
+            <source>Move branch up</source>
+            <translation>向上移動分支</translation>
+        </message>
+        <message>
+            <source>Move up</source>
+            <translation>向上移動</translation>
+        </message>
+        <message>
+            <source>Move branch down</source>
+            <translation>向下移動分支</translation>
+        </message>
+        <message>
+            <source>Move down</source>
+            <translation>向下移動</translation>
+        </message>
+        <message>
+            <source>Scroll branch</source>
+            <translation>捲曲分支</translation>
+        </message>
+        <message>
+            <source>Unscroll all</source>
+            <translation>復原所有捲曲</translation>
+        </message>
+        <message>
+            <source>Unscroll all scrolled branches</source>
+            <translation>復原所有已捲曲的分支</translation>
+        </message>
+        <message>
+            <source>Find</source>
+            <translation>尋找</translation>
+        </message>
+        <message>
+            <source>Find...</source>
+            <translation>尋找…</translation>
+        </message>
+        <message>
+            <source>Open URL</source>
+            <translation>開啟 URL</translation>
+        </message>
+        <message>
+            <source>Edit URL</source>
+            <translation>編輯 URL</translation>
+        </message>
+        <message>
+            <source>Edit URL...</source>
+            <translation>編輯 URL…</translation>
+        </message>
+        <message>
+            <source>Use heading of selected branch as URL</source>
+            <translation>使用已選取分支的標頭做為 URL</translation>
+        </message>
+        <message>
+            <source>Use heading for URL</source>
+            <translation>使用標頭做為 URL</translation>
+        </message>
+        <message>
+            <source>Jump to another vym map, if needed load it first</source>
+            <translation>跳到另外的 vym 圖譜,如果有需要就先載入它</translation>
+        </message>
+        <message>
+            <source>Jump to map</source>
+            <translation>跳到圖譜</translation>
+        </message>
+        <message>
+            <source>Edit link to another vym map</source>
+            <translation>編輯到另外 vym 圖譜的連結</translation>
+        </message>
+        <message>
+            <source>edit Heading</source>
+            <translation>編輯標頭</translation>
+        </message>
+        <message>
+            <source>Edit heading</source>
+            <translation>編輯標頭</translation>
+        </message>
+        <message>
+            <source>Delete Selection</source>
+            <translation>刪除選擇</translation>
+        </message>
+        <message>
+            <source>Add a branch as child of selection</source>
+            <translation>加入分支做為所選子項</translation>
+        </message>
+        <message>
+            <source>Add branch as child</source>
+            <translation>加入分支做為子項</translation>
+        </message>
+        <message>
+            <source>Add a branch above selection</source>
+            <translation>在所選之上加入分支</translation>
+        </message>
+        <message>
+            <source>Add branch above</source>
+            <translation>在上方加入分支</translation>
+        </message>
+        <message>
+            <source>Add a branch below selection</source>
+            <translation>在所選之下加入分支</translation>
+        </message>
+        <message>
+            <source>Add branch below</source>
+            <translation>在下方加入分支</translation>
+        </message>
+        <message>
+            <source>Select upper branch</source>
+            <translation>選取上層分支</translation>
+        </message>
+        <message>
+            <source>Select lower branch</source>
+            <translation>選取下層分支</translation>
+        </message>
+        <message>
+            <source>Select left branch</source>
+            <translation>選取左側分支</translation>
+        </message>
+        <message>
+            <source>Select right branch</source>
+            <translation>選取右側分支</translation>
+        </message>
+        <message>
+            <source>Select child branch</source>
+            <translation>選取子分支</translation>
+        </message>
+        <message>
+            <source>Select first branch</source>
+            <translation>選取首項分支</translation>
+        </message>
+        <message>
+            <source>Select last branch</source>
+            <translation>選取末項分支</translation>
+        </message>
+        <message>
+            <source>Add Image</source>
+            <translation>加入圖像</translation>
+        </message>
+        <message>
+            <source>Set Color</source>
+            <translation>設定顏色</translation>
+        </message>
+        <message>
+            <source>Set &amp;Color</source>
+            <translation>設定顏色(&amp;C)</translation>
+        </message>
+        <message>
+            <source>Pick color
+Hint: You can pick a color from another branch and color using CTRL+Left Button</source>
+            <translation>揀取顏色
+提示:您可以使用 CTRL+Left 按鈕,從另外的分支和顏色去揀取顏色</translation>
+        </message>
+        <message>
+            <source>Pic&amp;k color</source>
+            <translation>揀取顏色(&amp;K)</translation>
+        </message>
+        <message>
+            <source>Color branch</source>
+            <translation>顏色分支</translation>
+        </message>
+        <message>
+            <source>Color &amp;branch</source>
+            <translation>顏色分支(&amp;B)</translation>
+        </message>
+        <message>
+            <source>Color Subtree</source>
+            <translation>顏色子樹</translation>
+        </message>
+        <message>
+            <source>Color sub&amp;tree</source>
+            <translation>顏色子樹(&amp;T)</translation>
+        </message>
+        <message>
+            <source>Line</source>
+            <translation>直線</translation>
+        </message>
+        <message>
+            <source>Linkstyle Line</source>
+            <translation>連結樣式 直線</translation>
+        </message>
+        <message>
+            <source>Linkstyle Parabel</source>
+            <translation>連結樣式 拋物線</translation>
+        </message>
+        <message>
+            <source>PolyLine</source>
+            <translation>多重直線</translation>
+        </message>
+        <message>
+            <source>Linkstyle Thick Line</source>
+            <translation>連結樣式 粗線</translation>
+        </message>
+        <message>
+            <source>PolyParabel</source>
+            <translation>多重拋物線</translation>
+        </message>
+        <message>
+            <source>Linkstyle Thick Parabel</source>
+            <translation>連結樣式 粗拋物線</translation>
+        </message>
+        <message>
+            <source>No Frame</source>
+            <translation>無圖框</translation>
+        </message>
+        <message>
+            <source>Rectangle</source>
+            <translation>矩形</translation>
+        </message>
+        <message>
+            <source>Use same color for links and headings</source>
+            <translation>使用相同顏色做為連結和標頭</translation>
+        </message>
+        <message>
+            <source>&amp;Use color of heading for link</source>
+            <translation>使用標頭的顏色做為連結(&amp;U)</translation>
+        </message>
+        <message>
+            <source>Set Link Color</source>
+            <translation>設定連結顏色</translation>
+        </message>
+        <message>
+            <source>Set &amp;Link Color...</source>
+            <translation>設定連結顏色(&amp;L)…</translation>
+        </message>
+        <message>
+            <source>Set Background Color</source>
+            <translation>設定背景顏色</translation>
+        </message>
+        <message>
+            <source>Set &amp;Background Color</source>
+            <translation>設定背景顏色(&amp;B)</translation>
+        </message>
+        <message>
+            <source>&amp;View</source>
+            <translation>檢視(&amp;V)</translation>
+        </message>
+        <message>
+            <source>Zoom reset</source>
+            <translation>重置縮放</translation>
+        </message>
+        <message>
+            <source>reset Zoom</source>
+            <translation>重置縮放</translation>
+        </message>
+        <message>
+            <source>Zoom in</source>
+            <translation>放大</translation>
+        </message>
+        <message>
+            <source>Zoom out</source>
+            <translation>縮小</translation>
+        </message>
+        <message>
+            <source>&amp;Next Window</source>
+            <translation>下一個視窗(&amp;N)</translation>
+        </message>
+        <message>
+            <source>Next Window</source>
+            <translation>下一個視窗</translation>
+        </message>
+        <message>
+            <source>&amp;Previous Window</source>
+            <translation>前一個視窗(&amp;P)</translation>
+        </message>
+        <message>
+            <source>Previous Window</source>
+            <translation>前一個視窗</translation>
+        </message>
+        <message>
+            <source>&amp;Settings</source>
+            <translation>設定值(&amp;S)</translation>
+        </message>
+        <message>
+            <source>Set application to open pdf files</source>
+            <translation>設定開啟 pdf 檔案的應用程式</translation>
+        </message>
+        <message>
+            <source>Set application to open an URL</source>
+            <translation>設定開啟 URL 的應用程式</translation>
+        </message>
+        <message>
+            <source>Edit branch after adding it</source>
+            <translation>加入分支之後編輯它</translation>
+        </message>
+        <message>
+            <source>Select branch after adding it</source>
+            <translation>加入分支之後選取它</translation>
+        </message>
+        <message>
+            <source>Select heading before editing</source>
+            <translation>編輯標頭之前選取它</translation>
+        </message>
+        <message>
+            <source>Select existing heading</source>
+            <translation>選取現有標頭</translation>
+        </message>
+        <message>
+            <source>&amp;Test</source>
+            <translation>測試(&amp;T)</translation>
+        </message>
+        <message>
+            <source>test flag</source>
+            <translation>測試旗標</translation>
+        </message>
+        <message>
+            <source>&amp;Help</source>
+            <translation>求助(&amp;H)</translation>
+        </message>
+        <message>
+            <source>Open VYM Documentation (pdf)</source>
+            <translation>開啟 VYM 文件 (pdf)</translation>
+        </message>
+        <message>
+            <source>About VYM</source>
+            <translation>關於 VYM</translation>
+        </message>
+        <message>
+            <source>Information about QT toolkit</source>
+            <translation>關於 QT 工具組的資訊</translation>
+        </message>
+        <message>
+            <source>About QT</source>
+            <translation>關於 QT</translation>
+        </message>
+        <message>
+            <source>Save image</source>
+            <translation>儲存圖像</translation>
+        </message>
+        <message>
+            <source>Overwrite</source>
+            <translation>覆寫</translation>
+        </message>
+        <message>
+            <source>Cancel</source>
+            <translation>取消</translation>
+        </message>
+        <message>
+            <source>Couldn&apos;t save </source>
+            <translation>無法儲存 </translation>
+        </message>
+        <message>
+            <source>Save modified map before closing it</source>
+            <translation>關閉已修改圖譜之前儲存它</translation>
+        </message>
+        <message>
+            <source>Discard changes</source>
+            <translation>捨棄變更</translation>
+        </message>
+        <message>
+            <source>This map is not saved yet. Do you want to</source>
+            <translation>此圖譜尚未儲存。您想要</translation>
+        </message>
+        <message>
+            <source>Save map</source>
+            <translation>儲存圖譜</translation>
+        </message>
+        <message>
+            <source>Critical Error</source>
+            <translation>嚴重錯誤</translation>
+        </message>
+        <message>
+            <source>Save &amp;As</source>
+            <translation>另存新檔(&amp;A)</translation>
+        </message>
+        <message>
+            <source>Open Recent</source>
+            <translation>開啟最近使用</translation>
+        </message>
+        <message>
+            <source>Export</source>
+            <translation>匯出</translation>
+        </message>
+        <message>
+            <source>Edit Map Info</source>
+            <translation>編輯圖譜資訊</translation>
+        </message>
+        <message>
+            <source>Edit Map Info...</source>
+            <translation>編輯圖譜資訊…</translation>
+        </message>
+        <message>
+            <source>Open anyway</source>
+            <translation>無論如何都開啟</translation>
+        </message>
+        <message>
+            <source>Export XML to directory</source>
+            <translation>匯出 XML 到目錄</translation>
+        </message>
+        <message>
+            <source>Critcal error</source>
+            <translation>嚴重錯誤</translation>
+        </message>
+        <message>
+            <source>Couldn&apos;t find the documentation
+vym.pdf in various places.</source>
+            <translation>在各處都找不到文件 vym.pdf。</translation>
+        </message>
+        <message>
+            <source>Create</source>
+            <translation>建立</translation>
+        </message>
+        <message>
+            <source>Create URL to Bugzilla</source>
+            <translation>建立到 Bugzilla 的 URL</translation>
+        </message>
+        <message>
+            <source>Delete link to another vym map</source>
+            <translation>刪除到另外 vym 圖譜的連結</translation>
+        </message>
+        <message>
+            <source>Edit vym link</source>
+            <translation>編輯 vym 連結</translation>
+        </message>
+        <message>
+            <source>Edit vym link...</source>
+            <translation>編輯 vym 連結…</translation>
+        </message>
+        <message>
+            <source>Delete vym link</source>
+            <translation>刪除 vym 連結</translation>
+        </message>
+        <message>
+            <source>Critical Load Error</source>
+            <translation>嚴重的載入錯誤</translation>
+        </message>
+        <message>
+            <source>Couldn&apos;t find a map (*.xml) in .vym archive.
+</source>
+            <translation>在 .vym 檔案夾中找不到圖譜 (*.xml)。</translation>
+        </message>
+        <message>
+            <source>VYM -Information:</source>
+            <translation>VYM - 資訊:</translation>
+        </message>
+        <message>
+            <source>compressed (vym default)</source>
+            <translation>已壓縮 (vym 預設)</translation>
+        </message>
+        <message>
+            <source>uncompressed</source>
+            <translation>未壓縮</translation>
+        </message>
+        <message>
+            <source>Add map at selection</source>
+            <translation>於所選處加入圖譜</translation>
+        </message>
+        <message>
+            <source>Replace selection with map</source>
+            <translation>以圖譜置換所選</translation>
+        </message>
+        <message>
+            <source>Save selection</source>
+            <translation>儲存所選</translation>
+        </message>
+        <message>
+            <source>Load vym map</source>
+            <translation>載入 vym 圖譜</translation>
+        </message>
+        <message>
+            <source>Import: Add vym map to selection</source>
+            <translation>匯入:加入 vym 圖譜到所選</translation>
+        </message>
+        <message>
+            <source>Import: Replace selection with vym map</source>
+            <translation>匯入:以 vym 圖譜置換所選</translation>
+        </message>
+        <message>
+            <source>Save Error</source>
+            <translation>儲存錯誤</translation>
+        </message>
+        <message>
+            <source>
+could not be removed before saving</source>
+            <translation>儲存之前無法移除</translation>
+        </message>
+        <message>
+            <source>Use modifier to color branches</source>
+            <translation>於顏色分支使用修飾鍵</translation>
+        </message>
+        <message>
+            <source>New map</source>
+            <comment>File menu</comment>
+            <translation>新圖譜</translation>
+        </message>
+        <message>
+            <source>Open</source>
+            <comment>File menu</comment>
+            <translation>開啟</translation>
+        </message>
+        <message>
+            <source>File Actions</source>
+            <translation>檔案動作</translation>
+        </message>
+        <message>
+            <source>Edit Actions</source>
+            <translation>編輯動作</translation>
+        </message>
+        <message>
+            <source>View Actions</source>
+            <translation>檢視動作</translation>
+        </message>
+        <message>
+            <source>Modes when using modifiers</source>
+            <translation>使用修飾鍵時模式</translation>
+        </message>
+        <message>
+            <source>Standard Flags</source>
+            <translation>標準旗標</translation>
+        </message>
+        <message>
+            <source>Add a branch by inserting and making selection its child</source>
+            <translation>藉由插入加入分支並選擇它的子項</translation>
+        </message>
+        <message>
+            <source>Add branch (insert)</source>
+            <translation>加入分支 (插入)</translation>
+        </message>
+        <message>
+            <source>Remove only branch and keep its childs</source>
+            <translation>只移除分支並保持它的子項</translation>
+        </message>
+        <message>
+            <source>Remove only branch </source>
+            <translation>只移除分支 </translation>
+        </message>
+        <message>
+            <source>Remove childs of branch</source>
+            <translation>移除分支的子項</translation>
+        </message>
+        <message>
+            <source>Remove childs</source>
+            <translation>移除子項</translation>
+        </message>
+        <message>
+            <source>Use modifier to copy</source>
+            <translation>使用修飾鍵去複製</translation>
+        </message>
+        <message>
+            <source>Add</source>
+            <translation>加入</translation>
+        </message>
+        <message>
+            <source>Remove</source>
+            <translation>移除</translation>
+        </message>
+        <message>
+            <source>Edit XLink</source>
+            <translation>編輯 XLink</translation>
+        </message>
+        <message>
+            <source>Goto XLink</source>
+            <translation>前往 XLink</translation>
+        </message>
+        <message>
+            <source>No xLink available</source>
+            <translation>沒有可用的 xLink</translation>
+        </message>
+        <message>
+            <source>Use modifier to draw xLinks</source>
+            <translation>使用修飾鍵去繪製 xLinks</translation>
+        </message>
+        <message>
+            <source>Use exclusive flags in flag toolbars</source>
+            <translation>在旗標工具列中使用互斥旗標</translation>
+        </message>
+        <message>
+            <source>Set application to open external links</source>
+            <translation>設定開啟外部連結的應用程式</translation>
+        </message>
+        <message>
+            <source>Pasting into new branch</source>
+            <translation>貼入新分支中</translation>
+        </message>
+        <message>
+            <source>pasting into new branch</source>
+            <translation>貼入新分支中</translation>
+        </message>
+        <message>
+            <source>Delete key for deleting branches</source>
+            <translation>用於刪除分支的刪除鍵</translation>
+        </message>
+        <message>
+            <source>Delete key</source>
+            <translation>刪除鍵</translation>
+        </message>
+        <message>
+            <source>Exclusive flags</source>
+            <translation>互斥旗標</translation>
+        </message>
+        <message>
+            <source>The directory %1 is not empty.
+Do you risk to overwrite its contents?</source>
+            <translation>目錄 %1 並未清空。
+您要冒險覆寫它的內容嗎?</translation>
+        </message>
+        <message>
+            <source>The map %1
+is already opened.Opening the same map in multiple editors may lead
+ to confusion when finishing working with vym.Do you want to</source>
+            <translation>圖譜 %1
+已經開啟。在多個編輯器中開啟相同圖譜,
+也許會在 vym 完成工作時造成困惑。您想要</translation>
+        </message>
+        <message>
+            <source>This map does not exist:
+  %1
+Do you want to create a new one?</source>
+            <translation>此圖譜不存在:
+  %1
+您要建立一個新的嗎?</translation>
+        </message>
+        <message>
+            <source>The map %1
+did not use the compressed vym file format.
+Writing it uncompressed will also write images 
+and flags and thus may overwrite files in the given directory
+
+Do you want to write the map</source>
+            <translation>圖譜 %1
+並未使用壓縮過的 vym 檔案格式。
+以未壓縮的方式寫入它將會寫入圖像和旗標,
+因而也許會覆寫給定目錄中的檔案。
+
+您要寫入圖譜</translation>
+        </message>
+        <message>
+            <source>Saved  %1</source>
+            <translation>已儲存  %1</translation>
+        </message>
+        <message>
+            <source>The file %1
+exists already. Do you want to</source>
+            <translation>檔案 %1
+已經存在。您想要</translation>
+        </message>
+        <message>
+            <source>The map %1 has been modified but not saved yet. Do you want to</source>
+            <translation>圖譜 %1 已被修改但尚未儲存。您想要</translation>
+        </message>
+        <message>
+            <source>Couldn&apos;t open map %1</source>
+            <translation>無法開啟圖譜 %1</translation>
+        </message>
+        <message>
+            <source>Set application to open pdf files  ...</source>
+            <translation>設定開啟 pdf 檔案的應用程式…</translation>
+        </message>
+        <message>
+            <source>Set application to open external links...</source>
+            <translation>設定開啟外部連結的應用程式…</translation>
+        </message>
+        <message>
+            <source>Exit</source>
+            <translation>離開</translation>
+        </message>
+        <message>
+            <source>E&amp;xit</source>
+            <translation>離開(&amp;X)</translation>
+        </message>
+        <message>
+            <source>Redo</source>
+            <translation>重做</translation>
+        </message>
+        <message>
+            <source>&amp;Redo</source>
+            <translation>重做(&amp;R)</translation>
+        </message>
+        <message>
+            <source>Create URL to FATE</source>
+            <translation>建立到 FATE 的 URL</translation>
+        </message>
+        <message>
+            <source>Include top and bottom position of images into branch</source>
+            <translation>在分支中含入圖像頂部和底部的位置</translation>
+        </message>
+        <message>
+            <source>Include images vertically</source>
+            <translation>垂直地含入圖像</translation>
+        </message>
+        <message>
+            <source>Include left and right position of images into branch</source>
+            <translation>在分支中含入圖像的左右位置</translation>
+        </message>
+        <message>
+            <source>Include images horizontally</source>
+            <translation>水平地含入圖像</translation>
+        </message>
+        <message>
+            <source>Hide link</source>
+            <translation>隱藏連結</translation>
+        </message>
+        <message>
+            <source>Hide link if object is not selected</source>
+            <translation>如果物件並未選取就隱藏連結</translation>
+        </message>
+        <message>
+            <source>Note</source>
+            <comment>Systemflag</comment>
+            <translation>註記</translation>
+        </message>
+        <message>
+            <source>WWW Document (external)</source>
+            <comment>Systemflag</comment>
+            <translation>WWW 文件 (外部)</translation>
+        </message>
+        <message>
+            <source>Link to another vym map</source>
+            <comment>Systemflag</comment>
+            <translation>連結到另外的 vym 圖譜</translation>
+        </message>
+        <message>
+            <source>subtree is scrolled</source>
+            <comment>Systemflag</comment>
+            <translation>子樹已捲曲</translation>
+        </message>
+        <message>
+            <source>subtree is temporary scrolled</source>
+            <comment>Systemflag</comment>
+            <translation>子樹為暫時捲曲</translation>
+        </message>
+        <message>
+            <source>Take care!</source>
+            <comment>Standardflag</comment>
+            <translation>注意!</translation>
+        </message>
+        <message>
+            <source>Really?</source>
+            <comment>Standardflag</comment>
+            <translation>真的?</translation>
+        </message>
+        <message>
+            <source>ok!</source>
+            <comment>Standardflag</comment>
+            <translation>確定!</translation>
+        </message>
+        <message>
+            <source>Not ok!</source>
+            <comment>Standardflag</comment>
+            <translation>未定!</translation>
+        </message>
+        <message>
+            <source>This won&apos;t work!</source>
+            <comment>Standardflag</comment>
+            <translation>這不可行!</translation>
+        </message>
+        <message>
+            <source>Good</source>
+            <comment>Standardflag</comment>
+            <translation>良好</translation>
+        </message>
+        <message>
+            <source>Bad</source>
+            <comment>Standardflag</comment>
+            <translation>不好</translation>
+        </message>
+        <message>
+            <source>Time critical</source>
+            <comment>Standardflag</comment>
+            <translation>關鍵時間</translation>
+        </message>
+        <message>
+            <source>Idea!</source>
+            <comment>Standardflag</comment>
+            <translation>點子!</translation>
+        </message>
+        <message>
+            <source>Important</source>
+            <comment>Standardflag</comment>
+            <translation>重要</translation>
+        </message>
+        <message>
+            <source>Unimportant</source>
+            <comment>Standardflag</comment>
+            <translation>不重要</translation>
+        </message>
+        <message>
+            <source>I like this</source>
+            <comment>Standardflag</comment>
+            <translation>我喜歡</translation>
+        </message>
+        <message>
+            <source>I do not like this</source>
+            <comment>Standardflag</comment>
+            <translation>我不喜歡</translation>
+        </message>
+        <message>
+            <source>I just love... </source>
+            <comment>Standardflag</comment>
+            <translation>我就是喜愛…</translation>
+        </message>
+        <message>
+            <source>Dangerous</source>
+            <comment>Standardflag</comment>
+            <translation>危險</translation>
+        </message>
+        <message>
+            <source>This will help</source>
+            <comment>Standardflag</comment>
+            <translation>會有用處</translation>
+        </message>
+        <message>
+            <source>Call test function</source>
+            <translation>呼叫測試功能</translation>
+        </message>
+        <message>
+            <source>Couldn&apos;t save %1</source>
+            <translation>無法儲存 %1</translation>
+        </message>
+        <message>
+            <source>Import</source>
+            <translation>匯入</translation>
+        </message>
+        <message>
+            <source>KDE Bookmarks</source>
+            <translation>KDE 書籤</translation>
+        </message>
+        <message>
+            <source>Export in Open Document Format used e.g. in Open Office </source>
+            <translation>匯出例如在 OpenOffice.org 使用的開放文件格式</translation>
+        </message>
+        <message>
+            <source>Export as ASCII</source>
+            <translation>匯出為 ASCII</translation>
+        </message>
+        <message>
+            <source>(still experimental)</source>
+            <translation>(仍然是實驗性質)</translation>
+        </message>
+        <message>
+            <source>Export as LaTeX</source>
+            <translation>匯出為 LaTeX</translation>
+        </message>
+        <message>
+            <source>&amp;Print</source>
+            <translation>列印(&amp;P)</translation>
+        </message>
+        <message>
+            <source>Add map (insert)</source>
+            <translation>加入圖譜 (插入)</translation>
+        </message>
+        <message>
+            <source>Add map (replace)</source>
+            <translation>加入圖譜 (置換)</translation>
+        </message>
+        <message>
+            <source>Export as</source>
+            <translation>匯出為</translation>
+        </message>
+        <message>
+            <source>Export to</source>
+            <translation>匯出至</translation>
+        </message>
+        <message>
+            <source>Hide object in exports</source>
+            <translation>在匯出中隱藏物件</translation>
+        </message>
+        <message>
+            <source>Hide in exports</source>
+            <translation>隱藏在匯出中</translation>
+        </message>
+        <message>
+            <source>Hide object in exported maps</source>
+            <comment>Systemflag</comment>
+            <translation>在匯出的圖譜中隱藏物件</translation>
+        </message>
+        <message>
+            <source>Use hide flag during exports </source>
+            <translation>在匯出期間使用隱藏旗標 </translation>
+        </message>
+        <message>
+            <source>Use hide flags</source>
+            <translation>使用隱藏旗標</translation>
+        </message>
+        <message>
+            <source>Open URL in new tab</source>
+            <translation>在新頁標中開啟 URL</translation>
+        </message>
+        <message>
+            <source>Warning</source>
+            <translation>警告</translation>
+        </message>
+        <message>
+            <source>Couldn&apos;t find a viewer to open %1.
+</source>
+            <translation>找不到檢視器以開啟 %1。</translation>
+        </message>
+        <message>
+            <source>Please use Settings-&gt;</source>
+            <translation>請使用 設定值-&gt;</translation>
+        </message>
+        <message>
+            <source>Couldn&apos;t start %1 to open a new tab in %2.</source>
+            <translation>無法啟動 %1 以在 %2 中開啟新的頁標。</translation>
+        </message>
+        <message>
+            <source>Set application to open PDF files</source>
+            <translation>設定開啟 PDF 檔案的應用程式</translation>
+        </message>
+        <message>
+            <source>Oh no!</source>
+            <comment>Standardflag</comment>
+            <translation>噢,不要!</translation>
+        </message>
+        <message>
+            <source>Call...</source>
+            <comment>Standardflag</comment>
+            <translation>呼叫…</translation>
+        </message>
+        <message>
+            <source>Very important!</source>
+            <comment>Standardflag</comment>
+            <translation>很重要!</translation>
+        </message>
+        <message>
+            <source>Very unimportant!</source>
+            <comment>Standardflag</comment>
+            <translation>很不重要!</translation>
+        </message>
+        <message>
+            <source>Rose</source>
+            <comment>Standardflag</comment>
+            <translation>玫瑰</translation>
+        </message>
+        <message>
+            <source>Surprise!</source>
+            <comment>Standardflag</comment>
+            <translation>驚喜!</translation>
+        </message>
+        <message>
+            <source>Info</source>
+            <comment>Standardflag</comment>
+            <translation>資訊</translation>
+        </message>
+        <message>
+            <source>Firefox Bookmarks</source>
+            <translation>Firefox 書籤</translation>
+        </message>
+        <message>
+            <source>F&amp;ormat</source>
+            <translation>格式(&amp;O)</translation>
+        </message>
+        <message>
+            <source>Show Note Editor</source>
+            <translation>顯示註記編輯器</translation>
+        </message>
+        <message>
+            <source>Show history window</source>
+            <translation>顯示歷史視窗</translation>
+        </message>
+        <message>
+            <source>Bookmarks</source>
+            <translation>書籤</translation>
+        </message>
+        <message>
+            <source>Couldn&apos;t start %1 to open a new tab</source>
+            <translation>無法啟動 %1 去開啟新的頁標</translation>
+        </message>
+        <message>
+            <source>Couldn&apos;t find configuration for export to Open Office
+</source>
+            <translation>找不到用於匯出至 OpenOffice.org 的配置</translation>
+        </message>
+        <message>
+            <source>No matches found for &quot;%1&quot;</source>
+            <translation>找不到與「%1」相符者</translation>
+        </message>
+    </context>
+    <context>
+        <name>MapEditor</name>
+        <message>
+            <source>Critical Parse Error</source>
+            <translation>嚴重的解析錯誤</translation>
+        </message>
+        <message>
+            <source>Overwrite</source>
+            <translation>覆寫</translation>
+        </message>
+        <message>
+            <source>Cancel</source>
+            <translation>取消</translation>
+        </message>
+        <message>
+            <source>Critical Export Error</source>
+            <translation>嚴重的匯出錯誤</translation>
+        </message>
+        <message>
+            <source>Critical Error</source>
+            <translation>嚴重錯誤</translation>
+        </message>
+        <message>
+            <source>Enter URL:</source>
+            <translation>輸入 URL:</translation>
+        </message>
+        <message>
+            <source>vym map</source>
+            <translation>vym 圖譜</translation>
+        </message>
+        <message>
+            <source>Images</source>
+            <translation>圖像</translation>
+        </message>
+        <message>
+            <source>vym - save image as</source>
+            <translation>vym - 儲存圖像為</translation>
+        </message>
+        <message>
+            <source>Critical Import Error</source>
+            <translation>嚴重的匯入錯誤</translation>
+        </message>
+        <message>
+            <source>Critical Parse Error by reading backupFile</source>
+            <translation>讀取備份檔時嚴重的解析錯誤</translation>
+        </message>
+        <message>
+            <source>New Map</source>
+            <comment>Heading of mapcenter in new map</comment>
+            <translation>新圖譜</translation>
+        </message>
+        <message>
+            <source>The file %1 exists already.
+Do you want to overwrite it?</source>
+            <translation>檔案 %1 已經存在。您要覆寫它嗎?</translation>
+        </message>
+        <message>
+            <source>MapEditor::exportXML couldn&apos;t open %1</source>
+            <translation>MapEditor::exportXML 無法開啟 %1</translation>
+        </message>
+        <message>
+            <source>Temporary directory %1 used for undo is gone. 
+I will create a new one, but at the moment no undo is available.
+Maybe you want to reload your original data.
+
+Sorry for any inconveniences.</source>
+            <translation>用於復原的暫存目錄 %1 已經不見。
+我將建立一個新的,但是目前沒有任何復原可用。
+您也許想要重新載入原來的資料。
+
+造成您的困擾請多多包涵。</translation>
+        </message>
+        <message>
+            <source>Cannot find the directory %1</source>
+            <translation>找不到目錄 %1</translation>
+        </message>
+        <message>
+            <source>Link to another map</source>
+            <translation>連結到另外的圖譜</translation>
+        </message>
+        <message>
+            <source>Load image</source>
+            <translation>載入圖像</translation>
+        </message>
+        <message>
+            <source>Save image as %1</source>
+            <translation>儲存圖像為 %1</translation>
+        </message>
+        <message>
+            <source>Choose directory structure to import</source>
+            <translation>選擇目錄結構以匯入</translation>
+        </message>
+        <message>
+            <source>unnamed</source>
+            <translation>未命名</translation>
+        </message>
+        <message>
+            <source>Warning</source>
+            <translation>警告</translation>
+        </message>
+        <message>
+            <source>Couldn&apos;t find script %1
+to notifiy Browsers of changed bookmarks.</source>
+            <translation>找不到命令稿 %1
+以在瀏覽器中註記變更的書籤。</translation>
+        </message>
+    </context>
+    <context>
+        <name>QObject</name>
+        <message>
+            <source>This is not an image.</source>
+            <translation>這並非圖像。</translation>
+        </message>
+        <message>
+            <source>Critical Export Error</source>
+            <translation>重要匯出錯誤</translation>
+        </message>
+        <message>
+            <source>Could not write %1</source>
+            <translation>無法寫入 %1</translation>
+        </message>
+        <message>
+            <source>Export failed.</source>
+            <translation>匯出失敗。</translation>
+        </message>
+        <message>
+            <source>Check &quot;%1&quot; in
+%2</source>
+            <translation>在 %2 中檢查「%1」</translation>
+        </message>
+        <message>
+            <source>Could not read %1</source>
+            <translation>無法讀取 %1</translation>
+        </message>
+        <message>
+            <source>Critical Error</source>
+            <translation>嚴重錯誤</translation>
+        </message>
+        <message>
+            <source>Couldn&apos;t start zip to compress data.</source>
+            <translation>無法啟動 zip 去壓縮資料。</translation>
+        </message>
+        <message>
+            <source>zip didn&apos;t exit normally</source>
+            <translation>zip 並未正常離開</translation>
+        </message>
+        <message>
+            <source>Couldn&apos;t start unzip to decompress data.</source>
+            <translation>無法啟動 unzip 去解壓縮資料。</translation>
+        </message>
+        <message>
+            <source>unzip didn&apos;t exit normally</source>
+            <translation>unzip 並未正常離開</translation>
+        </message>
+        <message>
+            <source>Could not start %1</source>
+            <translation>無法啟動 %1</translation>
+        </message>
+        <message>
+            <source>%1 didn&apos;t exit normally</source>
+            <translation>%1 並未正常離開</translation>
+        </message>
+        <message>
+            <source>The file %1 exists already.
+Do you want to overwrite it?</source>
+            <translation>檔案 %1 已經存在。
+您要覆寫它嗎?</translation>
+        </message>
+        <message>
+            <source>Overwrite</source>
+            <translation>覆寫</translation>
+        </message>
+        <message>
+            <source>Cancel</source>
+            <translation>取消</translation>
+        </message>
+        <message>
+            <source>Sorry, no preview for
+multiple selected files.</source>
+            <translation>抱歉,無法預覽多個已選檔案。</translation>
+        </message>
+        <message>
+            <source>Exporting the %1 bookmarks will overwrite
+your existing bookmarks file.</source>
+            <translation>匯出 %1 書籤將會覆寫
+您的現有書籤檔案。</translation>
+        </message>
+        <message>
+            <source>Warning: Overwriting %1 bookmarks</source>
+            <translation>警告:正在覆寫 %1 項書籤</translation>
+        </message>
+        <message>
+            <source>Warning</source>
+            <translation>警告</translation>
+        </message>
+        <message>
+            <source>Couldn&apos;t find script %1
+to notifiy Browsers of changed bookmarks.</source>
+            <translation>找不到命令稿 %1
+去在瀏覽器中註記變更的書籤。</translation>
+        </message>
+    </context>
+    <context>
+        <name>ShowTextDialog</name>
+        <message>
+            <source>VYM - Info</source>
+            <translation>VYM - 資訊</translation>
+        </message>
+        <message>
+            <source>Close</source>
+            <translation>關閉</translation>
+        </message>
+        <message>
+            <source>History of %1</source>
+            <translation>%1 的歷史記錄</translation>
+        </message>
+    </context>
+    <context>
+        <name>TextEditor</name>
+        <message>
+            <source>&amp;File</source>
+            <translation>檔案(&amp;F)</translation>
+        </message>
+        <message>
+            <source>Import</source>
+            <translation>匯入</translation>
+        </message>
+        <message>
+            <source>&amp;Import...</source>
+            <translation>匯入(&amp;I)…</translation>
+        </message>
+        <message>
+            <source>&amp;Export...</source>
+            <translation>匯出(&amp;E)…</translation>
+        </message>
+        <message>
+            <source>Print Note</source>
+            <translation>列印註記</translation>
+        </message>
+        <message>
+            <source>&amp;Print...</source>
+            <translation>列印(&amp;P)…</translation>
+        </message>
+        <message>
+            <source>&amp;Edit</source>
+            <translation>編輯(&amp;E)</translation>
+        </message>
+        <message>
+            <source>Undo</source>
+            <translation>復原</translation>
+        </message>
+        <message>
+            <source>&amp;Undo</source>
+            <translation>復原(&amp;U)</translation>
+        </message>
+        <message>
+            <source>Redo</source>
+            <translation>重做</translation>
+        </message>
+        <message>
+            <source>&amp;Redo</source>
+            <translation>重做(&amp;R)</translation>
+        </message>
+        <message>
+            <source>Select and copy all</source>
+            <translation>全部選取並複製</translation>
+        </message>
+        <message>
+            <source>Select and copy &amp;all</source>
+            <translation>全部選取並複製(&amp;A)</translation>
+        </message>
+        <message>
+            <source>Copy</source>
+            <translation>複製</translation>
+        </message>
+        <message>
+            <source>&amp;Copy</source>
+            <translation>複製(&amp;C)</translation>
+        </message>
+        <message>
+            <source>Cut</source>
+            <translation>剪下</translation>
+        </message>
+        <message>
+            <source>Cu&amp;t</source>
+            <translation>剪下(&amp;T)</translation>
+        </message>
+        <message>
+            <source>Paste</source>
+            <translation>貼上</translation>
+        </message>
+        <message>
+            <source>&amp;Paste</source>
+            <translation>貼上(&amp;P)</translation>
+        </message>
+        <message>
+            <source>Delete all</source>
+            <translation>刪除全部</translation>
+        </message>
+        <message>
+            <source>&amp;Delete All</source>
+            <translation>刪除全部(&amp;D)</translation>
+        </message>
+        <message>
+            <source>&amp;Settings</source>
+            <translation>設定值(&amp;S)</translation>
+        </message>
+        <message>
+            <source>Set fixed font</source>
+            <translation>設定定寬字型</translation>
+        </message>
+        <message>
+            <source>Set &amp;fixed font</source>
+            <translation>設定定寬字型(&amp;F)</translation>
+        </message>
+        <message>
+            <source>Set variable font</source>
+            <translation>設定變寬字型</translation>
+        </message>
+        <message>
+            <source>Set &amp;variable font</source>
+            <translation>設定變寬字型(&amp;V)</translation>
+        </message>
+        <message>
+            <source>Used fixed font by default</source>
+            <translation>預設使用的定寬字型</translation>
+        </message>
+        <message>
+            <source>&amp;fixed font is default</source>
+            <translation>定寬字型為預設(&amp;F)</translation>
+        </message>
+        <message>
+            <source>Export Note (HTML)</source>
+            <translation>匯出註記 (HTML)</translation>
+        </message>
+        <message>
+            <source>Export Note As (HTML) </source>
+            <translation>匯出註記為 (HTML) </translation>
+        </message>
+        <message>
+            <source>Export &amp;As... (HTML)</source>
+            <translation>匯出為(HTML)(&amp;A)…</translation>
+        </message>
+        <message>
+            <source>Export Note As (ASCII) </source>
+            <translation>匯出註記為 (ASCII) </translation>
+        </message>
+        <message>
+            <source>Export &amp;As...(ASCII)</source>
+            <translation>匯出為(ASCII)(&amp;A)…</translation>
+        </message>
+        <message>
+            <source>&amp;Color...</source>
+            <translation>顏色(&amp;C)…</translation>
+        </message>
+        <message>
+            <source>&amp;Bold</source>
+            <translation>粗體(&amp;B)</translation>
+        </message>
+        <message>
+            <source>&amp;Italic</source>
+            <translation>斜體(&amp;I)</translation>
+        </message>
+        <message>
+            <source>&amp;Underline</source>
+            <translation>底線(&amp;U)</translation>
+        </message>
+        <message>
+            <source>&amp;Left</source>
+            <translation>靠左(&amp;L)</translation>
+        </message>
+        <message>
+            <source>C&amp;enter</source>
+            <translation>置中(&amp;E)</translation>
+        </message>
+        <message>
+            <source>&amp;Right</source>
+            <translation>靠右(&amp;R)</translation>
+        </message>
+        <message>
+            <source>&amp;Justify</source>
+            <translation>對齊(&amp;J)</translation>
+        </message>
+        <message>
+            <source>Export Note to single file</source>
+            <translation>匯出註記到單一檔案</translation>
+        </message>
+        <message>
+            <source>The file </source>
+            <translation>檔案 </translation>
+        </message>
+        <message>
+            <source> exists already. Do you want to overwrite it?</source>
+            <translation> 已經存在。您要覆寫它嗎?</translation>
+        </message>
+        <message>
+            <source>Overwrite</source>
+            <translation>覆寫</translation>
+        </message>
+        <message>
+            <source>Cancel</source>
+            <translation>取消</translation>
+        </message>
+        <message>
+            <source>Couldn&apos;t export note </source>
+            <translation>無法匯出註記 </translation>
+        </message>
+        <message>
+            <source>Export Note to single file (ASCII)</source>
+            <translation>匯出註記到單一檔案 (ASCII)</translation>
+        </message>
+        <message>
+            <source>Convert paragraphs to linebreaks</source>
+            <translation>轉換段落為斷列</translation>
+        </message>
+        <message>
+            <source>&amp;Convert Paragraphs</source>
+            <translation>轉換段落(&amp;C)</translation>
+        </message>
+        <message>
+            <source>Join all lines of a paragraph</source>
+            <translation>聯結段落中所有的列</translation>
+        </message>
+        <message>
+            <source>&amp;Join lines</source>
+            <translation>聯結各列(&amp;J)</translation>
+        </message>
+        <message>
+            <source>Toggle font hint for the whole text</source>
+            <translation>切換整篇文字的字型修飾</translation>
+        </message>
+        <message>
+            <source>&amp;Font hint</source>
+            <translation>字型修飾(&amp;F)</translation>
+        </message>
+        <message>
+            <source>Subs&amp;cript</source>
+            <translation>下標(&amp;C)</translation>
+        </message>
+        <message>
+            <source>Su&amp;perscript</source>
+            <translation>上標(&amp;P)</translation>
+        </message>
+        <message>
+            <source>Note Editor</source>
+            <translation>註記編輯器</translation>
+        </message>
+        <message>
+            <source>F&amp;ormat</source>
+            <translation>格式(&amp;O)</translation>
+        </message>
+    </context>
+    <context>
+        <name>WarningDialog</name>
+        <message>
+            <source>VYM - Warning : Foo...</source>
+            <translation>VYM - 警告:Foo…</translation>
+        </message>
+        <message>
+            <source>textLabel</source>
+            <translation>textLabel</translation>
+        </message>
+        <message>
+            <source>showAgainBox</source>
+            <translation>showAgainBox</translation>
+        </message>
+        <message>
+            <source>Proceed</source>
+            <translation>繼續</translation>
+        </message>
+        <message>
+            <source>Show this message again</source>
+            <translation>再次顯示此訊息</translation>
+        </message>
+        <message>
+            <source>Cancel</source>
+            <translation>取消</translation>
+        </message>
+        <message>
+            <source>Ok</source>
+            <translation>確定</translation>
+        </message>
+    </context>
+</TS>
diff -r bd98be838da9 -r 85683324f94a mainwindow.cpp
--- a/mainwindow.cpp	Mon Mar 16 15:40:49 2009 +0000
+++ b/mainwindow.cpp	Thu Mar 19 11:48:33 2009 +0000
@@ -342,10 +342,15 @@
 
 	fileImportMenu = fileMenu->addMenu (tr("Import","File menu"));
 
-	a = new QAction(tr("KDE Bookmarks"), this);
-	a->setStatusTip ( tr( "Import %1","Status tip file menu" ).arg(tr("KDE bookmarks")));
+	a = new QAction(tr("KDE 3 Bookmarks"), this);
+	a->setStatusTip ( tr( "Import %1","Status tip file menu" ).arg(tr("KDE 3 bookmarks")));
 	a->addTo (fileImportMenu);
-	connect( a, SIGNAL( triggered() ), this, SLOT( fileImportKDEBookmarks() ) );
+	connect( a, SIGNAL( triggered() ), this, SLOT( fileImportKDE3Bookmarks() ) );
+
+	a = new QAction(tr("KDE 4 Bookmarks"), this);
+	a->setStatusTip ( tr( "Import %1","Status tip file menu" ).arg(tr("KDE 4 bookmarks")));
+	a->addTo (fileImportMenu);
+	connect( a, SIGNAL( triggered() ), this, SLOT( fileImportKDE4Bookmarks() ) );
 
     if (settings.value( "/mainwindow/showTestMenu",false).toBool()) 
 	{
@@ -398,9 +403,14 @@
     connect( a, SIGNAL( triggered() ), this, SLOT( fileExportCSV() ) );
 	fileExportMenu->addAction (a);
 
-	a = new QAction( tr("KDE Bookmarks","File menu"), this);
-	a->setStatusTip( tr( "Export as %1").arg(tr("KDE Bookmarks" )));
-	connect( a, SIGNAL( triggered() ), this, SLOT( fileExportKDEBookmarks() ) );
+	a = new QAction( tr("KDE 3 Bookmarks","File menu"), this);
+	a->setStatusTip( tr( "Export as %1").arg(tr("KDE 3 Bookmarks" )));
+	connect( a, SIGNAL( triggered() ), this, SLOT( fileExportKDE3Bookmarks() ) );
+	fileExportMenu->addAction (a);
+
+	a = new QAction( tr("KDE 4 Bookmarks","File menu"), this);
+	a->setStatusTip( tr( "Export as %1").arg(tr("KDE 4 Bookmarks" )));
+	connect( a, SIGNAL( triggered() ), this, SLOT( fileExportKDE4Bookmarks() ) );
 	fileExportMenu->addAction (a);
 
     a = new QAction( "Taskjuggler...", this );
@@ -2066,11 +2076,19 @@
 	fileSaveAs (CompleteMap);
 }
 
-void Main::fileImportKDEBookmarks()
+void Main::fileImportKDE3Bookmarks()
 {
-	ImportKDEBookmarks im;
+	ImportKDE3Bookmarks im;
 	im.transform();
-	if (success==fileLoad (im.getTransformedFile(),NewMap) && currentMapEditor() )
+	if (aborted!=fileLoad (im.getTransformedFile(),NewMap) && currentMapEditor() )
+		currentMapEditor()->setFilePath ("");
+}
+
+void Main::fileImportKDE4Bookmarks()
+{
+	ImportKDE4Bookmarks im;
+	im.transform();
+	if (aborted!=fileLoad (im.getTransformedFile(),NewMap) && currentMapEditor() )
 		currentMapEditor()->setFilePath ("");
 }
 
@@ -2092,7 +2110,7 @@
 		{
 			im.setFile (*it);
 			if (im.transform() && 
-				success==fileLoad (im.getTransformedFile(),NewMap,FreemindMap) && 
+				aborted!=fileLoad (im.getTransformedFile(),NewMap,FreemindMap) && 
 				currentMapEditor() )
 				currentMapEditor()->setFilePath ("");
 			++it;
@@ -2232,9 +2250,20 @@
 	}
 }
 
-void Main::fileExportKDEBookmarks()	//FIXME not scriptable yet
+void Main::fileExportKDE3Bookmarks()	//FIXME not scriptable yet
 {
-	ExportKDEBookmarks ex;
+	ExportKDE3Bookmarks ex;
+	MapEditor *me=currentMapEditor();
+	if (me)
+	{
+		ex.setModel (me->getModel());
+		ex.doExport();
+	}	
+}
+
+void Main::fileExportKDE4Bookmarks()	//FIXME not scriptable yet
+{
+	ExportKDE4Bookmarks ex;
 	MapEditor *me=currentMapEditor();
 	if (me)
 	{
diff -r bd98be838da9 -r 85683324f94a mainwindow.h
--- a/mainwindow.h	Mon Mar 16 15:40:49 2009 +0000
+++ b/mainwindow.h	Thu Mar 19 11:48:33 2009 +0000
@@ -1,34 +1,38 @@
 #ifndef MAINWINDOW_H 
 #define MAINWINDOW_H
 
-#include <qpopupmenu.h>
-#include <qmainwindow.h>
-#include <qtextedit.h>
-#include <qintdict.h>
-#include <qcanvas.h>
-#include <qlineedit.h>
-#include <qaction.h>
-#include <qcursor.h>
-#include <qtabwidget.h>
-#include <qmap.h>
+#include <QMainWindow>
 
-#include "xml.h"
+#include "branchpropwindow.h"
+#include "file.h"
+#include "findwindow.h"
+#include "historywindow.h"
+#include "mapeditor.h"
+#include "simplescripteditor.h"
 #include "texteditor.h"
-#include "mapeditor.h"
-#include "findwindow.h"
+
 
 class Main : public QMainWindow 
 {
     Q_OBJECT
 
 public:
-    Main(QWidget* parent=0, const char* name=0, WFlags f=0);
+	/*! Modifier modes are used when CTRL together with a mouse button is pressed */
+	enum ModMode {
+		ModModeNone,	//!< Unused
+		ModModeColor,	//!< Pick color from object
+		ModModeCopy,	//!< Copy object
+		ModModeXLink	//!< Create a XLink (XLinkObj) from selected object
+		};
+
+    Main(QWidget* parent=0, const char* name=0, Qt::WFlags f=0);
     ~Main();
 	void loadCmdLine();
 	void statusMessage (const QString &);
 
 public slots:
     void fileNew();
+    void fileNewCopy();
 
 protected:
 	void closeEvent( QCloseEvent* );
@@ -38,72 +42,107 @@
     void setupEditActions();
     void setupFormatActions();
     void setupViewActions();
+    void setupModeActions();
     void setupWindowActions();
+    void setupFlag(FlagObj *fo, QToolBar *tb, bool aw, const QString &name, const QString &tooltip);
     void setupFlagActions();
+    void setupNetworkActions();
     void setupSettingsActions();
     void setupTestActions();
     void setupHelpActions();
     void setupContextMenus();
-	void setupLastMapsMenu();
+	void setupRecentMapsMenu();
+    void setupMacros();
 	void hideEvent (QHideEvent * );
 	void showEvent (QShowEvent * );
-	bool reallyWriteDirectory(const QString&);
-	QString browseDirectory(const QString&);
 	MapEditor* currentMapEditor() const;
     
 private slots:
-    void newView();
 	void editorChanged(QWidget*);
 
-    void fileLoad(QString ,const LoadMode &);
+    ErrorCode fileLoad(QString ,const LoadMode &, const FileType & ftype=VymMap);
     void fileLoad(const LoadMode &);
     void fileLoad();
-	void fileLoadLast(int);
-    void fileSave(const SaveMode & );
+	void fileLoadRecent();
+	void addRecentMap (const QString &);
+    void fileSave(MapEditor*, const SaveMode & );
     void fileSave();
+public slots:	
+    void fileSave(MapEditor *);	// autosave from MapEditor
+private slots:	
     void fileSaveAs(const SaveMode &);
     void fileSaveAs();
+    void fileImportKDE3Bookmarks();
+    void fileImportKDE4Bookmarks();
+    void fileImportFirefoxBookmarks();
+    void fileImportFreemind();
+    void fileImportMM();
     void fileImportDir();
     void fileExportXML();
-    void fileExportHTML();
     void fileExportXHTML();
-    void fileExportImage(int);
+    void fileExportImage();
     void fileExportASCII();
+    void fileExportCSV();
+    void fileExportLaTeX();
+    void fileExportKDE3Bookmarks();
+    void fileExportKDE4Bookmarks();
+    void fileExportTaskjuggler();
+    void fileExportOOPresentation();
     void fileCloseMap();
     void filePrint();
     void fileExitVYM();
 
+public slots:
     void editUndo();	
     void editRedo();	
+	void gotoHistoryStep (int);
+private slots:	
     void editCopy();	
     void editPaste();	
     void editCut();	
     void editOpenFindWindow();
 	void editFind(QString);
 	void editFindChanged();
+private:
+	void openTabs(QStringList);
 public slots:
 	void editOpenURL();
+	void editOpenURLTab();
 private slots:
+	void editOpenMultipleURLTabs();
 	void editURL();
+	void editLocalURL();
 	void editHeading2URL();
 	void editBugzilla2URL();
+	void editFATE2URL();
+	void openVymLinks(const QStringList &);
 	void editVymLink();
+	void editOpenMultipleVymLinks();
+    void editHeadingFinished();
+    void editAttributeFinished();
 public slots:
+    void editHeading();
+    void editAttribute();
 	void editOpenVymLink();
 private slots:
 	void editDeleteVymLink();
+	void editToggleHideExport();
 	void editMapInfo();
     void editMoveUp();	
     void editMoveDown();	
+	void editSortChildren();
     void editToggleScroll();
-    void editUnScrollAll();
-    void editHeading();
+    void editUnscrollChilds();
+    void editAddMapCenter();
     void editNewBranch();
+    void editNewBranchBefore();
     void editNewBranchAbove();
     void editNewBranchBelow();
     void editImportAdd();
     void editImportReplace();
     void editSaveBranch();
+    void editDeleteKeepChilds();
+    void editDeleteChilds();
     void editDeleteSelection();
     void editUpperBranch();
     void editLowerBranch();
@@ -112,33 +151,61 @@
     void editFirstBranch();
     void editLastBranch();
     void editLoadImage();
-    void editSaveImage(int);
-    void editToggleFloatExport();
+    void editSaveImage();
+    void editFollowXLink (QAction *);
+    void editEditXLink (QAction *);
 
     void formatSelectColor();
     void formatPickColor();
     void colorChanged(QColor);
-    void formatColorItem();
     void formatColorBranch();
+    void formatColorSubtree();
 	void formatLinkStyleLine();
 	void formatLinkStyleParabel();
 	void formatLinkStylePolyLine();
 	void formatLinkStylePolyParabel();
     void formatSelectBackColor();
+    void formatSelectBackImage();
     void formatSelectLinkColor();
+    void formatSelectSelectionColor();
     void formatToggleLinkColorHint();
-	void formatFrameNone();
-	void formatFrameRectangle();
+	void formatHideLinkUnselected();
 
     void viewZoomReset();
     void viewZoomIn();
     void viewZoomOut();
+    void viewCenter();
 
 public slots:
+	void networkStartServer();
+	void networkConnect();
 	bool settingsPDF();
 	bool settingsURL();
+	void settingsMacroDir();
+	void settingsToggleDelKey();
+	void settingsUndoLevels();
+	void settingsAutosaveToggle();
+	void settingsAutosaveTime();
+	void settingsWriteBackupFileToggle();
+	void settingsToggleAnimation();
 
 	void windowToggleNoteEditor();
+	void windowToggleHistory();
+	void windowToggleProperty();
+	void updateHistory(SimpleSettings &);
+	void windowToggleAntiAlias();
+	void windowToggleSmoothPixmap();
+	void updateNoteFlag();
+	void updateSatellites(MapEditor *);
+	void updateActions();
+	ModMode getModMode();
+	bool autoEditNewBranch();
+	bool autoSelectNewBranch();
+	bool useFlagGroups();
+	void setScript(const QString &);
+	void runScript(const QString &);
+	void runScriptEverywhere (const QString &);
+
 private slots:
 	void windowNextEditor();
 	void windowPreviousEditor();
@@ -147,20 +214,129 @@
 
 	void standardFlagChanged();
 
-    void testFunction();
-    void testShowClipboard();
+    void testFunction1();
+    void testFunction2();
+    void testCommand();
 
     void helpDoc();
+    void helpDemo();
     void helpAbout();
     void helpAboutQT();
 
+	void callMacro ();
+
 private:
-    QCanvas* canvas;
 	QTabWidget *tabWidget;
 	FindWindow *findWindow;
-	QStringList lastMaps;
-	int maxLastMaps;
-	QString lastFileDir;
+	QProcess *procBrowser;
+
+	QStringList imageTypes;
+
+	QLineEdit *lineedit;	// to enter headings of branches
+	QString prevSelection;
+
+	HistoryWindow *historyWindow;
+
+	BranchPropertyWindow *branchPropertyWindow;
+	SimpleScriptEditor *scriptEditor;
+
+	QList <QAction*> actionListBranches;
+
+	QColor currentColor;
+
+	int xLinkMenuWidth;
+
+	QMenu *recentFilesMenu;
+	enum { MaxRecentFiles = 9 };
+    QAction *recentFileActions[MaxRecentFiles];
+
+    QAction *macroActions[12];
+	QStringList macro;
+
+	QAction* actionFileNewCopy;
+	QAction* actionFileSave;
+	QAction* actionFilePrint;
+	QAction* actionEditUndo;
+	QAction* actionEditRedo;
+	QAction *actionEditCopy;
+	QAction *actionEditCut;
+	QAction *actionEditPaste;
+	QAction *actionEditMoveUp;
+	QAction *actionEditMoveDown;
+	QAction *actionEditSortChildren;
+	QAction *actionEditToggleScroll;
+	QAction* actionEditOpenURL;
+	QAction* actionEditOpenURLTab;
+	QAction* actionEditOpenMultipleURLTabs;
+	QAction* actionEditURL;
+	QAction* actionEditLocalURL;
+	QAction* actionEditHeading2URL;
+	QAction* actionEditBugzilla2URL;
+	QAction* actionEditFATE2URL;
+	QAction *actionEditOpenVymLink;
+	QAction *actionEditOpenMultipleVymLinks;
+	QAction *actionEditVymLink;
+	QAction *actionEditDeleteVymLink;
+	QAction *actionEditToggleHideExport;
+	QAction *actionEditMapInfo;
+	QAction *actionEditHeading;
+	QAction *actionEditDelete;
+	QAction *actionEditAddMapCenter;
+	QAction *actionEditAddBranch;
+	QAction *actionEditAddBranchBefore;
+	QAction *actionEditAddBranchAbove;
+	QAction *actionEditAddBranchBelow;
+	QAction *actionEditDeleteKeepChilds;
+	QAction *actionEditDeleteChilds;
+	QAction *actionEditImportAdd;
+	QAction *actionEditImportReplace;
+	QAction *actionEditSaveBranch;
+	QAction *actionEditSelectFirst;
+	QAction *actionEditSelectLast;
+	QAction *actionEditLoadImage;
+
+	QAction* actionFormatColor;
+	QAction* actionFormatPickColor;
+	QAction* actionFormatColorBranch;
+	QAction* actionFormatColorSubtree;
+	QAction* actionFormatLinkColorHint;
+	QAction* actionFormatBackColor;
+	QAction* actionFormatBackImage;
+	QAction* actionFormatLinkColor;
+	QAction* actionFormatSelectionColor;
+
+	QActionGroup* actionGroupModModes;
+	QAction* actionModModeColor;
+	QAction* actionModModeXLink;
+	QAction* actionModModeCopy;
+
+	QActionGroup *actionGroupFormatFrameTypes;
+
+
+	QActionGroup *actionGroupFormatLinkStyles;
+	QAction *actionFormatLinkStyleLine;
+	QAction *actionFormatLinkStyleParabel;
+	QAction *actionFormatLinkStylePolyLine;
+	QAction *actionFormatLinkStylePolyParabel;
+	QAction *actionFormatHideLinkUnselected;
+
+	QAction *actionViewToggleNoteEditor;
+	QAction *actionViewToggleHistoryWindow;
+	QAction *actionViewTogglePropertyWindow;
+	QAction *actionViewToggleAntiAlias;
+	QAction *actionViewToggleSmoothPixmapTransform;
+	QAction* actionViewCenter;
+
+	QAction* actionSettingsAutoEditNewBranch;
+	QAction* actionSettingsAutoSelectNewBranch;
+	QAction* actionSettingsAutoSelectText;
+	QAction* actionSettingsUseDelKey;
+	QAction* actionSettingsUseFlagGroups;
+	QAction* actionSettingsUseHideExport;
+	QAction* actionSettingsAutosaveToggle;
+	QAction* actionSettingsAutosaveTime;
+	QAction* actionSettingsWriteBackupFile;
+	QAction* actionSettingsUseAnimation;
 };
 
 
diff -r bd98be838da9 -r 85683324f94a mapeditor.cpp
--- a/mapeditor.cpp	Mon Mar 16 15:40:49 2009 +0000
+++ b/mapeditor.cpp	Thu Mar 19 11:48:33 2009 +0000
@@ -301,6 +301,9 @@
 		mapAttr+= attribut("author",model->getAuthor()) +
 				  attribut("comment",model->getComment()) +
 			      attribut("date",model->getDate()) +
+			      attribut("date",model->getDate()) +
+				  attribut("countBranches", QString().number(model->countBranches())) +
+
 		          attribut("backgroundColor", mapScene->backgroundBrush().color().name() ) +
 		          attribut("selectionColor", xelection.getColor().name() ) +
 		          attribut("linkStyle", ls ) +
@@ -1854,7 +1857,7 @@
 	if (!saveStringToDisk(fileDir+mapFileName,saveFile))
 	{
 		err=aborted;
-		QMessageBox::critical (0,"Critical error in MapEditor::save",QString("could not sage %1").arg(fileDir+mapFileName));
+		QMessageBox::critical (0,"Critical error in MapEditor::save",QString("could not save %1").arg(fileDir+mapFileName));
 	}
 
 	if (zipped)
@@ -5283,6 +5286,12 @@
 
 void MapEditor::autosave()
 {
+	if (filePath=="")
+	{
+		if (debug) cout <<"  ME::autosave  rejected, no filepath available\n";
+		return;
+	}
+
 	QDateTime now=QDateTime().currentDateTime();
 	/* FIXME debug
 	cout << "ME::autosave checking "<<qPrintable(filePath)<<"...\n"; 
@@ -5291,6 +5300,7 @@
 	cout << "  time: "<<qPrintable (now.toString())<<endl;
 	cout << " zipped="<<zipped<<endl;
 	*/
+
 	// Disable autosave, while we have gone back in history
 	int redosAvail=undoSet.readNumEntry (QString("/history/redosAvail"));
 	if (redosAvail>0) return;
diff -r bd98be838da9 -r 85683324f94a scripts/update-bookmarks
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/update-bookmarks	Thu Mar 19 11:48:33 2009 +0000
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# Look for running konquerors and notify them of changed bookmarks file
+dcop | grep konqueror- |  xargs -iKONQUI dcop KONQUI KBookmarkManager-$HOME/.kde/share/apps/konqueror/bookmarks.xml notifyCompleteChange "dcop"
+
+
+# And now the same using QDBUS in KDE 4:
+
+qdbus| grep konqueror- |  xargs -iOBJECT qdbus OBJECT /KBookmarkManager/konqueror org.kde.KIO.KBookmarkManager.notifyCompleteChange
diff -r bd98be838da9 -r 85683324f94a tex/vym.changelog
--- a/tex/vym.changelog	Mon Mar 16 15:40:49 2009 +0000
+++ b/tex/vym.changelog	Thu Mar 19 11:48:33 2009 +0000
@@ -1,8 +1,15 @@
+-------------------------------------------------------------------
+Tue Mar 17 15:30:56 CET 2009 - uwedr@suse.de
+
+- Version: 1.12.2f
+- Bugfix: Import/Export bookmarks works now also on KDE 4 
+- Feature: Added traditional chinese translation
+
 -------------------------------------------------------------------
 Tue Mar 10 13:46:12 CET 2009 - uwedr@suse.de
 
 - Version: 1.12.2e
-  Bugfix: Don't check for changes in file, if map was closed already 
+- Bugfix: Don't check for changes in file, if map was closed already 
 
 -------------------------------------------------------------------
 Tue Mar 10 12:23:21 CET 2009 - uwedr@suse.de
diff -r bd98be838da9 -r 85683324f94a version.h
--- a/version.h	Mon Mar 16 15:40:49 2009 +0000
+++ b/version.h	Thu Mar 19 11:48:33 2009 +0000
@@ -4,10 +4,10 @@
 #include <QString>
 
 #define __VYM_NAME "VYM"
-#define __VYM_VERSION "1.12.2e"
+#define __VYM_VERSION "1.12.2f"
 #define __VYM_CODENAME "Maintenance Update "
 //#define __VYM_CODENAME "Codename: development version"
-#define __VYM_BUILD_DATE "2009-03-10"
+#define __VYM_BUILD_DATE "2009-03-18"
 
 
 bool checkVersion(const QString &);
diff -r bd98be838da9 -r 85683324f94a vym.pro
--- a/vym.pro	Mon Mar 16 15:40:49 2009 +0000
+++ b/vym.pro	Thu Mar 19 11:48:33 2009 +0000
@@ -1,39 +1,57 @@
-TARGET  = vym
-TRANSLATIONS += vym_de.ts
-
 TEMPLATE	= app
 LANGUAGE	= C++
 
-CONFIG	+= qt warn_on release
+CONFIG	+= qt warn_on release debug
+CONFIG += x86 ppc
 
-DESTROOT = /usr
+TRANSLATIONS += lang/vym_de.ts
+TRANSLATIONS += lang/vym_en.ts
+TRANSLATIONS += lang/vym_es.ts
+TRANSLATIONS += lang/vym_fr.ts
+TRANSLATIONS += lang/vym_it.ts
+TRANSLATIONS += lang/vym_pt_BR.ts
+TRANSLATIONS += lang/vym_ru.ts
+TRANSLATIONS += lang/vym_zh_CN.ts
+TRANSLATIONS += lang/vym_zh_TW.ts
 
-target.path = $${DESTROOT}/bin
-INSTALLS += target
+# Manifest embedding was suggested by Qt docs somewhere...
+win32: CONFIG += embed_manifest_exe
 
-support.files = styles/ scripts/ icons/
-support.path = $${DESTROOT}/share/vym
-INSTALLS += support 
+# Without this, M_PI, and M_PI_2 won`t be defined.
+win32:DEFINES *= _USE_MATH_DEFINES
 
-doc.files = doc/*
-doc.path = $${DESTROOT}/share/doc/packages/vym
-INSTALLS += doc
+ICON =icons/vym.icns
 
-demo.files = demos/
-demo.path = $${DESTROOT}/share/vym
-INSTALLS += demo
+QT += qt3support
+QT += network
 
-
-HEADERS	+= branchobj.h \
+HEADERS	+= \
+	aboutdialog.h \
+	animpoint.h \
+	attribute.h \
+	attributedelegate.h\
+	attributedialog.h \
+	attributewidget.h \
+	branchobj.h \
+	branchpropwindow.h\
+	editxlinkdialog.h \
+	exportoofiledialog.h \
+	exportxhtmldialog.h\
 	exports.h \
+	extrainfodialog.h \
+	file.h \
 	findwindow.h \
 	flagobj.h \
 	flagrowobj.h \
 	floatimageobj.h \
 	floatobj.h \
 	frameobj.h \
+	geometry.h \
 	headingobj.h \
+	highlighter.h \
+	historywindow.h \
 	imageobj.h \
+	imports.h \
 	linkablemapobj.h \
 	mainwindow.h \
 	mapcenterobj.h \
@@ -41,24 +59,52 @@
 	mapobj.h \
 	misc.h \
 	noteobj.h \
+	options.h \
 	ornamentedobj.h \
+	parser.h \
 	process.h \
 	selection.h \
+	showtextdialog.h\
+	simplescripteditor.h\
 	texteditor.h \
 	version.h \
-	xml.h \
+	vymmodel.h \
+	xlinkobj.h \
+	xml-base.h \
+	xml-vym.h \
+	xml-freemind.h \
+	xmlobj.h\
+	xsltproc.h \
 	settings.h \
-	options.h
-SOURCES	+= branchobj.cpp \
+	warningdialog.h
+
+SOURCES	+= \
+	aboutdialog.cpp \
+	animpoint.cpp \
+	attribute.cpp \
+	attributedelegate.cpp \
+	attributedialog.cpp \
+	attributewidget.cpp \
+	branchobj.cpp \
+	branchpropwindow.cpp \
+	editxlinkdialog.cpp \
+	exportoofiledialog.cpp \
 	exports.cpp \
+	exportxhtmldialog.cpp \
+	extrainfodialog.cpp \
+	file.cpp \
 	findwindow.cpp \
 	flagobj.cpp \
 	flagrowobj.cpp \
 	floatimageobj.cpp \
 	floatobj.cpp \
 	frameobj.cpp \
+	geometry.cpp \
 	headingobj.cpp \
+	highlighter.cpp \
+	historywindow.cpp \
 	imageobj.cpp \
+	imports.cpp \
 	linkablemapobj.cpp \
 	main.cpp \
 	mainwindow.cpp \
@@ -67,15 +113,78 @@
 	mapobj.cpp \
 	misc.cpp \
 	noteobj.cpp \
+	options.cpp \
 	ornamentedobj.cpp \
+	parser.cpp \
 	process.cpp \
 	selection.cpp \
+	showtextdialog.cpp \
+	simplescripteditor.cpp \
 	texteditor.cpp \
-	xml.cpp \
+	version.cpp \
+	vymmodel.cpp \
+	xlinkobj.cpp \
+	xml-base.cpp \
+	xml-vym.cpp \
+	xml-freemind.cpp \
+	xmlobj.cpp \
+	xsltproc.cpp \
 	settings.cpp \
-	options.cpp
-FORMS	= exporthtmldialog.ui \
+	warningdialog.cpp
+
+FORMS = \
+	attributewidget.ui \
+	branchpropwindow.ui \
 	exportxhtmldialog.ui \
+	extrainfodialog.ui \
+	editxlinkdialog.ui \
+	historywindow.ui \
+	simplescripteditor.ui \
 	showtextdialog.ui \
-	extrainfodialog.ui
+	warningdialog.ui
 
+win32 {
+	HEADERS += mkdtemp.h
+	SOURCES += mkdtemp.cpp
+	RC_FILE = vym.rc
+}
+
+#The following lines were inserted by qt3to4
+QT += xml
+
+TARGET  = vym
+
+
+isEmpty( PREFIX ) {
+	PREFIX = /usr/local
+	count( INSTALLDIR, 1 ) {
+		PREFIX = $${INSTALLDIR}
+		message( "Please use PREFIX instead of INSTALLDIR" )
+	}
+}
+isEmpty( BINDIR ) {
+	BINDIR = $${PREFIX}/bin
+}
+isEmpty( DATADIR ) {
+	DATADIR = $${PREFIX}/share
+}
+isEmpty( DOCDIR ) {
+	DOCDIR = $${DATADIR}/doc/packages/vym
+}
+
+message( "Installation directory" )
+message( $$PREFIX )
+
+
+target.path = $${BINDIR}
+INSTALLS += target
+
+support.files = styles/ scripts/ icons/ flags/ lang/ macros/ exports/ demos/
+support.path = $${DATADIR}/vym
+INSTALLS += support 
+
+doc.files = doc/vym.pdf
+doc.path = $${DOCDIR}
+INSTALLS += doc
+DEFINES += VYM_DOCDIR=\\\"$${DOCDIR}\\\"
+
diff -r bd98be838da9 -r 85683324f94a vymmodel.cpp
--- a/vymmodel.cpp	Mon Mar 16 15:40:49 2009 +0000
+++ b/vymmodel.cpp	Thu Mar 19 11:48:33 2009 +0000
@@ -123,7 +123,6 @@
 
 MapCenterObj *VymModel::getMapCenterNum (int i)
 {
-	cout << "MCO i="<<i<<"  count="<<mapCenters.count()<<endl;
 	if (i>mapCenters.count()-1 || i<0)
 		return NULL;
 	else
@@ -135,6 +134,18 @@
 	return mapCenters.count();
 }
 
+int VymModel::countBranches()
+{
+	uint b=0;
+	BranchObj *bo=first();
+	while (bo) 
+	{
+		b++;
+		bo=next(bo);
+	}
+	return b;
+}
+
 BranchObj* VymModel::first()
 {
 	if (mapCenters.count()>0) 
diff -r bd98be838da9 -r 85683324f94a vymmodel.h
--- a/vymmodel.h	Mon Mar 16 15:40:49 2009 +0000
+++ b/vymmodel.h	Thu Mar 19 11:48:33 2009 +0000
@@ -33,6 +33,7 @@
 	MapCenterObj* removeMapCenter(MapCenterObj *mco);
 	MapCenterObj* getMapCenterNum (int i);
 	int countMapCenters ();
+	int countBranches();
 
 	BranchObj* first();					// FIXME replaced by ModelIndex later
 	BranchObj* next(BranchObj *bo);		// FIXME replaced by ModelIndex later