forked from qt-creator/qt-creator
ClangPchManager: Add reindex button in settings
After you have changed some settings you maybe want to reindex. Change-Id: I415f1597e6566fe45e5e25bccd359493921278c3 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -29,15 +29,23 @@
|
|||||||
#include <cpptools/cppmodelmanager.h>
|
#include <cpptools/cppmodelmanager.h>
|
||||||
#include <projectexplorer/project.h>
|
#include <projectexplorer/project.h>
|
||||||
|
|
||||||
|
#include "pchmanagerprojectupdater.h"
|
||||||
#include "preprocessormacrocollector.h"
|
#include "preprocessormacrocollector.h"
|
||||||
#include "preprocessormacrowidget.h"
|
#include "preprocessormacrowidget.h"
|
||||||
|
#include "qtcreatorprojectupdater.h"
|
||||||
|
|
||||||
namespace ClangPchManager {
|
namespace ClangPchManager {
|
||||||
ClangIndexingProjectSettingsWidget::ClangIndexingProjectSettingsWidget(ClangIndexingProjectSettings *settings)
|
ClangIndexingProjectSettingsWidget::ClangIndexingProjectSettingsWidget(
|
||||||
|
ClangIndexingProjectSettings *settings,
|
||||||
|
ProjectExplorer::Project *project,
|
||||||
|
QtCreatorProjectUpdater<PchManagerProjectUpdater> &projectUpdater)
|
||||||
: ui(new Ui::ClangIndexingProjectSettingsWidget)
|
: ui(new Ui::ClangIndexingProjectSettingsWidget)
|
||||||
|
, m_project(project)
|
||||||
|
, m_projectUpdater(projectUpdater)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
ui->preprocessorMacrosWidget->setSettings(settings);
|
ui->preprocessorMacrosWidget->setSettings(settings);
|
||||||
|
connect(ui->reindexButton, &QPushButton::clicked, this, &ClangIndexingProjectSettingsWidget::reindex);
|
||||||
}
|
}
|
||||||
|
|
||||||
ClangIndexingProjectSettingsWidget::~ClangIndexingProjectSettingsWidget()
|
ClangIndexingProjectSettingsWidget::~ClangIndexingProjectSettingsWidget()
|
||||||
@@ -58,4 +66,9 @@ void ClangIndexingProjectSettingsWidget::onProjectPartsUpdated(ProjectExplorer::
|
|||||||
ui->preprocessorMacrosWidget->setBasePreprocessorMacros(collector.macros());
|
ui->preprocessorMacrosWidget->setBasePreprocessorMacros(collector.macros());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ClangIndexingProjectSettingsWidget::reindex()
|
||||||
|
{
|
||||||
|
m_projectUpdater.projectPartsUpdated(m_project);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace ClangPchManager
|
} // namespace ClangPchManager
|
||||||
|
@@ -37,6 +37,10 @@ class ClangIndexingProjectSettingsWidget;
|
|||||||
|
|
||||||
namespace ClangPchManager {
|
namespace ClangPchManager {
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
class QtCreatorProjectUpdater;
|
||||||
|
class PchManagerProjectUpdater;
|
||||||
|
|
||||||
class ClangIndexingProjectSettings;
|
class ClangIndexingProjectSettings;
|
||||||
|
|
||||||
class ClangIndexingProjectSettingsWidget : public QWidget
|
class ClangIndexingProjectSettingsWidget : public QWidget
|
||||||
@@ -44,13 +48,19 @@ class ClangIndexingProjectSettingsWidget : public QWidget
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit ClangIndexingProjectSettingsWidget(ClangIndexingProjectSettings *settings);
|
explicit ClangIndexingProjectSettingsWidget(
|
||||||
|
ClangIndexingProjectSettings *settings,
|
||||||
|
ProjectExplorer::Project *project,
|
||||||
|
QtCreatorProjectUpdater<PchManagerProjectUpdater> &projectUpdater);
|
||||||
~ClangIndexingProjectSettingsWidget();
|
~ClangIndexingProjectSettingsWidget();
|
||||||
|
|
||||||
void onProjectPartsUpdated(ProjectExplorer::Project *project);
|
void onProjectPartsUpdated(ProjectExplorer::Project *project);
|
||||||
|
void reindex();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::ClangIndexingProjectSettingsWidget *ui;
|
Ui::ClangIndexingProjectSettingsWidget *ui;
|
||||||
|
ProjectExplorer::Project *m_project;
|
||||||
|
QtCreatorProjectUpdater<PchManagerProjectUpdater> &m_projectUpdater;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace ClangPchManager
|
} // namespace ClangPchManager
|
||||||
|
@@ -15,7 +15,50 @@
|
|||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
<item>
|
<item>
|
||||||
<widget class="ClangPchManager::PreprocessorMacroWidget" name="preprocessorMacrosWidget" native="true"/>
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<property name="sizeConstraint">
|
||||||
|
<enum>QLayout::SetDefaultConstraint</enum>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="reindexButton">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Reindex</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Expanding</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="ClangPchManager::PreprocessorMacroWidget" name="preprocessorMacrosWidget" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
@@ -62,13 +62,16 @@ QString backendProcessPath()
|
|||||||
+ QStringLiteral(QTC_HOST_EXE_SUFFIX);
|
+ QStringLiteral(QTC_HOST_EXE_SUFFIX);
|
||||||
}
|
}
|
||||||
|
|
||||||
void addIndexingProjectPaneWidget(ClangIndexingSettingsManager &settingsManager)
|
void addIndexingProjectPaneWidget(ClangIndexingSettingsManager &settingsManager,
|
||||||
|
QtCreatorProjectUpdater<PchManagerProjectUpdater> &projectUpdater)
|
||||||
{
|
{
|
||||||
auto factory = new ProjectExplorer::ProjectPanelFactory;
|
auto factory = new ProjectExplorer::ProjectPanelFactory;
|
||||||
factory->setPriority(120);
|
factory->setPriority(120);
|
||||||
factory->setDisplayName(ClangIndexingProjectSettingsWidget::tr("Clang Indexing"));
|
factory->setDisplayName(ClangIndexingProjectSettingsWidget::tr("Clang Indexing"));
|
||||||
factory->setCreateWidgetFunction([&](ProjectExplorer::Project *project) {
|
factory->setCreateWidgetFunction([&](ProjectExplorer::Project *project) {
|
||||||
auto widget = new ClangIndexingProjectSettingsWidget(settingsManager.settings(project));
|
auto widget = new ClangIndexingProjectSettingsWidget(settingsManager.settings(project),
|
||||||
|
project,
|
||||||
|
projectUpdater);
|
||||||
|
|
||||||
widget->onProjectPartsUpdated(project);
|
widget->onProjectPartsUpdated(project);
|
||||||
|
|
||||||
@@ -108,11 +111,11 @@ public:
|
|||||||
PchManagerClient pchManagerClient{pchCreationProgressManager, dependencyCreationProgressManager};
|
PchManagerClient pchManagerClient{pchCreationProgressManager, dependencyCreationProgressManager};
|
||||||
PchManagerConnectionClient connectionClient{&pchManagerClient};
|
PchManagerConnectionClient connectionClient{&pchManagerClient};
|
||||||
ClangIndexingSettingsManager settingsManager;
|
ClangIndexingSettingsManager settingsManager;
|
||||||
QtCreatorProjectUpdater<PchManagerProjectUpdater> projectUpdate{connectionClient.serverProxy(),
|
QtCreatorProjectUpdater<PchManagerProjectUpdater> projectUpdater{connectionClient.serverProxy(),
|
||||||
pchManagerClient,
|
pchManagerClient,
|
||||||
filePathCache,
|
filePathCache,
|
||||||
projectPartsStorage,
|
projectPartsStorage,
|
||||||
settingsManager};
|
settingsManager};
|
||||||
};
|
};
|
||||||
|
|
||||||
std::unique_ptr<ClangPchManagerPluginData> ClangPchManagerPlugin::d;
|
std::unique_ptr<ClangPchManagerPluginData> ClangPchManagerPlugin::d;
|
||||||
@@ -128,7 +131,7 @@ bool ClangPchManagerPlugin::initialize(const QStringList & /*arguments*/, QStrin
|
|||||||
|
|
||||||
startBackend();
|
startBackend();
|
||||||
|
|
||||||
addIndexingProjectPaneWidget(d->settingsManager);
|
addIndexingProjectPaneWidget(d->settingsManager, d->projectUpdater);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user