From 9306cb60c32082c5403931de0823a9fd5daa196c Mon Sep 17 00:00:00 2001 From: Jason Katz-Brown Date: Sun, 25 Aug 2013 02:17:13 -0700 Subject: Initial git commit. --- quacker/noteeditor.cpp | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 quacker/noteeditor.cpp (limited to 'quacker/noteeditor.cpp') diff --git a/quacker/noteeditor.cpp b/quacker/noteeditor.cpp new file mode 100644 index 0000000..e737d0f --- /dev/null +++ b/quacker/noteeditor.cpp @@ -0,0 +1,83 @@ +/* + * Quackle -- Crossword game artificial intelligence and analysis tool + * Copyright (C) 2005-2006 Jason Katz-Brown and John O'Laughlin. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + +#include + +#include +#include + +#include "geometry.h" +#include "noteeditor.h" + +NoteEditor::NoteEditor(QWidget *parent) + : View(parent) +{ + QVBoxLayout *layout = new QVBoxLayout(this); + Geometry::setupInnerLayout(layout); + + m_textEdit = new QTextEdit; + m_textEdit->setMinimumSize(60, 20); + layout->addWidget(m_textEdit); + + showNote(UVString()); + + connect(m_textEdit, SIGNAL(textChanged()), this, SLOT(noteEdited())); +} + +NoteEditor::~NoteEditor() +{ +} + +QSize NoteEditor::sizeHint() const +{ + //return QSize(20, 20); + QSize hint = QFrame::sizeHint(); + return QSize(hint.width(), hint.height() / 2); +} + +void NoteEditor::positionChanged(const Quackle::GamePosition &position) +{ + showNote(position.explanatoryNote()); +} + +void NoteEditor::showNote(const UVString ¬e) +{ + if (note.empty()) + { + manuallySetNoteText(tr("Type a note here!")); + return; + } + + const QString qstringNote = QuackleIO::Util::uvStringToQString(note); + + manuallySetNoteText(qstringNote); +} + +void NoteEditor::manuallySetNoteText(const QString ¬e) +{ + disconnect(m_textEdit, SIGNAL(textChanged()), this, SLOT(noteEdited())); + m_textEdit->setPlainText(note); + connect(m_textEdit, SIGNAL(textChanged()), this, SLOT(noteEdited())); +} + +void NoteEditor::noteEdited() +{ + emit setNote(QuackleIO::Util::qstringToString(m_textEdit->toPlainText())); +} -- cgit v1.2.3