Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Source/QtDialog/EnvironmentDialog.h
5000 views
1
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2
file LICENSE.rst or https://cmake.org/licensing for details. */
3
#pragma once
4
5
#include <QDialog>
6
#include <QObject>
7
#include <QProcessEnvironment>
8
#include <QSortFilterProxyModel>
9
#include <QStandardItemModel>
10
11
#include "ui_EnvironmentDialog.h"
12
13
class EnvironmentItemModel : public QStandardItemModel
14
{
15
Q_OBJECT
16
public:
17
EnvironmentItemModel(QProcessEnvironment const& environment,
18
QObject* parent = nullptr);
19
20
QProcessEnvironment environment() const;
21
void clear();
22
23
QModelIndex buddy(QModelIndex const& index) const override;
24
25
public slots:
26
void appendVariable(QString const& key, QString const& value);
27
void insertVariable(int row, QString const& key, QString const& value);
28
};
29
30
class EnvironmentSearchFilter : public QSortFilterProxyModel
31
{
32
Q_OBJECT
33
public:
34
EnvironmentSearchFilter(QObject* parent = nullptr);
35
36
protected:
37
bool filterAcceptsRow(int row, QModelIndex const& parent) const override;
38
};
39
40
class EnvironmentDialog
41
: public QDialog
42
, public Ui::EnvironmentDialog
43
{
44
Q_OBJECT
45
public:
46
EnvironmentDialog(QProcessEnvironment const& environment,
47
QWidget* parent = nullptr);
48
49
QProcessEnvironment environment() const;
50
51
protected slots:
52
void addEntry();
53
void removeSelectedEntries();
54
void selectionChanged();
55
56
private:
57
EnvironmentItemModel* m_model;
58
EnvironmentSearchFilter* m_filter;
59
};
60
61