Freeciv21
Develop your civilization from humble roots to a global empire
map_view Class Reference

#include <view_map.h>

+ Inheritance diagram for map_view:
+ Collaboration diagram for map_view:

Public Slots

void center_on_tile (tile *tile, bool animate=true)
 Centers the view on a tile. More...
 
void zoom_in ()
 Zooms in by 20%. More...
 
void zoom_reset ()
 Resets the zoom level. More...
 
void zoom_out ()
 Zooms out by 20%. More...
 
void set_scale (double scale, bool animate=true)
 Sets the map scale. More...
 
void show_debugger ()
 Opens the tileset debugger. More...
 
void hide_debugger ()
 Closes the tileset debugger if it is open. More...
 
void shortcut_pressed (shortcut_id key)
 Pressed mouse or keyboard. More...
 

Signals

void scale_changed (double scale) const
 

Public Member Functions

 map_view ()
 Constructor for map. More...
 
QPoint find_place (const QSize &size) const
 Finds a suitable location for a widget of the given size, avoiding overlap with other widgets. More...
 
void update_cursor (enum cursor_type)
 Updates cursor. More...
 
void hide_all_fcwidgets ()
 Hides all fcwidgets (reports etc). More...
 
void show_all_fcwidgets ()
 Shows all fcwidgets (reports etc). More...
 
double scale () const
 Retrieves the current scale (zoom level) of the map. More...
 
freeciv::tileset_debuggerdebugger () const
 

Protected Member Functions

void paintEvent (QPaintEvent *event) override
 Slot inherited from QPixamp. More...
 
void keyPressEvent (QKeyEvent *event) override
 Keyboard handler for map_view. More...
 
void mousePressEvent (QMouseEvent *event) override
 Mouse buttons handler for map_view. More...
 
void mouseReleaseEvent (QMouseEvent *event) override
 Mouse release event for map_view. More...
 
void mouseMoveEvent (QMouseEvent *event) override
 Mouse movement handler for map_view. More...
 
void focusOutEvent (QFocusEvent *event) override
 Focus lost event. More...
 
void leaveEvent (QEvent *event) override
 Leave event. More...
 
void resizeEvent (QResizeEvent *event) override
 The widget has been resized. More...
 
void wheelEvent (QWheelEvent *event) override
 The user wants to scroll. More...
 

Properties

double scale
 

Private Slots

void set_scale_now (double scale)
 Sets the map scale immediately without doing any animation. More...
 
void timer_event ()
 Timer for cursor. More...
 

Private Member Functions

void shortcut_released (Qt::MouseButton mb)
 Released mouse buttons. More...
 

Private Attributes

int cursor_frame {0}
 
int cursor
 
freeciv::rendererm_renderer
 
double m_scale = 1
 
std::unique_ptr< QPropertyAnimation > m_origin_animation
 
std::unique_ptr< QPropertyAnimation > m_scale_animation
 
QPointer< freeciv::tileset_debuggerm_debugger = nullptr
 
std::vector< QPointer< fcwidget > > m_hidden_fcwidgets
 

Friends

void debug_tile (tile *tile)
 Callback to set the tile being debugged. More...
 

Detailed Description

Definition at line 45 of file view_map.h.

Constructor & Destructor Documentation

◆ map_view()

map_view::map_view ( )

Constructor for map.

Definition at line 130 of file view_map.cpp.

Member Function Documentation

◆ center_on_tile

◆ debugger()

freeciv::tileset_debugger* map_view::debugger ( ) const
inline

Definition at line 67 of file view_map.h.

◆ find_place()

QPoint map_view::find_place ( const QSize &  size) const

Finds a suitable location for a widget of the given size, avoiding overlap with other widgets.

Definition at line 398 of file view_map.cpp.

◆ focusOutEvent()

void map_view::focusOutEvent ( QFocusEvent *  event)
overrideprotected

Focus lost event.

Definition at line 332 of file view_map.cpp.

◆ hide_all_fcwidgets()

void map_view::hide_all_fcwidgets ( )

Hides all fcwidgets (reports etc).

Used to make room for the city dialog.

Definition at line 170 of file view_map.cpp.

Referenced by real_city_dialog_popup().

◆ hide_debugger

void map_view::hide_debugger ( )
slot

Closes the tileset debugger if it is open.

Definition at line 301 of file view_map.cpp.

Referenced by fc_client::current_page().

◆ keyPressEvent()

void map_view::keyPressEvent ( QKeyEvent *  event)
overrideprotected

Keyboard handler for map_view.

Definition at line 95 of file mapctrl.cpp.

◆ leaveEvent()

void map_view::leaveEvent ( QEvent *  event)
overrideprotected

Leave event.

Definition at line 341 of file view_map.cpp.

◆ mouseMoveEvent()

void map_view::mouseMoveEvent ( QMouseEvent *  event)
overrideprotected

Mouse movement handler for map_view.

Definition at line 416 of file mapctrl.cpp.

◆ mousePressEvent()

void map_view::mousePressEvent ( QMouseEvent *  event)
overrideprotected

Mouse buttons handler for map_view.

Definition at line 400 of file mapctrl.cpp.

