From 05ef6e8c7847f06d27c2001d1845367c674cdedb Mon Sep 17 00:00:00 2001 From: Lukáš Lalinský Date: Mon, 8 Dec 2008 09:10:10 +0100 Subject: Move database-specific commands into items/database/databasecommands.cpp --- src/commands.cpp | 76 +------------------------- src/commands.h | 48 ++--------------- src/items/database/columnlistview.cpp | 2 +- src/items/database/database.pri | 2 + src/items/database/databasecommands.cpp | 96 +++++++++++++++++++++++++++++++++ src/items/database/databasecommands.h | 67 +++++++++++++++++++++++ 6 files changed, 171 insertions(+), 120 deletions(-) create mode 100644 src/items/database/databasecommands.cpp create mode 100644 src/items/database/databasecommands.h (limited to 'src') 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 #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 #include #include +#include #include -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 +#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 -- cgit v1.2.3-54-g00ecf