summaryrefslogtreecommitdiffstats
path: root/pokemodr/PokemodTree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pokemodr/PokemodTree.cpp')
-rw-r--r--pokemodr/PokemodTree.cpp49
1 files changed, 34 insertions, 15 deletions
diff --git a/pokemodr/PokemodTree.cpp b/pokemodr/PokemodTree.cpp
index fee1d26e..9c38663b 100644
--- a/pokemodr/PokemodTree.cpp
+++ b/pokemodr/PokemodTree.cpp
@@ -32,6 +32,8 @@ PokemodTree::PokemodTree(QWidget* parent) :
QTreeView(parent)
{
header()->hide();
+ setModel(new PokemodTreeModel(this));
+ setRootIndex(model()->index(-1, 0, QModelIndex()));
}
QString PokemodTree::description(const QModelIndex& index)
@@ -67,32 +69,49 @@ void PokemodTree::paste(const QModelIndex& index, const QDomDocument& data)
model()->setData(index, data.toString(), BaseModel::XmlRole);
}
-KUrl PokemodTree::url(const Pokemod* pokemod) const
+void PokemodTree::addPokemod(Pokemod* pokemod)
{
- if (m_urls.contains(pokemod))
- return m_urls[pokemod];
- return KUrl();
+ static_cast<PokemodTreeModel*>(model())->addPokemod(pokemod);
+ m_pokemods[pokemod] = QPair<KUrl, bool>(KUrl(), false);
}
-void PokemodTree::setUrl(Pokemod* pokemod, const KUrl& url)
+void PokemodTree::addPokemod(Pokemod* pokemod, const KUrl& url)
{
- m_urls[pokemod] = url;
+ static_cast<PokemodTreeModel*>(model())->addPokemod(pokemod);
+ m_pokemods[pokemod] = QPair<KUrl, bool>(url, false);
}
-void PokemodTree::addPokemod(Pokemod* pokemod)
+void PokemodTree::deletePokemod(const Pokemod* pokemod)
{
- static_cast<PokemodTreeModel*>(model())->addPokemod(pokemod);
- m_urls[pokemod] = "";
+ if (m_pokemods.contains(pokemod))
+ {
+ static_cast<PokemodTreeModel*>(model())->deletePokemod(pokemod);
+ m_pokemods.remove(pokemod);
+ }
}
-void PokemodTree::addPokemod(Pokemod* pokemod, const KUrl& url)
+KUrl PokemodTree::url(const Pokemod* pokemod) const
{
- static_cast<PokemodTreeModel*>(model())->addPokemod(pokemod);
- m_urls[pokemod] = url;
+ if (m_pokemods.contains(pokemod))
+ return m_pokemods[pokemod].first;
+ return KUrl();
}
-void PokemodTree::deletePokemod(const Pokemod* pokemod)
+void PokemodTree::setUrl(const Pokemod* pokemod, const KUrl& url)
+{
+ if (m_pokemods.contains(pokemod))
+ m_pokemods[pokemod] = QPair<KUrl, bool>(url, false);
+}
+
+bool PokemodTree::dirty(const Pokemod* pokemod) const
+{
+ if (m_pokemods.contains(pokemod))
+ return m_pokemods[pokemod].second;
+ return false;
+}
+
+void PokemodTree::setDirty(const Pokemod* pokemod, const bool dirty)
{
- static_cast<PokemodTreeModel*>(model())->deletePokemod(pokemod);
- m_urls.remove(pokemod);
+ if (m_pokemods.contains(pokemod))
+ m_pokemods[pokemod].second = dirty;
}