1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
/*
SPDX-FileCopyrightText: 2006 Matt Rogers <mattr@kde.org>
SPDX-FileCopyrightText: 2007 Aleix Pol <aleixpol@gmail.com>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef CMAKEPREFERENCES_H
#define CMAKEPREFERENCES_H
#include "cmakecachemodel.h"
#include "cmakeextraargumentshistory.h"
#include <project/projectconfigpage.h>
#include <util/path.h>
class CMakeSettings;
namespace Ui { class CMakeBuildSettings; }
/**
* @author Matt Rogers <mattr@kde.org>
* @author Aleix Pol <aleixpol@gmail.com>
*/
class CMakePreferences : public KDevelop::ConfigPage
{
Q_OBJECT
public:
explicit CMakePreferences(KDevelop::IPlugin* plugin, const KDevelop::ProjectConfigOptions& options, QWidget* parent = nullptr);
~CMakePreferences() override;
QString name() const override;
QString fullName() const override;
QIcon icon() const override;
void apply() override;
void reset() override;
void defaults() override;
private Q_SLOTS:
void listSelectionChanged ( const QModelIndex& current, const QModelIndex& );
void showInternal(int state);
void cacheEdited(QStandardItem * ) { emit changed(); }
void buildDirChanged(int index);
void cacheUpdated();
void createBuildDir();
void removeBuildDir();
void showAdvanced(bool v);
void configureCacheView();
private:
void configure();
void initAdvanced();
void setBuildType(const QString& buildType);
KDevelop::IProject* m_project;
KDevelop::Path m_srcFolder;
KDevelop::Path m_subprojFolder;
void updateCache( const KDevelop::Path & );
Ui::CMakeBuildSettings* m_prefsUi;
CMakeCacheModel* m_currentModel;
CMakeExtraArgumentsHistory* m_extraArgumentsHistory;
};
#endif
|