1 /*
2  Copyright (C) 2010-2014 Kristian Duske
3 
4  This file is part of TrenchBroom.
5 
6  TrenchBroom is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  TrenchBroom is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with TrenchBroom. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #include "SetModsCommand.h"
21 
22 #include "View/MapDocumentCommandFacade.h"
23 
24 #include <cassert>
25 
26 namespace TrenchBroom {
27     namespace View {
28         const Command::CommandType SetModsCommand::Type = Command::freeType();
29 
set(const StringList & mods)30         SetModsCommand::Ptr SetModsCommand::set(const StringList& mods) {
31             return Ptr(new SetModsCommand("Set Mods", mods));
32         }
33 
SetModsCommand(const String & name,const StringList & mods)34         SetModsCommand::SetModsCommand(const String& name, const StringList& mods) :
35         DocumentCommand(Type, name),
36         m_newMods(mods) {}
37 
doPerformDo(MapDocumentCommandFacade * document)38         bool SetModsCommand::doPerformDo(MapDocumentCommandFacade* document) {
39             m_oldMods = document->mods();
40             document->performSetMods(m_newMods);
41             return true;
42         }
43 
doPerformUndo(MapDocumentCommandFacade * document)44         bool SetModsCommand::doPerformUndo(MapDocumentCommandFacade* document) {
45             document->performSetMods(m_oldMods);
46             return true;
47         }
48 
doIsRepeatable(MapDocumentCommandFacade * document) const49         bool SetModsCommand::doIsRepeatable(MapDocumentCommandFacade* document) const {
50             return false;
51         }
52 
doCollateWith(UndoableCommand::Ptr command)53         bool SetModsCommand::doCollateWith(UndoableCommand::Ptr command) {
54             return false;
55         }
56     }
57 }
58