summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/lazyplaintextedit.cpp
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2018-11-23 07:01:15 +0200
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2021-01-15 14:56:26 +0200
commitc3a84add1c8ed3c879168cba4e9a84af58129da6 (patch)
tree54cdc5142e8043af98372bb5527f0c5dec6280ab /src/libs/installer/lazyplaintextedit.cpp
parent57078aec62049ac08c5df94db06c79e956fd0eeb (diff)
Replace usage of derived LazyPlainTextEdit class with QTextEdit
Remove LazyPlainTextEdit class and replace usage in PerformInstallationForm details browser to QTextEdit. This adds support for RTL text alignment as the base class of the removed class, QPlainTextEdit does not fully support RTL and automatic alignment. Text will now be automatically aligned based on the direction of the characters. This also improves the usability of the details browser, as it does not force scrolling to bottom if the user has scrolled the widget contents to inspect previous lines. Task-number: QTIFW-1994 Change-Id: If01eaea121000edc0b5039edfede88ffb7bacd6f Reviewed-by: Katja Marttila <katja.marttila@qt.io> Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Diffstat (limited to 'src/libs/installer/lazyplaintextedit.cpp')
-rw-r--r--src/libs/installer/lazyplaintextedit.cpp101
1 files changed, 0 insertions, 101 deletions
diff --git a/src/libs/installer/lazyplaintextedit.cpp b/src/libs/installer/lazyplaintextedit.cpp
deleted file mode 100644
index a4a699a78..000000000
--- a/src/libs/installer/lazyplaintextedit.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/**************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt Installer Framework.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-**************************************************************************/
-
-#include "lazyplaintextedit.h"
-
-#include <QScrollBar>
-
-const int INTERVAL = 20;
-
-LazyPlainTextEdit::LazyPlainTextEdit(QWidget *parent)
- : QPlainTextEdit(parent)
- , m_timerId(0)
-{
-}
-
-void LazyPlainTextEdit::timerEvent(QTimerEvent *event)
-{
- if (event->timerId() == m_timerId) {
- killTimer(m_timerId);
- m_timerId = 0;
- m_cachedOutput.chop(1); //removes the last \n
- if (!m_cachedOutput.isEmpty()) {
- appendPlainText(m_cachedOutput);
- updateCursor(TextCursorPosition::Keep);
- horizontalScrollBar()->setValue(0);
- m_cachedOutput.clear();
- }
- }
-}
-
-void LazyPlainTextEdit::append(const QString &text)
-{
- m_cachedOutput.append(text + QLatin1String("\n"));
- if (isVisible() && m_timerId == 0)
- m_timerId = startTimer(INTERVAL);
-}
-
-void LazyPlainTextEdit::clear()
-{
- if (m_timerId) {
- killTimer(m_timerId);
- m_timerId = 0;
- m_cachedOutput.clear();
- }
- QPlainTextEdit::clear();
-}
-
-void LazyPlainTextEdit::setVisible(bool visible)
-{
- if (m_timerId) {
- killTimer(m_timerId);
- m_timerId = 0;
- }
-
- if (visible)
- m_timerId = startTimer(INTERVAL);
-
- QPlainTextEdit::setVisible(visible);
- updateCursor(TextCursorPosition::Keep);
-}
-
-void LazyPlainTextEdit::updateCursor(TextCursorPosition position)
-{
- QTextCursor cursor = textCursor();
- if ((position == TextCursorPosition::ForceEnd) || cursor.atEnd()) {
- // Workaround for height calculation issue if scrollbar is set to Qt::ScrollBarAsNeeded.
- Qt::ScrollBarPolicy policy = horizontalScrollBarPolicy();
- setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); // enforce always on
-
- cursor.movePosition(QTextCursor::End);
- setTextCursor(cursor);
- ensureCursorVisible();
-
- setHorizontalScrollBarPolicy(policy); // but reset once we updated the cursor position
- }
-}