File indexing completed on 2024-04-28 05:50:54

0001 /*
0002     SPDX-FileCopyrightText: 2010 Kurt Hindenburg <kurt.hindenburg@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 // Own
0008 #include "widgets/RenameTabWidget.h"
0009 
0010 // Konsole
0011 #include "ui_RenameTabWidget.h"
0012 
0013 // KDE
0014 #include <KColorCombo>
0015 
0016 // Qt
0017 #include <QColor>
0018 
0019 using Konsole::RenameTabWidget;
0020 
0021 RenameTabWidget::RenameTabWidget(QWidget *parent)
0022     : QWidget(parent)
0023     , _ui(nullptr)
0024 {
0025     _ui = new Ui::RenameTabWidget();
0026     _ui->setupUi(this);
0027 
0028     _ui->tabTitleEdit->setClearButtonEnabled(true);
0029     _ui->remoteTabTitleEdit->setClearButtonEnabled(true);
0030 
0031     _colorNone = palette().base().color(); // so that item's text is visible in the combo-box
0032     _colorNone.setAlpha(0);
0033 
0034     QList<QColor> listColors(_ui->tabColorCombo->colors());
0035     listColors.insert(0, _colorNone);
0036     _ui->tabColorCombo->setColors(listColors);
0037     _ui->tabColorCombo->setItemText(1, i18nc("@label:listbox No color selected", "None"));
0038 
0039     connect(_ui->tabTitleEdit, &QLineEdit::textChanged, this, &Konsole::RenameTabWidget::tabTitleFormatChanged);
0040     connect(_ui->remoteTabTitleEdit, &QLineEdit::textChanged, this, &Konsole::RenameTabWidget::remoteTabTitleFormatChanged);
0041     connect(_ui->tabColorCombo, &KColorCombo::activated, this, &Konsole::RenameTabWidget::tabColorChanged);
0042 
0043     _ui->tabTitleFormatButton->setContext(Session::LocalTabTitle);
0044     connect(_ui->tabTitleFormatButton, &Konsole::TabTitleFormatButton::dynamicElementSelected, this, &Konsole::RenameTabWidget::insertTabTitleText);
0045 
0046     _ui->remoteTabTitleFormatButton->setContext(Session::RemoteTabTitle);
0047     connect(_ui->remoteTabTitleFormatButton, &Konsole::TabTitleFormatButton::dynamicElementSelected, this, &Konsole::RenameTabWidget::insertRemoteTabTitleText);
0048 }
0049 
0050 RenameTabWidget::~RenameTabWidget()
0051 {
0052     delete _ui;
0053 }
0054 
0055 void RenameTabWidget::focusTabTitleText()
0056 {
0057     _ui->tabTitleEdit->setFocus();
0058 }
0059 
0060 void RenameTabWidget::focusRemoteTabTitleText()
0061 {
0062     _ui->remoteTabTitleEdit->setFocus();
0063 }
0064 
0065 void RenameTabWidget::setTabTitleText(const QString &text)
0066 {
0067     _ui->tabTitleEdit->setText(text);
0068 }
0069 
0070 void RenameTabWidget::setRemoteTabTitleText(const QString &text)
0071 {
0072     _ui->remoteTabTitleEdit->setText(text);
0073 }
0074 
0075 void RenameTabWidget::setColor(const QColor &color)
0076 {
0077     if (!color.isValid() || color.alpha() == 0) {
0078         _ui->tabColorCombo->setColor(_colorNone);
0079     } else {
0080         _ui->tabColorCombo->setColor(color);
0081     }
0082 }
0083 
0084 QString RenameTabWidget::tabTitleText() const
0085 {
0086     return _ui->tabTitleEdit->text();
0087 }
0088 
0089 QString RenameTabWidget::remoteTabTitleText() const
0090 {
0091     return _ui->remoteTabTitleEdit->text();
0092 }
0093 
0094 QColor RenameTabWidget::color() const
0095 {
0096     return _ui->tabColorCombo->color();
0097 }
0098 
0099 void RenameTabWidget::insertTabTitleText(const QString &text)
0100 {
0101     _ui->tabTitleEdit->insert(text);
0102     focusTabTitleText();
0103 }
0104 
0105 void RenameTabWidget::insertRemoteTabTitleText(const QString &text)
0106 {
0107     _ui->remoteTabTitleEdit->insert(text);
0108     focusRemoteTabTitleText();
0109 }
0110 
0111 #include "moc_RenameTabWidget.cpp"