#include <map_manager.h>
Public スロット | |
void | on_destinationChanged (const QPointF &pos) |
MapViewからの「目的地変更」のためのslot: | |
void | on_locationChanged (const QPointF &pos, qreal theta) |
MapViewからの「現在地変更」のためのslot: | |
Public メソッド | |
MapManager (MapView *mapView, LayerView *layerView) | |
コンストラクタ。管理下に置くMapView, LayerViewへのポインタを指定 | |
virtual | ~MapManager () |
仮想デストラクタ | |
int | addMapLayer (MapLayer *layer) |
MapLayerの追加。 | |
MapLayer * | layerOfName (const QString &name) |
名称からレイヤを返す。 | |
bool | removeLayerOfName (const QString &name) |
名称を指定したMapLayerの削除。見つからなければなにもしない | |
void | setIOQueue (Queue_t *xmlq, Queue_t *resultq) |
入出力queueを設定 | |
void | setPotentialRange (double pot_min, double pot_max) |
偽色表示のための値をセット | |
int | loadGuiSettings () |
Windowの位置,大きさ情報をファイルから読み出し,反映する | |
int | saveGuiSettings () |
Windowの位置,大きさ情報をファイルに保存する | |
void | saveAllLayers () const |
表示中のレイヤをファイルに保存 | |
void | loadAllLayers () |
保存したレイヤを読み込む | |
void | setStartupDirectory (const QString &newdir) |
起動時にデータを読み込むディレクトリ名を設定 | |
bool | askNewLayerName (QString &name) |
ダイアログを出してレイヤの名称を訪ねる。 | |
Private 型 | |
typedef SharedQueue< std::string > | Queue_t |
Private スロット | |
void | on_layersChanged (const QVector< MapLayer * > &layers) |
layerViewのsignalを受け取るためのprivate Slot。mapViewのアップデート を行う。 | |
void | on_removeLayerRequested (MapLayer *layer) |
layerViewのsignalを受け取るためのprivate Slot。 layerの削除を行う | |
void | try_dequeue () |
入力Queueをのぞき,中身があればdequeueして処理 | |
void | openNewLayerFromFile () |
layerViewの新規レイヤ作成シグナルを受信。 ダイアログを作成し,ユーザにファイルを 指定させ,読み込み処理を行う | |
void | on_closing (QWidget *target, bool &accepted) |
layerView, mapViewのclose eventがWindowObserver経由で ここに伝わる。どちらのウィンドウから来た場合も 終了確認ダイアログを出す。 | |
void | on_autoscrollToggled (bool autoscroll_is_on) |
mapView_のsignal: autoscrollToggledを受け取る。 timerを有効にして自動スクロール処理をコールするようになる | |
void | do_autoscroll () |
mapViewの自動スクロールを行う | |
void | closeAll () |
windowを閉じて終了 | |
Private メソッド | |
bool | mayOverwrite (const QString &layer_name) |
Layerを上書きしてよいか確認する。 | |
Private 変数 | |
MapView * | mapView_ |
管理するmapViewへのポインタ | |
LayerView * | layerView_ |
管理するLayerViewへのポインタ | |
QTimer * | autoscroll_timer_ |
mapViewのautoScrollに使用するタイマ | |
WidgetObserver * | mapViewObserver_ |
mapView_のサイズ,位置変更を監視 | |
WidgetObserver * | layerViewObserver_ |
layerview_のサイズ,位置変更を監視 | |
boost::shared_ptr< XmlIF > | xmlif_ |
実装クラスの宣言 | |
QDir | startup_dir_ |
初期設定ファイルが格納されたディレクトリ | |
Static Private 変数 | |
static const char | INIT_FILE_NAME [] = "init.xml" |
初期設定ファイルの名称 | |
static const char | LAYER_ARCHIVE_FILENAME [] = "layers.xml" |
レイヤ保存ファイルの名称 | |
static const int | QUEUE_POLLING_INTERVAL = 30 |
queueをpoll間隔[msec] | |
static const int | AUTOSCROLL_INTERVAL = 250 |
autoscroll間隔[msec] | |
構成 | |
class | XmlIF |
MapManagerのXml読み書きを行う部分を分離した実装クラス [詳細] |
typedef SharedQueue<std::string> MapManager::Queue_t [private] |
コンストラクタ。管理下に置くMapView, LayerViewへのポインタを指定
MapManager::~MapManager | ( | ) | [virtual] |
仮想デストラクタ
int MapManager::addMapLayer | ( | MapLayer * | layer | ) |
MapLayerの追加。
[in] | layer | 追加するlayer |
MapLayer * MapManager::layerOfName | ( | const QString & | name | ) |
名称からレイヤを返す。
[in] | name | 探すレイヤの名称 |
bool MapManager::removeLayerOfName | ( | const QString & | name | ) |
名称を指定したMapLayerの削除。見つからなければなにもしない
[in] | name | 削除するレイヤの名前 |
実際に削除されたかどうか |
void MapManager::setPotentialRange | ( | double | pot_min, | |
double | pot_max | |||
) |
int MapManager::loadGuiSettings | ( | ) |
Windowの位置,大きさ情報をファイルから読み出し,反映する
0 | 成功 | |
negative | 失敗 |
int MapManager::saveGuiSettings | ( | ) |
Windowの位置,大きさ情報をファイルに保存する
0 | 成功 | |
negative | 失敗 |
void MapManager::saveAllLayers | ( | ) | const |
表示中のレイヤをファイルに保存
void MapManager::loadAllLayers | ( | ) |
保存したレイヤを読み込む
void MapManager::setStartupDirectory | ( | const QString & | newdir | ) |
起動時にデータを読み込むディレクトリ名を設定
[in] | newdir | ディレクトリ名 |
bool MapManager::askNewLayerName | ( | QString & | name | ) |
ダイアログを出してレイヤの名称を訪ねる。
[out] | name | 新名称をここに格納 |
void MapManager::on_destinationChanged | ( | const QPointF & | pos | ) | [slot] |
MapViewからの「目的地変更」のためのslot:
void MapManager::on_locationChanged | ( | const QPointF & | pos, | |
qreal | theta | |||
) | [slot] |
MapViewからの「現在地変更」のためのslot:
bool MapManager::mayOverwrite | ( | const QString & | layer_name | ) | [private] |
Layerを上書きしてよいか確認する。
[in] | layer_name | レイヤの名前 |
void MapManager::on_layersChanged | ( | const QVector< MapLayer * > & | layers | ) | [private, slot] |
layerViewのsignalを受け取るためのprivate Slot。mapViewのアップデート を行う。
[in] | layers | 変化後のlayer情報 |
void MapManager::on_removeLayerRequested | ( | MapLayer * | layer | ) | [private, slot] |
layerViewのsignalを受け取るためのprivate Slot。 layerの削除を行う
[in] | 削除されるべきレイヤ。 |
void MapManager::try_dequeue | ( | ) | [private, slot] |
void MapManager::openNewLayerFromFile | ( | ) | [private, slot] |
layerViewの新規レイヤ作成シグナルを受信。 ダイアログを作成し,ユーザにファイルを 指定させ,読み込み処理を行う
void MapManager::on_closing | ( | QWidget * | target, | |
bool & | accepted | |||
) | [private, slot] |
layerView, mapViewのclose eventがWindowObserver経由で ここに伝わる。どちらのウィンドウから来た場合も 終了確認ダイアログを出す。
void MapManager::on_autoscrollToggled | ( | bool | autoscroll_is_on | ) | [private, slot] |
mapView_のsignal: autoscrollToggledを受け取る。 timerを有効にして自動スクロール処理をコールするようになる
void MapManager::do_autoscroll | ( | ) | [private, slot] |
mapViewの自動スクロールを行う
void MapManager::closeAll | ( | ) | [private, slot] |
windowを閉じて終了
MapView* MapManager::mapView_ [private] |
管理するmapViewへのポインタ
LayerView* MapManager::layerView_ [private] |
管理するLayerViewへのポインタ
QTimer* MapManager::autoscroll_timer_ [private] |
mapViewのautoScrollに使用するタイマ
WidgetObserver* MapManager::mapViewObserver_ [private] |
mapView_のサイズ,位置変更を監視
WidgetObserver* MapManager::layerViewObserver_ [private] |
layerview_のサイズ,位置変更を監視
boost::shared_ptr<XmlIF> MapManager::xmlif_ [private] |
実装クラスの宣言
xml解析を受け持つ内部クラス
QDir MapManager::startup_dir_ [private] |
初期設定ファイルが格納されたディレクトリ
const char MapManager::INIT_FILE_NAME = "init.xml" [static, private] |
初期設定ファイルの名称
const char MapManager::LAYER_ARCHIVE_FILENAME = "layers.xml" [static, private] |
レイヤ保存ファイルの名称
const int MapManager::QUEUE_POLLING_INTERVAL = 30 [static, private] |
queueをpoll間隔[msec]
const int MapManager::AUTOSCROLL_INTERVAL = 250 [static, private] |
autoscroll間隔[msec]