diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-03-01 19:17:32 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-03-01 19:17:32 +0000 |
commit | e38d2351b83fa65c66ccde443777647ef5cb6cff (patch) | |
tree | 1897fc20e9f73a81c520a5b9f76f8ed042124883 /src/commands/addentries.cpp | |
download | tellico-e38d2351b83fa65c66ccde443777647ef5cb6cff.tar.gz tellico-e38d2351b83fa65c66ccde443777647ef5cb6cff.zip |
Added KDE3 version of Tellico
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/tellico@1097620 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'src/commands/addentries.cpp')
-rw-r--r-- | src/commands/addentries.cpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/commands/addentries.cpp b/src/commands/addentries.cpp new file mode 100644 index 0000000..6cd7636 --- /dev/null +++ b/src/commands/addentries.cpp @@ -0,0 +1,64 @@ +/*************************************************************************** + 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 "addentries.h" +#include "../collection.h" +#include "../controller.h" +#include "../datavectors.h" +#include "../tellico_debug.h" + +#include <klocale.h> + +using Tellico::Command::AddEntries; + +AddEntries::AddEntries(Data::CollPtr coll_, const Data::EntryVec& entries_) + : KCommand() + , m_coll(coll_) + , m_entries(entries_) +{ +} + +void AddEntries::execute() { + if(!m_coll || m_entries.isEmpty()) { + return; + } + + m_coll->addEntries(m_entries); + // now check for default values + Data::FieldVec fields = m_coll->fields(); + for(Data::FieldVec::Iterator field = fields.begin(); field != fields.end(); ++field) { + const QString defaultValue = field->defaultValue(); + if(!defaultValue.isEmpty()) { + for(Data::EntryVec::Iterator entry = m_entries.begin(); entry != m_entries.end(); ++entry) { + if(entry->field(field).isEmpty()) { + entry->setField(field->name(), defaultValue); + } + } + } + } + Controller::self()->addedEntries(m_entries); +} + +void AddEntries::unexecute() { + if(!m_coll || m_entries.isEmpty()) { + return; + } + + m_coll->removeEntries(m_entries); + Controller::self()->removedEntries(m_entries); +} + +QString AddEntries::name() const { + return m_entries.count() > 1 ? i18n("Add Entries") + : i18n("Add (Entry Title)", "Add %1").arg(m_entries.begin()->title()); +} |