File indexing completed on 2024-05-19 11:21:40
0001 /* 0002 SPDX-License-Identifier: GPL-2.0-or-later 0003 SPDX-FileCopyrightText: 2010 Alexander Rieder <alexanderrieder@gmail.com> 0004 SPDX-FileCopyrightText: 2021-2022 Alexander Semke <alexander.semke@web.de> 0005 */ 0006 0007 #ifndef _VARIABLEMANAGERWIDGET_H 0008 #define _VARIABLEMANAGERWIDGET_H 0009 0010 #include <QWidget> 0011 0012 namespace Cantor{ 0013 class Session; 0014 } 0015 0016 class QAbstractItemModel; 0017 class QLineEdit; 0018 class QToolButton; 0019 class QTreeView; 0020 0021 class VariableManagerWidget : public QWidget 0022 { 0023 Q_OBJECT 0024 public: 0025 VariableManagerWidget(Cantor::Session*, QWidget*); 0026 ~VariableManagerWidget() override = default; 0027 0028 void setSession(Cantor::Session*); 0029 0030 public Q_SLOTS: 0031 void clearVariables(); 0032 0033 void save(); 0034 void load(); 0035 void newVariable(); 0036 0037 Q_SIGNALS: 0038 void runCommand(const QString&); 0039 0040 private: 0041 Cantor::Session* m_session{nullptr}; 0042 QAbstractItemModel* m_model{nullptr}; 0043 QTreeView* m_treeView{nullptr}; 0044 QToolButton* m_newBtn{nullptr}; 0045 QToolButton* m_loadBtn{nullptr}; 0046 QToolButton* m_saveBtn{nullptr}; 0047 QToolButton* m_clearBtn{nullptr}; 0048 QLineEdit* m_leFilter{nullptr}; 0049 QToolButton* m_bFilterOptions{nullptr}; 0050 QAction* m_caseSensitiveAction{nullptr}; 0051 QAction* m_matchCompleteWordAction{nullptr}; 0052 QAction* m_copyNameAction{nullptr}; 0053 QAction* m_copyValueAction{nullptr}; 0054 QAction* m_copyNameValueAction{nullptr}; 0055 0056 void contextMenuEvent(QContextMenuEvent*) override; 0057 0058 private Q_SLOTS: 0059 void filterTextChanged(const QString&); 0060 void toggleFilterOptionsMenu(bool); 0061 void updateButtons(); 0062 void copy(const QAction*) const; 0063 }; 0064 0065 #endif /* _VARIABLEMANAGERWIDGET_H */