diff options
author | hjk <qtc-committer@nokia.com> | 2009-01-26 16:19:24 +0100 |
---|---|---|
committer | hjk <qtc-committer@nokia.com> | 2009-01-26 16:19:24 +0100 |
commit | fe0533de2a634ca377c2d8a0073e0eb2cbf89abf (patch) | |
tree | 29d3d30e6cc5a1068a94097a5660bc4d133a205f /src/shared/qrceditor/undocommands_p.h | |
parent | c85ba53365d606192069a841ed806979f17d80bc (diff) |
Fixes: move all files in shared/* to src/shared/*
Diffstat (limited to 'src/shared/qrceditor/undocommands_p.h')
-rw-r--r-- | src/shared/qrceditor/undocommands_p.h | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/src/shared/qrceditor/undocommands_p.h b/src/shared/qrceditor/undocommands_p.h new file mode 100644 index 0000000000..5a6f5af9a2 --- /dev/null +++ b/src/shared/qrceditor/undocommands_p.h @@ -0,0 +1,165 @@ +/*************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Qt Software Information (qt-info@nokia.com) +** +** +** Non-Open Source Usage +** +** Licensees may use this file in accordance with the Qt Beta Version +** License Agreement, Agreement version 2.2 provided with the Software or, +** alternatively, in accordance with the terms contained in a written +** agreement between you and Nokia. +** +** GNU General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU General +** Public License versions 2.0 or 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the packaging +** of this file. Please review the following information to ensure GNU +** General Public Licensing requirements will be met: +** +** http://www.fsf.org/licensing/licenses/info/GPLv2.html and +** http://www.gnu.org/copyleft/gpl.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt GPL Exception +** version 1.3, included in the file GPL_EXCEPTION.txt in this package. +** +***************************************************************************/ + +#ifndef UNDO_COMMANDS_H +#define UNDO_COMMANDS_H + +#include "resourceview.h" + +#include <QtCore/QString> +#include <QtGui/QUndoCommand> + +QT_BEGIN_NAMESPACE +class QModelIndex; +QT_END_NAMESPACE + +namespace SharedTools { + +/*! + \class ViewCommand + + Provides a base for \l ResourceView-related commands. +*/ +class ViewCommand : public QUndoCommand +{ +protected: + ResourceView *m_view; + + ViewCommand(ResourceView *view); + virtual ~ViewCommand(); +}; + +/*! + \class ModelIndexViewCommand + + Provides a mean to store/restore a \l QModelIndex as it cannot + be stored savely in most cases. This is an abstract class. +*/ +class ModelIndexViewCommand : public ViewCommand +{ + int m_prefixArrayIndex; + int m_fileArrayIndex; + +protected: + ModelIndexViewCommand(ResourceView *view); + virtual ~ModelIndexViewCommand(); + void storeIndex(const QModelIndex &index); + QModelIndex makeIndex() const; +}; + +/*! + \class ModifyPropertyCommand + + Modifies the name/prefix/language property of a prefix/file node. +*/ +class ModifyPropertyCommand : public ModelIndexViewCommand +{ + ResourceView::NodeProperty m_property; + QString m_before; + QString m_after; + int m_mergeId; + +public: + ModifyPropertyCommand(ResourceView *view, const QModelIndex &nodeIndex, + ResourceView::NodeProperty property, const int mergeId, const QString &before, + const QString &after = QString()); + +private: + int id() const { return m_mergeId; } + bool mergeWith(const QUndoCommand * command); + void undo(); + void redo(); +}; + +/*! + \class RemoveEntryCommand + + Removes a \l QModelIndex including all children from a \l ResourceView. +*/ +class RemoveEntryCommand : public ModelIndexViewCommand +{ + EntryBackup *m_entry; + bool m_isExpanded; + +public: + RemoveEntryCommand(ResourceView *view, const QModelIndex &index); + ~RemoveEntryCommand(); + +private: + void redo(); + void undo(); + void freeEntry(); +}; + +/*! + \class AddFilesCommand + + Adds a list of files to a given prefix node. +*/ +class AddFilesCommand : public ViewCommand +{ + int m_prefixIndex; + int m_cursorFileIndex; + int m_firstFile; + int m_lastFile; + const QStringList m_fileNames; + +public: + AddFilesCommand(ResourceView *view, int prefixIndex, int cursorFileIndex, + const QStringList &fileNames); + +private: + void redo(); + void undo(); +}; + +/*! + \class AddEmptyPrefixCommand + + Adds a new, empty prefix node. +*/ +class AddEmptyPrefixCommand : public ViewCommand +{ + int m_prefixArrayIndex; + +public: + AddEmptyPrefixCommand(ResourceView *view); + +private: + void redo(); + void undo(); +}; + +} // namespace SharedTools + +#endif // UNDO_COMMANDS_H |