aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quickcontrols2/texteditor/documenthandler.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-08-11 21:03:35 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-08-12 07:56:08 +0000
commit01eda3fa22fa92795753cdecb75b920ce914146c (patch)
treecd547466a938174f9849479074110a72751a7a98 /examples/quickcontrols2/texteditor/documenthandler.cpp
parent0d8e87d7f6765fec9f261030d63768d49cd7c6de (diff)
texteditor: re-order the property accessors
There's no reason to register all setters as slots. Properties are fine for QML usage. Re-order them also in the .cpp file in the same order than they are in the header. It's a bit easier to follow when logical pairs are next to each other. Change-Id: Ib8097ecafe10f2c785b05b045694c338977860ef Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'examples/quickcontrols2/texteditor/documenthandler.cpp')
-rw-r--r--examples/quickcontrols2/texteditor/documenthandler.cpp318
1 files changed, 166 insertions, 152 deletions
diff --git a/examples/quickcontrols2/texteditor/documenthandler.cpp b/examples/quickcontrols2/texteditor/documenthandler.cpp
index 43907db9..81397517 100644
--- a/examples/quickcontrols2/texteditor/documenthandler.cpp
+++ b/examples/quickcontrols2/texteditor/documenthandler.cpp
@@ -87,145 +87,94 @@ void DocumentHandler::setDocument(QQuickTextDocument *quickDoc)
emit documentChanged();
}
-void DocumentHandler::setFileUrl(const QUrl &fileUrl)
+int DocumentHandler::cursorPosition() const
{
- if (fileUrl == m_fileUrl)
- return;
-
- m_fileUrl = fileUrl;
- QString fileName = QQmlFile::urlToLocalFileOrQrc(fileUrl);
- if (QFile::exists(fileName)) {
- QFile file(fileName);
- if (file.open(QFile::ReadOnly)) {
- QByteArray data = file.readAll();
- QTextCodec *codec = QTextCodec::codecForHtml(data);
- setText(codec->toUnicode(data));
- if (m_doc)
- m_doc->setModified(false);
- if (fileName.isEmpty())
- m_documentTitle = QStringLiteral("untitled.txt");
- else
- m_documentTitle = QFileInfo(fileName).fileName();
-
- emit textChanged();
- emit documentTitleChanged();
-
- reset();
- }
- }
- emit fileUrlChanged();
-}
-
-QString DocumentHandler::documentTitle() const
-{
- return m_documentTitle;
+ return m_cursorPosition;
}
-void DocumentHandler::setDocumentTitle(const QString &documentTitle)
+void DocumentHandler::setCursorPosition(int position)
{
- if (documentTitle == m_documentTitle)
+ if (position == m_cursorPosition)
return;
- m_documentTitle = documentTitle;
- emit documentTitleChanged();
+ m_cursorPosition = position;
+ reset();
}
-void DocumentHandler::setText(const QString &text)
+int DocumentHandler::selectionStart() const
{
- if (text == m_text)
- return;
-
- m_text = text;
- emit textChanged();
+ return m_selectionStart;
}
-void DocumentHandler::saveAs(const QUrl &fileUrl)
+void DocumentHandler::setSelectionStart(int position)
{
- if (!m_doc)
+ if (position == m_selectionStart)
return;
- const QString filePath = fileUrl.toLocalFile();
- const bool isHtml = QFileInfo(filePath).suffix().contains(QLatin1String("htm"));
- QFile file(filePath);
- if (!file.open(QFile::WriteOnly | QFile::Truncate | (isHtml ? QFile::NotOpen : QFile::Text))) {
- emit error(tr("Cannot save: ") + file.errorString());
- return;
- }
- file.write((isHtml ? m_doc->toHtml() : m_doc->toPlainText()).toUtf8());
- file.close();
- setFileUrl(fileUrl);
-}
-
-QUrl DocumentHandler::fileUrl() const
-{
- return m_fileUrl;
+ m_selectionStart = position;
+ emit selectionStartChanged();
}
-QString DocumentHandler::text() const
+int DocumentHandler::selectionEnd() const
{
- return m_text;
+ return m_selectionEnd;
}
-void DocumentHandler::setCursorPosition(int position)
+void DocumentHandler::setSelectionEnd(int position)
{
- if (position == m_cursorPosition)
+ if (position == m_selectionEnd)
return;
- m_cursorPosition = position;
-
- reset();
+ m_selectionEnd = position;
+ emit selectionEndChanged();
}
-void DocumentHandler::reset()
+QString DocumentHandler::fontFamily() const
{
- emit fontFamilyChanged();
- emit alignmentChanged();
- emit boldChanged();
- emit italicChanged();
- emit underlineChanged();
- emit fontSizeChanged();
- emit textColorChanged();
+ QTextCursor cursor = textCursor();
+ if (cursor.isNull())
+ return QString();
+ QTextCharFormat format = cursor.charFormat();
+ return format.font().family();
}
-QTextCursor DocumentHandler::textCursor() const
+void DocumentHandler::setFontFamily(const QString &family)
{
- if (!m_doc)
- return QTextCursor();
-
- QTextCursor cursor = QTextCursor(m_doc);
- if (m_selectionStart != m_selectionEnd) {
- cursor.setPosition(m_selectionStart);
- cursor.setPosition(m_selectionEnd, QTextCursor::KeepAnchor);
- } else {
- cursor.setPosition(m_cursorPosition);
- }
- return cursor;
+ QTextCursor cursor = textCursor();
+ if (cursor.isNull())
+ return;
+ QTextCharFormat format;
+ format.setFontFamily(family);
+ mergeFormatOnWordOrSelection(format);
+ emit fontFamilyChanged();
}
-void DocumentHandler::mergeFormatOnWordOrSelection(const QTextCharFormat &format)
+QColor DocumentHandler::textColor() const
{
QTextCursor cursor = textCursor();
- if (!cursor.hasSelection())
- cursor.select(QTextCursor::WordUnderCursor);
- cursor.mergeCharFormat(format);
+ if (cursor.isNull())
+ return QColor(Qt::black);
+ QTextCharFormat format = cursor.charFormat();
+ return format.foreground().color();
}
-void DocumentHandler::setSelectionStart(int position)
+void DocumentHandler::setTextColor(const QColor &color)
{
- if (position == m_selectionStart)
+ QTextCursor cursor = textCursor();
+ if (cursor.isNull())
return;
-
- m_selectionStart = position;
- emit selectionStartChanged();
+ QTextCharFormat format;
+ format.setForeground(QBrush(color));
+ mergeFormatOnWordOrSelection(format);
+ emit textColorChanged();
}
-void DocumentHandler::setSelectionEnd(int position)
+Qt::Alignment DocumentHandler::alignment() const
{
- if (position == m_selectionEnd)
- return;
-
- m_selectionEnd = position;
- emit selectionEndChanged();
+ QTextCursor cursor = textCursor();
+ if (cursor.isNull())
+ return Qt::AlignLeft;
+ return textCursor().blockFormat().alignment();
}
void DocumentHandler::setAlignment(Qt::Alignment alignment)
@@ -240,14 +189,6 @@ void DocumentHandler::setAlignment(Qt::Alignment alignment)
emit alignmentChanged();
}
-Qt::Alignment DocumentHandler::alignment() const
-{
- QTextCursor cursor = textCursor();
- if (cursor.isNull())
- return Qt::AlignLeft;
- return textCursor().blockFormat().alignment();
-}
-
bool DocumentHandler::bold() const
{
QTextCursor cursor = textCursor();
@@ -256,28 +197,20 @@ bool DocumentHandler::bold() const
return textCursor().charFormat().fontWeight() == QFont::Bold;
}
-bool DocumentHandler::italic() const
+void DocumentHandler::setBold(bool bold)
{
- QTextCursor cursor = textCursor();
- if (cursor.isNull())
- return false;
- return textCursor().charFormat().fontItalic();
+ QTextCharFormat format;
+ format.setFontWeight(bold ? QFont::Bold : QFont::Normal);
+ mergeFormatOnWordOrSelection(format);
+ emit boldChanged();
}
-bool DocumentHandler::underline() const
+bool DocumentHandler::italic() const
{
QTextCursor cursor = textCursor();
if (cursor.isNull())
return false;
- return textCursor().charFormat().fontUnderline();
-}
-
-void DocumentHandler::setBold(bool bold)
-{
- QTextCharFormat format;
- format.setFontWeight(bold ? QFont::Bold : QFont::Normal);
- mergeFormatOnWordOrSelection(format);
- emit boldChanged();
+ return textCursor().charFormat().fontItalic();
}
void DocumentHandler::setItalic(bool italic)
@@ -288,6 +221,14 @@ void DocumentHandler::setItalic(bool italic)
emit italicChanged();
}
+bool DocumentHandler::underline() const
+{
+ QTextCursor cursor = textCursor();
+ if (cursor.isNull())
+ return false;
+ return textCursor().charFormat().fontUnderline();
+}
+
void DocumentHandler::setUnderline(bool underline)
{
QTextCharFormat format;
@@ -305,9 +246,9 @@ int DocumentHandler::fontSize() const
return format.font().pointSize();
}
-void DocumentHandler::setFontSize(int fontSize)
+void DocumentHandler::setFontSize(int size)
{
- if (fontSize <= 0)
+ if (size <= 0)
return;
QTextCursor cursor = textCursor();
@@ -317,51 +258,124 @@ void DocumentHandler::setFontSize(int fontSize)
if (!cursor.hasSelection())
cursor.select(QTextCursor::WordUnderCursor);
- if (cursor.charFormat().property(QTextFormat::FontPointSize).toInt() == fontSize)
+ if (cursor.charFormat().property(QTextFormat::FontPointSize).toInt() == size)
return;
QTextCharFormat format;
- format.setFontPointSize(fontSize);
+ format.setFontPointSize(size);
mergeFormatOnWordOrSelection(format);
emit fontSizeChanged();
}
-QColor DocumentHandler::textColor() const
+QString DocumentHandler::text() const
{
- QTextCursor cursor = textCursor();
- if (cursor.isNull())
- return QColor(Qt::black);
- QTextCharFormat format = cursor.charFormat();
- return format.foreground().color();
+ return m_text;
}
-void DocumentHandler::setTextColor(const QColor &color)
+void DocumentHandler::setText(const QString &text)
{
- QTextCursor cursor = textCursor();
- if (cursor.isNull())
+ if (text == m_text)
return;
- QTextCharFormat format;
- format.setForeground(QBrush(color));
- mergeFormatOnWordOrSelection(format);
- emit textColorChanged();
+
+ m_text = text;
+ emit textChanged();
}
-QString DocumentHandler::fontFamily() const
+QString DocumentHandler::documentTitle() const
{
- QTextCursor cursor = textCursor();
- if (cursor.isNull())
- return QString();
- QTextCharFormat format = cursor.charFormat();
- return format.font().family();
+ return m_documentTitle;
}
-void DocumentHandler::setFontFamily(const QString &fontFamily)
+void DocumentHandler::setDocumentTitle(const QString &title)
{
- QTextCursor cursor = textCursor();
- if (cursor.isNull())
+ if (title == m_documentTitle)
return;
- QTextCharFormat format;
- format.setFontFamily(fontFamily);
- mergeFormatOnWordOrSelection(format);
+
+ m_documentTitle = title;
+ emit documentTitleChanged();
+}
+
+QUrl DocumentHandler::fileUrl() const
+{
+ return m_fileUrl;
+}
+
+void DocumentHandler::setFileUrl(const QUrl &fileUrl)
+{
+ if (fileUrl == m_fileUrl)
+ return;
+
+ m_fileUrl = fileUrl;
+ QString fileName = QQmlFile::urlToLocalFileOrQrc(fileUrl);
+ if (QFile::exists(fileName)) {
+ QFile file(fileName);
+ if (file.open(QFile::ReadOnly)) {
+ QByteArray data = file.readAll();
+ QTextCodec *codec = QTextCodec::codecForHtml(data);
+ setText(codec->toUnicode(data));
+ if (m_doc)
+ m_doc->setModified(false);
+ if (fileName.isEmpty())
+ m_documentTitle = QStringLiteral("untitled.txt");
+ else
+ m_documentTitle = QFileInfo(fileName).fileName();
+
+ emit textChanged();
+ emit documentTitleChanged();
+
+ reset();
+ }
+ }
+ emit fileUrlChanged();
+}
+
+void DocumentHandler::saveAs(const QUrl &fileUrl)
+{
+ if (!m_doc)
+ return;
+
+ const QString filePath = fileUrl.toLocalFile();
+ const bool isHtml = QFileInfo(filePath).suffix().contains(QLatin1String("htm"));
+ QFile file(filePath);
+ if (!file.open(QFile::WriteOnly | QFile::Truncate | (isHtml ? QFile::NotOpen : QFile::Text))) {
+ emit error(tr("Cannot save: ") + file.errorString());
+ return;
+ }
+ file.write((isHtml ? m_doc->toHtml() : m_doc->toPlainText()).toUtf8());
+ file.close();
+ setFileUrl(fileUrl);
+}
+
+void DocumentHandler::reset()
+{
emit fontFamilyChanged();
+ emit alignmentChanged();
+ emit boldChanged();
+ emit italicChanged();
+ emit underlineChanged();
+ emit fontSizeChanged();
+ emit textColorChanged();
+}
+
+QTextCursor DocumentHandler::textCursor() const
+{
+ if (!m_doc)
+ return QTextCursor();
+
+ QTextCursor cursor = QTextCursor(m_doc);
+ if (m_selectionStart != m_selectionEnd) {
+ cursor.setPosition(m_selectionStart);
+ cursor.setPosition(m_selectionEnd, QTextCursor::KeepAnchor);
+ } else {
+ cursor.setPosition(m_cursorPosition);
+ }
+ return cursor;
+}
+
+void DocumentHandler::mergeFormatOnWordOrSelection(const QTextCharFormat &format)
+{
+ QTextCursor cursor = textCursor();
+ if (!cursor.hasSelection())
+ cursor.select(QTextCursor::WordUnderCursor);
+ cursor.mergeCharFormat(format);
}