21 #ifndef TULIPITEMEDITORCREATORS_H 22 #define TULIPITEMEDITORCREATORS_H 24 #include <tulip/tulipconf.h> 25 #include <tulip/PropertyTypes.h> 26 #include <tulip/TlpQtTools.h> 33 class QStyleOptionViewItem;
38 class PropertyInterface;
40 class TLP_QT_SCOPE TulipItemEditorCreator {
42 virtual ~TulipItemEditorCreator() {}
43 virtual QWidget* createWidget(QWidget*)
const=0;
44 virtual bool paint(QPainter*,
const QStyleOptionViewItem&,
const QVariant&)
const;
45 virtual QString displayText(
const QVariant &)
const {
49 virtual QSize sizeHint(
const QStyleOptionViewItem &,
const QModelIndex &)
const;
51 virtual void setEditorData(QWidget*,
const QVariant&,
bool isMandatory,
tlp::Graph* g=NULL)=0;
52 virtual QVariant editorData(QWidget*,
tlp::Graph* g=NULL)=0;
57 class TLP_QT_SCOPE StringDisplayEditorCreator:
public TulipItemEditorCreator {
59 inline QString displayText(
const QVariant& v)
const {
64 class TLP_QT_SCOPE ColorEditorCreator:
public tlp::TulipItemEditorCreator {
66 QWidget* createWidget(QWidget*)
const;
67 bool paint(QPainter*,
const QStyleOptionViewItem&,
const QVariant&)
const;
68 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
69 virtual QVariant editorData(QWidget*,
tlp::Graph*);
73 class LineEditEditorCreator:
public StringDisplayEditorCreator<T> {
75 QWidget* createWidget(QWidget*)
const;
76 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
77 virtual QVariant editorData(QWidget*,
tlp::Graph*);
81 class MultiLinesEditEditorCreator:
public StringDisplayEditorCreator<T> {
83 QWidget* createWidget(QWidget*)
const;
84 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
85 virtual QVariant editorData(QWidget*,
tlp::Graph*);
86 virtual QSize sizeHint(
const QStyleOptionViewItem &,
const QModelIndex &)
const;
87 bool paint(QPainter*,
const QStyleOptionViewItem&,
const QVariant&)
const;
90 class TLP_QT_SCOPE BooleanEditorCreator:
public TulipItemEditorCreator {
92 virtual QWidget* createWidget(QWidget*)
const;
93 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
94 virtual QVariant editorData(QWidget*,
tlp::Graph*);
95 virtual QString displayText(
const QVariant &)
const;
98 class TLP_QT_SCOPE CoordEditorCreator:
public StringDisplayEditorCreator<tlp::PointType> {
101 CoordEditorCreator():editSize(false) {}
102 QWidget* createWidget(QWidget*)
const;
103 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
104 virtual QVariant editorData(QWidget*,
tlp::Graph*);
108 template<
typename PROP>
109 class PropertyEditorCreator:
public tlp::TulipItemEditorCreator {
111 QWidget* createWidget(QWidget*)
const;
112 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
113 virtual QVariant editorData(QWidget*,
tlp::Graph*);
114 virtual QString displayText(
const QVariant &)
const;
117 class TLP_QT_SCOPE PropertyInterfaceEditorCreator:
public tlp::TulipItemEditorCreator {
119 QWidget* createWidget(QWidget*)
const;
120 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
121 virtual QVariant editorData(QWidget*,
tlp::Graph*);
122 virtual QString displayText(
const QVariant &)
const;
125 class TLP_QT_SCOPE NumericPropertyEditorCreator:
public tlp::TulipItemEditorCreator {
127 QWidget* createWidget(QWidget*)
const;
128 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
129 virtual QVariant editorData(QWidget*,
tlp::Graph*);
130 virtual QString displayText(
const QVariant &)
const;
133 class TLP_QT_SCOPE ColorScaleEditorCreator:
public tlp::TulipItemEditorCreator {
135 QWidget* createWidget(QWidget*)
const;
136 bool paint(QPainter*,
const QStyleOptionViewItem&,
const QVariant&)
const;
137 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
138 virtual QVariant editorData(QWidget*,
tlp::Graph*);
141 class TLP_QT_SCOPE StringCollectionEditorCreator:
public tlp::TulipItemEditorCreator {
143 QWidget* createWidget(QWidget*)
const;
144 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
145 virtual QVariant editorData(QWidget*,
tlp::Graph*);
146 virtual QString displayText(
const QVariant &)
const;
149 class TLP_QT_SCOPE TulipFileDescriptorEditorCreator:
public tlp::TulipItemEditorCreator {
151 QWidget* createWidget(QWidget*)
const;
152 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
153 virtual QVariant editorData(QWidget*,
tlp::Graph*);
154 virtual bool paint(QPainter *,
const QStyleOptionViewItem &,
const QVariant &)
const;
155 QSize sizeHint(
const QStyleOptionViewItem &,
const QModelIndex &)
const;
158 class TLP_QT_SCOPE TextureFileEditorCreator:
public tlp::TulipItemEditorCreator {
160 QWidget* createWidget(QWidget*)
const;
161 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
162 virtual QVariant editorData(QWidget*,
tlp::Graph*);
163 virtual bool paint(QPainter *,
const QStyleOptionViewItem &,
const QVariant &)
const;
164 QSize sizeHint(
const QStyleOptionViewItem &,
const QModelIndex &)
const;
167 class TLP_QT_SCOPE TulipFontAwesomeIconCreator:
public tlp::TulipItemEditorCreator {
169 QWidget* createWidget(QWidget*)
const;
170 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
171 virtual QVariant editorData(QWidget*,
tlp::Graph*);
172 virtual bool paint(QPainter *,
const QStyleOptionViewItem &,
const QVariant &)
const;
173 QSize sizeHint(
const QStyleOptionViewItem &,
const QModelIndex &)
const;
174 virtual QString displayText(
const QVariant &)
const;
177 class TLP_QT_SCOPE NodeShapeEditorCreator:
public tlp::TulipItemEditorCreator {
179 QWidget* createWidget(QWidget*)
const;
180 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
181 virtual QVariant editorData(QWidget*,
tlp::Graph*);
182 virtual QString displayText(
const QVariant &)
const;
183 virtual bool paint(QPainter*,
const QStyleOptionViewItem&,
const QVariant&)
const;
184 QSize sizeHint(
const QStyleOptionViewItem &,
const QModelIndex &)
const;
187 class TLP_QT_SCOPE EdgeExtremityShapeEditorCreator:
public tlp::TulipItemEditorCreator {
189 QWidget* createWidget(QWidget*)
const;
190 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
191 virtual QVariant editorData(QWidget*,
tlp::Graph*);
192 virtual QString displayText(
const QVariant &)
const;
193 virtual bool paint(QPainter*,
const QStyleOptionViewItem&,
const QVariant&)
const;
194 QSize sizeHint(
const QStyleOptionViewItem &,
const QModelIndex &)
const;
197 class TLP_QT_SCOPE EdgeShapeEditorCreator:
public tlp::TulipItemEditorCreator {
199 QWidget* createWidget(QWidget*)
const;
200 virtual void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
201 virtual QVariant editorData(QWidget*,
tlp::Graph*);
202 virtual QString displayText(
const QVariant &)
const;
205 template<
typename ElementType>
206 class VectorEditorCreator :
public tlp::TulipItemEditorCreator {
208 QWidget* createWidget(QWidget* parent)
const;
209 virtual void setEditorData(QWidget* editor,
const QVariant& data,
bool,
tlp::Graph*);
210 virtual QVariant editorData(QWidget* editor,
tlp::Graph*);
211 virtual QString displayText(
const QVariant &data)
const;
214 class QVectorBoolEditorCreator :
public tlp::TulipItemEditorCreator {
216 QWidget* createWidget(QWidget* parent)
const;
217 virtual void setEditorData(QWidget* editor,
const QVariant& data,
bool,
tlp::Graph*);
218 virtual QVariant editorData(QWidget* editor,
tlp::Graph*);
219 virtual QString displayText(
const QVariant &data)
const;
222 class TLP_QT_SCOPE TulipFontEditorCreator:
public tlp::TulipItemEditorCreator {
224 QWidget* createWidget(QWidget*)
const;
225 void setEditorData(QWidget*,
const QVariant&,
bool,
tlp::Graph*);
227 QString displayText(
const QVariant &)
const;
230 class TLP_QT_SCOPE TulipLabelPositionEditorCreator:
public tlp::TulipItemEditorCreator {
231 static QVector<QString> POSITION_LABEL;
233 QWidget* createWidget(QWidget*)
const;
234 void setEditorData(QWidget*w,
const QVariant&var,
bool,
tlp::Graph*);
236 QString displayText(
const QVariant &)
const;
239 class TLP_QT_SCOPE GraphEditorCreator:
public tlp::TulipItemEditorCreator {
241 QWidget* createWidget(QWidget* parent)
const;
242 void setEditorData(QWidget*w,
const QVariant&var,
bool,
tlp::Graph*);
244 QString displayText(
const QVariant &)
const;
247 class TLP_QT_SCOPE EdgeSetEditorCreator:
public tlp::TulipItemEditorCreator {
249 QWidget* createWidget(QWidget* parent)
const;
250 void setEditorData(QWidget*w,
const QVariant&var,
bool,
tlp::Graph*);
252 QString displayText(
const QVariant &)
const;
255 class TLP_QT_SCOPE QStringEditorCreator:
public tlp::TulipItemEditorCreator {
257 QWidget* createWidget(QWidget* parent)
const;
258 void setEditorData(QWidget*w,
const QVariant&var,
bool,
tlp::Graph*);
260 QString displayText(
const QVariant &)
const;
264 std::string propName;
267 class TLP_QT_SCOPE StdStringEditorCreator:
public QStringEditorCreator {
269 void setEditorData(QWidget*w,
const QVariant&var,
bool,
tlp::Graph*);
271 QString displayText(
const QVariant &)
const;
274 class TLP_QT_SCOPE QStringListEditorCreator:
public tlp::TulipItemEditorCreator {
276 QWidget* createWidget(QWidget* parent)
const;
277 void setEditorData(QWidget*w,
const QVariant& var,
bool,
tlp::Graph*);
279 QString displayText(
const QVariant &)
const;
282 TLP_QT_SCOPE
void addIconToPool(
const QString &iconName,
const QIcon &icon);
287 #if defined(__clang__) 288 template class tlp::StringDisplayEditorCreator<tlp::PointType>;
289 template class tlp::StringDisplayEditorCreator<tlp::SizeType>;
292 inline QString& truncateText(QString &text,
const QString &trailingChars =
" ...",
int maxChars=45) {
293 if (text.size() > maxChars) {
294 text.truncate(maxChars - trailingChars.length());
295 text.append(trailingChars);
301 #include "cxx/TulipItemEditorCreators.cxx" 303 #endif // TULIPITEMEDITORCREATORS_H
PropertyInterface describes the interface of a graph property.
QString tlpStringToQString(const std::string &toConvert)
Convert a Tulip UTF-8 encoded std::string to a QString.