File indexing completed on 2024-05-05 04:39:48

0001 /*
0002     SPDX-FileCopyrightText: 2008 Hamish Rodda <rodda@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-only
0005 */
0006 
0007 #include "classidentifierpage.h"
0008 #include "language/duchain/identifier.h"
0009 
0010 #include <KLocalizedString>
0011 
0012 #include "ui_newclass.h"
0013 
0014 using namespace KDevelop;
0015 
0016 struct KDevelop::ClassIdentifierPagePrivate
0017 {
0018     ClassIdentifierPagePrivate()
0019     {
0020     }
0021 
0022     Ui::NewClassDialog* classid = nullptr;
0023 };
0024 
0025 ClassIdentifierPage::ClassIdentifierPage(QWidget* parent)
0026 : QWidget(parent)
0027 , d(new ClassIdentifierPagePrivate())
0028 {
0029     d->classid = new Ui::NewClassDialog;
0030     d->classid->setupUi(this);
0031     d->classid->identifierLineEdit->setPlaceholderText(i18nc("@info:placeholder", "Class name, including any namespaces"));
0032     d->classid->keditlistwidget->lineEdit()->setPlaceholderText(i18nc("@info:placeholder", "Inheritance type and base class name"));
0033 
0034     d->classid->inheritanceLabel->setBuddy(d->classid->keditlistwidget->lineEdit());
0035 
0036     connect(d->classid->identifierLineEdit, &QLineEdit::textChanged, this, &ClassIdentifierPage::checkIdentifier);
0037 }
0038 
0039 ClassIdentifierPage::~ClassIdentifierPage()
0040 {
0041     delete d->classid;
0042     delete d;
0043 }
0044 
0045 QString ClassIdentifierPage::identifier() const
0046 {
0047     return d->classid->identifierLineEdit->text();
0048 }
0049 
0050 void ClassIdentifierPage::checkIdentifier()
0051 {
0052     emit isValid(!identifier().isEmpty());
0053 }
0054 
0055 QStringList ClassIdentifierPage::inheritanceList() const
0056 {
0057     return d->classid->keditlistwidget->items();
0058 }
0059 
0060 void ClassIdentifierPage::setInheritanceList (const QStringList& list)
0061 {
0062     d->classid->keditlistwidget->setItems(list);
0063 }
0064 
0065 void ClassIdentifierPage::setFocusToFirstEditWidget()
0066 {
0067     d->classid->identifierLineEdit->setFocus();
0068 }
0069 
0070 #include "moc_classidentifierpage.cpp"