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

0001 /*
0002     SPDX-FileCopyrightText: 2009 Aleix Pol <aleixpol@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "cmakehelpdocumentation.h"
0008 #include <QTreeView>
0009 #include <KLocalizedString>
0010 #include "cmakedoc.h"
0011 #include "icmakedocumentation.h"
0012 #include "cmakedocumentation.h"
0013 #include "cmakecommandscontents.h"
0014 #include <QEvent>
0015 #include <QHeaderView>
0016 #include <interfaces/icore.h>
0017 #include <interfaces/idocumentationcontroller.h>
0018 
0019 QString CMakeHomeDocumentation::name() const
0020 {
0021     return i18n("CMake Content Page");
0022 }
0023 
0024 KDevelop::IDocumentationProvider* CMakeHomeDocumentation::provider() const
0025 {
0026     return CMakeDoc::s_provider;
0027 }
0028 
0029 QWidget* CMakeHomeDocumentation::documentationWidget(KDevelop::DocumentationFindWidget*, QWidget* parent)
0030 {
0031     auto* contents=new QTreeView(parent);
0032     contents->viewport()->installEventFilter(this);
0033     contents->header()->setVisible(false);
0034 
0035     contents->setModel(CMakeDoc::s_provider->model());
0036     QObject::connect(contents, &QTreeView::clicked, CMakeDoc::s_provider->model(), &CMakeCommandsContents::showItemAt);
0037     return contents;
0038 }
0039 
0040 bool CMakeHomeDocumentation::eventFilter(QObject* watched, QEvent* event)
0041 {
0042     if (event->type() == QEvent::MouseButtonPress)
0043         event->ignore(); // Propagate to DocumentationView
0044     return QObject::eventFilter(watched, event);
0045 }
0046 
0047 #include "moc_cmakehelpdocumentation.cpp"