Author: mir3x
Date: Tue Nov 29 12:54:50 2016
New Revision: 34652

URL: http://svn.gna.org/viewcvs/freeciv?rev=34652&view=rev
Log:
Qt client - added menu entry to save whole map to image

See patch #8031

Modified:
    trunk/client/gui-qt/menu.cpp
    trunk/client/gui-qt/menu.h

Modified: trunk/client/gui-qt/menu.cpp
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-qt/menu.cpp?rev=34652&r1=34651&r2=34652&view=diff
==============================================================================
--- trunk/client/gui-qt/menu.cpp        (original)
+++ trunk/client/gui-qt/menu.cpp        Tue Nov 29 12:54:50 2016
@@ -1000,6 +1000,8 @@
   menu_list.insertMulti(SAVE, act);
   act->setIcon(style()->standardIcon(QStyle::SP_DialogSaveButton));
   connect(act, SIGNAL(triggered()), this, SLOT(save_game_as()));
+  act = menu->addAction(_("Save Map to Image"));
+  connect(act, SIGNAL(triggered()), this, SLOT(save_image()));
   menu->addSeparator();
   act = menu->addAction(_("Leave game"));
   act->setIcon(style()->standardIcon(QStyle::SP_DialogDiscardButton));
@@ -3136,6 +3138,44 @@
 }
 
 /***************************************************************************
+  Menu Save Map Image
+***************************************************************************/
+void mr_menu::save_image()
+{
+  int current_width, current_height;
+  int full_size_x, full_size_y;
+  hud_message_box saved(gui()->central_wdg);
+  bool map_saved;
+  QString img_name;
+
+  full_size_x = (wld.map.xsize + 2) * tileset_tile_width(tileset);
+  full_size_y = (wld.map.ysize + 2) * tileset_tile_height(tileset);
+  current_width = gui()->mapview_wdg->width();
+  current_height = gui()->mapview_wdg->height();
+  if (tileset_hex_width(tileset) > 0) {
+    full_size_y = full_size_y * 11 / 20;
+  } else if (tileset_is_isometric(tileset)) {
+    full_size_y = full_size_y / 2;
+  }
+  map_canvas_resized(full_size_x, full_size_y);
+  img_name = QString("FreeCiv-Turn%1").arg(game.info.turn);
+  if (client_has_player() == true) {
+    img_name = img_name + "-"
+                + QString(nation_plural_for_player(client_player()));
+  }
+  map_saved = mapview.store->map_pixmap.save(img_name, "png");
+  map_canvas_resized(current_width, current_height);
+  saved.setStandardButtons(QMessageBox::Ok);
+  saved.setDefaultButton(QMessageBox::Cancel);
+  if (map_saved) {
+    saved.set_text_title("Image saved as " + img_name, _("Succeess"));
+  } else {
+    saved.set_text_title(_("Failed to save image of the map"), _("Error"));
+  }
+  saved.exec();
+}
+
+/***************************************************************************
   Menu Save Game
 ***************************************************************************/
 void mr_menu::save_game()

Modified: trunk/client/gui-qt/menu.h
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-qt/menu.h?rev=34652&r1=34651&r2=34652&view=diff
==============================================================================
--- trunk/client/gui-qt/menu.h  (original)
+++ trunk/client/gui-qt/menu.h  Tue Nov 29 12:54:50 2016
@@ -310,6 +310,7 @@
   void save_options_now();
   void save_game();
   void save_game_as();
+  void save_image();
   void back_to_menu();
   void quit_game();
 


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to