コード例 #1
0
ファイル: ScriptEditor.cpp プロジェクト: jjatria/praat
autoScriptEditor ScriptEditor_createFromScript_canBeNull (Editor environment, Script script) {
	try {
		for (long ieditor = 1; ieditor <= theReferencesToAllOpenScriptEditors.size; ieditor ++) {
			ScriptEditor editor = theReferencesToAllOpenScriptEditors.at [ieditor];
			if (MelderFile_equal (& script -> file, & editor -> file)) {
				Editor_raise (editor);
				Melder_appendError (U"The script ", & script -> file, U" is already open and has been moved to the front.");
				if (editor -> dirty)
					Melder_appendError (U"Choose \"Reopen from disk\" if you want to revert to the old version.");
				Melder_flushError ();
				return autoScriptEditor();   // safe null
			}
		}
		autostring32 text = MelderFile_readText (& script -> file);
		autoScriptEditor me = ScriptEditor_createFromText (environment, text.peek());
		MelderFile_copy (& script -> file, & my file);
		Thing_setName (me.peek(), Melder_fileToPath (& script -> file));
		return me;
	} catch (MelderError) {
		Melder_throw (U"Script window not created.");
	}
}
コード例 #2
0
ファイル: FFNet.cpp プロジェクト: ffostertw/praat
static void FFNet_checkLayerNumber (FFNet me, long layer) {
	if (layer < 1 || layer > my nLayers) {
		if (layer == 0) {
			Melder_throw (U"A Layer number of 0 is not allowed.");
		} else if (layer < 0) {
			Melder_throw (U"A negative layer number is not allowed.");
		} else if (layer > my nLayers) {
			Melder_throw (U"A layer number of ", layer, U" is too big.");
		}

		Melder_appendError (U"This FFNet has ", layer, U" layer", (my nLayers > 1 ? U"s\n" : U"\n"));
		if (my nLayers == 1) {
			Melder_throw (U"Layer number must be equal to 1.");
		} else if (my nLayers == 2) {
			Melder_throw (U"Layer number must be equal to 1 or 2.");
		} else if (my nLayers == 3) {
			Melder_throw (U"Layer number must be equal to 1, 2 or 3.");
		} else {
			Melder_throw (U"Layer number must be in the range 1 to ", my nLayers);
		}
	}
}
コード例 #3
0
ファイル: TextEditor.cpp プロジェクト: ffostertw/praat
static void openDocument (TextEditor me, MelderFile file) {
	if (theOpenTextEditors) {
		for (long ieditor = 1; ieditor <= theOpenTextEditors -> size; ieditor ++) {
			TextEditor editor = (TextEditor) theOpenTextEditors -> item [ieditor];
			if (editor != me && MelderFile_equal (file, & editor -> file)) {
				Editor_raise (editor);
				Melder_appendError (U"Text file ", file, U" is already open.");
				forget (me);   // don't forget me before Melder_appendError, because "file" is owned by one of my dialogs
				Melder_flushError ();
				return;
			}
		}
	}
	autostring32 text = MelderFile_readText (file);
	GuiText_setString (my textWidget, text.peek());
	/*
	 * GuiText_setString has invoked the changeCallback,
	 * which has set `my dirty` to `true`. Fix this.
	 */
	my dirty = false;
	MelderFile_copy (file, & my file);
	Thing_setName (me, Melder_fileToPath (file));
}
コード例 #4
0
ファイル: melder_error.cpp プロジェクト: READSEARCH/praat
void Melder_flushError (Melder_19_ARGS) { Melder_appendError (Melder_19_ARGS_CALL); Melder_flushError (); }
コード例 #5
0
ファイル: melder_error.cpp プロジェクト: READSEARCH/praat
void Melder_flushError (Melder_1_ARG)   { Melder_appendError (Melder_1_ARG_CALL);   Melder_flushError (); }