-
Notifications
You must be signed in to change notification settings - Fork 7
/
SC_component_propertiesmanager.h
85 lines (75 loc) · 3.66 KB
/
SC_component_propertiesmanager.h
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/***************************************************************************
** **
** This file is part of SpineCreator, an easy to use GUI for **
** describing spiking neural network models. **
** Copyright (C) 2013-2014 Alex Cope, Paul Richmond, Seb James **
** **
** This program is free software: you can redistribute it and/or modify **
** it under the terms of the GNU General Public License as published by **
** the Free Software Foundation, either version 3 of the License, or **
** (at your option) any later version. **
** **
** This program is distributed in the hope that it will be useful, **
** but WITHOUT ANY WARRANTY; without even the implied warranty of **
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the **
** GNU General Public License for more details. **
** **
** You should have received a copy of the GNU General Public License **
** along with this program. If not, see http://www.gnu.org/licenses/. **
** **
****************************************************************************
** Author: Paul Richmond **
** Website/Contact: http://bimpa.group.shef.ac.uk/ **
****************************************************************************/
#ifndef PROPERTIESMANAGER_H
#define PROPERTIESMANAGER_H
#include <QtGui>
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "SC_component_graphicsitems.h"
class FilterObject : public QObject
{
Q_OBJECT
protected:
bool eventFilter(QObject *, QEvent *event);
};
class PropertiesManager : public QFormLayout
{
Q_OBJECT
public:
explicit PropertiesManager(RootComponentItem *root);
~PropertiesManager();
void clear();
void createEmptySelectionProperties();
void createRegimeProperties(RegimeGraphicsItem *ri);
void createTimeDerivativeProperties(TimeDerivativeTextItem *tdi);
void createParameterListProperties();
void createParameterProperties(ParameterTextItem *pti);
void createStateVariableProperties(StateVariableTextItem *svti);
void createAliasProperties(AliasTextItem *ati);
void createPortListProperties();
void createAnalogPortProperties(AnalogPortTextItem *ap);
void createEventPortProperties(EventPortTextItem *ev);
void createImpulsePortProperties(ImpulsePortTextItem *ip);
void createOnConditionProperties(OnConditionGraphicsItem *oci);
void createOnEventProperties(OnEventGraphicsItem *oei);
void createOnImpulseProperties(OnImpulseGraphicsItem *oii);
void createStateAssignmentProperties(StateAssignmentTextItem *i);
void createEventOutProperties(EventOutTextItem *i);
void createImpulseOutProperties(ImpulseOutTextItem *i);
void updateReorderingIcons(GroupedTextItem *item);
protected:
static void clearLayoutItems(QLayout *layout);
QComboBox* getPrefixCombo(Prefix selected);
QComboBox* getUnitCombo(Unit selected);
private:
RootComponentItem *root;
QRegExpValidator *validator;
QRegExpValidator *componentNameValidator;
private:
QTextEdit* addNoteCommon (void);
void addNote (NineMLTextItem* ti);
void addNote (NineMLTransitionItem* ti);
void addNote (NineMLNodeItem* ni);
};
#endif // PROPERTIESMANAGER_H