File indexing completed on 2024-05-12 04:39:40

0001 /*
0002     SPDX-FileCopyrightText: 2014 Kevin Funk <kfunk@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005 */
0006 
0007 #include "noprojectcustomincludepaths.h"
0008 
0009 #include "ui_noprojectcustomincludepaths.h"
0010 
0011 #include <KLocalizedString>
0012 
0013 #include <QFileDialog>
0014 #include <QUrl>
0015 
0016 
0017 NoProjectCustomIncludePaths::NoProjectCustomIncludePaths(QWidget* parent)
0018     : QDialog(parent),
0019       m_ui(new Ui::CustomIncludePaths)
0020 {
0021     m_ui->setupUi(this);
0022     m_ui->storageDirectory->setMode(KFile::Directory);
0023 
0024     setWindowTitle(i18nc("@title:window", "Setup Custom Include Paths"));
0025 
0026     connect(m_ui->directorySelector, &QPushButton::clicked, this, &NoProjectCustomIncludePaths::openAddIncludeDirectoryDialog);
0027 }
0028 
0029 void NoProjectCustomIncludePaths::setStorageDirectory(const QString& path)
0030 {
0031     m_ui->storageDirectory->setUrl(QUrl::fromLocalFile(path));
0032 }
0033 
0034 QString NoProjectCustomIncludePaths::storageDirectory() const
0035 {
0036     return m_ui->storageDirectory->url().toLocalFile();
0037 }
0038 
0039 void NoProjectCustomIncludePaths::appendCustomIncludePath(const QString& path)
0040 {
0041     m_ui->customIncludePaths->appendPlainText(path);
0042 }
0043 
0044 QStringList NoProjectCustomIncludePaths::customIncludePaths() const
0045 {
0046     const QString pathsText = m_ui->customIncludePaths->document()->toPlainText();
0047     return pathsText.split(QLatin1Char('\n'), Qt::SkipEmptyParts);
0048 }
0049 
0050 void NoProjectCustomIncludePaths::setCustomIncludePaths(const QStringList& paths)
0051 {
0052     m_ui->customIncludePaths->setPlainText(paths.join(QLatin1Char('\n')));
0053 }
0054 
0055 void NoProjectCustomIncludePaths::openAddIncludeDirectoryDialog()
0056 {
0057     const QString dirName = QFileDialog::getExistingDirectory(this, i18nc("@title:window", "Select Directory to Include"));
0058     if (dirName.isEmpty())
0059         return;
0060 
0061     appendCustomIncludePath(dirName);
0062 }
0063 
0064 #include "moc_noprojectcustomincludepaths.cpp"