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.5 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 <klocale.h>
#include <qobjectlist.h>
/**
@file
@author The KXMLEditor Team
*/
/**
@brief Command for removing any kind of nodes.
*/
class KXEDeleteNodeCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEDeleteNodeCommand(KXEDocument*, QDomNode &);
/** @brief Destructor */
~KXEDeleteNodeCommand();
/** @brief Performs node removal.*/
virtual void execute();
/** @brief Node removal rollback.*/
virtual void unexecute();
virtual QString name() const { return i18n("Delete node"); }
protected:
/** @short Stores infromation about parent node of the node to be deleted. */
QDomNode m_domParentNode;
/** @short Stores infromation the node to be deleted. */
QDomNode m_domNode;
/** @short Stores infromation about sibling node of the node to be deleted. */
QDomNode m_afterNode;
};
/**
@short Command for removing element attributes.
*/
class KXEDeleteAttrCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEDeleteAttrCommand(KXEDocument*, QDomElement &, QDomAttr &);
/** @brief Destructor */
~KXEDeleteAttrCommand();
/** @brief Preforms attributte removal. */
virtual void execute();
/** @brief Attributte removal rollback. */
virtual void unexecute();
virtual QString name() const { return i18n("Delete attribute"); }
protected:
/** @brief Stores attribute owner. */
QDomElement m_domOwnerElement;
/** @brief Attribute about to be removed. */
QDomAttr m_domAttr;
};
/**
@short Command for removing all element attributes.
*/
class KXEDeleteAllAttribCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEDeleteAllAttribCommand(KXEDocument*, QDomElement &);
/** @brief Destructor */
~KXEDeleteAllAttribCommand();
virtual void execute();
virtual void unexecute();
virtual QString name() const { return i18n("Delete all attributes"); }
protected:
QDomElement m_domOwnerElement;
QPtrList<QDomAttr> m_listRemovedAttributes;
};
/**
@short Command for cutting element to clipboard.
*/
class KXECutCommand : public KXEDeleteNodeCommand
{
public:
/** @brief Constructor */
KXECutCommand(KXEDocument*, QDomNode &);
/** @brief Destructor */
~KXECutCommand();
virtual QString name() const { return i18n("Cut node"); }
};
/**
@short Command for pasting to document from clipboard.
*/
class KXEPasteToDocumentCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEPasteToDocumentCommand(KXEDocument*, QDomDocument *, QDomElement &);
/** @brief Destructor */
~KXEPasteToDocumentCommand();
virtual void execute();
virtual void unexecute();
virtual QString name() const { return i18n("Paste node to document"); }
protected:
QDomDocument * m_pDomTargetDoc;
QDomElement m_domSourceElement;
};
/**
@short Command for pasting element from clipboard.
*/
class KXEPasteToElementCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEPasteToElementCommand(KXEDocument*, QDomElement &, QDomNode &);
/** @brief Destructor */
~KXEPasteToElementCommand();
virtual void execute();
virtual void unexecute();
virtual QString name() const { return i18n("Paste node to element"); }
protected:
QDomElement m_domTargetElement;
QDomNode m_domSourceNode;
};
class KXEPasteToProcInstrCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEPasteToProcInstrCommand(KXEDocument*, QDomProcessingInstruction &, QDomProcessingInstruction &);
/** @brief Destructor */
~KXEPasteToProcInstrCommand();
virtual void execute();
virtual void unexecute();
virtual QString name() const { return i18n("Paste node to proc. instruction"); }
protected:
QDomProcessingInstruction m_domTargetProcInstr;
QString m_strNewData;
QString m_strOldData;
};
class KXEPasteToCharDataCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEPasteToCharDataCommand(KXEDocument*, QDomCharacterData &, QDomCharacterData &);
/** @brief Destructor */
~KXEPasteToCharDataCommand();
virtual void execute();
virtual void unexecute();
virtual QString name() const { return i18n("Paste node to char. data"); }
protected:
QDomCharacterData m_domTargetCharData;
QString m_strNewData;
QString m_strOldData;
};
/**
@short Command for Drag & Drop.
*/
class KXEDragDropMoveCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEDragDropMoveCommand(KXEDocument*, QDomElement &, QDomNode &);
/** @brief Destructor */
~KXEDragDropMoveCommand();
virtual void execute();
virtual void unexecute();
virtual QString name() const { return i18n("Drag&&drop node"); }
protected:
QDomElement m_domTargetElement;
QDomNode m_domSourceNode;
QDomNode m_domPreviousParentNode;
};
/**
@short Command for moving selected node up.
*/
class KXEUpCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEUpCommand(KXEDocument*, QDomNode &);
/** @brief Destructor */
~KXEUpCommand();
virtual void execute();
virtual void unexecute();
virtual QString name() const { return i18n("Move node up"); }
protected:
QDomNode m_domParentNode;
QDomNode m_domNode;
};
/**
@short Command for moving selected node down.
*/
class KXEDownCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEDownCommand(KXEDocument*, QDomNode &);
/** @brief Destructor */
~KXEDownCommand();
virtual void execute();
virtual void unexecute();
virtual QString name() const { return i18n("Move node down"); }
protected:
QDomNode m_domParentNode;
QDomNode m_domNode;
};
class KXEEditCharDataCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEEditCharDataCommand(KXEDocument*, QDomCharacterData &, const QString);
/** @brief Destructor */
~KXEEditCharDataCommand();
virtual void execute();
virtual void unexecute();
virtual QString name() const { return i18n("Editing character data"); }
protected:
QDomCharacterData m_domCharacterData;
QString m_strNewContents;
QString m_strOldContents;
};
/**
@short Command for editing selected processing instruction.
*/
class KXEEditProcInstrCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEEditProcInstrCommand(KXEDocument*, QDomProcessingInstruction &, const QString);
/** @brief Destructor */
~KXEEditProcInstrCommand();
virtual void execute();
virtual void unexecute();
virtual QString name() const { return i18n("Editing proc. instruction"); }
protected:
QDomProcessingInstruction m_domProcInstr;
QString m_strNewData;
QString m_strOldData;
};
/**
@short Command for editing selected XML element.
*/
class KXEEditElementCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEEditElementCommand(KXEDocument*, QDomElement &, const QString, const QString);
/** @brief Destructor */
~KXEEditElementCommand();
virtual void execute();
virtual void unexecute();
virtual QString name() const { return i18n("Editing element"); }
protected:
QDomElement m_domElement;
QString m_strNewPrefix;
QString m_strNewName;
QString m_strOldPrefix;
QString m_strOldName;
};
/**
@short Command for editing element attribute value.
*/
class KXEEditAttrValueCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEEditAttrValueCommand(KXEDocument*, const QDomAttr &, const QString);
/** @brief Destructor */
~KXEEditAttrValueCommand();
virtual void execute();
virtual void unexecute();
virtual QString name() const { return i18n("Edit attribute value"); }
protected:
QDomAttr m_domAttr;
QString m_strNewValue;
QString m_strOldValue;
};
/**
@short Command for editing element attribute names.
*/
class KXEEditAttrNameCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEEditAttrNameCommand(KXEDocument*, const QDomAttr &, const QString);
/** @brief Destructor */
~KXEEditAttrNameCommand();
virtual void execute();
virtual void unexecute();
virtual QString name() const { return i18n("Edit attribute name"); }
protected:
QDomElement m_domOwnerElement;
QString m_strNewName;
QString m_strOldName;
QString m_strValue;
QString m_strNamespaceURI;
};
/**
@short Command for editing XML element as text.
*/
class KXEEditRawXmlCommand : public KXECommand
{
public:
/** @brief Constructor */
KXEEditRawXmlCommand(KXEDocument*, QDomElement &, QDomElement &);
/** @brief Destructor */
~KXEEditRawXmlCommand();
virtual void execute();
virtual void unexecute();
virtual QString name() const { return i18n("Editing raw XML"); }
protected:
QDomElement m_domOldElement;
QDomNode m_domParentNode;
QDomElement m_domNewElement;
QDomNode m_afterNode;
};
#endif