Chris@119: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@119: Chris@119: /* Chris@119: EasyMercurial Chris@119: Chris@119: Based on HgExplorer by Jari Korhonen Chris@119: Copyright (c) 2010 Jari Korhonen Chris@244: Copyright (c) 2011 Chris Cannam Chris@244: Copyright (c) 2011 Queen Mary, University of London Chris@119: Chris@119: This program is free software; you can redistribute it and/or Chris@119: modify it under the terms of the GNU General Public License as Chris@119: published by the Free Software Foundation; either version 2 of the Chris@119: License, or (at your option) any later version. See the file Chris@119: COPYING included with this distribution for more information. Chris@119: */ Chris@119: Chris@119: #include "changesetscene.h" Chris@119: #include "changesetitem.h" Chris@141: #include "uncommitteditem.h" Chris@168: #include "dateitem.h" Chris@119: Chris@119: ChangesetScene::ChangesetScene() Chris@119: : QGraphicsScene(), m_detailShown(0) Chris@119: { Chris@119: } Chris@119: Chris@119: void Chris@141: ChangesetScene::addChangesetItem(ChangesetItem *item) Chris@141: { Chris@141: addItem(item); Chris@141: Chris@141: connect(item, SIGNAL(detailShown()), Chris@141: this, SLOT(changesetDetailShown())); Chris@141: Chris@168: connect(item, SIGNAL(detailHidden()), Chris@168: this, SLOT(changesetDetailHidden())); Chris@168: Chris@141: connect(item, SIGNAL(updateTo(QString)), Chris@141: this, SIGNAL(updateTo(QString))); Chris@141: Chris@141: connect(item, SIGNAL(diffToCurrent(QString)), Chris@141: this, SIGNAL(diffToCurrent(QString))); Chris@141: Chris@148: connect(item, SIGNAL(diffToParent(QString, QString)), Chris@148: this, SIGNAL(diffToParent(QString, QString))); Chris@141: Chris@141: connect(item, SIGNAL(mergeFrom(QString)), Chris@141: this, SIGNAL(mergeFrom(QString))); Chris@141: Chris@141: connect(item, SIGNAL(tag(QString)), Chris@141: this, SIGNAL(tag(QString))); Chris@141: } Chris@141: Chris@141: void Chris@141: ChangesetScene::addUncommittedItem(UncommittedItem *item) Chris@141: { Chris@141: addItem(item); Chris@141: Chris@141: connect(item, SIGNAL(commit()), Chris@141: this, SIGNAL(commit())); Chris@141: Chris@141: connect(item, SIGNAL(revert()), Chris@141: this, SIGNAL(revert())); Chris@141: Chris@141: connect(item, SIGNAL(diff()), Chris@141: this, SIGNAL(diffWorkingFolder())); Chris@153: Chris@168: connect(item, SIGNAL(showSummary()), Chris@168: this, SIGNAL(showSummary())); Chris@168: Chris@153: connect(item, SIGNAL(showWork()), Chris@153: this, SIGNAL(showWork())); Chris@141: } Chris@141: Chris@141: void Chris@168: ChangesetScene::addDateItem(DateItem *item) Chris@168: { Chris@168: addItem(item); Chris@168: Chris@168: connect(item, SIGNAL(clicked()), Chris@168: this, SLOT(dateItemClicked())); Chris@168: } Chris@168: Chris@168: void Chris@119: ChangesetScene::changesetDetailShown() Chris@119: { Chris@119: ChangesetItem *csi = qobject_cast(sender()); Chris@119: if (!csi) return; Chris@119: Chris@124: if (m_detailShown && m_detailShown != csi) { Chris@119: m_detailShown->hideDetail(); Chris@119: } Chris@119: m_detailShown = csi; Chris@119: } Chris@119: Chris@168: void Chris@168: ChangesetScene::changesetDetailHidden() Chris@168: { Chris@168: m_detailShown = 0; Chris@168: } Chris@168: Chris@168: void Chris@168: ChangesetScene::dateItemClicked() Chris@168: { Chris@168: if (m_detailShown) { Chris@168: m_detailShown->hideDetail(); Chris@168: } Chris@168: } Chris@168: