/* Copyright 2006-2020 The QElectroTech Team This file is part of QElectroTech. QElectroTech 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. QElectroTech 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 QElectroTech. If not, see . */ #include "elementinfopartwidget.h" #include #include "ui_elementinfopartwidget.h" #include "searchandreplaceworker.h" typedef SearchAndReplaceWorker sarw; /** @brief ElementInfoPartWidget::ElementInfoPartWidget Constructor @param key the string key what represent this info part @param translated_key the string key translated @param parent parent widget */ ElementInfoPartWidget::ElementInfoPartWidget(QString key, const QString& translated_key, QWidget *parent): QWidget(parent), ui(new Ui::ElementInfoPartWidget), key_(std::move(key)) { ui->setupUi(this); ui->label_->setText(translated_key); ui->m_erase_text->setVisible(false); connect(ui->line_edit, &QLineEdit::textEdited, this, &ElementInfoPartWidget::textEdited); connect(ui->line_edit, &QLineEdit::textChanged, this, &ElementInfoPartWidget::textChanged); } /** @brief ElementInfoPartWidget::~ElementInfoPartWidget destructor */ ElementInfoPartWidget::~ElementInfoPartWidget() { delete ui; } /** @brief ElementInfoPartWidget::setText Set text to line edit @param txt */ void ElementInfoPartWidget::setText(const QString &txt) { if (m_show_erase) { sarw::setupLineEdit(ui->line_edit, ui->m_erase_text, txt); } else { ui->line_edit->setText(txt); } } /** @brief ElementInfoPartWidget::text @return the text in the line edit */ QString ElementInfoPartWidget::text() const { return (ui->line_edit->text()); } /** @brief ElementInfoPartWidget::setPlaceHolderText @param text */ void ElementInfoPartWidget::setPlaceHolderText(const QString &text) { ui->line_edit->setPlaceholderText(text); } /** @brief ElementInfoPartWidget::setFocusTolineEdit Set the focus to the line edit */ void ElementInfoPartWidget::setFocusTolineEdit() { ui->line_edit->setFocus(); } /** @brief ElementInfoPartWidget::setEnabled enable the line edit @param e */ void ElementInfoPartWidget::setEnabled(bool e) { ui->line_edit->setEnabled(e); } /** @brief ElementInfoPartWidget::setDisabled disable the line edit @param d */ void ElementInfoPartWidget::setDisabled(bool d) { ui->line_edit->setDisabled(d); } /** @brief ElementInfoPartWidget::setEraseTextVisible @param visible */ void ElementInfoPartWidget::setEraseTextVisible(bool visible) { ui->m_erase_text->setVisible(visible); m_show_erase = visible; } /** @brief ElementInfoPartWidget::setEraseTextChecked @param check */ void ElementInfoPartWidget::setEraseTextChecked(bool check) { ui->m_erase_text->setChecked(check); } /** @brief ElementInfoPartWidget::EraseTextCheckState @return */ Qt::CheckState ElementInfoPartWidget::EraseTextCheckState() const { return ui->m_erase_text->checkState(); } void ElementInfoPartWidget::on_m_erase_text_clicked() { ui->line_edit->setText(ui->m_erase_text->isChecked() ? SearchAndReplaceWorker::eraseText() : QString()); ui->line_edit->setDisabled(ui->m_erase_text->isChecked()); }