summaryrefslogtreecommitdiffstats
path: root/sigmodr/tree
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-05-02 16:58:30 -0400
committerBen Boeckel <MathStuf@gmail.com>2009-05-02 16:58:30 -0400
commit6624cd2a256fb446f7851570b9c300173407de22 (patch)
treeeaf775d18ac9359c59c103155245d338dadfc866 /sigmodr/tree
parentbd41fbd5911596fa0366086afb30441c82756c5a (diff)
downloadsigen-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.h2
-rw-r--r--sigmodr/tree/TreeItem.cpp12
-rw-r--r--sigmodr/tree/TreeItem.h9
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);
};
}
}