◆ mouseReleaseEvent()

void map_view::mouseReleaseEvent ( QMouseEvent *  event)
overrideprotected

Mouse release event for map_view.

Definition at line 408 of file mapctrl.cpp.

◆ paintEvent()

void map_view::paintEvent ( QPaintEvent *  event)
overrideprotected

Slot inherited from QPixamp.

Definition at line 350 of file view_map.cpp.

◆ resizeEvent()

void map_view::resizeEvent ( QResizeEvent *  event)
overrideprotected

The widget has been resized.

Definition at line 364 of file view_map.cpp.

◆ scale()

double map_view::scale ( ) const

Retrieves the current scale (zoom level) of the map.

Definition at line 248 of file view_map.cpp.

◆ scale_changed

void map_view::scale_changed ( double  scale) const
signal

◆ set_scale

void map_view::set_scale ( double  scale,
bool  animate = true 
)
slot

Sets the map scale.

Definition at line 253 of file view_map.cpp.

Referenced by mr_menu::load_new_tileset(), tileset_changed(), zoom_in(), zoom_out(), and zoom_reset().

◆ set_scale_now

void map_view::set_scale_now ( double  scale)
privateslot

Sets the map scale immediately without doing any animation.

Definition at line 269 of file view_map.cpp.

Referenced by set_scale().

◆ shortcut_pressed

void map_view::shortcut_pressed ( shortcut_id  key)
slot

Pressed mouse or keyboard.

Definition at line 182 of file mapctrl.cpp.

Referenced by fc_shortcuts::create_no_action_shortcuts().

◆ shortcut_released()

void map_view::shortcut_released ( Qt::MouseButton  mb)
private

Released mouse buttons.

Definition at line 372 of file mapctrl.cpp.

Referenced by mouseReleaseEvent().

◆ show_all_fcwidgets()

void map_view::show_all_fcwidgets ( )

Shows all fcwidgets (reports etc).

Used when closing the city dialog.

Definition at line 184 of file view_map.cpp.

Referenced by city_dialog::hideEvent().

◆ show_debugger

void map_view::show_debugger ( )
slot

Opens the tileset debugger.

Definition at line 278 of file view_map.cpp.

Referenced by mr_menu::setup_menus(), and tileset_changed().

◆ timer_event

void map_view::timer_event ( )
privateslot

Timer for cursor.

Definition at line 312 of file view_map.cpp.

Referenced by map_view().

◆ update_cursor()

void map_view::update_cursor ( enum cursor_type  ct)

Updates cursor.

Definition at line 152 of file view_map.cpp.

Referenced by focusOutEvent(), leaveEvent(), timer_event(), and update_mouse_cursor().

◆ wheelEvent()

void map_view::wheelEvent ( QWheelEvent *  event)
overrideprotected

The user wants to scroll.

Definition at line 373 of file view_map.cpp.

◆ zoom_in

void map_view::zoom_in ( )
slot

Zooms in by 20%.

Definition at line 233 of file view_map.cpp.

Referenced by minimap_panel::minimap_panel(), mr_menu::setup_menus(), and wheelEvent().

◆ zoom_out

void map_view::zoom_out ( )
slot

Zooms out by 20%.

Definition at line 243 of file view_map.cpp.

Referenced by minimap_panel::minimap_panel(), mr_menu::setup_menus(), and wheelEvent().

◆ zoom_reset

void map_view::zoom_reset ( )
slot

Resets the zoom level.

Definition at line 238 of file view_map.cpp.

Referenced by minimap_panel::minimap_panel(), and mr_menu::setup_menus().

Friends And Related Function Documentation

◆ debug_tile

void debug_tile ( tile tile)
friend

Callback to set the tile being debugged.

Definition at line 757 of file view_map.cpp.

Member Data Documentation

◆ cursor

int map_view::cursor
private

Definition at line 102 of file view_map.h.

Referenced by map_view(), timer_event(), and update_cursor().

◆ cursor_frame

int map_view::cursor_frame {0}
private

Definition at line 101 of file view_map.h.

Referenced by timer_event(), and update_cursor().

◆ m_debugger

QPointer<freeciv::tileset_debugger> map_view::m_debugger = nullptr
private

Definition at line 108 of file view_map.h.

Referenced by debugger(), hide_debugger(), and show_debugger().

◆ m_hidden_fcwidgets

std::vector<QPointer<fcwidget> > map_view::m_hidden_fcwidgets
private

Definition at line 109 of file view_map.h.

Referenced by hide_all_fcwidgets(), and show_all_fcwidgets().

◆ m_origin_animation

std::unique_ptr<QPropertyAnimation> map_view::m_origin_animation
private

Definition at line 105 of file view_map.h.

Referenced by center_on_tile().

◆ m_renderer

freeciv::renderer* map_view::m_renderer
private

◆ m_scale

double map_view::m_scale = 1
private

Definition at line 104 of file view_map.h.

◆ m_scale_animation

std::unique_ptr<QPropertyAnimation> map_view::m_scale_animation
private

Definition at line 106 of file view_map.h.

Referenced by set_scale().

Property Documentation

◆ scale