85 lines
1.4 KiB
C++
Executable File
85 lines
1.4 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* MapNotifier
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
|
|
|
|
// Own
|
|
#include "map_notifier.h"
|
|
#include "map.h"
|
|
|
|
|
|
// Qt
|
|
|
|
|
|
namespace SituationMap
|
|
{
|
|
QPointer<MapNotifier> MapNotifier::createMapNotifier(Map *map, QObject *parent)
|
|
{
|
|
if (!map)
|
|
return nullptr;
|
|
if (!parent)
|
|
return nullptr;
|
|
|
|
MapNotifier *ptr = new MapNotifier(parent);
|
|
ptr->setMap(map);
|
|
return ptr;
|
|
}
|
|
|
|
void MapNotifier::run()
|
|
{
|
|
if (m_map.isNull())
|
|
{
|
|
qCritical() << "no map";
|
|
return;
|
|
}
|
|
|
|
//
|
|
// signal mapReady
|
|
//
|
|
if (m_map->isReady())
|
|
onMapReady();
|
|
else
|
|
connect(m_map.data(), &SituationMap::Map::mapReady,
|
|
this, &MapNotifier::onMapReady, Qt::UniqueConnection);
|
|
|
|
//
|
|
// signal mapReadyAndSymbolDictionaryLoaded
|
|
//
|
|
if (m_map->isReady() && m_map->isSymbolDictionaryLoaded())
|
|
onMapReadyAndSymbolDictionaryLoaded();
|
|
else
|
|
connect(m_map.data(), &SituationMap::Map::mapReadyAndSymbolDictionaryLoaded,
|
|
this, &MapNotifier::onMapReadyAndSymbolDictionaryLoaded, Qt::UniqueConnection);
|
|
}
|
|
|
|
|
|
void MapNotifier::setMap(Map *map)
|
|
{
|
|
m_map = map;
|
|
}
|
|
|
|
const QPointer<Map> MapNotifier::map()
|
|
{
|
|
return m_map;
|
|
}
|
|
|
|
void MapNotifier::onMapReady()
|
|
{
|
|
// qCritical() << "emit mapReady()";
|
|
emit mapReady();
|
|
}
|
|
|
|
void MapNotifier::onMapReadyAndSymbolDictionaryLoaded()
|
|
{
|
|
// qCritical() << "emit mapReadyAndSymbolDictionaryLoaded(), this=" << this;
|
|
emit mapReadyAndSymbolDictionaryLoaded();
|
|
}
|
|
|
|
|
|
} // namespace SituationMap
|
|
|