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/modifyloans.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/modifyloans.cpp')
| -rw-r--r-- | src/commands/modifyloans.cpp | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/src/commands/modifyloans.cpp b/src/commands/modifyloans.cpp new file mode 100644 index 0000000..f8976e4 --- /dev/null +++ b/src/commands/modifyloans.cpp @@ -0,0 +1,76 @@ +/*************************************************************************** + 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; * + * * + ***************************************************************************/ + +#include "modifyloans.h" +#include "../document.h" +#include "../entry.h" +#include "../controller.h" +#include "../calendarhandler.h" + +#include <klocale.h> + +using Tellico::Command::ModifyLoans; + +ModifyLoans::ModifyLoans(Data::LoanPtr oldLoan_, Data::LoanPtr newLoan_, bool addToCalendar_) + : KCommand() + , m_oldLoan(oldLoan_) + , m_newLoan(newLoan_) + , m_addToCalendar(addToCalendar_) +{ +} + +void ModifyLoans::execute() { + if(!m_oldLoan || !m_newLoan) { + return; + } + + Data::BorrowerPtr b = m_oldLoan->borrower(); + b->removeLoan(m_oldLoan); + b->addLoan(m_newLoan); + Controller::self()->modifiedBorrower(b); + + if(m_addToCalendar && !m_oldLoan->inCalendar()) { + Data::LoanVec loans; + loans.append(m_newLoan); + CalendarHandler::addLoans(loans); + } else if(!m_addToCalendar && m_oldLoan->inCalendar()) { + Data::LoanVec loans; + loans.append(m_newLoan); // CalendarHandler checks via uid + CalendarHandler::removeLoans(loans); + } +} + +void ModifyLoans::unexecute() { + if(!m_oldLoan || !m_newLoan) { + return; + } + + Data::BorrowerPtr b = m_oldLoan->borrower(); + b->removeLoan(m_newLoan); + b->addLoan(m_oldLoan); + Controller::self()->modifiedBorrower(b); + + if(m_addToCalendar && !m_oldLoan->inCalendar()) { + Data::LoanVec loans; + loans.append(m_newLoan); + CalendarHandler::removeLoans(loans); + } else if(!m_addToCalendar && m_oldLoan->inCalendar()) { + Data::LoanVec loans; + loans.append(m_oldLoan); + CalendarHandler::addLoans(loans); + } +} + +QString ModifyLoans::name() const { + return i18n("Modify Loan"); +} |
