insilmaril@0: #include "flagobj.h" insilmaril@0: insilmaril@0: ///////////////////////////////////////////////////////////////// insilmaril@0: // FlagObj insilmaril@0: ///////////////////////////////////////////////////////////////// insilmaril@0: FlagObj::FlagObj() insilmaril@0: { insilmaril@166: // cout << "Const FlagObj ()\n"; insilmaril@0: init (); insilmaril@0: } insilmaril@0: insilmaril@366: FlagObj::FlagObj(Q3Canvas* c):MapObj(c) insilmaril@0: { insilmaril@166: // cout << "Const FlagObj canvas="<move (absPos.x(), absPos.y() ); insilmaril@0: state=false; insilmaril@366: action=NULL; insilmaril@0: } insilmaril@0: insilmaril@0: void FlagObj::copy (FlagObj* other) insilmaril@0: { insilmaril@0: MapObj::copy(other); insilmaril@0: name=other->name; insilmaril@103: group=other->group; insilmaril@0: tooltip=other->tooltip; insilmaril@0: state=other->state; insilmaril@0: icon->copy(other->icon); insilmaril@366: action=other->action; insilmaril@0: setVisibility (other->isVisibleObj() ); insilmaril@0: } insilmaril@0: insilmaril@0: void FlagObj::move(double x, double y) insilmaril@0: { insilmaril@0: MapObj::move(x,y); insilmaril@0: icon->move(x,y); insilmaril@0: positionBBox(); insilmaril@0: } insilmaril@0: insilmaril@0: void FlagObj::moveBy(double x, double y) insilmaril@0: { insilmaril@0: move (x+absPos.x(),y+absPos.y() ); insilmaril@0: } insilmaril@0: insilmaril@0: void FlagObj::setVisibility (bool v) insilmaril@0: { insilmaril@0: MapObj::setVisibility(v); insilmaril@0: if (v && state) insilmaril@0: icon->setVisibility(true); insilmaril@0: else insilmaril@0: icon->setVisibility(false); insilmaril@0: } insilmaril@0: insilmaril@0: void FlagObj::load (const QString &fn) insilmaril@0: { insilmaril@0: icon->load(fn); insilmaril@0: calcBBoxSize(); insilmaril@0: positionBBox(); insilmaril@0: } insilmaril@0: insilmaril@0: void FlagObj::load (const QPixmap &pm) insilmaril@0: { insilmaril@0: icon->load(pm); insilmaril@0: calcBBoxSize(); insilmaril@0: positionBBox(); insilmaril@0: } insilmaril@0: insilmaril@0: void FlagObj::setName(const QString &n) insilmaril@0: { insilmaril@0: name=n; insilmaril@0: } insilmaril@0: insilmaril@0: const QString FlagObj::getName() insilmaril@0: { insilmaril@0: return name; insilmaril@0: } insilmaril@0: insilmaril@103: void FlagObj::setGroup (const QString &n) insilmaril@103: { insilmaril@103: group=n; insilmaril@103: } insilmaril@103: insilmaril@103: const QString FlagObj::getGroup() insilmaril@103: { insilmaril@103: return group; insilmaril@103: } insilmaril@103: insilmaril@0: void FlagObj::setToolTip(const QString &n) insilmaril@0: { insilmaril@0: tooltip=n; insilmaril@0: } insilmaril@0: insilmaril@0: const QString FlagObj::getToolTip() insilmaril@0: { insilmaril@0: return tooltip; insilmaril@0: } insilmaril@0: insilmaril@0: QPixmap FlagObj::getPixmap() insilmaril@0: { insilmaril@0: return icon->getPixmap(); insilmaril@0: } insilmaril@0: insilmaril@366: void FlagObj::setAction (QAction* a) insilmaril@366: { insilmaril@366: action=a; insilmaril@366: } insilmaril@366: insilmaril@366: void FlagObj::updateAction () insilmaril@366: { insilmaril@366: if (action) action->setChecked(state); insilmaril@366: } insilmaril@366: insilmaril@0: bool FlagObj::isActive() insilmaril@0: { insilmaril@0: return state; insilmaril@0: } insilmaril@0: insilmaril@0: void FlagObj::toggle() insilmaril@0: { insilmaril@0: if (state) insilmaril@0: deactivate(); insilmaril@0: else insilmaril@0: activate(); insilmaril@0: } insilmaril@0: insilmaril@0: void FlagObj::activate() insilmaril@0: { insilmaril@0: state=true; insilmaril@0: // only show icon, if flag itself is visible insilmaril@0: if (visible) insilmaril@0: { insilmaril@0: icon->setVisibility (true); insilmaril@0: calcBBoxSize(); insilmaril@0: } insilmaril@0: } insilmaril@0: insilmaril@0: void FlagObj::deactivate() insilmaril@0: { insilmaril@0: state=false; insilmaril@0: // if flag itself is invisible we don't need to call insilmaril@0: if (visible) insilmaril@0: { insilmaril@0: icon->setVisibility (false); insilmaril@0: calcBBoxSize(); insilmaril@0: } insilmaril@0: } insilmaril@0: insilmaril@0: void FlagObj::setUsed (bool b) insilmaril@0: { insilmaril@0: used=b; insilmaril@0: } insilmaril@0: insilmaril@0: bool FlagObj::isUsed() insilmaril@0: { insilmaril@0: return used; insilmaril@0: } insilmaril@0: insilmaril@0: void FlagObj::saveToDir (const QString &tmpdir, const QString &prefix) insilmaril@0: { insilmaril@0: QString fn=tmpdir + prefix + name + ".png"; insilmaril@0: icon->save (fn,"PNG"); insilmaril@0: } insilmaril@0: insilmaril@0: void FlagObj::positionBBox() insilmaril@0: { insilmaril@172: bbox.moveTopLeft (absPos ); insilmaril@172: clickBox.moveTopLeft (absPos ); insilmaril@0: } insilmaril@0: insilmaril@0: void FlagObj::calcBBoxSize() insilmaril@0: { insilmaril@0: if (visible && state) insilmaril@0: { insilmaril@0: bbox.setSize ( QSize( insilmaril@0: icon->boundingRect().width(), insilmaril@0: icon->boundingRect().height() ) ); insilmaril@0: } else insilmaril@0: { insilmaril@0: bbox.setSize (QSize(0,0)); insilmaril@0: } insilmaril@172: clickBox.setSize (bbox.size()); insilmaril@0: } insilmaril@0: