diff --git a/plugins/clazy/config/commandlinewidget.cpp b/plugins/clazy/config/commandlinewidget.cpp index c97ce9f9a4..644e479e8b 100644 --- a/plugins/clazy/config/commandlinewidget.cpp +++ b/plugins/clazy/config/commandlinewidget.cpp @@ -1,76 +1,76 @@ /* This file is part of KDevelop Copyright 2018 Anton Anikin This program 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. This program 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 this program; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "commandlinewidget.h" #include "ui_commandlinewidget.h" #include #include namespace Clazy { CommandLineWidget::CommandLineWidget(QWidget* parent) : QWidget(parent) , m_ui(new Ui::CommandLineWidget) { m_ui->setupUi(this); m_ui->cmdEdit->setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont)); - connect(m_ui->cmdFilter->lineEdit(), &QLineEdit::textChanged, this, &CommandLineWidget::updateCommandLine); + connect(m_ui->cmdFilter, &QLineEdit::textChanged, this, &CommandLineWidget::updateCommandLine); connect(m_ui->cmdBreak, &QCheckBox::stateChanged, this, &CommandLineWidget::updateCommandLine); } CommandLineWidget::~CommandLineWidget() = default; void CommandLineWidget::setText(const QString& text) { if (m_text != text) { m_text = text; updateCommandLine(); } } void CommandLineWidget::updateCommandLine() { auto commandLine = m_text; if (m_ui->cmdBreak->isChecked()) { commandLine.replace(QLatin1String(" -"), QLatin1String("\n-")); commandLine.replace(QLatin1String(","), QLatin1String("\n,")); } - auto filterText = m_ui->cmdFilter->lineEdit()->text(); + auto filterText = m_ui->cmdFilter->text(); if (!filterText.isEmpty()) { QStringList lines = commandLine.split(QLatin1Char('\n')); QMutableStringListIterator i(lines); while (i.hasNext()) { if (!i.next().contains(filterText)) { i.remove(); } } commandLine = lines.join(QLatin1Char('\n')); } m_ui->cmdEdit->setPlainText(commandLine); } } diff --git a/plugins/clazy/config/commandlinewidget.ui b/plugins/clazy/config/commandlinewidget.ui index c2241b2174..0bb1dff233 100644 --- a/plugins/clazy/config/commandlinewidget.ui +++ b/plugins/clazy/config/commandlinewidget.ui @@ -1,67 +1,67 @@ Clazy::CommandLineWidget 0 0 400 300 0 0 0 0 Command Line - + + + Search + + + true + + Break lines true - - - KFilterProxySearchLine - QWidget -
kfilterproxysearchline.h
-
-
diff --git a/plugins/cppcheck/CMakeLists.txt b/plugins/cppcheck/CMakeLists.txt index 8e77f72b2d..8aebb189b0 100644 --- a/plugins/cppcheck/CMakeLists.txt +++ b/plugins/cppcheck/CMakeLists.txt @@ -1,63 +1,62 @@ add_definitions(-DTRANSLATION_DOMAIN=\"kdevcppcheck\") find_package(Cppcheck QUIET) set_package_properties(Cppcheck PROPERTIES DESCRIPTION "A tool for static C/C++ code analysis" URL "http://cppcheck.sourceforge.net/" PURPOSE "Recommended: required by the non-essential Cppcheck plugin" TYPE RUNTIME ) set(kdevcppcheck_core_SRCS parser.cpp job.cpp parameters.cpp utils.cpp ) ecm_qt_declare_logging_category(kdevcppcheck_core_SRCS HEADER debug.h IDENTIFIER KDEV_CPPCHECK CATEGORY_NAME "kdevelop.plugins.cppcheck" ) kconfig_add_kcfg_files(kdevcppcheck_core_SRCS config/globalsettings.kcfgc config/projectsettings.kcfgc ) add_library(kdevcppcheck_core STATIC ${kdevcppcheck_core_SRCS} ) target_link_libraries(kdevcppcheck_core KDev::Language KDev::Project KDev::Shell ) set(kdevcppcheck_SRCS plugin.cpp problemmodel.cpp config/globalconfigpage.cpp config/projectconfigpage.cpp ) ki18n_wrap_ui(kdevcppcheck_SRCS config/globalconfigpage.ui config/projectconfigpage.ui ) qt5_add_resources(kdevcppcheck_SRCS kdevcppcheck.qrc ) kdevplatform_add_plugin(kdevcppcheck JSON kdevcppcheck.json SOURCES ${kdevcppcheck_SRCS} ) target_link_libraries(kdevcppcheck kdevcppcheck_core - KF5::ItemViews ) ecm_install_icons(ICONS icons/128-apps-cppcheck.png DESTINATION ${KDE_INSTALL_ICONDIR} THEME hicolor) if(BUILD_TESTING) add_subdirectory(tests) endif() diff --git a/plugins/cppcheck/config/projectconfigpage.cpp b/plugins/cppcheck/config/projectconfigpage.cpp index 6b76c40117..a527b0c035 100644 --- a/plugins/cppcheck/config/projectconfigpage.cpp +++ b/plugins/cppcheck/config/projectconfigpage.cpp @@ -1,128 +1,128 @@ /* This file is part of KDevelop Copyright 2013 Christoph Thielecke Copyright 2016 Anton Anikin This program 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, o (at your option) any later version. This program 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 this program; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "projectconfigpage.h" #include "ui_projectconfigpage.h" #include "projectsettings.h" #include #include namespace cppcheck { ProjectConfigPage::ProjectConfigPage(KDevelop::IPlugin* plugin, KDevelop::IProject* project, QWidget* parent) : ConfigPage(plugin, new ProjectSettings, parent) , ui(new Ui::ProjectConfigPage) , m_parameters(new Parameters(project)) { configSkeleton()->setSharedConfig(project->projectConfiguration()); configSkeleton()->load(); ui->setupUi(this); ui->commandLine->setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont)); connect(this, &ProjectConfigPage::changed, this, &ProjectConfigPage::updateCommandLine); - connect(ui->commandLineFilter->lineEdit(), &QLineEdit::textChanged, this, &ProjectConfigPage::updateCommandLine); + connect(ui->commandLineFilter, &QLineEdit::textChanged, this, &ProjectConfigPage::updateCommandLine); connect(ui->commandLineBreaks, &QCheckBox::stateChanged, this, &ProjectConfigPage::updateCommandLine); } ProjectConfigPage::~ProjectConfigPage() { } QIcon ProjectConfigPage::icon() const { return QIcon::fromTheme(QStringLiteral("cppcheck")); } void ProjectConfigPage::defaults() { ConfigPage::defaults(); updateCommandLine(); } void ProjectConfigPage::reset() { ConfigPage::reset(); updateCommandLine(); } QString ProjectConfigPage::name() const { return i18n("Cppcheck"); } void ProjectConfigPage::updateCommandLine() { m_parameters->checkStyle = ui->kcfg_checkStyle->isChecked(); m_parameters->checkPerformance = ui->kcfg_checkPerformance->isChecked(); m_parameters->checkPortability = ui->kcfg_checkPortability->isChecked(); m_parameters->checkInformation = ui->kcfg_checkInformation->isChecked(); m_parameters->checkUnusedFunction = ui->kcfg_checkUnusedFunction->isChecked(); m_parameters->checkMissingInclude = ui->kcfg_checkMissingInclude->isChecked(); m_parameters->inconclusiveAnalysis = ui->kcfg_inconclusiveAnalysis->isChecked(); m_parameters->forceCheck = ui->kcfg_forceCheck->isChecked(); m_parameters->checkConfig = ui->kcfg_checkConfig->isChecked(); m_parameters->useProjectIncludes = ui->kcfg_useProjectIncludes->isChecked(); m_parameters->useSystemIncludes = ui->kcfg_useSystemIncludes->isChecked(); m_parameters->ignoredIncludes = ui->kcfg_ignoredIncludes->text(); m_parameters->extraParameters = ui->kcfg_extraParameters->text().trimmed(); QString message; QString commandLine = m_parameters->commandLine(message).join(QLatin1Char(' ')); if (message.isEmpty()) { ui->messageWidget->hide(); } else { ui->messageWidget->setText(message); ui->messageWidget->show(); } if (!ui->commandLineBreaks->isChecked()) { ui->commandLine->setPlainText(commandLine); return; } commandLine.replace(QLatin1String(" -"), QLatin1String("\n-")); - QString filterText = ui->commandLineFilter->lineEdit()->text(); + QString filterText = ui->commandLineFilter->text(); if (filterText.isEmpty()) { ui->commandLine->setPlainText(commandLine); ui->commandLineBreaks->setEnabled(true); return; } QStringList lines = commandLine.split(QLatin1Char('\n')); QMutableStringListIterator i(lines); while (i.hasNext()) { if (!i.next().contains(filterText)) { i.remove(); } } ui->commandLine->setPlainText(lines.join(QLatin1Char('\n'))); ui->commandLineBreaks->setEnabled(false); } } diff --git a/plugins/cppcheck/config/projectconfigpage.ui b/plugins/cppcheck/config/projectconfigpage.ui index 0724068eec..5b6eebcf69 100644 --- a/plugins/cppcheck/config/projectconfigpage.ui +++ b/plugins/cppcheck/config/projectconfigpage.ui @@ -1,396 +1,398 @@ cppcheck::ProjectConfigPage 0 0 443 502 0 0 0 Checks Check for unused functions. It is recommend to only enable this when the whole program is scanned Unused function false Allow that Cppcheck reports even though the analysis is inconclusive. There are false positives with this option. Each result must be carefully investigated before you know if it is good or bad. Inconclusive analysis Enable information messages Information false Warn if there are missing includes. For detailed information use 'check-config' Missing include false Enable performance messages Performance false <p>Force checking of files that have a lot of configurations. Error is printed if such a file is found so there is no reason to use this by default. If used together with '--max-configs=', the last option is the one that is effective.<br/><br/>Be careful with using this option - it can dramatically slow checking.</p> Force checking Enable portability messages Portability false Enable all coding style checks. All messages with the severities 'style', 'performance' and 'portability' are enabled. Style false Check Cppcheck configuration. The normal code analysis is disabled by this flag. Check config Include Directories Add 'project' include directories to cppcheck arguments. This option adds only paths related with project's root and build directories. Use 'project' include dirs false false <p>Add other, 'system' include directories to cppcheck arguments.<br/><br/>Be careful with using this option - it can dramatically slow checking.</p> Use 'system' include dirs true false &Ignored includes: kcfg_ignoredIncludes <html> <p>Defines semicolon-separated list of ignored include directories.</p> <p>You can use the following placeholders:</p> <p><b><tt>%p</tt></b> - Gets replaced by the URL of the project's root directory.</p> <p><b><tt>%b</tt></b> - Gets replaced by the URL of the project's build directory.</p> </html> Qt::Vertical 20 40 Extra Parameters QLayout::SetDefaultConstraint Ex&tra parameters: kcfg_extraParameters <html> <p>Defines additional parameters for cppcheck (see documentation).</p> <p>You can use the following placeholders:</p> <p><b><tt>%p</tt></b> - Gets replaced by the URL of the project's root directory.</p> <p><b><tt>%b</tt></b> - Gets replaced by the URL of the project's build directory.</p> </html> Qt::Vertical 20 40 0 0 Command Line - + + + Search + + + true + + Break lines true true true true false KMessageWidget::Error - - KFilterProxySearchLine - QWidget -
kfilterproxysearchline.h
-
KMessageWidget QFrame
kmessagewidget.h
tabWidget kcfg_checkStyle kcfg_checkPerformance kcfg_checkPortability kcfg_checkInformation kcfg_checkUnusedFunction kcfg_checkMissingInclude kcfg_inconclusiveAnalysis kcfg_forceCheck kcfg_checkConfig kcfg_useProjectIncludes kcfg_useSystemIncludes kcfg_ignoredIncludes kcfg_extraParameters commandLineBreaks commandLine kcfg_useProjectIncludes toggled(bool) kcfg_useSystemIncludes setEnabled(bool) 226 58 665 58
diff --git a/plugins/kdeprovider/CMakeLists.txt b/plugins/kdeprovider/CMakeLists.txt index f6e6a07a63..72458248f6 100644 --- a/plugins/kdeprovider/CMakeLists.txt +++ b/plugins/kdeprovider/CMakeLists.txt @@ -1,16 +1,20 @@ add_definitions(-DTRANSLATION_DOMAIN=\"kdevkdeprovider\") if(BUILD_TESTING) add_subdirectory(tests) endif() set(kdevkdeprovider_PART_SRCS kdeprojectsmodel.cpp + filterproxysearchline.cpp kdeproviderwidget.cpp kdeproviderplugin.cpp kdeprojectsmodel.cpp kdeprojectsreader.cpp ) kconfig_add_kcfg_files(kdevkdeprovider_PART_SRCS kdeconfig.kcfgc) ki18n_wrap_ui(kdevkdeprovider_PART_SRCS kdeconfig.ui) kdevplatform_add_plugin(kdevkdeprovider JSON kdevkdeprovider.json SOURCES ${kdevkdeprovider_PART_SRCS}) -target_link_libraries(kdevkdeprovider KF5::ItemViews KDev::Interfaces KDev::Vcs) +target_link_libraries(kdevkdeprovider + KDev::Interfaces + KDev::Vcs +) diff --git a/plugins/kdeprovider/filterproxysearchline.cpp b/plugins/kdeprovider/filterproxysearchline.cpp new file mode 100644 index 0000000000..bb8e4abf94 --- /dev/null +++ b/plugins/kdeprovider/filterproxysearchline.cpp @@ -0,0 +1,58 @@ +/* + * This file is part of KDevelop + * + * Copyright 2018 Friedrich W. H. Kossebau + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program 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 this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "filterproxysearchline.h" + +// KF +#include +// Qt +#include +#include + + +FilterProxySearchLine::FilterProxySearchLine(QWidget *parent) + : QLineEdit(parent) + , m_delayTimer(new QTimer(this)) +{ + setClearButtonEnabled(true); + setPlaceholderText(i18n("Search")); + + m_delayTimer->setSingleShot(true); + m_delayTimer->setInterval(300); + connect(m_delayTimer, &QTimer::timeout, + this, &FilterProxySearchLine::updateFilter); + connect(this, &FilterProxySearchLine::textChanged, + m_delayTimer, static_cast(&QTimer::start)); +} + +void FilterProxySearchLine::setFilterProxyModel(QSortFilterProxyModel* filterProxyModel) +{ + m_filterProxyModel = filterProxyModel; +} + +void FilterProxySearchLine::updateFilter() +{ + if (!m_filterProxyModel) { + return; + } + + m_filterProxyModel->setFilterFixedString(text()); +} diff --git a/plugins/kdeprovider/kdeproviderwidget.h b/plugins/kdeprovider/filterproxysearchline.h similarity index 52% copy from plugins/kdeprovider/kdeproviderwidget.h copy to plugins/kdeprovider/filterproxysearchline.h index b7b0d8b2e3..a0507ee4eb 100644 --- a/plugins/kdeprovider/kdeproviderwidget.h +++ b/plugins/kdeprovider/filterproxysearchline.h @@ -1,46 +1,49 @@ /* * This file is part of KDevelop - * Copyright 2010 Aleix Pol Gonzalez + * + * Copyright 2018 Friedrich W. H. Kossebau * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This program 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 this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#ifndef KDEPROVIDERWIDGET_H -#define KDEPROVIDERWIDGET_H +#ifndef KDEPROVIDER_FILTERPROXYSEARCHLINE_H +#define KDEPROVIDER_FILTERPROXYSEARCHLINE_H + +// Qt +#include -#include +class QTimer; +class QSortFilterProxyModel; -class QModelIndex; -class KFilterProxySearchLine; -class QListView; -class KDEProviderWidget : public KDevelop::IProjectProviderWidget +class FilterProxySearchLine : public QLineEdit { Q_OBJECT - public: - explicit KDEProviderWidget(QWidget* parent = nullptr); - - KDevelop::VcsJob* createWorkingCopy(const QUrl &destinationDirectory) override; - bool isCorrect() const override; - - private Q_SLOTS: - void showSettings(); - void projectIndexChanged(const QModelIndex& currentIndex); - - private: - QListView* m_projects; + +public: + explicit FilterProxySearchLine(QWidget* parent = nullptr); + +public: + void setFilterProxyModel(QSortFilterProxyModel* filterProxyModel); + +private: + void updateFilter(); + +private: + QTimer* m_delayTimer; + QSortFilterProxyModel* m_filterProxyModel = nullptr; }; -#endif // KDEPROVIDERWIDGET_H +#endif diff --git a/plugins/kdeprovider/kdeproviderwidget.cpp b/plugins/kdeprovider/kdeproviderwidget.cpp index 717bf6cb6f..551229a572 100644 --- a/plugins/kdeprovider/kdeproviderwidget.cpp +++ b/plugins/kdeprovider/kdeproviderwidget.cpp @@ -1,136 +1,139 @@ /* * This file is part of KDevelop * Copyright 2010 Aleix Pol Gonzalez * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This program 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 this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "kdeproviderwidget.h" #include #include #include #include #include #include #include #include #include "ui_kdeconfig.h" +#include "filterproxysearchline.h" #include "kdeconfig.h" #include "kdeprojectsmodel.h" #include "kdeprojectsreader.h" #include -#include + #include #include using namespace KDevelop; KDEProviderWidget::KDEProviderWidget(QWidget* parent) : IProjectProviderWidget(parent) { setLayout(new QVBoxLayout); m_projects = new QListView(this); QHBoxLayout* topLayout = new QHBoxLayout; - KFilterProxySearchLine* filterLine = new KFilterProxySearchLine(this); + auto filterLine = new FilterProxySearchLine(this); KDEProjectsModel* model = new KDEProjectsModel(this); KDEProjectsReader* reader = new KDEProjectsReader(model, model); connect(reader, &KDEProjectsReader::downloadDone, reader, &KDEProjectsReader::deleteLater); connect(m_projects, &QListView::clicked, this, &KDEProviderWidget::projectIndexChanged); topLayout->addWidget(filterLine); QPushButton* settings=new QPushButton(QIcon::fromTheme(QStringLiteral("configure")), i18n("Settings"), this); settings->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed); connect(settings, &QPushButton::clicked, this, &KDEProviderWidget::showSettings); topLayout->addWidget(settings); layout()->addItem(topLayout); layout()->addWidget(m_projects); QSortFilterProxyModel* proxyModel = new QSortFilterProxyModel(this); proxyModel->setSourceModel(model); proxyModel->setDynamicSortFilter(true); proxyModel->sort(0); proxyModel->setSortCaseSensitivity(Qt::CaseInsensitive); + proxyModel->setFilterKeyColumn(-1); + proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive); m_projects->setModel(proxyModel); m_projects->setEditTriggers(QAbstractItemView::NoEditTriggers); - filterLine->setProxy(proxyModel); + filterLine->setFilterProxyModel(proxyModel); } VcsLocation extractLocation(const QModelIndex& pos) { QString gitUrl=KDEProviderSettings::self()->gitProtocol(); if(gitUrl==QLatin1String("kde:")) { return VcsLocation(QUrl(QLatin1String("kde:")+pos.data(KDEProjectsModel::IdentifierRole).toString())); } else { QMap urls = pos.data(KDEProjectsModel::VcsLocationRole).toMap(); return VcsLocation(urls[gitUrl].toUrl()); } } VcsJob* KDEProviderWidget::createWorkingCopy(const QUrl &destinationDirectory) { QModelIndex pos = m_projects->currentIndex(); if(!pos.isValid()) return nullptr; IPlugin* plugin = ICore::self()->pluginController()->pluginForExtension(QStringLiteral("org.kdevelop.IBasicVersionControl"), QStringLiteral("kdevgit")); if (!plugin) { KMessageBox::error(nullptr, i18n("The Git plugin could not be loaded which is required to download a KDE project."), i18n("KDE Provider Error")); return nullptr; } IBasicVersionControl* vcIface = plugin->extension(); VcsJob* ret = vcIface->createWorkingCopy(extractLocation(pos), destinationDirectory); return ret; } bool KDEProviderWidget::isCorrect() const { return m_projects->currentIndex().isValid(); } void KDEProviderWidget::showSettings() { KConfigDialog* dialog = new KConfigDialog(this, QStringLiteral("settings"), KDEProviderSettings::self()); dialog->setFaceType(KPageDialog::Auto); QWidget* page = new QWidget(dialog); Ui::KDEConfig configUi; configUi.setupUi(page); configUi.kcfg_gitProtocol->setProperty("kcfg_property", QByteArray("currentText")); int idx = configUi.kcfg_gitProtocol->findText(KDEProviderSettings::self()->gitProtocol()); if(idx>=0) { configUi.kcfg_gitProtocol->setCurrentIndex(idx); } // TODO port to KF5 // dialog->button(KDialog::Default)->setVisible(false); dialog->addPage(page, i18n("General") ); dialog->show(); } void KDEProviderWidget::projectIndexChanged(const QModelIndex& currentIndex) { if (currentIndex.isValid()) { QString currentProjectName = currentIndex.data(Qt::DisplayRole).toString(); emit changed(currentProjectName); } } diff --git a/plugins/kdeprovider/kdeproviderwidget.h b/plugins/kdeprovider/kdeproviderwidget.h index b7b0d8b2e3..7b9ed6bee5 100644 --- a/plugins/kdeprovider/kdeproviderwidget.h +++ b/plugins/kdeprovider/kdeproviderwidget.h @@ -1,46 +1,46 @@ /* * This file is part of KDevelop * Copyright 2010 Aleix Pol Gonzalez * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This program 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 this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef KDEPROVIDERWIDGET_H #define KDEPROVIDERWIDGET_H #include class QModelIndex; -class KFilterProxySearchLine; class QListView; + class KDEProviderWidget : public KDevelop::IProjectProviderWidget { Q_OBJECT public: explicit KDEProviderWidget(QWidget* parent = nullptr); KDevelop::VcsJob* createWorkingCopy(const QUrl &destinationDirectory) override; bool isCorrect() const override; private Q_SLOTS: void showSettings(); void projectIndexChanged(const QModelIndex& currentIndex); private: QListView* m_projects; }; #endif // KDEPROVIDERWIDGET_H