/usr/include/paraview/pqUndoStack.h is in paraview-dev 5.0.1+dfsg1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 | /*=========================================================================
Program: ParaView
Module: pqUndoStack.h
Copyright (c) 2005-2008 Sandia Corporation, Kitware Inc.
All rights reserved.
ParaView is a free software; you can redistribute it and/or modify it
under the terms of the ParaView license version 1.2.
See License_v1.2.txt for the full ParaView license.
A copy of this license can be obtained by contacting
Kitware Inc.
28 Corporate Drive
Clifton Park, NY 12065
USA
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
========================================================================*/
#ifndef pqUndoStack_h
#define pqUndoStack_h
#include "pqCoreModule.h"
#include <QObject>
class pqServer;
class vtkSMUndoElement;
class vtkSMUndoStack;
class vtkSMUndoStackBuilder;
class vtkUndoElement;
class vtkUndoSet; //vistrails
class vtkPVXMLElement; //vistrails
/// pqUndoStack represents a vtkSMUndoStack along with a
/// a vtkSMUndoStackBuilder. It provides Qt slots to call
/// methods on undo stack or builder. Also it converts
/// vtk events from the stack/builder to Qt signals.
/// The only purpose of this class is to provide Qt
/// friendly API to the ServerManager classes.
/// All logic must be in the server manager classes (or their
/// subclasses).
class PQCORE_EXPORT pqUndoStack : public QObject
{
Q_OBJECT
public:
/// If no \c builder is provided a default vtkSMUndoStackBuilder object
/// will be created.
pqUndoStack(vtkSMUndoStackBuilder* builder=0, QObject* parent=NULL);
virtual ~pqUndoStack();
/// returns if it's possible to undo.
bool canUndo();
/// returns if it's possible to redo.
bool canRedo();
/// returns the undo label.
const QString undoLabel();
/// returns the redo label.
const QString redoLabel();
/// Get the status of the IgnoreAllChanges flag on the
/// stack builder.
bool ignoreAllChanges() const;
/// Register Application specific undo elements.
void registerElementForLoader(vtkSMUndoElement*);
/// Get if the stack is currently being undone/redone.
bool getInUndo() const;
bool getInRedo() const;
/// vistrails - push an undo set directly onto the undo stack (don't apply the changes - we want to be able to undo them)
void Push(const char *label, vtkUndoSet *set);
vtkUndoSet* getLastUndoSet(); //vistrails
vtkUndoSet* getUndoSetFromXML(vtkPVXMLElement *root); //vistrails
/// Get the UndoStackBuilder that is used with that UndoStack
vtkSMUndoStackBuilder* GetUndoStackBuilder();
/// Make sure all proxy of all SessionProxyManager get updated
void updateAllModifiedProxies();
public slots:
void beginUndoSet(QString label);
void endUndoSet();
/// triggers Undo.
void undo();
/// triggers Redo.
void redo();
/// Clears undo stack.
void clear();
/// when the GUI is performing some changes
/// that should not go on the UndoStack at all, it should
/// call beginNonUndoableChanges(). Once it's finished doing
/// these changes, it must call endNonUndoableChanges() to restore
/// the IgnoreAllChanges flag state to the one before the push.
void beginNonUndoableChanges();
void endNonUndoableChanges();
/// One can add arbritary elements to the
/// undo set currently being built.
void addToActiveUndoSet(vtkUndoElement* element);
signals:
/// Fired to notify interested parites that the stack has changed.
/// Has information to know the status of the top of the stack.
void stackChanged(bool canUndo, QString undoLabel,
bool canRedo, QString redoLabel);
void canUndoChanged(bool);
void canRedoChanged(bool);
void undoLabelChanged(const QString&);
void redoLabelChanged(const QString&);
// Fired after undo.
void undone();
// Fired after redo.
void redone();
private slots:
void onStackChanged();
private:
class pqImplementation;
pqImplementation* Implementation;
};
#include "pqApplicationCore.h"
inline void BEGIN_UNDO_SET(const QString& name)
{
pqUndoStack* usStack = pqApplicationCore::instance()->getUndoStack();
if (usStack)
{
usStack->beginUndoSet(name);
}
}
inline void END_UNDO_SET()
{
pqUndoStack* usStack = pqApplicationCore::instance()->getUndoStack();
if (usStack)
{
usStack->endUndoSet();
}
}
inline void CLEAR_UNDO_STACK()
{
pqUndoStack* usStack = pqApplicationCore::instance()->getUndoStack();
if (usStack)
{
usStack->clear();
}
}
inline void ADD_UNDO_ELEM(vtkUndoElement* elem)
{
pqUndoStack* usStack = pqApplicationCore::instance()->getUndoStack();
if (usStack)
{
usStack->addToActiveUndoSet(elem);
}
}
inline void BEGIN_UNDO_EXCLUDE()
{
pqUndoStack* usStack = pqApplicationCore::instance()->getUndoStack();
if (usStack)
{
usStack->beginNonUndoableChanges();
}
}
inline void END_UNDO_EXCLUDE()
{
pqUndoStack* usStack = pqApplicationCore::instance()->getUndoStack();
if (usStack)
{
usStack->endNonUndoableChanges();
}
}
#endif
|