#include <map_view.h>
Veřejné sloty | |
void | setZoom (qreal zoomQuotient) |
Nastavi zoom mapy. | |
void | openEmptyMap () |
Otevrit novou prazdnou mapu. | |
void | openMap () |
Otevrit novou mapu. | |
void | saveMap () |
Ulozit mapu. | |
void | saveMapAs () |
Ulozit mapu do noveho umisteni. | |
void | changeSize () |
Zmenit velikost mapy. | |
void | changeBackground () |
Zmenit pozadi mapy. | |
Signály | |
void | leaved () |
Pohled opusten. | |
Veřejné metody | |
MapView (QWidget *parent=0) | |
Zkonstruuje pohled. | |
~MapView () | |
Destruuje pohled. | |
void | showWorkingObjectLabel (BombicMapObject *object) |
Zobrazit obrazek pracovniho objektu. | |
void | hideWorkingObjectLabel () |
Schovat obrazek pracovniho objektu. | |
void | updateFieldView () |
Obnovi policko v detailnim zobrazeni. | |
bool | closeMap () |
Zavre editaci mapy. | |
Statické veřejné metody | |
static QMimeData * | createMimeData (BombicMapObject *object) |
Vytvorit mime data, ktera prenasi objekt. | |
static BombicMapObject * | getMapObject (const QMimeData *mimeData) |
Ziskat objekt z mime dat, ktera ho prenasi. | |
static void | execDragging (QWidget *srcWidget, BombicMapObject *object) |
Spustit tazeni. | |
Chráněné metody | |
virtual void | leaveEvent (QEvent *event) |
Handler oppusteni pohledu. | |
Privátní sloty | |
void | changeMap (BombicMap *newMap) |
Vymenit mapu. | |
Privátní metody | |
bool | askToCloseModifiedMap () |
Vytvorit dotaz co s mapou pri zavirani. | |
Privátní atributy | |
BombicMap * | map_ |
Mapa. | |
MapScene * | scene_ |
Scena mapy. | |
qreal | lastZoomQuotient_ |
Aktualni (posledni nastaveny) zoom. | |
ZoomWidget * | zoomWidget_ |
Zoomovaci widget. | |
QLabel * | workingObjectLabel_ |
Obrazek pracovniho objektu. | |
MapFieldView * | fieldView_ |
Detailni pohled na jedno policko mapy. | |
MapSizeWizard * | mapSizeWizard_ |
Pruvodce zmenou velikosti mapy. | |
MapBackgroundWizard * | mapBackgroundWizard_ |
Pruvodce zmenou pozadi mapy. |
Centralnim prvkem je QGraphicsView
, ktere zobrazuje mapu. Dale jsou pripojeny widgety pro interakci s uzivatelem. Pohled lze zoomovat, zobrazuje aktualni pracovni objekt a detail vybraneho policka. V ramci MapView je podporovan drag and drop na objekty mapy. Provadi komplexni akce s mapou, kdy je z hlediska implementace nutne mapu vytvorit celou znova jako je zmena velikosti mapy a zmena pozadi.
MapView::MapView | ( | QWidget * | parent = 0 |
) | [explicit] |
Zkonstruuje pohled.
Vytvori pohled na mapu (QGraphicsView), nahled pracovniho objektu, a zoomovaci widget. Vytvori defaultni pozadi mapy a scenu s timto defaultnim pozadim.
parent | rodicovsky widget |
MapView::~MapView | ( | ) |
Destruuje pohled.
void MapView::showWorkingObjectLabel | ( | BombicMapObject * | object | ) |
Zobrazit obrazek pracovniho objektu.
object | pracovniho objektu, ktery chceme zobrazit |
void MapView::hideWorkingObjectLabel | ( | ) |
Schovat obrazek pracovniho objektu.
void MapView::updateFieldView | ( | ) |
Obnovi policko v detailnim zobrazeni.
bool MapView::closeMap | ( | ) |
Zavre editaci mapy.
Kontroluje, zda byla mapa ulozena. Pokud ne, dotaze se uzivatele jestli mapu ulozit, zrusit zavirani mapy nebo zahodit zmeny. Pokud je tedy potom mozne editaci mapy ukoncit, dealokuje scenu a jeji mapu.
true | Editace mapy je uspesne ukoncena, muzeme pokracovat nactenim jine mapy nebo ukoncit program. | |
false | Editace mapy neukoncena, meli bychom uzivateli umoznit pokracovat v editaci mapy. |
QMimeData * MapView::createMimeData | ( | BombicMapObject * | object | ) | [static] |
Vytvorit mime data, ktera prenasi objekt.
Naalokuje QMimeData
a nastavi je tak, aby prenasela pointer na zadany objekt. Vlastnictvi vracenych mime dat prechazi na volajiciho.
object | pointer na neseny objekt |
object
.
BombicMapObject * MapView::getMapObject | ( | const QMimeData * | mimeData | ) | [static] |
Ziskat objekt z mime dat, ktera ho prenasi.
Z mime dat, ktera prenasi pointer na objekt ziska tento objekt.
mimeData | mime data prnasejici objekt |
0 | mimeData nenesou zadny objekt. |
void MapView::execDragging | ( | QWidget * | srcWidget, | |
BombicMapObject * | object | |||
) | [static] |
Spustit tazeni.
Spusti tazeni objektu mapy object
.
srcWidget | zdrojovy widget, ze ktereho byl drag vytvoren | |
object | objekt mapy, ktery ma byt tazen |
void MapView::setZoom | ( | qreal | zoomQuotient | ) | [slot] |
Nastavi zoom mapy.
Nastavi zoom pohledu na mapu. Pokud je novy zoom 1, resetuje transformacni matici, pak je tedy prace se scenou mnohem rychlejsi (netransformuje se).
zoomQuotient | novy transformacni kvocient |
void MapView::openEmptyMap | ( | ) | [slot] |
Otevrit novou prazdnou mapu.
Pokusi se zavrit editaci prave otevrene mapy a otevre novou (defaultni prazdnou) mapu pro editaci.
void MapView::openMap | ( | ) | [slot] |
Otevrit novou mapu.
Pokusi se zavrit editaci prave otevrene mapy a otevre novou mapu (vybranou uzivatelem) pro editaci.
void MapView::saveMap | ( | ) | [slot] |
void MapView::saveMapAs | ( | ) | [slot] |
Ulozit mapu do noveho umisteni.
Ulozi mapu do noveho umisteni.
void MapView::changeSize | ( | ) | [slot] |
Zmenit velikost mapy.
Zobrazi pruvodce zmenou rozmeru mapy.
void MapView::changeBackground | ( | ) | [slot] |
Zmenit pozadi mapy.
Zobrazi pruvodce zmenou pozadi mapy.
void MapView::leaved | ( | ) | [signal] |
Pohled opusten.
void MapView::leaveEvent | ( | QEvent * | event | ) | [protected, virtual] |
Handler oppusteni pohledu.
Evokuje signal leaved().
event | pointer na udalost, ktera handler vyvolala |
void MapView::changeMap | ( | BombicMap * | newMap | ) | [private, slot] |
Vymenit mapu.
Vymeni aktualni editovanou mapu za novou. Nekontroluje, jestli je editovana mapa modifikovana. Nevytvari dotaz na uzivatele, jestli chce editovanou mapu ulozit.
newMap | mapa, kterou chceme nove nastavit |
bool MapView::askToCloseModifiedMap | ( | ) | [private] |
Vytvorit dotaz co s mapou pri zavirani.
Zobrazi dialog s moznostmi ulozit, zahodit, zrusit. Pokud uzivatel zvoli ulozit, pokusi se ulozit mapu.
BombicMap* MapView::map_ [private] |
Mapa.
MapScene* MapView::scene_ [private] |
Scena mapy.
qreal MapView::lastZoomQuotient_ [private] |
Aktualni (posledni nastaveny) zoom.
ZoomWidget* MapView::zoomWidget_ [private] |
Zoomovaci widget.
QLabel* MapView::workingObjectLabel_ [private] |
Obrazek pracovniho objektu.
MapFieldView* MapView::fieldView_ [private] |
Detailni pohled na jedno policko mapy.
MapSizeWizard* MapView::mapSizeWizard_ [private] |
Pruvodce zmenou velikosti mapy.
MapBackgroundWizard* MapView::mapBackgroundWizard_ [private] |
Pruvodce zmenou pozadi mapy.