summaryrefslogtreecommitdiffstats
path: root/pokemodr/PokemodTree.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-05-21 19:59:39 +0000
committerBen Boeckel <MathStuf@gmail.com>2008-05-21 19:59:39 +0000
commitc2d90a8019125dc260db1882ebc292e4e52f3969 (patch)
tree1ec02bf2731e7dde2a0405d1716c2e179b78cbce /pokemodr/PokemodTree.cpp
parentfa85318e91ea9bbe4638092767b3b8e0ea64f57c (diff)
downloadsigen-c2d90a8019125dc260db1882ebc292e4e52f3969.tar.gz
sigen-c2d90a8019125dc260db1882ebc292e4e52f3969.tar.xz
sigen-c2d90a8019125dc260db1882ebc292e4e52f3969.zip
[FIX] Closing PokeMods works now
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@162 6ecfd1a5-f3ed-3746-8530-beee90d26b22
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;
}