File indexing completed on 2024-05-12 04:38:55

0001 /*
0002     SPDX-FileCopyrightText: 2010 Aleix Pol <aleixpol@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "standardvcslocationwidget.h"
0008 #include <QVBoxLayout>
0009 #include <KUrlRequester>
0010 #include <KLocalizedString>
0011 #include <vcs/vcslocation.h>
0012 
0013 using namespace KDevelop;
0014 
0015 StandardVcsLocationWidget::StandardVcsLocationWidget(QWidget* parent, Qt::WindowFlags f)
0016     : VcsLocationWidget(parent, f)
0017 {
0018     auto* widgetLayout = new QVBoxLayout;
0019     widgetLayout->setContentsMargins(0, 0, 0, 0);
0020     setLayout(widgetLayout);
0021 
0022     m_urlWidget = new KUrlRequester(this);
0023     m_urlWidget->setPlaceholderText(i18nc("@info:placeholder", "Enter the repository URL..."));
0024     layout()->addWidget(m_urlWidget);
0025     
0026     connect(m_urlWidget, &KUrlRequester::textChanged, this, &StandardVcsLocationWidget::textChanged);
0027 }
0028 
0029 void StandardVcsLocationWidget::setLocation(const QUrl& remoteLocation)
0030 {
0031     setUrl(remoteLocation);
0032 }
0033 
0034 void StandardVcsLocationWidget::setUrl(const QUrl& url)
0035 {
0036     m_urlWidget->setUrl(url);
0037 }
0038 
0039 QUrl StandardVcsLocationWidget::url() const
0040 {
0041     return m_urlWidget->url();
0042 }
0043 
0044 VcsLocation StandardVcsLocationWidget::location() const
0045 {
0046     VcsLocation v(m_urlWidget->url());
0047     return v;
0048 }
0049 
0050 bool StandardVcsLocationWidget::isCorrect() const
0051 {
0052     return !m_urlWidget->url().isEmpty();
0053 }
0054 
0055 void StandardVcsLocationWidget::textChanged(const QString& /*str*/)
0056 {
0057     emit changed();
0058 }
0059 
0060 QString KDevelop::StandardVcsLocationWidget::projectName() const
0061 {
0062     return m_urlWidget->url().fileName();
0063 }
0064 
0065 #include "moc_standardvcslocationwidget.cpp"