Git commit 9810f149f0455af0a4053f4cdf3e81ae1bfc8596 by Thomas Eschenbacher. Committed on 21/02/2015 at 07:46. Pushed by eschenbacher into branch 'master'.
new command sync(): wait for commands scheduled with delayed(...) M +1 -1 CHANGES M +21 -0 doc/en/index.docbook M +8 -3 kwave/FileContext.cpp http://commits.kde.org/kwave/9810f149f0455af0a4053f4cdf3e81ae1bfc8596 diff --git a/CHANGES b/CHANGES index 1900474..bd753fc 100644 --- a/CHANGES +++ b/CHANGES @@ -5,12 +5,12 @@ * handbook: added text command reference * make system: new target "update-handbook" (updates command cross reference) * make system: fixed dependency problem in translation - * i18n: implemented filter for non-translatable pot entries * new commands: "window:sendkey", "window:screenshot", "window:close" and "window:resize" * built-in variable ${LANG} for kwave commands * support for delayed command execution * debug plugin: always compiled in, but only visible in debug build + * new command sync(): wait for commands scheduled with delayed 0.8.99-2 [2015-01-02] diff --git a/doc/en/index.docbook b/doc/en/index.docbook index 45169a8..c9ee25c 100644 --- a/doc/en/index.docbook +++ b/doc/en/index.docbook @@ -105,6 +105,7 @@ <!ENTITY no-i18n-cmd_selectvisible "selectvisible"> <!ENTITY no-i18n-cmd_start "start"> <!ENTITY no-i18n-cmd_stop "stop"> + <!ENTITY no-i18n-cmd_sync "sync"> <!ENTITY no-i18n-cmd_undo "undo"> <!ENTITY no-i18n-cmd_undo_all "undo_all"> <!ENTITY no-i18n-cmd_view_scroll_end "view:scroll_end"> @@ -3032,6 +3033,7 @@ <indexentry><primaryie><link linkend="cmd_sect_selectvisible" endterm="cmd_title_selectvisible"/></primaryie></indexentry> <indexentry><primaryie><link linkend="cmd_sect_start" endterm="cmd_title_start"/></primaryie></indexentry> <indexentry><primaryie><link linkend="cmd_sect_stop" endterm="cmd_title_stop"/></primaryie></indexentry> + <indexentry><primaryie><link linkend="cmd_sect_sync" endterm="cmd_title_sync"/></primaryie></indexentry> </indexdiv> <indexdiv><title>u</title> <indexentry><primaryie><link linkend="cmd_sect_undo" endterm="cmd_title_undo"/></primaryie></indexentry> @@ -3235,6 +3237,7 @@ </tbody></tgroup></informaltable></simplesect> <simplesect><title>See also</title> <para> + <link linkend="cmd_sect_sync"><command>&no-i18n-tag;&no-i18n-cmd_sync;</command>()</link>, <link linkend="cmd_sect_window_resize"><command>&no-i18n-tag;&no-i18n-cmd_window_resize;</command>()</link>, <link linkend="cmd_sect_window_click"><command>&no-i18n-tag;&no-i18n-cmd_window_click;</command>()</link>, <link linkend="cmd_sect_window_sendkey"><command>&no-i18n-tag;&no-i18n-cmd_window_sendkey;</command>()</link>, @@ -4409,6 +4412,24 @@ </para> </simplesect> </sect2> + + <!-- @COMMAND@ sync() --> + <sect2 id="cmd_sect_sync"><title id="cmd_title_sync">&no-i18n-cmd_sync;</title> + <simplesect> + <title>&i18n-cmd_syntax;<command>&no-i18n-tag;&no-i18n-cmd_sync;</command>()</title> + <para> + Waits until all commands which have been started asynchronously + have finished. If nothing is currently queued for delayed + execution this command has no effect. + </para> + </simplesect> + <simplesect><title>See also</title> + <para> + <link linkend="cmd_sect_delayed"><command>&no-i18n-tag;&no-i18n-cmd_delayed;</command>()</link> + </para> + </simplesect> + </sect2> + </sect1> <sect1 id="commands_u"><title>&no-i18n-tag;u</title> diff --git a/kwave/FileContext.cpp b/kwave/FileContext.cpp index da735da..108084f 100644 --- a/kwave/FileContext.cpp +++ b/kwave/FileContext.cpp @@ -319,9 +319,6 @@ int Kwave::FileContext::executeCommand(const QString &line) if (command.trimmed().startsWith(_("#"))) return 0; // only a comment - // log all commands to the log file if enabled - Kwave::Logger::log(this, Kwave::Logger::Info, _("CMD: ") + line); - // special case: if the command contains ";" it is a list of // commands -> macro ! Kwave::Parser parse_list(command); @@ -359,6 +356,9 @@ int Kwave::FileContext::executeCommand(const QString &line) } } + // log all commands to the log file if enabled + Kwave::Logger::log(this, Kwave::Logger::Info, _("CMD: ") + line); + // parse one single command Kwave::Parser parser(command); QString cmd = parser.command(); @@ -434,6 +434,11 @@ int Kwave::FileContext::executeCommand(const QString &line) result = saveFileAs(parser.nextParam(), false); CASE_COMMAND("saveselect") result = saveFileAs(QString(), true); + CASE_COMMAND("sync") + while (!m_delayed_command_queue.isEmpty()) { + qApp->processEvents(QEventLoop::ExcludeUserInputEvents); + } + result = 0; CASE_COMMAND("window:click") return delegateCommand("debug", parser, 3); CASE_COMMAND("window:close")