insilmaril@0: #include "selection.h" insilmaril@0: insilmaril@0: insilmaril@0: Selection::Selection() insilmaril@0: { insilmaril@0: } insilmaril@0: insilmaril@0: Selection::~Selection() insilmaril@0: { insilmaril@0: } insilmaril@0: insilmaril@16: void Selection::setMapCenter(MapCenterObj *mco) insilmaril@0: { insilmaril@16: mapCenter=mco; insilmaril@0: } insilmaril@0: insilmaril@0: void Selection::copy(const Selection &other) insilmaril@0: { insilmaril@16: mapCenter=other.mapCenter; insilmaril@16: selectList=other.selectList; insilmaril@421: lastSelectList=other.lastSelectList; insilmaril@0: } insilmaril@0: insilmaril@0: void Selection::clear() insilmaril@0: { insilmaril@0: selectList.clear(); insilmaril@421: lastSelectList.clear(); insilmaril@0: } insilmaril@0: insilmaril@421: bool Selection::select(LinkableMapObj *lmo) // TODO no multiselections yet insilmaril@0: { insilmaril@16: clear(); insilmaril@16: selectList.append (lmo); insilmaril@0: return false; insilmaril@0: } insilmaril@0: insilmaril@421: bool Selection::select (const QString &s) // TODO no multiselections yet insilmaril@0: { insilmaril@16: LinkableMapObj *lmo=mapCenter->findObjBySelect(s); insilmaril@16: insilmaril@16: // Finally select the found object insilmaril@16: if (lmo) insilmaril@16: { insilmaril@16: clear(); insilmaril@16: select (lmo); insilmaril@16: return true; insilmaril@16: } insilmaril@16: return false; insilmaril@16: insilmaril@16: } insilmaril@16: insilmaril@421: bool Selection::reselect () // TODO no multiselections yet insilmaril@421: { insilmaril@421: if (!lastSelectList.isEmpty()) insilmaril@421: { insilmaril@421: select (lastSelectList.first()); insilmaril@421: return true; insilmaril@421: } insilmaril@421: return false; insilmaril@421: insilmaril@421: } insilmaril@421: insilmaril@16: void Selection::unselect() insilmaril@16: { insilmaril@421: lastSelectList=selectList; insilmaril@421: selectList.clear(); insilmaril@0: } insilmaril@0: insilmaril@0: bool Selection::isEmpty() insilmaril@0: { insilmaril@0: return selectList.isEmpty(); insilmaril@0: } insilmaril@0: insilmaril@0: uint Selection::count() insilmaril@0: { insilmaril@0: return selectList.count(); insilmaril@0: } insilmaril@16: insilmaril@421: SelectionType Selection::type() // TODO no multiselections yet insilmaril@16: { insilmaril@421: if (!selectList.isEmpty()) insilmaril@421: { insilmaril@421: LinkableMapObj *sel=selectList.first(); insilmaril@421: if (typeid (*sel)==typeid (BranchObj)) return Branch; insilmaril@421: if (typeid (*sel)==typeid (MapCenterObj)) return MapCenter; insilmaril@421: if (typeid (*sel)==typeid (FloatImageObj)) return FloatImage; insilmaril@421: } insilmaril@421: return Undefined; insilmaril@421: } insilmaril@421: insilmaril@421: QString Selection::getSelectString()// TODO no multiselections yet insilmaril@421: { insilmaril@16: if (selectList.count()==1) insilmaril@16: return selectList.first()->getSelectString(); insilmaril@16: else insilmaril@16: return""; insilmaril@16: } insilmaril@16: insilmaril@16: