summaryrefslogtreecommitdiff
path: root/src/items/database/databasecommands.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/items/database/databasecommands.cpp')
-rw-r--r--src/items/database/databasecommands.cpp96
1 files changed, 96 insertions, 0 deletions
diff --git a/src/items/database/databasecommands.cpp b/src/items/database/databasecommands.cpp
new file mode 100644
index 0000000..2f33666
--- /dev/null
+++ b/src/items/database/databasecommands.cpp
@@ -0,0 +1,96 @@
+// Copyright (C) 2008 Lukas Lalinsky
+//
+// 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.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+#include <QDebug>
+#include "databasecommands.h"
+#include "diagramdocument.h"
+#include "diagramconnection.h"
+#include "diagramitem.h"
+#include "databasetable.h"
+#include "column.h"
+
+
+AddColumnCommand::AddColumnCommand(ColumnList *columnList, QUndoCommand *parent)
+ : QUndoCommand(parent), m_columnList(columnList)
+{
+ m_column = new Column();
+ m_index = columnList->columnCount();
+}
+
+AddColumnCommand::~AddColumnCommand()
+{
+ if (m_column)
+ delete m_column;
+}
+
+void
+AddColumnCommand::redo()
+{
+ m_columnList->insertColumn(m_index, m_column);
+ m_column = 0;
+}
+
+void
+AddColumnCommand::undo()
+{
+ m_column = m_columnList->removeColumn(m_index);
+}
+
+
+RemoveColumnCommand::RemoveColumnCommand(ColumnList *columnList, int index, QUndoCommand *parent)
+ : QUndoCommand(parent), m_columnList(columnList), m_index(index), m_column(0)
+{
+}
+
+RemoveColumnCommand::~RemoveColumnCommand()
+{
+ if (m_column)
+ delete m_column;
+}
+
+void
+RemoveColumnCommand::redo()
+{
+ m_column = m_columnList->removeColumn(m_index);
+}
+
+void
+RemoveColumnCommand::undo()
+{
+ Q_ASSERT(m_column != 0);
+ m_columnList->insertColumn(m_index, m_column);
+ m_column = 0;
+}
+
+
+SwapColumnsCommand::SwapColumnsCommand(ColumnList *columnList, int oldIndex, int newIndex, QUndoCommand *parent)
+ : QUndoCommand(parent), m_columnList(columnList), m_oldIndex(oldIndex), m_newIndex(newIndex)
+{
+}
+
+void
+SwapColumnsCommand::redo()
+{
+ m_columnList->swapColumns(m_oldIndex, m_newIndex);
+}
+
+void
+SwapColumnsCommand::undo()
+{
+ m_columnList->swapColumns(m_newIndex, m_oldIndex);
+}
+
+