クラス MapManager

MapViewとLayerViewの間に入り両者の仲介と,RTC/IFからの データ入出力を管理する。 [詳細]

#include <map_manager.h>

MapManagerのコラボレーション図

Collaboration graph
[凡例]

すべてのメンバ一覧

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の追加。
MapLayerlayerOfName (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 変数

MapViewmapView_
 管理するmapViewへのポインタ
LayerViewlayerView_
 管理するLayerViewへのポインタ
QTimer * autoscroll_timer_
 mapViewのautoScrollに使用するタイマ
WidgetObservermapViewObserver_
 mapView_のサイズ,位置変更を監視
WidgetObserverlayerViewObserver_
 layerview_のサイズ,位置変更を監視
boost::shared_ptr< XmlIFxmlif_
 実装クラスの宣言
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読み書きを行う部分を分離した実装クラス [詳細]


説明

MapViewとLayerViewの間に入り両者の仲介と,RTC/IFからの データ入出力を管理する。


型定義

typedef SharedQueue<std::string> MapManager::Queue_t [private]


コンストラクタとデストラクタ

MapManager::MapManager ( MapView mapView,
LayerView layerView 
)

コンストラクタ。管理下に置く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::setIOQueue ( Queue_t xmlq,
Queue_t resultq 
)

入出力queueを設定

参照:
MapManager::XmlIF::setIOQueue()

void MapManager::setPotentialRange ( double  pot_min,
double  pot_max 
)

偽色表示のための値をセット

参照:
MapManager::XmlIF::setPotentialRange()

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 レイヤの名前
戻り値:
この名称のlayerを上書きして良いかどうか

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]

入力Queueをのぞき,中身があればdequeueして処理

参照:
MapManager::XmlIF::try_dequeue()

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へのポインタ

管理するLayerViewへのポインタ

QTimer* MapManager::autoscroll_timer_ [private]

mapViewのautoScrollに使用するタイマ

mapView_のサイズ,位置変更を監視

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]


このクラスの説明は次のファイルから生成されました:

マップビューワコンポーネントに対してThu Jun 17 20:24:08 2010に生成されました。  doxygen 1.5.5