+ case LFUN_CHANGES_TRACK:
+ if (params().save_transient_properties)
+ undo().recordUndoBufferParams(CursorData());
+ params().track_changes = !params().track_changes;
+ if (!params().track_changes)
+ dr.forceChangesUpdate();
+ break;
+
+ case LFUN_CHANGES_OUTPUT:
+ if (params().save_transient_properties)
+ undo().recordUndoBufferParams(CursorData());
+ params().output_changes = !params().output_changes;
+ if (params().output_changes) {
+ bool dvipost = LaTeXFeatures::isAvailable("dvipost");
+ bool xcolorulem = LaTeXFeatures::isAvailable("ulem") &&
+ LaTeXFeatures::isAvailable("xcolor");
+
+ if (!dvipost && !xcolorulem) {
+ Alert::warning(_("Changes not shown in LaTeX output"),
+ _("Changes will not be highlighted in LaTeX output, "
+ "because neither dvipost nor xcolor/ulem are installed.\n"
+ "Please install these packages or redefine "
+ "\\lyxadded and \\lyxdeleted in the LaTeX preamble."));
+ } else if (!xcolorulem) {
+ Alert::warning(_("Changes not shown in LaTeX output"),
+ _("Changes will not be highlighted in LaTeX output "
+ "when using pdflatex, because xcolor and ulem are not installed.\n"
+ "Please install both packages or redefine "
+ "\\lyxadded and \\lyxdeleted in the LaTeX preamble."));
+ }
+ }
+ break;
+
+ case LFUN_BUFFER_TOGGLE_COMPRESSION:
+ // turn compression on/off
+ undo().recordUndoBufferParams(CursorData());
+ params().compressed = !params().compressed;
+ break;
+
+ case LFUN_BUFFER_TOGGLE_OUTPUT_SYNC:
+ undo().recordUndoBufferParams(CursorData());
+ params().output_sync = !params().output_sync;
+ break;
+