aboutsummaryrefslogtreecommitdiffstats
path: root/src/shared/qrceditor/undocommands_p.h
diff options
context:
space:
mode:
authorhjk <qtc-committer@nokia.com>2009-01-26 16:19:24 +0100
committerhjk <qtc-committer@nokia.com>2009-01-26 16:19:24 +0100
commitfe0533de2a634ca377c2d8a0073e0eb2cbf89abf (patch)
tree29d3d30e6cc5a1068a94097a5660bc4d133a205f /src/shared/qrceditor/undocommands_p.h
parentc85ba53365d606192069a841ed806979f17d80bc (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.h165
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