summaryrefslogtreecommitdiffstats
path: root/sigmodr/SigmodTree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sigmodr/SigmodTree.cpp')
-rw-r--r--sigmodr/SigmodTree.cpp27
1 files changed, 20 insertions, 7 deletions
diff --git a/sigmodr/SigmodTree.cpp b/sigmodr/SigmodTree.cpp
index b0d32ca8..aa323af1 100644
--- a/sigmodr/SigmodTree.cpp
+++ b/sigmodr/SigmodTree.cpp
@@ -35,25 +35,31 @@
Sigmodr::SigmodTree::SigmodTree(QWidget* parent) :
QTreeView(parent)
{
+ SigmodTreeModel* model = new SigmodTreeModel(this);
+ connect(model, SIGNAL(dirty(const Sigmod::Sigmod*, bool)), this, SLOT(setDirty(const Sigmod::Sigmod*, bool)));
header()->hide();
- setModel(new Sigmodr::SigmodTreeModel(this));
- setRootIndex(model()->index(-1, 0, QModelIndex()));
+ setModel(model);
+ setRootIndex(model->index(-1, 0, QModelIndex()));
}
QString Sigmodr::SigmodTree::description(const QModelIndex& index)
{
- return QString("%1: %2").arg(model()->data(index, Sigmodr::BaseModel::TypeRole).toString(), model()->data(index, Qt::DisplayRole).toString());
+ QString type = model()->data(index, BaseModel::TypeRole).toString();
+ QString name = model()->data(index, Qt::DisplayRole).toString();
+ if (type.isEmpty() && name.isEmpty())
+ return "";
+ return QString("%1: %2").arg(type).arg(name);
}
Sigmodr::ObjectUI* Sigmodr::SigmodTree::editorWidget(const QModelIndex& index)
{
- Sigmodr::ObjectUI* widget = qobject_cast<Sigmodr::ObjectUI*>(model()->data(index, Sigmodr::BaseModel::WidgetRole).value<QWidget*>());
+ Sigmodr::ObjectUI* widget = qobject_cast<ObjectUI*>(model()->data(index, BaseModel::WidgetRole).value<QWidget*>());
return widget;
}
KMenu* Sigmodr::SigmodTree::contextMenu(const QModelIndex& index)
{
- return model()->data(index, Sigmodr::BaseModel::ContextMenuRole).value<KMenu*>();
+ return model()->data(index, BaseModel::ContextMenuRole).value<KMenu*>();
}
const Sigmod::Sigmod* Sigmodr::SigmodTree::currentSigmod() const
@@ -71,13 +77,13 @@ const Sigmod::Sigmod* Sigmodr::SigmodTree::currentSigmod() const
QDomDocument Sigmodr::SigmodTree::copy(const QModelIndex& index)
{
QDomDocument xml;
- xml.setContent(model()->data(index, Sigmodr::BaseModel::XmlRole).toString());
+ xml.setContent(model()->data(index, BaseModel::XmlRole).toString());
return xml;
}
void Sigmodr::SigmodTree::paste(const QModelIndex& index, const QDomDocument& data)
{
- model()->setData(index, data.toString(), Sigmodr::BaseModel::XmlRole);
+ model()->setData(index, data.toString(), BaseModel::XmlRole);
}
QList<const Sigmod::Sigmod*> Sigmodr::SigmodTree::openedSigmods() const
@@ -144,10 +150,17 @@ bool Sigmodr::SigmodTree::dirty(const Sigmod::Sigmod* sigmod) const
return false;
}
+bool Sigmodr::SigmodTree::dirty() const
+{
+ return dirty(currentSigmod());
+}
+
void Sigmodr::SigmodTree::setDirty(const Sigmod::Sigmod* sigmod, const bool dirty)
{
if (m_sigmods.contains(sigmod))
+ {
m_sigmods[sigmod].second = dirty;
+ }
}
void Sigmodr::SigmodTree::setDirty()