diff options
Diffstat (limited to 'sigmodr/tree/SigmodrTree.cpp')
-rw-r--r-- | sigmodr/tree/SigmodrTree.cpp | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/sigmodr/tree/SigmodrTree.cpp b/sigmodr/tree/SigmodrTree.cpp deleted file mode 100644 index 2caca70a..00000000 --- a/sigmodr/tree/SigmodrTree.cpp +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Copyright 2008-2009 Ben Boeckel <MathStuf@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -// Header include -#include "SigmodrTree.h" - -// Sigmodr tree includes -#include "BaseModel.h" -#include "SigmodrTreeModel.h" - -// Sigmodr widget includes -#include <sigmodr/widgets/ObjectUI.h> - -// Sigmod includes -#include <sigmod/Game.h> -#include <sigmod/Object.h> - -// Qt includes -#include <QtGui/QHeaderView> - -using namespace Sigmod; -using namespace Sigmodr::Widgets; -using namespace Sigmodr::Tree; - -SigmodrTree::SigmodrTree(QWidget* parent) : - QTreeView(parent) -{ - SigmodrTreeModel* model = new SigmodrTreeModel(this); - connect(model, SIGNAL(dirty(const Sigmod::Game*, bool)), this, SLOT(setDirty(const Sigmod::Game*, bool))); - header()->hide(); - setModel(model); - setRootIndex(model->index(-1, 0, QModelIndex())); -} - -QString SigmodrTree::description(const QModelIndex& index) const -{ - QString type = typeOf(index); - QString name = model()->data(index, Qt::DisplayRole).toString(); - if (type.isEmpty() && name.isEmpty()) - return ""; - return QString("%1: %2").arg(type).arg(name); -} - -QString SigmodrTree::typeOf(const QModelIndex& index) const -{ - return model()->data(index, BaseModel::TypeRole).toString(); -} - -QStringList SigmodrTree::dropTypes(const QModelIndex& index) const -{ - return model()->data(index, BaseModel::DropAcceptRole).toString().split(';'); -} - -ObjectUI* SigmodrTree::editorWidget(const QModelIndex& index) -{ - ObjectUI* widget = qobject_cast<ObjectUI*>(model()->data(index, BaseModel::WidgetRole).value<QWidget*>()); - return widget; -} - -KMenu* SigmodrTree::contextMenu(const QModelIndex& index) -{ - return model()->data(index, BaseModel::ContextMenuRole).value<KMenu*>(); -} - -const Game* SigmodrTree::currentGame() const -{ - QModelIndex index = currentIndex(); - if (index.isValid()) - { - const Object* object = static_cast<BaseModel*>(index.internalPointer())->object(); - if (object) - return object->game(); - } - return NULL; -} - -QDomDocument SigmodrTree::copy(const QModelIndex& index) -{ - QDomDocument xml; - xml.setContent(model()->data(index, BaseModel::XmlRole).toString()); - return xml; -} - -void SigmodrTree::paste(const QModelIndex& index, const QDomDocument& data) -{ - model()->setData(index, data.toString(), BaseModel::XmlRole); -} - -QList<const Game*> SigmodrTree::openedGames() const -{ - return m_games.keys(); -} - -void SigmodrTree::addGame(Game* game, const KUrl& url) -{ - qobject_cast<SigmodrTreeModel*>(model())->addGame(game); - m_games[game] = UrlDirty(url, false); -} - -void SigmodrTree::deleteGame(const Game* game) -{ - if (m_games.contains(game)) - { - qobject_cast<SigmodrTreeModel*>(model())->deleteGame(game); - m_games.remove(game); - } -} - -bool SigmodrTree::isOpen(const KUrl& url) const -{ - foreach (const UrlDirty& pair, m_games.values()) - { - if (url == pair.first) - return true; - } - return false; -} - -KUrl SigmodrTree::url(const Game* game) const -{ - if (m_games.contains(game)) - return m_games[game].first; - return KUrl(); -} - -QStringList SigmodrTree::urls() const -{ - QStringList urls; - foreach (const UrlDirty& pair, m_games.values()) - urls << pair.first.prettyUrl(); - return urls; -} - -void SigmodrTree::setUrl(const Game* game, const KUrl& url) -{ - if (m_games.contains(game)) - m_games[game] = UrlDirty(url, false); -} - -bool SigmodrTree::dirty(const Game* game) const -{ - if (m_games.contains(game)) - return m_games[game].second; - return false; -} - -bool SigmodrTree::dirty() const -{ - return dirty(currentGame()); -} - -void SigmodrTree::setDirty(const Game* game, const bool dirty) -{ - if (m_games.contains(game)) - m_games[game].second = dirty; -} - -void SigmodrTree::setDirty() -{ - setDirty(currentGame(), true); -} |