File indexing completed on 2024-04-28 05:48:39
0001 // 0002 // Description: Widget for configuring build targets 0003 // 0004 // SPDX-FileCopyrightText: 2011-2022 Kåre Särs <kare.sars@iki.fi> 0005 // 0006 // SPDX-License-Identifier: LGPL-2.0-only 0007 0008 #pragma once 0009 0010 #include "TargetFilterProxyModel.h" 0011 #include "TargetHtmlDelegate.h" 0012 #include "TargetModel.h" 0013 #include <QComboBox> 0014 #include <QGridLayout> 0015 #include <QLabel> 0016 #include <QLineEdit> 0017 #include <QToolButton> 0018 #include <QTreeView> 0019 #include <QWidget> 0020 0021 class TargetsUi : public QWidget 0022 { 0023 Q_OBJECT 0024 0025 public: 0026 explicit TargetsUi(QObject *view, QWidget *parent = nullptr); 0027 0028 QLabel *targetLabel = nullptr; 0029 QComboBox *targetCombo = nullptr; 0030 QLineEdit *targetFilterEdit = nullptr; 0031 QToolButton *newTarget = nullptr; 0032 QToolButton *copyTarget = nullptr; 0033 QToolButton *moveTargetUp = nullptr; 0034 QToolButton *moveTargetDown = nullptr; 0035 QToolButton *deleteTarget = nullptr; 0036 0037 QTreeView *targetsView = nullptr; 0038 TargetModel targetsModel; 0039 TargetFilterProxyModel proxyModel; 0040 0041 QToolButton *addButton = nullptr; 0042 QToolButton *buildButton = nullptr; 0043 QToolButton *runButton = nullptr; 0044 0045 void updateTargetsButtonStates(); 0046 0047 public Q_SLOTS: 0048 void targetActivated(const QModelIndex &index); 0049 0050 Q_SIGNALS: 0051 void enterPressed(); 0052 0053 protected: 0054 bool eventFilter(QObject *obj, QEvent *event) override; 0055 0056 private: 0057 0058 TargetHtmlDelegate *m_delegate = nullptr; 0059 };