diff options
Diffstat (limited to 'src/commands/reorderfields.cpp')
-rw-r--r-- | src/commands/reorderfields.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/commands/reorderfields.cpp b/src/commands/reorderfields.cpp new file mode 100644 index 0000000..0c9f7fe --- /dev/null +++ b/src/commands/reorderfields.cpp @@ -0,0 +1,55 @@ +/*************************************************************************** + copyright : (C) 2005-2006 by Robby Stephenson + email : [email protected] + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of version 2 of the GNU General Public License as * + * published by the Free Software Foundation; * + * * + ***************************************************************************/ + +#include "reorderfields.h" +#include "../collection.h" +#include "../controller.h" +#include "../tellico_debug.h" + +#include <klocale.h> + +using Tellico::Command::ReorderFields; + +ReorderFields::ReorderFields(Data::CollPtr coll_, const Data::FieldVec& oldFields_, + const Data::FieldVec& newFields_) + : KCommand() + , m_coll(coll_) + , m_oldFields(oldFields_) + , m_newFields(newFields_) +{ + if(!m_coll) { + myDebug() << "ReorderFieldsCommand() - null collection pointer" << endl; + } else if(m_oldFields.count() != m_newFields.count()) { + myDebug() << "ReorderFieldsCommand() - unequal number of fields" << endl; + } +} + +void ReorderFields::execute() { + if(!m_coll) { + return; + } + m_coll->reorderFields(m_newFields); + Controller::self()->reorderedFields(m_coll); +} + +void ReorderFields::unexecute() { + if(!m_coll) { + return; + } + m_coll->reorderFields(m_oldFields); + Controller::self()->reorderedFields(m_coll); +} + +QString ReorderFields::name() const { + return i18n("Reorder Fields"); +} |