summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukáš Lalinský <lalinsky@gmail.com>2008-12-08 09:10:10 +0100
committerLukáš Lalinský <lalinsky@gmail.com>2008-12-08 09:10:10 +0100
commit05ef6e8c7847f06d27c2001d1845367c674cdedb (patch)
tree8edad440efbbb15687e09d179e577ac9812ceb80
parentdb090e65b3041b5856d9318a29ce44fb985376e7 (diff)
downloaddbmodel-05ef6e8c7847f06d27c2001d1845367c674cdedb.tar.gz
dbmodel-05ef6e8c7847f06d27c2001d1845367c674cdedb.tar.bz2
Move database-specific commands into items/database/databasecommands.cpp
-rw-r--r--src/commands.cpp76
-rw-r--r--src/commands.h48
-rw-r--r--src/items/database/columnlistview.cpp2
-rw-r--r--src/items/database/database.pri2
-rw-r--r--src/items/database/databasecommands.cpp96
-rw-r--r--src/items/database/databasecommands.h67
6 files changed, 171 insertions, 120 deletions
diff --git a/src/commands.cpp b/src/commands.cpp
index 13b3e42..1ff3def 100644
--- a/src/commands.cpp
+++ b/src/commands.cpp
@@ -16,11 +16,10 @@
#include <QDebug>
#include "commands.h"
-#include "diagramdocument.h"
#include "diagramconnection.h"
+#include "diagramdocument.h"
#include "diagramitem.h"
-#include "items/database/databasetable.h"
-#include "items/database/column.h"
+#include "diagramobject.h"
SetObjectPropertyCommand::SetObjectPropertyCommand(QObject *object, const char *name, const QVariant &value, QUndoCommand *parent)
: QUndoCommand(parent), m_object(object), m_name(name), m_newValue(value)
@@ -59,77 +58,6 @@ SetObjectPropertyCommand::mergeWith(const QUndoCommand *o)
}
-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);
-}
-
-
MoveItemCommand::MoveItemCommand(DiagramItem *item, const QPointF &oldPos, const QPointF &newPos, QUndoCommand *parent)
: QUndoCommand(parent), m_item(item), m_oldPos(oldPos), m_newPos(newPos)
{
diff --git a/src/commands.h b/src/commands.h
index 139389a..a763236 100644
--- a/src/commands.h
+++ b/src/commands.h
@@ -20,14 +20,13 @@
#include <QUndoCommand>
#include <QVariant>
#include <QPointer>
+#include <QPointF>
#include <QLatin1String>
-class DatabaseTable;
class DiagramConnection;
-class DiagramObject;
+class DiagramDocument;
class DiagramItem;
-class Column;
-#include "items/database/column.h"
+class DiagramObject;
enum {
COMMAND_SET_OBJECT_PROPERTY,
@@ -48,47 +47,6 @@ private:
QVariant m_oldValue, m_newValue;
};
-class AddColumnCommand : public QUndoCommand
-{
-public:
- AddColumnCommand(ColumnList *columnList, QUndoCommand *parent = 0);
- ~AddColumnCommand();
- void undo();
- void redo();
- int index() { return m_index; }
-
-private:
- ColumnList *m_columnList;
- int m_index;
- Column *m_column;
-};
-
-class RemoveColumnCommand : public QUndoCommand
-{
-public:
- RemoveColumnCommand(ColumnList *columnList, int index, QUndoCommand *parent = 0);
- ~RemoveColumnCommand();
- void undo();
- void redo();
-
-private:
- ColumnList *m_columnList;
- int m_index;
- Column *m_column;
-};
-
-class SwapColumnsCommand : public QUndoCommand
-{
-public:
- SwapColumnsCommand(ColumnList *columnList, int oldIndex, int newIndex, QUndoCommand *parent = 0);
- void undo();
- void redo();
-
-private:
- ColumnList *m_columnList;
- int m_oldIndex, m_newIndex;
-};
-
class MoveItemCommand : public QUndoCommand
{
public:
diff --git a/src/items/database/columnlistview.cpp b/src/items/database/columnlistview.cpp
index dd73fb6..c491467 100644
--- a/src/items/database/columnlistview.cpp
+++ b/src/items/database/columnlistview.cpp
@@ -17,7 +17,7 @@
#include "columnlist.h"
#include "columnlistmodel.h"
#include "columnlistview.h"
-#include "commands.h"
+#include "databasecommands.h"
#include "diagramdocument.h"
ColumnListView::ColumnListView(QWidget *parent)
diff --git a/src/items/database/database.pri b/src/items/database/database.pri
index f673ff6..53d4f6f 100644
--- a/src/items/database/database.pri
+++ b/src/items/database/database.pri
@@ -1,6 +1,7 @@
DEPENDPATH += $$PWD
SOURCES += \
+ databasecommands.cpp \
column.cpp \
columnlist.cpp \
columnlistmodel.cpp \
@@ -10,6 +11,7 @@ SOURCES += \
tableproperties.cpp
HEADERS += \
+ databasecommands.h \
column.h \
columnlist.h \
columnlistmodel.h \
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);
+}
+
+
diff --git a/src/items/database/databasecommands.h b/src/items/database/databasecommands.h
new file mode 100644
index 0000000..82a5aba
--- /dev/null
+++ b/src/items/database/databasecommands.h
@@ -0,0 +1,67 @@
+// 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.
+
+#ifndef DATABASECOMMANDS_H
+#define DATABASECOMMANDS_H
+
+#include "../../commands.h"
+
+class Column;
+class ColumnList;
+class DatabaseTable;
+
+class AddColumnCommand : public QUndoCommand
+{
+public:
+ AddColumnCommand(ColumnList *columnList, QUndoCommand *parent = 0);
+ ~AddColumnCommand();
+ void undo();
+ void redo();
+ int index() { return m_index; }
+
+private:
+ ColumnList *m_columnList;
+ int m_index;
+ Column *m_column;
+};
+
+class RemoveColumnCommand : public QUndoCommand
+{
+public:
+ RemoveColumnCommand(ColumnList *columnList, int index, QUndoCommand *parent = 0);
+ ~RemoveColumnCommand();
+ void undo();
+ void redo();
+
+private:
+ ColumnList *m_columnList;
+ int m_index;
+ Column *m_column;
+};
+
+class SwapColumnsCommand : public QUndoCommand
+{
+public:
+ SwapColumnsCommand(ColumnList *columnList, int oldIndex, int newIndex, QUndoCommand *parent = 0);
+ void undo();
+ void redo();
+
+private:
+ ColumnList *m_columnList;
+ int m_oldIndex, m_newIndex;
+};
+
+#endif