1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
/* This file is part of KDevelop
Copyright 2018 Anton Anikin <anton@anikin.xyz>
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; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "commandlinewidget.h"
#include "ui_commandlinewidget.h"
#include <QFontDatabase>
#include <QLineEdit>
namespace Clazy
{
CommandLineWidget::CommandLineWidget(QWidget* parent)
: QWidget(parent)
, m_ui(new Ui::CommandLineWidget)
{
m_ui->setupUi(this);
m_ui->cmdEdit->setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
connect(m_ui->cmdFilter, &QLineEdit::textChanged, this, &CommandLineWidget::updateCommandLine);
connect(m_ui->cmdBreak, &QCheckBox::stateChanged, this, &CommandLineWidget::updateCommandLine);
}
CommandLineWidget::~CommandLineWidget() = default;
void CommandLineWidget::setText(const QString& text)
{
if (m_text != text) {
m_text = text;
updateCommandLine();
}
}
void CommandLineWidget::updateCommandLine()
{
auto commandLine = m_text;
if (m_ui->cmdBreak->isChecked()) {
commandLine.replace(QLatin1String(" -"), QLatin1String("\n-"));
commandLine.replace(QLatin1String(","), QLatin1String("\n,"));
}
auto filterText = m_ui->cmdFilter->text();
if (!filterText.isEmpty()) {
QStringList lines = commandLine.split(QLatin1Char('\n'));
QMutableStringListIterator i(lines);
while (i.hasNext()) {
if (!i.next().contains(filterText)) {
i.remove();
}
}
commandLine = lines.join(QLatin1Char('\n'));
}
m_ui->cmdEdit->setPlainText(commandLine);
}
}
|