2020-03-17 21:06:51 +01:00
|
|
|
#ifndef MAPACTION_H
|
|
|
|
#define MAPACTION_H
|
|
|
|
|
|
|
|
#include <QAction>
|
|
|
|
#include "map/map.h"
|
|
|
|
|
|
|
|
class MapAction : public QAction
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
MapAction(Map *map, QObject *parent = 0) : QAction(map->name(), parent)
|
|
|
|
{
|
|
|
|
map->setParent(this);
|
2021-03-21 20:23:20 +01:00
|
|
|
|
2020-03-17 21:06:51 +01:00
|
|
|
setData(QVariant::fromValue(map));
|
2020-04-05 10:38:16 +02:00
|
|
|
setEnabled(map->isReady());
|
2021-03-21 20:23:20 +01:00
|
|
|
setMenuRole(QAction::NoRole);
|
|
|
|
setCheckable(true);
|
|
|
|
|
2021-04-28 00:01:07 +02:00
|
|
|
connect(map, &Map::mapLoaded, this, &MapAction::mapLoaded);
|
2020-03-17 21:06:51 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
signals:
|
|
|
|
void loaded();
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
void mapLoaded()
|
|
|
|
{
|
|
|
|
Map *map = data().value<Map*>();
|
|
|
|
setEnabled(map->isValid());
|
|
|
|
emit loaded();
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // MAPACTION_H
|