| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #include "lc_ucslist.h" |
| |
|
| | LC_UCSList::LC_UCSList() { |
| | m_ucsList.append(m_wcs.get()); |
| | setModified(false); |
| | } |
| |
|
| | void LC_UCSList::clear() { |
| | m_ucsList.clear(); |
| | m_ucsList.append(m_wcs.get()); |
| | setModified(true); |
| | } |
| |
|
| | void LC_UCSList::add(LC_UCS *ucs) { |
| | if (ucs == nullptr) { |
| | return; |
| | } |
| |
|
| | |
| | LC_UCS *v = find(ucs->getName()); |
| | if (v == nullptr) { |
| | m_ucsList.append(ucs); |
| | } |
| | } |
| |
|
| | void LC_UCSList::addNew(LC_UCS *ucs) { |
| | if (ucs == nullptr) { |
| | return; |
| | } |
| |
|
| | |
| | LC_UCS *v = find(ucs->getName()); |
| | if (v == nullptr) { |
| | m_ucsList.append(ucs); |
| | setModified(true); |
| | } |
| | } |
| |
|
| | void LC_UCSList::remove(LC_UCS *ucs) { |
| | if (ucs->isUCS()) { |
| | m_ucsList.removeOne(ucs); |
| | setModified(true); |
| | delete ucs; |
| | } |
| | } |
| |
|
| | void LC_UCSList::remove(const QString &name) { |
| | LC_UCS *v = find(name); |
| | if (v !=nullptr) { |
| | remove(v); |
| | } |
| | } |
| |
|
| | void LC_UCSList::rename(LC_UCS *ucs, const QString &newName) { |
| | if (ucs->isUCS()) { |
| | ucs->setName(newName); |
| | ucs->setTemporary(false); |
| | setModified(true); |
| | } |
| | } |
| |
|
| | void LC_UCSList::edited([[maybe_unused]]LC_UCS *ucs) { |
| | setModified(true); |
| | } |
| |
|
| | LC_UCS *LC_UCSList::find(const QString &name) const { |
| | for (auto v: m_ucsList){ |
| | if (v->getName() == name){ |
| | return v; |
| | } |
| | } |
| | return nullptr; |
| | } |
| |
|
| | int LC_UCSList::getIndex(const QString &name) const |
| | { |
| | int result = -1; |
| |
|
| | for (int i = 0; i < m_ucsList.size(); i++) { |
| | LC_UCS *v = m_ucsList.at(i); |
| | if (v->getName() == name) { |
| | result = i; |
| | break; |
| | } |
| | } |
| | return result; |
| | } |
| |
|
| | int LC_UCSList::getIndex(LC_UCS *ucs) const { |
| | return m_ucsList.indexOf(ucs); |
| | } |
| |
|
| | void LC_UCSList::setModified(bool m) { |
| | m_modified = m; |
| | fireModified(m); |
| | } |
| |
|
| | LC_UCS *LC_UCSList::tryAddUCS(LC_UCS *candidate) { |
| | if (candidate == nullptr) { |
| | return nullptr; |
| | } |
| | LC_UCS *existingUCS = findExisting(candidate); |
| |
|
| | LC_UCS* result; |
| | if (existingUCS == nullptr){ |
| | m_ucsList.append(candidate); |
| | setModified(true); |
| | result = candidate; |
| | } |
| | else{ |
| | result = existingUCS; |
| | } |
| | return result; |
| | } |
| |
|
| | LC_UCS *LC_UCSList::findExisting(LC_UCS *candidate) { |
| | LC_UCS *existingUCS = nullptr; |
| | for (auto v: m_ucsList){ |
| | if (v == candidate){ |
| | existingUCS = v; |
| | break; |
| | } |
| | } |
| | if (existingUCS == nullptr){ |
| | for (auto v: m_ucsList) { |
| | if (v->isSameTo(candidate)) { |
| | existingUCS = v; |
| | break; |
| | } |
| | } |
| | } |
| | return existingUCS; |
| | } |
| |
|
| | LC_UCS *LC_UCSList::getWCS() const{ |
| | return m_wcs.get(); |
| | } |
| |
|
| | void LC_UCSList::tryToSetActive(LC_UCS *ucs) { |
| | LC_UCS* oldActive = m_activeUCS; |
| | m_activeUCS = findExisting(ucs); |
| | if (oldActive != m_activeUCS) { |
| | if (oldActive == nullptr) { |
| | setModified(true); |
| | } |
| | else if (!oldActive->isSameTo(m_activeUCS)){ |
| | setModified(true); |
| | } |
| | } |
| | } |
| |
|