diff options
author | Ben Boeckel <MathStuf@gmail.com> | 2009-05-02 16:58:30 -0400 |
---|---|---|
committer | Ben Boeckel <MathStuf@gmail.com> | 2009-05-02 16:58:30 -0400 |
commit | 6624cd2a256fb446f7851570b9c300173407de22 (patch) | |
tree | eaf775d18ac9359c59c103155245d338dadfc866 /sigmodr/tree | |
parent | bd41fbd5911596fa0366086afb30441c82756c5a (diff) | |
download | sigen-6624cd2a256fb446f7851570b9c300173407de22.tar.gz sigen-6624cd2a256fb446f7851570b9c300173407de22.tar.xz sigen-6624cd2a256fb446f7851570b9c300173407de22.zip |
Connect up to set the dirty flag with the widget
Diffstat (limited to 'sigmodr/tree')
-rw-r--r-- | sigmodr/tree/RootTreeItem.h | 2 | ||||
-rw-r--r-- | sigmodr/tree/TreeItem.cpp | 12 | ||||
-rw-r--r-- | sigmodr/tree/TreeItem.h | 9 |
3 files changed, 22 insertions, 1 deletions
diff --git a/sigmodr/tree/RootTreeItem.h b/sigmodr/tree/RootTreeItem.h index 45959e5a..cfdc6fbe 100644 --- a/sigmodr/tree/RootTreeItem.h +++ b/sigmodr/tree/RootTreeItem.h @@ -27,6 +27,8 @@ namespace Tree { class SIGMODRTREE_NO_EXPORT RootTreeItem : public TreeItem { + Q_OBJECT + public: RootTreeItem(); diff --git a/sigmodr/tree/TreeItem.cpp b/sigmodr/tree/TreeItem.cpp index c32c1cb2..9d080816 100644 --- a/sigmodr/tree/TreeItem.cpp +++ b/sigmodr/tree/TreeItem.cpp @@ -91,6 +91,7 @@ using namespace Sigmodr::Widgets; using namespace Sigmodr::Tree; TreeItem::TreeItem(const TreeItemType type, Object* object, TreeItem* parent) : + QObject(parent), m_type(type), m_dirty(false), m_object(object), @@ -667,6 +668,8 @@ QWidget* TreeItem::editWidget(QWidget* parent) } if (editorWidget) { + connect(editorWidget, SIGNAL(changed(bool)), this, SLOT(setDirty(bool))); + return editorWidget; } return NULL; } @@ -919,3 +922,12 @@ bool TreeItem::dropData(const QDomElement& element) { // TODO } + +void TreeItem::setDirty(const bool dirty) +{ + if (m_dirty != dirty) + { + emit(update()); + m_dirty = dirty; + } +} diff --git a/sigmodr/tree/TreeItem.h b/sigmodr/tree/TreeItem.h index 079e0961..f0390539 100644 --- a/sigmodr/tree/TreeItem.h +++ b/sigmodr/tree/TreeItem.h @@ -23,6 +23,7 @@ // Qt includes #include <QtCore/QList> +#include <QtCore/QObject> #include <QtCore/QString> #include <QtCore/QStringList> #include <QtXml/QDomElement> @@ -40,8 +41,10 @@ namespace Sigmodr { namespace Tree { -class SIGMODRTREE_NO_EXPORT TreeItem +class SIGMODRTREE_NO_EXPORT TreeItem : public QObject { + Q_OBJECT + public: int row(); TreeItem* parent(); @@ -67,6 +70,8 @@ class SIGMODRTREE_NO_EXPORT TreeItem QString mimeType() const; QDomElement copyData() const; bool dropData(const QDomElement& element); + signals: + void update(); protected: enum TreeItemType { @@ -142,6 +147,8 @@ class SIGMODRTREE_NO_EXPORT TreeItem Sigmod::Object* m_object; TreeItem* m_parent; QList<TreeItem*> m_children; + protected slots: + void setDirty(const bool dirty); }; } } |