/*************************************************************************** copyright : (C) 2005-2006 by Robby Stephenson email : robby@periapsis.org ***************************************************************************/ /*************************************************************************** * * * 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; * * * ***************************************************************************/ #ifndef TELLICO_COLLECTIONCOMMAND_H #define TELLICO_COLLECTIONCOMMAND_H #include "../datavectors.h" #include #include namespace Tellico { namespace Command { /** * @author Robby Stephenson */ class CollectionCommand : public KCommand { public: enum Mode { Append, Merge, Replace }; CollectionCommand(Mode mode, Data::CollPtr currentColl, Data::CollPtr newColl); ~CollectionCommand(); virtual void execute(); virtual void unexecute(); virtual TQString name() const; private: void copyFields(); Mode m_mode; Data::CollPtr m_origColl; Data::CollPtr m_newColl; KURL m_origURL; Data::FieldVec m_origFields; Data::MergePair m_mergePair; // for the Replace case, the collection that got replaced needs to be cleared enum CleanupMode { DoNothing, ClearOriginal, ClearNew }; CleanupMode m_cleanup; }; } // end namespace } #endif