#include "poialerts.h"
#include "speedalarm.h"
-GraphicsElement::GraphicsElement(Reader* reader): QObject(0), reader_(reader), error_(""), effect_(0), visibleWhen_(ALWAYS)
+GraphicsElement::GraphicsElement(Reader* reader): QObject(0),
+reader_(reader), error_(""), effect_(0), visibleWhen_(ALWAYS), canBeVisible_(true)
{
}
void GraphicsElement::applyEffect()
{
- effect_->apply(getElement());
+ effect_->apply(this);
}
void GraphicsElement::setVisibleWhen(VisibleWhen when)
switch(when)
{
case POI_VISIBLE:
+ updateVisibility(false);
connect(&(PoiAlerts::instance()), SIGNAL(visibilityChanged(bool)), this, SLOT(updateVisibility(bool)));
break;
case SPEED_EXCEEDED:
+ updateVisibility(false);
connect(&(SpeedAlarm::instance()), SIGNAL(speedExceedChanged(bool)), this, SLOT(updateVisibility(bool)));
break;
case ALWAYS:
disconnect(&(PoiAlerts::instance()), SIGNAL(visibilityChanged(bool)), this, SLOT(updateVisibility(bool)));
disconnect(&(SpeedAlarm::instance()), SIGNAL(speedExceedChanged(bool)), this, SLOT(updateVisibility(bool)));
+ updateVisibility(true);
break;
}
}
if(item)
{
item->setVisible(visible);
+
+ if(!visible)
+ {
+ canBeVisible_ = false;
+ }
+ else
+ {
+ canBeVisible_ = true;
+ }
}
}
+
+bool GraphicsElement::canBeVisible() const
+{
+ return canBeVisible_;
+}