diff options
author | Lukáš Lalinský <lalinsky@gmail.com> | 2008-12-08 09:10:10 +0100 |
---|---|---|
committer | Lukáš Lalinský <lalinsky@gmail.com> | 2008-12-08 09:10:10 +0100 |
commit | 05ef6e8c7847f06d27c2001d1845367c674cdedb (patch) | |
tree | 8edad440efbbb15687e09d179e577ac9812ceb80 /src/items/database | |
parent | db090e65b3041b5856d9318a29ce44fb985376e7 (diff) | |
download | dbmodel-05ef6e8c7847f06d27c2001d1845367c674cdedb.tar.xz |
Move database-specific commands into items/database/databasecommands.cpp
Diffstat (limited to 'src/items/database')
-rw-r--r-- | src/items/database/columnlistview.cpp | 2 | ||||
-rw-r--r-- | src/items/database/database.pri | 2 | ||||
-rw-r--r-- | src/items/database/databasecommands.cpp | 96 | ||||
-rw-r--r-- | src/items/database/databasecommands.h | 67 |
4 files changed, 166 insertions, 1 deletions
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 |