86 lines
2.3 KiB
C++
86 lines
2.3 KiB
C++
/**************************************************************************
|
|
**
|
|
** This file is part of Nut project.
|
|
** https://github.com/HamedMasafi/Nut
|
|
**
|
|
** Nut is free software: you can redistribute it and/or modify
|
|
** it under the terms of the GNU Lesser General Public License as published by
|
|
** the Free Software Foundation, either version 3 of the License, or
|
|
** (at your option) any later version.
|
|
**
|
|
** Nut is distributed in the hope that it will be useful,
|
|
** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
** GNU Lesser General Public License for more details.
|
|
**
|
|
** You should have received a copy of the GNU Lesser General Public License
|
|
** along with Nut. If not, see <http://www.gnu.org/licenses/>.
|
|
**
|
|
**************************************************************************/
|
|
|
|
#include "assignmentphraselist.h"
|
|
#include "phrasedata.h"
|
|
#include "assignmentphrase.h"
|
|
|
|
NUT_BEGIN_NAMESPACE
|
|
|
|
|
|
AssignmentPhraseList AssignmentPhrase::operator &(const AssignmentPhrase &other)
|
|
{
|
|
return AssignmentPhraseList(this, &other);
|
|
}
|
|
|
|
AssignmentPhraseList::AssignmentPhraseList(const AssignmentPhrase &l)
|
|
{
|
|
data.append(l.data);
|
|
incAllDataParents();
|
|
}
|
|
|
|
AssignmentPhraseList::AssignmentPhraseList(AssignmentPhraseList *l,
|
|
const AssignmentPhrase *r)
|
|
{
|
|
data.append(l->data);
|
|
data.append(r->data);
|
|
incAllDataParents();
|
|
}
|
|
|
|
AssignmentPhraseList::AssignmentPhraseList(AssignmentPhrase *l,
|
|
const AssignmentPhrase *r)
|
|
{
|
|
data.append(l->data);
|
|
data.append(r->data);
|
|
incAllDataParents();
|
|
}
|
|
|
|
AssignmentPhraseList::AssignmentPhraseList(const AssignmentPhrase &r,
|
|
const AssignmentPhrase &l)
|
|
{
|
|
data.append(l.data);
|
|
data.append(r.data);
|
|
incAllDataParents();
|
|
}
|
|
|
|
AssignmentPhraseList AssignmentPhraseList::operator &(const AssignmentPhrase
|
|
&ph)
|
|
{
|
|
return AssignmentPhraseList(this, &ph);
|
|
}
|
|
|
|
AssignmentPhraseList::~AssignmentPhraseList()
|
|
{
|
|
foreach (PhraseData *d, data)
|
|
if (!--d->parents)
|
|
delete d;
|
|
// qDeleteAll(data);
|
|
// data.clear();
|
|
}
|
|
|
|
void AssignmentPhraseList::incAllDataParents()
|
|
{
|
|
foreach (PhraseData *d, data)
|
|
d->parents++;
|
|
}
|
|
|
|
|
|
NUT_END_NAMESPACE
|