340 lines
17 KiB
HTML
340 lines
17 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.15"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Olive: ComboAction Class Reference</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">Olive
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.15 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */</script>
|
|
<div id="main-nav"></div>
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="#pri-attribs">Private Attributes</a> |
|
|
<a href="class_combo_action-members.html">List of all members</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">ComboAction Class Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>The <a class="el" href="class_combo_action.html" title="The ComboAction class.">ComboAction</a> class.
|
|
<a href="class_combo_action.html#details">More...</a></p>
|
|
|
|
<p><code>#include <<a class="el" href="comboaction_8h_source.html">comboaction.h</a>></code></p>
|
|
<div class="dynheader">
|
|
Inheritance diagram for ComboAction:</div>
|
|
<div class="dyncontent">
|
|
<div class="center">
|
|
<img src="class_combo_action.png" alt=""/>
|
|
</div></div>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:ae2197126adbb8505326eb2fe2d16b8f3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_combo_action.html#ae2197126adbb8505326eb2fe2d16b8f3">ComboAction</a> ()</td></tr>
|
|
<tr class="memdesc:ae2197126adbb8505326eb2fe2d16b8f3"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="class_combo_action.html" title="The ComboAction class.">ComboAction</a> Constructor. Currently empty. <a href="#ae2197126adbb8505326eb2fe2d16b8f3">More...</a><br /></td></tr>
|
|
<tr class="separator:ae2197126adbb8505326eb2fe2d16b8f3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3eb4b90aaf178c9db34df9fc6645d9a6"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="class_combo_action.html#a3eb4b90aaf178c9db34df9fc6645d9a6">~ComboAction</a> () override</td></tr>
|
|
<tr class="memdesc:a3eb4b90aaf178c9db34df9fc6645d9a6"><td class="mdescLeft"> </td><td class="mdescRight">~ComboAction Destructor. Cleans up all QUndoCommand classes that have been added to it. <a href="#a3eb4b90aaf178c9db34df9fc6645d9a6">More...</a><br /></td></tr>
|
|
<tr class="separator:a3eb4b90aaf178c9db34df9fc6645d9a6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a61b038c9fc07f57cfd4a8a56ab04d5b6"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_combo_action.html#a61b038c9fc07f57cfd4a8a56ab04d5b6">undo</a> () override</td></tr>
|
|
<tr class="memdesc:a61b038c9fc07f57cfd4a8a56ab04d5b6"><td class="mdescLeft"> </td><td class="mdescRight">Undo Function. <a href="#a61b038c9fc07f57cfd4a8a56ab04d5b6">More...</a><br /></td></tr>
|
|
<tr class="separator:a61b038c9fc07f57cfd4a8a56ab04d5b6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad1b5b3aac00861aec74dd0d9ee1f06a0"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_combo_action.html#ad1b5b3aac00861aec74dd0d9ee1f06a0">redo</a> () override</td></tr>
|
|
<tr class="memdesc:ad1b5b3aac00861aec74dd0d9ee1f06a0"><td class="mdescLeft"> </td><td class="mdescRight">Redo Function. <a href="#ad1b5b3aac00861aec74dd0d9ee1f06a0">More...</a><br /></td></tr>
|
|
<tr class="separator:ad1b5b3aac00861aec74dd0d9ee1f06a0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aed59b1710792cf73e05bbab38e5beb0c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_combo_action.html#aed59b1710792cf73e05bbab38e5beb0c">append</a> (QUndoCommand *u)</td></tr>
|
|
<tr class="memdesc:aed59b1710792cf73e05bbab38e5beb0c"><td class="mdescLeft"> </td><td class="mdescRight">Add an undo action. <a href="#aed59b1710792cf73e05bbab38e5beb0c">More...</a><br /></td></tr>
|
|
<tr class="separator:aed59b1710792cf73e05bbab38e5beb0c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a07a1411b03555da72d480d6b00279f8b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_combo_action.html#a07a1411b03555da72d480d6b00279f8b">appendPost</a> (QUndoCommand *u)</td></tr>
|
|
<tr class="memdesc:a07a1411b03555da72d480d6b00279f8b"><td class="mdescLeft"> </td><td class="mdescRight">Add a post-undo PostAction. <a href="#a07a1411b03555da72d480d6b00279f8b">More...</a><br /></td></tr>
|
|
<tr class="separator:a07a1411b03555da72d480d6b00279f8b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
|
|
Private Attributes</h2></td></tr>
|
|
<tr class="memitem:a04edf7f34077d60fc1b09e5f9ba5d92e"><td class="memItemLeft" align="right" valign="top">QVector< QUndoCommand * > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_combo_action.html#a04edf7f34077d60fc1b09e5f9ba5d92e">commands</a></td></tr>
|
|
<tr class="memdesc:a04edf7f34077d60fc1b09e5f9ba5d92e"><td class="mdescLeft"> </td><td class="mdescRight">Internal array of QUndoCommand objects. <a href="#a04edf7f34077d60fc1b09e5f9ba5d92e">More...</a><br /></td></tr>
|
|
<tr class="separator:a04edf7f34077d60fc1b09e5f9ba5d92e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a468cf4acb03d3e76e30567674b419399"><td class="memItemLeft" align="right" valign="top">QVector< QUndoCommand * > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_combo_action.html#a468cf4acb03d3e76e30567674b419399">post_commands</a></td></tr>
|
|
<tr class="memdesc:a468cf4acb03d3e76e30567674b419399"><td class="mdescLeft"> </td><td class="mdescRight">Internal array of PostAction objects. <a href="#a468cf4acb03d3e76e30567674b419399">More...</a><br /></td></tr>
|
|
<tr class="separator:a468cf4acb03d3e76e30567674b419399"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>The <a class="el" href="class_combo_action.html" title="The ComboAction class.">ComboAction</a> class. </p>
|
|
<p>The Undo/Redo system works by stacking an action that knows how to "do" and also "undo" itself. As Olive is a very complex program, there are many actions that can in one "user action". For example, moving a clip over another will delete the clip under it, which is at least two actions that need to be undone if the user clicks undo, however the user only (knowingly) did one thing and would find it confusing if this one user action required to undos to complete undo.</p>
|
|
<p>To address this, <a class="el" href="class_combo_action.html" title="The ComboAction class.">ComboAction</a> is an undo action that simply compiles several possible actions into one, doing them all on every redo, and undoing them all on every undo. </p>
|
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a id="ae2197126adbb8505326eb2fe2d16b8f3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae2197126adbb8505326eb2fe2d16b8f3">◆ </a></span>ComboAction()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">ComboAction::ComboAction </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><a class="el" href="class_combo_action.html" title="The ComboAction class.">ComboAction</a> Constructor. Currently empty. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3eb4b90aaf178c9db34df9fc6645d9a6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3eb4b90aaf178c9db34df9fc6645d9a6">◆ </a></span>~ComboAction()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">ComboAction::~ComboAction </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>~ComboAction Destructor. Cleans up all QUndoCommand classes that have been added to it. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="aed59b1710792cf73e05bbab38e5beb0c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aed59b1710792cf73e05bbab38e5beb0c">◆ </a></span>append()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void ComboAction::append </td>
|
|
<td>(</td>
|
|
<td class="paramtype">QUndoCommand * </td>
|
|
<td class="paramname"><em>u</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Add an undo action. </p>
|
|
<p>Add an action to be done/undone. <a class="el" href="class_combo_action.html" title="The ComboAction class.">ComboAction</a> takes ownership of this QUndoCommand and will delete it when it is deleted.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">u</td><td>The QUndoCommand to add. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a07a1411b03555da72d480d6b00279f8b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a07a1411b03555da72d480d6b00279f8b">◆ </a></span>appendPost()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void ComboAction::appendPost </td>
|
|
<td>(</td>
|
|
<td class="paramtype">QUndoCommand * </td>
|
|
<td class="paramname"><em>u</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Add a post-undo PostAction. </p>
|
|
<p>Sometimes the results of all the actions require another function to be called (e.g. repainting the <a class="el" href="class_viewer.html">Viewer</a>). QUndoCommand objects added by <a class="el" href="class_combo_action.html#a07a1411b03555da72d480d6b00279f8b" title="Add a post-undo PostAction.">appendPost()</a> will run after EVERY QUndoCommand added by <a class="el" href="class_combo_action.html#aed59b1710792cf73e05bbab38e5beb0c" title="Add an undo action.">append()</a> has been run.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">u</td><td>The PostAction to add </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ad1b5b3aac00861aec74dd0d9ee1f06a0"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad1b5b3aac00861aec74dd0d9ee1f06a0">◆ </a></span>redo()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void ComboAction::redo </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Redo Function. </p>
|
|
<p>Called by the QUndoStack to redo.</p>
|
|
<p>Calls QUndoCommand::redo() on all QUndoCommand objects added by <a class="el" href="class_combo_action.html#aed59b1710792cf73e05bbab38e5beb0c" title="Add an undo action.">append()</a> in the order they were added. Then calls QUndoCommand::redo() on every action added by <a class="el" href="class_combo_action.html#a07a1411b03555da72d480d6b00279f8b" title="Add a post-undo PostAction.">appendPost()</a> in the order they were added. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a61b038c9fc07f57cfd4a8a56ab04d5b6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a61b038c9fc07f57cfd4a8a56ab04d5b6">◆ </a></span>undo()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void ComboAction::undo </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Undo Function. </p>
|
|
<p>Called by the QUndoStack to undo.</p>
|
|
<p>Calls QUndoCommand::undo() on all QUndoCommand objects added by <a class="el" href="class_combo_action.html#aed59b1710792cf73e05bbab38e5beb0c" title="Add an undo action.">append()</a> in REVERSE order to how they were added. Then calls QUndoCommand::redo() on every action added by <a class="el" href="class_combo_action.html#a07a1411b03555da72d480d6b00279f8b" title="Add a post-undo PostAction.">appendPost()</a> in the order they were added (not in reverse). </p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Data Documentation</h2>
|
|
<a id="a04edf7f34077d60fc1b09e5f9ba5d92e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a04edf7f34077d60fc1b09e5f9ba5d92e">◆ </a></span>commands</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">QVector<QUndoCommand*> ComboAction::commands</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Internal array of QUndoCommand objects. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a468cf4acb03d3e76e30567674b419399"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a468cf4acb03d3e76e30567674b419399">◆ </a></span>post_commands</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">QVector<QUndoCommand*> ComboAction::post_commands</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Internal array of PostAction objects. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following files:<ul>
|
|
<li>project/<a class="el" href="comboaction_8h_source.html">comboaction.h</a></li>
|
|
<li>project/<a class="el" href="comboaction_8cpp.html">comboaction.cpp</a></li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
</a> 1.8.15
|
|
</small></address>
|
|
</body>
|
|
</html>
|