|
|
|
/***************************************************************************
|
|
|
|
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
|