You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kxmleditor/part/commands_edit.h

347 lines
9.6 KiB

/***************************************************************************
commands_edit - description
-------------------
begin : Wed Nov 26 2003
copyright : (C) 2003 by The KXMLEditor Team
email : a_charytoniuk@user.sourceforge.net
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef COMMANDS_EDIT_H
#define COMMANDS_EDIT_H
#include "kxecommand.h"
#include <tdelocale.h>
#include <tqobjectlist.h>
/**
@file
@author The KXMLEditor Team
*/
/**
@brief Command for removing any kind of nodes.
*/
class KXEDeleteNodeCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEDeleteNodeCommand(KXEDocument*, TQDomNode &);
/** @brief Destructor */
~KXEDeleteNodeCommand();
/** @brief Performs node removal.*/
virtual void execute();
/** @brief Node removal rollback.*/
virtual void unexecute();
virtual TQString name() const { return i18n("Delete node"); }
protected:
/** @short Stores infromation about parent node of the node to be deleted. */
TQDomNode m_domParentNode;
/** @short Stores infromation the node to be deleted. */
TQDomNode m_domNode;
/** @short Stores infromation about sibling node of the node to be deleted. */
TQDomNode m_afterNode;
};
/**
@short Command for removing element attributes.
*/
class KXEDeleteAttrCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEDeleteAttrCommand(KXEDocument*, TQDomElement &, TQDomAttr &);
/** @brief Destructor */
~KXEDeleteAttrCommand();
/** @brief Preforms attributte removal. */
virtual void execute();
/** @brief Attributte removal rollback. */
virtual void unexecute();
virtual TQString name() const { return i18n("Delete attribute"); }
protected:
/** @brief Stores attribute owner. */
TQDomElement m_domOwnerElement;
/** @brief Attribute about to be removed. */
TQDomAttr m_domAttr;
};
/**
@short Command for removing all element attributes.
*/
class KXEDeleteAllAttribCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEDeleteAllAttribCommand(KXEDocument*, TQDomElement &);
/** @brief Destructor */
~KXEDeleteAllAttribCommand();
virtual void execute();
virtual void unexecute();
virtual TQString name() const { return i18n("Delete all attributes"); }
protected:
TQDomElement m_domOwnerElement;
TQPtrList<TQDomAttr> m_listRemovedAttributes;
};
/**
@short Command for cutting element to clipboard.
*/
class KXECutCommand : public KXEDeleteNodeCommand
{
public:
/** @brief Constructor */
KXECutCommand(KXEDocument*, TQDomNode &);
/** @brief Destructor */
~KXECutCommand();
virtual TQString name() const { return i18n("Cut node"); }
};
/**
@short Command for pasting to document from clipboard.
*/
class KXEPasteToDocumentCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEPasteToDocumentCommand(KXEDocument*, TQDomDocument *, TQDomElement &);
/** @brief Destructor */
~KXEPasteToDocumentCommand();
virtual void execute();
virtual void unexecute();
virtual TQString name() const { return i18n("Paste node to document"); }
protected:
TQDomDocument * m_pDomTargetDoc;
TQDomElement m_domSourceElement;
};
/**
@short Command for pasting element from clipboard.
*/
class KXEPasteToElementCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEPasteToElementCommand(KXEDocument*, TQDomElement &, TQDomNode &);
/** @brief Destructor */
~KXEPasteToElementCommand();
virtual void execute();
virtual void unexecute();
virtual TQString name() const { return i18n("Paste node to element"); }
protected:
TQDomElement m_domTargetElement;
TQDomNode m_domSourceNode;
};
class KXEPasteToProcInstrCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEPasteToProcInstrCommand(KXEDocument*, TQDomProcessingInstruction &, TQDomProcessingInstruction &);
/** @brief Destructor */
~KXEPasteToProcInstrCommand();
virtual void execute();
virtual void unexecute();
virtual TQString name() const { return i18n("Paste node to proc. instruction"); }
protected:
TQDomProcessingInstruction m_domTargetProcInstr;
TQString m_strNewData;
TQString m_strOldData;
};
class KXEPasteToCharDataCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEPasteToCharDataCommand(KXEDocument*, TQDomCharacterData &, TQDomCharacterData &);
/** @brief Destructor */
~KXEPasteToCharDataCommand();
virtual void execute();
virtual void unexecute();
virtual TQString name() const { return i18n("Paste node to char. data"); }
protected:
TQDomCharacterData m_domTargetCharData;
TQString m_strNewData;
TQString m_strOldData;
};
/**
@short Command for Drag & Drop.
*/
class KXEDragDropMoveCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEDragDropMoveCommand(KXEDocument*, TQDomElement &, TQDomNode &);
/** @brief Destructor */
~KXEDragDropMoveCommand();
virtual void execute();
virtual void unexecute();
virtual TQString name() const { return i18n("Drag&&drop node"); }
protected:
TQDomElement m_domTargetElement;
TQDomNode m_domSourceNode;
TQDomNode m_domPreviousParentNode;
};
/**
@short Command for moving selected node up.
*/
class KXEUpCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEUpCommand(KXEDocument*, TQDomNode &);
/** @brief Destructor */
~KXEUpCommand();
virtual void execute();
virtual void unexecute();
virtual TQString name() const { return i18n("Move node up"); }
protected:
TQDomNode m_domParentNode;
TQDomNode m_domNode;
};
/**
@short Command for moving selected node down.
*/
class KXEDownCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEDownCommand(KXEDocument*, TQDomNode &);
/** @brief Destructor */
~KXEDownCommand();
virtual void execute();
virtual void unexecute();
virtual TQString name() const { return i18n("Move node down"); }
protected:
TQDomNode m_domParentNode;
TQDomNode m_domNode;
};
class KXEEditCharDataCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEEditCharDataCommand(KXEDocument*, TQDomCharacterData &, const TQString);
/** @brief Destructor */
~KXEEditCharDataCommand();
virtual void execute();
virtual void unexecute();
virtual TQString name() const { return i18n("Editing character data"); }
protected:
TQDomCharacterData m_domCharacterData;
TQString m_strNewContents;
TQString m_strOldContents;
};
/**
@short Command for editing selected processing instruction.
*/
class KXEEditProcInstrCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEEditProcInstrCommand(KXEDocument*, TQDomProcessingInstruction &, const TQString);
/** @brief Destructor */
~KXEEditProcInstrCommand();
virtual void execute();
virtual void unexecute();
virtual TQString name() const { return i18n("Editing proc. instruction"); }
protected:
TQDomProcessingInstruction m_domProcInstr;
TQString m_strNewData;
TQString m_strOldData;
};
/**
@short Command for editing selected XML element.
*/
class KXEEditElementCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEEditElementCommand(KXEDocument*, TQDomElement &, const TQString, const TQString);
/** @brief Destructor */
~KXEEditElementCommand();
virtual void execute();
virtual void unexecute();
virtual TQString name() const { return i18n("Editing element"); }
protected:
TQDomElement m_domElement;
TQString m_strNewPrefix;
TQString m_strNewName;
TQString m_strOldPrefix;
TQString m_strOldName;
};
/**
@short Command for editing element attribute value.
*/
class KXEEditAttrValueCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEEditAttrValueCommand(KXEDocument*, const TQDomAttr &, const TQString);
/** @brief Destructor */
~KXEEditAttrValueCommand();
virtual void execute();
virtual void unexecute();
virtual TQString name() const { return i18n("Edit attribute value"); }
protected:
TQDomAttr m_domAttr;
TQString m_strNewValue;
TQString m_strOldValue;
};
/**
@short Command for editing element attribute names.
*/
class KXEEditAttrNameCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEEditAttrNameCommand(KXEDocument*, const TQDomAttr &, const TQString);
/** @brief Destructor */
~KXEEditAttrNameCommand();
virtual void execute();
virtual void unexecute();
virtual TQString name() const { return i18n("Edit attribute name"); }
protected:
TQDomElement m_domOwnerElement;
TQString m_strNewName;
TQString m_strOldName;
TQString m_strValue;
TQString m_strNamespaceURI;
};
/**
@short Command for editing XML element as text.
*/
class KXEEditRawXmlCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEEditRawXmlCommand(KXEDocument*, TQDomElement &, TQDomElement &);
/** @brief Destructor */
~KXEEditRawXmlCommand();
virtual void execute();
virtual void unexecute();
virtual TQString name() const { return i18n("Editing raw XML"); }
protected:
TQDomElement m_domOldElement;
TQDomNode m_domParentNode;
TQDomElement m_domNewElement;
TQDomNode m_afterNode;
};
#endif