<?xml version="1.0" encoding="UTF-8"?>
<helpdocument version="1.0">
	
<!--***********************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 ***********************************************************-->


 
	
<meta>
<topic id="textswriter0105150300xml" indexer="include">
<title id="tit" xml-lang="en-US">Apply and Edit Changes</title>
<filename>/text/swriter/01/05150300.xhp</filename>
</topic>
</meta>
<body>
<section id="ananbe">
<bookmark xml-lang="en-US" branch="hid/.uno:AutoFormatRedlineApply" id="bm_id766634" localize="false"/>
<bookmark xml-lang="en-US" branch="hid/.uno:AutoFormatRedlineApply" id="bm_id3145829" localize="false"/>
<paragraph role="heading" id="hd_id3149353" xml-lang="en-US" level="1" l10n="U" oldref="1"><link href="text/swriter/01/05150300.xhp" name="Apply and Edit Changes">Apply and Edit Changes</link></paragraph>
<paragraph role="paragraph" id="par_id3152999" xml-lang="en-US" l10n="CHG" oldref="2"><ahelp hid=".uno:AutoFormatRedlineApply">Automatically formats the file according to the options that you set under <emph>Tools - AutoCorrect</emph>
<emph> Options</emph>. In a dialog, you are asked to accept or reject the changes.</ahelp></paragraph>
</section>
<section id="howtoget">
<embed href="text/swriter/00/00000405.xhp#autoformat3"/>
</section>
<bookmark xml-lang="en-US" branch="hid/SW_HID_AUTOFORMAT_ACCEPT" id="bm_id3149022" localize="false"/>
<paragraph role="heading" id="hd_id3148775" xml-lang="en-US" level="2" l10n="U" oldref="4">Accept All</paragraph>
<paragraph role="paragraph" id="par_id3149029" xml-lang="en-US" l10n="U" oldref="5"><ahelp hid="HID_AUTOFORMAT_ACCEPT">Applies all of the formatting changes.</ahelp></paragraph>
<bookmark xml-lang="en-US" branch="hid/SW_HID_AUTOFORMAT_REJECT" id="bm_id3147173" localize="false"/>
<paragraph role="heading" id="hd_id3153722" xml-lang="en-US" level="2" l10n="U" oldref="6">Reject All</paragraph>
<paragraph role="paragraph" id="par_id3149711" xml-lang="en-US" l10n="U" oldref="7"><ahelp hid="HID_AUTOFORMAT_REJECT">Rejects all of the formatting changes.</ahelp></paragraph>
<bookmark xml-lang="en-US" branch="hid/SW_HID_AUTOFORMAT_EDIT_CHG" id="bm_id3147564" localize="false"/>
<paragraph role="heading" id="hd_id3150756" xml-lang="en-US" level="2" l10n="U" oldref="8">Edit Changes</paragraph>
<paragraph role="paragraph" id="par_id3147570" xml-lang="en-US" l10n="U" oldref="9"><ahelp hid="HID_AUTOFORMAT_EDIT_CHG">Opens a dialog where you can accept or reject AutoCorrect changes. You can also view the changes made by a specific author or on a specific date.</ahelp></paragraph>
<embed href="text/shared/00/00000004.xhp#related"/>
<paragraph role="paragraph" id="par_id3151184" xml-lang="en-US" l10n="U" oldref="10"><link href="text/shared/01/02230402.xhp" name="Accept or Reject AutoFormat Changes, Filter tab">Accept or Reject Changes, Filter tab</link></paragraph>
</body>
</helpdocument>
