Clone in a terminal:
Commit 70d415e
Johan Mattsson - 2012-09-06T19:02:11+00:00
70d415e63b5a6e0e3769d60b04ecfc56a46b6e82johan.mattsson.m@gmail.com

test cases for export and preview

Changed files (9)

Diff

diff --git a/src/ExportTool.vala b/src/ExportTool.valaindex 5d21c9b..e12f61d 100644--- a/src/ExportTool.vala+++ b/src/ExportTool.vala@@ -358,8 +358,7 @@ os.put_string ( 		return export_ttf_font_path (file); 	} 	-	public static bool export_ttf_font_path (File folder, bool async = true) -		requires (Supplement.get_current_font ().font_file != null) {+	public static bool export_ttf_font_path (File folder, bool async = true) { 		Font current_font = Supplement.get_current_font (); 		string path; 		OpenFontFormatWriter fo;@@ -371,6 +370,12 @@ os.put_string (  		export_mutex.lock (); +		while (ExportTool.export_thread_is_running) {+			export_mutex.unlock ();+			Thread.usleep (100);+			export_mutex.lock ();+		}+ 		try { 			// create a copy of current font and use it in a separate  			// export thread@@ -386,6 +391,10 @@ os.put_string ( 				eot_file.delete (); 			} 			+			assert (!is_null (temp_file));+			assert (!is_null (ttf_file.get_path ()));+			assert (!is_null (eot_file.get_path ()));+			 			export_thread = new ExportThread (temp_file, (!) ttf_file.get_path (), (!) eot_file.get_path ());  			try {diff --git a/src/Glyph.vala b/src/Glyph.valaindex e7da276..32e1b09 100644--- a/src/Glyph.vala+++ b/src/Glyph.vala@@ -821,6 +821,11 @@ class Glyph : FontDisplay { 			}  		}+		+		// a path without any editpoints+		if (path_list.length () > 0) {+			return path_list.first ().data;+		}  		if (unlikely (min_distance == double.MAX)) { 			warning (@"No path found in path_list. Length: $(path_list.length ())");diff --git a/src/MainWindow.vala b/src/MainWindow.valaindex 40def5f..1228b9a 100644--- a/src/MainWindow.vala+++ b/src/MainWindow.vala@@ -83,6 +83,8 @@ internal class MainWindow : Gtk.Window { 		
 		html_box.add (html_canvas);
 		
+		html_canvas.set_editable (true);
+		
 		tabs.signal_tab_selected.connect ((f, tab) => {
 			bool n;
 			File layout_dir;
@@ -96,9 +98,6 @@ internal class MainWindow : Gtk.Window { 			
 			if (n) {
 				layout_dir = FontDisplay.find_layout_dir ();
-				html_box.set_visible (n);
-				glyph_canvas.set_visible (!n);
-				
 				uri = fd.get_uri ();
 				
 				if (uri == "") {
@@ -107,14 +106,15 @@ internal class MainWindow : Gtk.Window { 				}
 				
 				if (fd.get_html () == "") {
-					html_canvas.load_html_string (fd.get_html (), uri);
+					html_canvas.load_html_string (fd.get_html (), uri);	
 					html_canvas.reload_bypass_cache ();
 					html_canvas.load_uri (uri);
-					
-					print (@"uri: $uri\n");
 				} else {
 					html_canvas.load_html_string (fd.get_html (), uri);
 				}
+				
+				html_box.set_visible (n);
+				glyph_canvas.set_visible (!n);
 			} else {
 				html_box.set_visible (false);
 				glyph_canvas.set_visible (true);
diff --git a/src/OpenFontFormatReader.vala b/src/OpenFontFormatReader.valaindex 6119c95..84aa85c 100644--- a/src/OpenFontFormatReader.vala+++ b/src/OpenFontFormatReader.vala@@ -100,9 +100,7 @@ class OpenFontFormatReader : Object { 	}  	public void set_limits () {-		Font f = Supplement.get_current_font ();-		-		f.base_line = 0;+		Font f = OpenFontFormatWriter.font; 		f.top_position = -get_ascender (); 		f.top_limit = f.top_position - 5; 		f.xheight_position = f.top_position - 5;diff --git a/src/Path.vala b/src/Path.valaindex 12f1d12..6e3287e 100644--- a/src/Path.vala+++ b/src/Path.vala@@ -221,9 +221,9 @@ class Path { 		cr.set_line_width (1 * (1/g.view_zoom));  		cr.line_to (ax, ay);-	 		cr.line_to (bx, by);-+		+		cr.stroke (); 	} 	 	public void draw_edit_point  (EditPoint e, Context cr) {diff --git a/src/Preview.vala b/src/Preview.valaindex 896b04e..f62a9ba 100644--- a/src/Preview.vala+++ b/src/Preview.vala@@ -35,11 +35,12 @@ class Preview : FontDisplay { 	public override void selected_canvas () { 		WebView w = MainWindow.get_webview (); 		string uri = get_uri ();+		File new_dest; -		ExportTool.export_all ();-+		ExportTool.export_svg_font ();+		 		w.open (uri);-		w.reload_bypass_cache ();	+		w.reload_bypass_cache ();  		// this is a hack forces webkit to reload the font and ignore cached data 		// it's only required on windows platform and in wine diff --git a/src/TestCases.vala b/src/TestCases.valaindex af9fd2e..bc6f01b 100644--- a/src/TestCases.vala+++ b/src/TestCases.vala@@ -40,6 +40,59 @@ class TestCases { 		add (test_notdef, "Notdef"); 		add (test_merge, "Merge"); 		add (test_over_path, "Over path");+		add (test_preview, "Preview");+		add (test_export, "Export");+	}++	public static void test_export () {+		Glyph g;+		Path p = new Path ();+		+		Tool.test_open_next_glyph ();+		g = MainWindow.get_current_glyph ();+				+		p.add (-10, -10);+		p.add (50, 50);+		p.add (10, -10);+		+		p.close ();+		g.add_path (p);	++		MenuTab.preview ();++		// TODO: run this many times on big font+		for (int i = 0; i < 10; i++) {+			ExportTool.export_all ();+			Tool.yield ();+		}		+	}+++	public static void test_preview () {+		Glyph g;+		Path p = new Path ();+		+		Tool.test_open_next_glyph ();+		g = MainWindow.get_current_glyph ();+				+		p.add (-10, 10);+		p.add (10, 10);+		p.add (10, -10);+		p.add (-10, -10);+		p.close ();+		g.add_path (p);	++		MenuTab.preview ();++		// TODO: run this many times on big font+		for (int i = 0; i < 10; i++) {+			MainWindow.get_tab_bar ().select_tab_name ("Menu");+			Tool.yield ();+			+			MainWindow.get_tab_bar ().select_tab_name ("Preview");+			Tool.yield ();+		}+		 	}  	public static void test_over_path () {diff --git a/src/wscript b/src/wscriptindex fe20a5b..b61c2d8 100644--- a/src/wscript+++ b/src/wscript@@ -1,137 +1,137 @@-BIRDFONT = [
-	'Argument.vala',
-	'Font.vala',
-	'BackgroundTool.vala',
-	'BackgroundSelection.vala',
-	'Birdfont.vala',
-	'EotWriter.vala',
-	'ExportTool.vala',
-	'FontDisplay.vala',
-	'CharDatabase.vala',
-	'Config.vala',
-	'Context.vala',
-	'CutBackgroundTool.vala',
-	'CutTool.vala',
-	'ClipTool.vala',
-	'DropMenu.vala',
-	'EditPoint.vala',
-	'EditPointHandle.vala',
-	'FileSelection.vala',
-	'Glyph.vala',
-	'GlyphBackgroundImage.vala',
-	'GlyphCanvas.vala',
-	'GlyphCollection.vala',
-	'GlyphRange.vala',
-	'GlyphTable.vala',
-	'GridTool.vala',
-	'Icons.vala',
-	'Kerning.vala', 
-	'KeyBindings.vala', 
-	'Line.vala',
-	'MainWindow.vala',
-	'MenuTab.vala',
-	'MergeTool.vala',
-	'MoveTool.vala',
-	'Intersection.vala',
-	'IntersectionList.vala',
-	'IOThread.vala',
-	'OpenFontFormatWriter.vala',
-	'OpenFontFormatReader.vala',
-	'OverView.vala',
-	'Path.vala',
-	'PenTool.vala',
-	'Preview.vala',
-	'ResizeTool.vala',
-	'SaveDialog.vala',
-	'Scrollbar.vala',
-	'ShrinkTool.vala',
-	'SpinButton.vala',
-	'Supplement.vala',
-	'Svg.vala',
-	'SvgFontFormatWriter.vala',
-	'Preferences.vala',
-	'TabBar.vala',
-	'TestCases.vala', 
-	'TestSupplement.vala', 
-	'Tool.vala',
-	'Toolbox.vala',
-	'TooltipArea.vala',
-	'UniRange.vala',
-	'VersionList.vala',
-	'ZoomTool.vala',
-]
-
-BIRDFONT_MAIN = [
-	'Main.vala'
-]
-
-BIRDFONT_EXPORT = [
-	'BirdfontExport.vala'
-]
-
-PARAM = [
-	'--thread',
-	'--disable-warnings',
-	'--enable-experimental',
-	'--enable-experimental-non-null',
-	'--vapidir=./'
-]
-
-def build (bld):
-
-	bld.shlib (
-		target        = 'birdfont',
-		param         = PARAM,
-		packages      = 'gtk+-2.0 libxml-2.0',
-		uselib        = 'GTK GLIB GIO XML WEB',
-		source        = BIRDFONT,
-		name          = "libbirdfont"
-	)
-
-	bld (
-		rule          = "mv src/birdfont.h ./",
-		depends       = "libbirdfont",
-		name          = "birdfont_h"
-	)
-	
-	bld (
-		rule = 'valac -C ./src/birdfont.vapi ../src/Main.vala -X ../build/src/libbirdfont.so -X ./birdfont.h --pkg gtk+-2.0 --pkg libxml-2.0 --pkg gdk-2.0 --pkg webkit-1.0',
-		name = 'main_c',
-		target = '../Main.c',
-		depends = 'libbirdfont'
-	)
-
-	bld (
-		rule = "valac -C ./src/birdfont.vapi ../src/BirdfontExport.vala -X ../build/src/libbirdfont.so -X ./birdfont.h --pkg gtk+-2.0 --pkg libxml-2.0 --pkg gdk-2.0 --pkg webkit-1.0",
-		depends = 'libbirdfont',
-		target = '../BirdfontExport.c',
-		name = 'birdfont_export'
-	)
-
-	bld (
-		rule = 'gcc  ../build/Main.c -I../build/ -L  ../build/src -l birdfont -o ${TGT} \
-				$(pkg-config --cflags --libs glib-2.0) \
-				$(pkg-config --cflags --libs libxml-2.0) \
-				$(pkg-config --cflags --libs gio-2.0) \
-				$(pkg-config --cflags --libs libsoup-2.4) \
-				$(pkg-config --cflags --libs gtk+-2.0) \
-				$(pkg-config --cflags --libs webkit-1.0)',
-		source  = ['../Main.c'],
-		target  = 'birdfont',
-		depends = 'main_c'
-	)
-
-	bld (
-		rule = 'gcc  ../build/BirdfontExport.c -I../build/ -L  ../build/src -l birdfont -o ${TGT} \
-				$(pkg-config --cflags --libs glib-2.0) \
-				$(pkg-config --cflags --libs libxml-2.0) \
-				$(pkg-config --cflags --libs gio-2.0) \
-				$(pkg-config --cflags --libs libsoup-2.4) \
-				$(pkg-config --cflags --libs gtk+-2.0) \
-				$(pkg-config --cflags --libs webkit-1.0)',
-		source  = ['../BirdfontExport.c'],
-		target  = 'birdfont-export',
-		depends = 'birdfont_export'
-	)
-	
-	bld.install_files('${PREFIX}/bin/', ['birdfont', 'birdfont-export'])
+BIRDFONT = [+	'Argument.vala',+	'Font.vala',+	'BackgroundTool.vala',+	'BackgroundSelection.vala',+	'Birdfont.vala',+	'EotWriter.vala',+	'ExportTool.vala',+	'FontDisplay.vala',+	'CharDatabase.vala',+	'Config.vala',+	'Context.vala',+	'CutBackgroundTool.vala',+	'CutTool.vala',+	'ClipTool.vala',+	'DropMenu.vala',+	'EditPoint.vala',+	'EditPointHandle.vala',+	'FileSelection.vala',+	'Glyph.vala',+	'GlyphBackgroundImage.vala',+	'GlyphCanvas.vala',+	'GlyphCollection.vala',+	'GlyphRange.vala',+	'GlyphTable.vala',+	'GridTool.vala',+	'Icons.vala',+	'Kerning.vala', +	'KeyBindings.vala', +	'Line.vala',+	'MainWindow.vala',+	'MenuTab.vala',+	'MergeTool.vala',+	'MoveTool.vala',+	'Intersection.vala',+	'IntersectionList.vala',+	'IOThread.vala',+	'OpenFontFormatWriter.vala',+	'OpenFontFormatReader.vala',+	'OverView.vala',+	'Path.vala',+	'PenTool.vala',+	'Preview.vala',+	'ResizeTool.vala',+	'SaveDialog.vala',+	'Scrollbar.vala',+	'ShrinkTool.vala',+	'SpinButton.vala',+	'Supplement.vala',+	'Svg.vala',+	'SvgFontFormatWriter.vala',+	'Preferences.vala',+	'TabBar.vala',+	'TestCases.vala', +	'TestSupplement.vala', +	'Tool.vala',+	'Toolbox.vala',+	'TooltipArea.vala',+	'UniRange.vala',+	'VersionList.vala',+	'ZoomTool.vala',+]++BIRDFONT_MAIN = [+	'Main.vala'+]++BIRDFONT_EXPORT = [+	'BirdfontExport.vala'+]++PARAM = [+	'--thread',+	'--disable-warnings',+	'--enable-experimental',+	'--enable-experimental-non-null',+	'--vapidir=./'+]++def build (bld):++	bld.shlib (+		target        = 'birdfont',+		param         = PARAM,+		packages      = 'gtk+-2.0 libxml-2.0',+		uselib        = 'GTK GLIB GIO XML WEB',+		source        = BIRDFONT,+		name          = "libbirdfont"+	)++	bld (+		rule          = "mv src/birdfont.h ./",+		depends       = "libbirdfont",+		name          = "birdfont_h"+	)+	+	bld (+		rule = 'valac -C ./src/birdfont.vapi ../src/Main.vala -X ../build/src/libbirdfont.so -X ./birdfont.h --pkg gtk+-2.0 --pkg libxml-2.0 --pkg gdk-2.0 --pkg webkit-1.0',+		name = 'main_c',+		target = '../Main.c',+		depends = 'libbirdfont'+	)++	bld (+		rule = "valac -C ./src/birdfont.vapi ../src/BirdfontExport.vala -X ../build/src/libbirdfont.so -X ./birdfont.h --pkg gtk+-2.0 --pkg libxml-2.0 --pkg gdk-2.0 --pkg webkit-1.0",+		depends = 'libbirdfont',+		target = '../BirdfontExport.c',+		name = 'birdfont_export'+	)++	bld (+		rule = 'gcc  ../build/Main.c -I../build/ -L  ../build/src -l birdfont -o ${TGT} \+				$(pkg-config --cflags --libs glib-2.0) \+				$(pkg-config --cflags --libs libxml-2.0) \+				$(pkg-config --cflags --libs gio-2.0) \+				$(pkg-config --cflags --libs libsoup-2.4) \+				$(pkg-config --cflags --libs gtk+-2.0) \+				$(pkg-config --cflags --libs webkit-1.0)',+		source  = ['../Main.c'],+		target  = 'birdfont',+		depends = 'main_c'+	)++	bld (+		rule = 'gcc  ../build/BirdfontExport.c -I../build/ -L  ../build/src -l birdfont -o ${TGT} \+				$(pkg-config --cflags --libs glib-2.0) \+				$(pkg-config --cflags --libs libxml-2.0) \+				$(pkg-config --cflags --libs gio-2.0) \+				$(pkg-config --cflags --libs libsoup-2.4) \+				$(pkg-config --cflags --libs gtk+-2.0) \+				$(pkg-config --cflags --libs webkit-1.0)',+		source  = ['../BirdfontExport.c'],+		target  = 'birdfont-export',+		depends = 'birdfont_export'+	)+	+	bld.install_files('${PREFIX}/bin/', ['birdfont', 'birdfont-export'])diff --git a/win32/wscript b/win32/wscriptindex d979a26..adf6acb 100644--- a/win32/wscript+++ b/win32/wscript@@ -116,7 +116,7 @@ def build(bld): 	bld(rule="""i686-w64-mingw32-ar rcs libbirdfont.dll.a win32/*.o""", name="mingw link static", depends_on="mingw link shared")  	bld(rule="""i686-w64-mingw32-gcc \-		./win32/*.o \+		./win32/Main.o \ 		./icon.res \ 		-s \ 		-Wl,-subsystem,windows \@@ -129,6 +129,9 @@ def build(bld): 		-B static -l webkitgtk-1.0.dll  -B static -lgtk-win32-2.0.dll -B static -lgdk-win32-2.0.dll -B static -latk-1.0.dll -B static -lgio-2.0.dll -B static -lpangowin32-1.0.dll -B static -lpangocairo-1.0.dll -B static -lgdk_pixbuf-2.0.dll -B static -lpango-1.0.dll -B static -lcairo.dll -B static -lgobject-2.0.dll -B static -lgmodule-2.0.dll -B static -lgthread-2.0.dll -B static -lglib-2.0.dll \ 		-static -o birdfont.exe""", source="../build/src/Supplement.c", target="../birdfont.exe", depends_on=['mingw link shared', 'icon'], name="mingw link", always=True) +	bld(rule="mv birdfont.exe supplement/", depends_on='mingw link', always=True)+	bld(rule="mv libbirdfont.dll supplement/", depends_on='mingw link', always=True)+ 	if bld.options.installer: 		copy_runtime_dependencies (bld) 		generate_nsi(bld)@@ -279,9 +282,6 @@ def copy_runtime_dependencies (bld): 	MINGW = "/usr/i686-w64-mingw32/sys-root/mingw" 	MINGW_BIN = MINGW + "/bin" -	bld(rule="mv birdfont.exe supplement/", depends_on='mingw link', always=True)-	bld(rule="mv libbirdfont.dll supplement/", depends_on='mingw link', always=True)- 	bld(rule="cp ../README supplement/") 	bld(rule="cp ../COPYING supplement/") 	bld(rule="cp ../NEWS supplement/")

Contact

Email: johan.mattsson.m@gmail.com
Mastodon: typo.social/@birdfont
GitHub: johanmattssonm
LinkedIn: johan-mattsson-2ab324112