| |
| |
| #include "toonz/txshnoteset.h" |
| #include "tstream.h" |
| #include "texception.h" |
| |
| #include <QString> |
| |
| |
| |
| |
| TXshNoteSet::TXshNoteSet() {} |
| |
| |
| |
| int TXshNoteSet::addNote(Note note) { |
| m_notes.push_back(note); |
| return getCount() - 1; |
| } |
| |
| |
| |
| void TXshNoteSet::removeNote(int index) { |
| if (m_notes.empty() || index >= (int)m_notes.size()) return; |
| m_notes.removeAt(index); |
| } |
| |
| |
| |
| int TXshNoteSet::getCount() const { |
| if (m_notes.empty()) return 0; |
| return m_notes.size(); |
| } |
| |
| |
| |
| int TXshNoteSet::getNoteColorIndex(int noteIndex) const { |
| assert(noteIndex < m_notes.size()); |
| if (noteIndex >= m_notes.size()) return 0; |
| return m_notes[noteIndex].m_colorIndex; |
| } |
| |
| |
| |
| void TXshNoteSet::setNoteColorIndex(int noteIndex, int colorIndex) { |
| assert(noteIndex < m_notes.size()); |
| if (noteIndex >= m_notes.size()) return; |
| m_notes[noteIndex].m_colorIndex = colorIndex; |
| } |
| |
| |
| |
| QString TXshNoteSet::getNoteHtmlText(int noteIndex) const { |
| assert(noteIndex < m_notes.size()); |
| if (noteIndex >= m_notes.size()) return QString(); |
| return m_notes[noteIndex].m_text; |
| } |
| |
| |
| |
| void TXshNoteSet::setNoteHtmlText(int noteIndex, QString text) { |
| assert(noteIndex < m_notes.size()); |
| if (noteIndex >= m_notes.size()) return; |
| m_notes[noteIndex].m_text = text; |
| } |
| |
| |
| |
| int TXshNoteSet::getNoteRow(int noteIndex) const { |
| assert(noteIndex < m_notes.size()); |
| if (noteIndex >= m_notes.size()) return 0; |
| return m_notes[noteIndex].m_row; |
| } |
| |
| |
| |
| void TXshNoteSet::setNoteRow(int noteIndex, int row) { |
| assert(noteIndex < m_notes.size()); |
| if (noteIndex >= m_notes.size()) return; |
| m_notes[noteIndex].m_row = row; |
| } |
| |
| |
| |
| int TXshNoteSet::getNoteCol(int noteIndex) const { |
| assert(noteIndex < m_notes.size()); |
| if (noteIndex >= m_notes.size()) return 0; |
| return m_notes[noteIndex].m_col; |
| } |
| |
| |
| |
| void TXshNoteSet::setNoteCol(int noteIndex, int col) { |
| assert(noteIndex < m_notes.size()); |
| if (noteIndex >= m_notes.size()) return; |
| m_notes[noteIndex].m_col = col; |
| } |
| |
| |
| |
| TPointD TXshNoteSet::getNotePos(int noteIndex) const { |
| assert(noteIndex < m_notes.size()); |
| if (noteIndex >= m_notes.size()) return TPointD(5, 5); |
| return m_notes[noteIndex].m_pos; |
| } |
| |
| |
| |
| void TXshNoteSet::setNotePos(int noteIndex, TPointD pos) { |
| assert(noteIndex < m_notes.size()); |
| if (noteIndex >= m_notes.size()) return; |
| m_notes[noteIndex].m_pos = pos; |
| } |
| |
| |
| |
| void TXshNoteSet::loadData(TIStream &is) { |
| while (!is.eos()) { |
| std::string tagName; |
| if (is.matchTag(tagName)) { |
| if (tagName == "notes") { |
| while (!is.eos()) { |
| std::string tagName; |
| if (is.matchTag(tagName)) { |
| if (tagName == "note") { |
| Note note; |
| is >> note.m_colorIndex; |
| std::wstring text; |
| is >> text; |
| note.m_text = QString::fromStdWString(text); |
| is >> note.m_row; |
| is >> note.m_col; |
| is >> note.m_pos.x; |
| is >> note.m_pos.y; |
| m_notes.push_back(note); |
| } |
| } else |
| throw TException("expected <note>"); |
| is.closeChild(); |
| } |
| } else |
| throw TException("expected <defaultColor> or <notes>"); |
| is.closeChild(); |
| } else |
| throw TException("expected tag"); |
| } |
| } |
| |
| |
| |
| void TXshNoteSet::saveData(TOStream &os) { |
| int i; |
| os.openChild("notes"); |
| for (i = 0; i < getCount(); i++) { |
| os.openChild("note"); |
| Note note = m_notes.at(i); |
| os << note.m_colorIndex; |
| os << note.m_text.toStdWString(); |
| os << note.m_row; |
| os << note.m_col; |
| os << note.m_pos.x; |
| os << note.m_pos.y; |
| os.closeChild(); |
| } |
| os.closeChild(); |
| } |
| |