[Widelands-dev] [Merge] lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands

2018-07-13 Thread noreply
The proposal to merge lp:~widelands-dev/widelands/bug-1691339-editor-8-players 
into lp:widelands has been updated.

Status: Needs review => Merged

For more details, see:
https://code.launchpad.net/~widelands-dev/widelands/bug-1691339-editor-8-players/+merge/349092
-- 
Your team Widelands Developers is subscribed to branch 
lp:~widelands-dev/widelands/bug-1691339-editor-8-players.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Widelands-dev] [Merge] lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands

2018-07-13 Thread GunChleoc
Transient failure on Travis

@bunnybot merge force
-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1691339-editor-8-players/+merge/349092
Your team Widelands Developers is subscribed to branch 
lp:~widelands-dev/widelands/bug-1691339-editor-8-players.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp


[Widelands-dev] [Merge] lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands

2018-07-13 Thread bunnybot
Refusing to merge, since Travis is not green. Use @bunnybot merge force for 
merging anyways.

Travis build 3645. State: errored. Details: 
https://travis-ci.org/widelands/widelands/builds/401434259.
-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1691339-editor-8-players/+merge/349092
Your team Widelands Developers is subscribed to branch 
lp:~widelands-dev/widelands/bug-1691339-editor-8-players.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Widelands-dev] [Merge] lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands

2018-07-13 Thread GunChleoc
@bunnybot merge
-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1691339-editor-8-players/+merge/349092
Your team Widelands Developers is subscribed to branch 
lp:~widelands-dev/widelands/bug-1691339-editor-8-players.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Widelands-dev] [Merge] lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands

2018-07-12 Thread kaputtnik
Works on linux as expected :-)

Regarding Spinbox vs Dropdown: Maybe i am too konservative for such changes ;)

The Tooltip for 'Number of Players' says 'Select Item'. Maybe change it to 
'Choose amount of players'? 'Set number of players'? 'Number of players'?

-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1691339-editor-8-players/+merge/349092
Your team Widelands Developers is subscribed to branch 
lp:~widelands-dev/widelands/bug-1691339-editor-8-players.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Widelands-dev] [Merge] lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands

2018-07-12 Thread GunChleoc
I think centered would be a pain in the butt when setting player starting 
positions.

I forgot the tooltip for the stating positions tool that kaputtnik mentioned, 
still need to do that bit.

No idea why AppVeyor hasn't been triggered yet.
-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1691339-editor-8-players/+merge/349092
Your team Widelands Developers is subscribed to branch 
lp:~widelands-dev/widelands/bug-1691339-editor-8-players.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Widelands-dev] [Merge] lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands

2018-07-12 Thread Klaus Halfmann
Review: Approve compile, test

Work for me.

the Window is initially at the top left,
that Alert is always at the top left,
would better like it to be centered,

OTOH this dialog is used seldom.

kaputtnick: can you confirm for Linux?
Gun: if you trigger a build I could check on Windows.
-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1691339-editor-8-players/+merge/349092
Your team Widelands Developers is subscribed to branch 
lp:~widelands-dev/widelands/bug-1691339-editor-8-players.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Widelands-dev] [Merge] lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands

2018-07-12 Thread GunChleoc
Dropdown positioning should be fixed now, thanks for catching that one :)

> i would prefer the old spinbox for 'Number of Players'. I think it fits 
> better with the other places where an amount could be chosen, e.g. for the 
> resources.

This sort of argument means not having any dropdowns, because we can't overhaul 
everything at once. It makes sense to keep the Spinbox for the resources, but 
in other cases like map size and tool size, we should have dropdowns too.

So, you'll need to make a stronger argument to convince me to have to click 7 
times instead of 2 times if I want a map with 8 players. I'll listen if you 
have one ;)
-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1691339-editor-8-players/+merge/349092
Your team Widelands Developers is subscribed to branch 
lp:~widelands-dev/widelands/bug-1691339-editor-8-players.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Widelands-dev] [Merge] lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands

2018-07-10 Thread kaputtnik
Here on linux it looks like 
https://bugs.launchpad.net/widelands/+bug/1691339/+attachment/5161992/+files/player_options.png

The tribe selection looks also some kind of misplaced: 
https://bugs.launchpad.net/widelands/+bug/1691339/+attachment/5161993/+files/player_options-tribe.png

While the tribe selection is a good idea, i would prefer the old spinbox for 
'Number of Players'. I think it fits better with the other places where an 
amount could be chosen, e.g. for the resources.

The button for placing the starting position should get a tooltipp too :)
-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1691339-editor-8-players/+merge/349092
Your team Widelands Developers is subscribed to branch 
lp:~widelands-dev/widelands/bug-1691339-editor-8-players.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Widelands-dev] [Merge] lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands

2018-07-10 Thread GunChleoc
Questions answered in-line. Will look into the positioning issue.

Diff comments:

> 
> === modified file 'src/editor/ui_menus/player_menu.cc'
> --- src/editor/ui_menus/player_menu.cc2018-05-22 11:29:41 +
> +++ src/editor/ui_menus/player_menu.cc2018-07-08 12:09:41 +
> @@ -19,266 +19,313 @@
>  
>  #include "editor/ui_menus/player_menu.h"
>  
> +#include 
> +
> +#include 
>  #include 
>  
>  #include "base/i18n.h"
> -#include "base/wexception.h"
>  #include "editor/editorinteractive.h"
>  #include "editor/tools/set_starting_pos_tool.h"
>  #include "graphic/graphic.h"
> +#include "graphic/playercolor.h"
>  #include "logic/map.h"
>  #include "logic/map_objects/tribes/tribe_basic_info.h"
> -#include "logic/player.h"
> -#include "ui_basic/editbox.h"
> -#include "ui_basic/messagebox.h"
> -#include "ui_basic/textarea.h"
> -
> -#define UNDEFINED_TRIBE_NAME ""
> +#include "logic/widelands.h"
> +#include "profile/profile.h"
> +#include "ui_basic/checkbox.h"
> +#include "ui_basic/multilinetextarea.h"
> +
> +namespace {
> +constexpr int kMargin = 4;
> +// If this ever gets changed, don't forget to change the strings in the 
> warning box as well.
> +constexpr Widelands::PlayerNumber max_recommended_players = 8;
> +}  // namespace
> +
> +class EditorPlayerMenuWarningBox : public UI::Window {
> +public:
> + explicit EditorPlayerMenuWarningBox(UI::Panel* parent)
> + /** TRANSLATORS: Window title in the editor when a player has selected 
> more than the recommended number of players */
> +: Window(parent, "editor_player_menu_warning_box", 0, 0, 500, 220, 
> _("Too Many Players")),
> +  box_(this, 0, 0, UI::Box::Vertical, 0, 0, 2 * kMargin),
> +  warning_label_(_,
> + 0,
> + 0,
> + 300,
> + 0,
> + UI::PanelStyle::kWui,
> + /** TRANSLATORS: Info text in editor player menu 
> when a player has selected more than the recommended number of players. 
> Choice is made by OK/Abort. */
> + _("We do not recommend setting more than 8 players 
> except for testing "
> +   "purposes. Are you sure that you want more than 8 
> players?"),
> + UI::Align::kLeft,
> + UI::MultilineTextarea::ScrollMode::kNoScrolling),
> +  /** TRANSLATORS: Checkbox for: 'We do not recommend setting more 
> than 8 players except for
> + testing purposes. Are you sure that you want more than 8 
> players?' */
> +  reminder_choice_(_, Vector2i::zero(), _("Do not remind me 
> again")),
> +  button_box_(_, kMargin, kMargin, UI::Box::Horizontal, 0, 0, 2 
> * kMargin),
> +  ok_(_box_, "ok", 0, 0, 120, 0, 
> UI::ButtonStyle::kWuiPrimary, _("OK")),
> +  cancel_(_box_, "cancel", 0, 0, 120, 0, 
> UI::ButtonStyle::kWuiSecondary, _("Abort")) {
> +
> + set_center_panel(_);
> +
> + box_.add(_label_, UI::Box::Resizing::kFullSize);
> + box_.add(_choice_, UI::Box::Resizing::kFullSize);
> +
> + button_box_.add_inf_space();
> + button_box_.add(_);
> + button_box_.add_inf_space();
> + button_box_.add(_);
> + button_box_.add_inf_space();
> + box_.add_space(kMargin);
> + box_.add(_box_, UI::Box::Resizing::kFullSize);
> + box_.add_space(kMargin);
> +
> + 
> ok_.sigclicked.connect(boost::bind(::ok, 
> boost::ref(*this)));
> + cancel_.sigclicked.connect(
> +boost::bind(::cancel, 
> boost::ref(*this)));
> + }
> +
> + void ok() {
> + write_option();
> + end_modal(UI::Panel::Returncodes::kOk);
> + }
> +
> + void cancel() {
> + write_option();
> + 
> end_modal(UI::Panel::Returncodes::kBack);
> + }
> +
> + void write_option() {
> + if (reminder_choice_.get_state()) {
> + g_options.pull_section("global").set_bool(
> +"editor_player_menu_warn_too_many_players", false);
> + }
> + }
> +
> +private:
> + UI::Box box_;
> + UI::MultilineTextarea warning_label_;
> + UI::Checkbox reminder_choice_;
> + UI::Box button_box_;
> + UI::Button ok_;
> + UI::Button cancel_;
> +};
>  
>  inline EditorInteractive& EditorPlayerMenu::eia() {
>   return dynamic_cast(*get_parent());
>  }
>  
>  EditorPlayerMenu::EditorPlayerMenu(EditorInteractive& parent, 
> UI::UniqueWindow::Registry& registry)
> -   : UI::UniqueWindow(, "players_menu", , 340, 400, 
> _("Player Options")),
> - add_player_(this,
> - "add_player",
> - get_inner_w() - 5 - 20,
> - 5,
> - 20,
> - 20,
> - UI::ButtonStyle::kWuiSecondary,
> - 

Re: [Widelands-dev] [Merge] lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands

2018-07-10 Thread Klaus Halfmann
Review: Needs Fixing compile, test

Sorry, that dropdown Window for "Number of players" 
always appears at the top left of the screen.
Playing in a Window on OSX 1280 x 720 and in full screen mode.

Does happen on Linux/Windows, too?
-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1691339-editor-8-players/+merge/349092
Your team Widelands Developers is subscribed to branch 
lp:~widelands-dev/widelands/bug-1691339-editor-8-players.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Widelands-dev] [Merge] lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands

2018-07-10 Thread Klaus Halfmann
>   menu.select_tool(menu.tools()->set_starting_pos, EditorTool::First);
> - menu.tools()->set_starting_pos.set_current_player(n);
> + menu.tools()->set_starting_pos.set_current_player(row);
>  
>   //  reselect tool, so everything is in a defined state
>   menu.select_tool(menu.tools()->current(), EditorTool::First);
> - update();
> +
> + // Signal player position states via button states
> + iterate_player_numbers(pn, map->get_nrplayers()) {
> + if (pn == row) {
> + rows_.at(pn - 
> 1)->position->set_background_style(UI::ButtonStyle::kWuiPrimary);
> + rows_.at(pn - 1)->position->set_perm_pressed(true);
> + } else {
> + rows_.at(pn - 
> 1)->position->set_background_style(UI::ButtonStyle::kWuiSecondary);
> + rows_.at(pn - 
> 1)->position->set_perm_pressed(map->get_starting_pos(pn) !=
> +  
> Widelands::Coords::null());
> + }
> + }
>  }
>  
> -/**
> - * Player name has changed
> - */
> -void EditorPlayerMenu::name_changed(int32_t m) {
> +void EditorPlayerMenu::name_changed(size_t row) {
>   //  Player name has been changed.
> - std::string text = plr_names_[m]->text();
> + const std::string& text = rows_.at(row)->name->text();
>   EditorInteractive& menu = eia();
>   Widelands::Map* map = menu.egbase().mutable_map();
> - map->set_scenario_player_name(m + 1, text);
> - plr_names_[m]->set_text(map->get_scenario_player_name(m + 1));
> + map->set_scenario_player_name(row + 1, text);
>   menu.set_need_save(true);
>  }
> 
> === modified file 'src/ui_basic/dropdown.cc'
> --- src/ui_basic/dropdown.cc  2018-04-27 06:11:05 +
> +++ src/ui_basic/dropdown.cc  2018-07-08 12:09:41 +
> @@ -129,8 +129,13 @@
>  }
>  
>  BaseDropdown::~BaseDropdown() {
> - // Listselect is already taking care of the cleanup,
> - // so no call to clear() needed here.
> + // The list needs to be able to drop outside of windows, so it won't 
> close with the window.
> + // Deleting here leads to conflict with who gets to delete it, so we 
> hide it instead.
> + // TODO(GunChleoc): Investigate whether we can find a better solution 
> for this

Mhh, Is this a memeory leak, or just bad coding?

> + if (list_) {
> + list_->clear();
> + list_->set_visible(false);
> + }
>  }
>  
>  void BaseDropdown::set_height(int height) {


-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1691339-editor-8-players/+merge/349092
Your team Widelands Developers is requested to review the proposed merge of 
lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp


[Widelands-dev] [Merge] lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands

2018-07-08 Thread bunnybot
Continuous integration builds have changed state:

Travis build 3645. State: errored. Details: 
https://travis-ci.org/widelands/widelands/builds/401434259.
Appveyor build 3444. State: success. Details: 
https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_bug_1691339_editor_8_players-3444.
-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1691339-editor-8-players/+merge/349092
Your team Widelands Developers is requested to review the proposed merge of 
lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp


[Widelands-dev] [Merge] lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands

2018-07-08 Thread bunnybot
Continuous integration builds have changed state:

Travis build 3640. State: failed. Details: 
https://travis-ci.org/widelands/widelands/builds/401388874.
Appveyor build 3439. State: success. Details: 
https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_bug_1691339_editor_8_players-3439.
-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1691339-editor-8-players/+merge/349092
Your team Widelands Developers is requested to review the proposed merge of 
lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp


[Widelands-dev] [Merge] lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands

2018-07-08 Thread GunChleoc
GunChleoc has proposed merging 
lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands.

Commit message:
Refactored Editor Player Menu to use Box layout. Show dismissable warning if 
more than 8 players are selected.

Requested reviews:
  Widelands Developers (widelands-dev)
Related bugs:
  Bug #1691339 in widelands: "Inform map editors not to use more than 8 players"
  https://bugs.launchpad.net/widelands/+bug/1691339

For more details, see:
https://code.launchpad.net/~widelands-dev/widelands/bug-1691339-editor-8-players/+merge/349092
-- 
Your team Widelands Developers is requested to review the proposed merge of 
lp:~widelands-dev/widelands/bug-1691339-editor-8-players into lp:widelands.
=== modified file 'src/editor/CMakeLists.txt'
--- src/editor/CMakeLists.txt	2017-11-20 13:50:51 +
+++ src/editor/CMakeLists.txt	2018-07-08 07:14:33 +
@@ -103,6 +103,7 @@
 map_io
 map_io_map_loader
 notifications
+profile
 random
 scripting_coroutine
 scripting_lua_interface

=== modified file 'src/editor/ui_menus/player_menu.cc'
--- src/editor/ui_menus/player_menu.cc	2018-05-22 11:29:41 +
+++ src/editor/ui_menus/player_menu.cc	2018-07-08 07:14:33 +
@@ -19,235 +19,283 @@
 
 #include "editor/ui_menus/player_menu.h"
 
+#include 
+
+#include 
 #include 
 
 #include "base/i18n.h"
-#include "base/wexception.h"
 #include "editor/editorinteractive.h"
 #include "editor/tools/set_starting_pos_tool.h"
 #include "graphic/graphic.h"
+#include "graphic/playercolor.h"
 #include "logic/map.h"
 #include "logic/map_objects/tribes/tribe_basic_info.h"
-#include "logic/player.h"
-#include "ui_basic/editbox.h"
-#include "ui_basic/messagebox.h"
-#include "ui_basic/textarea.h"
-
-#define UNDEFINED_TRIBE_NAME ""
+#include "logic/widelands.h"
+#include "profile/profile.h"
+#include "ui_basic/checkbox.h"
+#include "ui_basic/multilinetextarea.h"
+
+namespace {
+constexpr int kMargin = 4;
+// If this ever gets changed, don't forget to change the strings in the warning box as well.
+constexpr Widelands::PlayerNumber max_recommended_players = 8;
+}  // namespace
+
+class EditorPlayerMenuWarningBox : public UI::Window {
+public:
+	explicit EditorPlayerMenuWarningBox(UI::Panel* parent)
+	   : Window(parent, "editor_player_menu_warning_box", 0, 0, 500, 220, _("Too Many Players")),
+	 box_(this, 0, 0, UI::Box::Vertical, 0, 0, 2 * kMargin),
+	 warning_label_(_,
+	0,
+	0,
+	300,
+	0,
+	UI::PanelStyle::kWui,
+	/** TRANSLATORS: Info text in editor player menu */
+	_("We do not recommend setting more than 8 players except for testing "
+	  "purposes. Are you sure that you want more than 8 players?"),
+	UI::Align::kLeft,
+	UI::MultilineTextarea::ScrollMode::kNoScrolling),
+	 /** TRANSLATORS: Checkbox for: 'We do not recommend setting more than 8 players except for
+	testing purposes. Are you sure that you want more than 8 players?' */
+	 reminder_choice_(_, Vector2i::zero(), _("Do not remind me again")),
+	 button_box_(_, kMargin, kMargin, UI::Box::Horizontal, 0, 0, 2 * kMargin),
+	 ok_(_box_, "ok", 0, 0, 120, 0, UI::ButtonStyle::kWuiPrimary, _("OK")),
+	 cancel_(_box_, "cancel", 0, 0, 120, 0, UI::ButtonStyle::kWuiSecondary, _("Abort")) {
+
+		set_center_panel(_);
+
+		box_.add(_label_, UI::Box::Resizing::kFullSize);
+		box_.add(_choice_, UI::Box::Resizing::kFullSize);
+
+		button_box_.add_inf_space();
+		button_box_.add(_);
+		button_box_.add_inf_space();
+		button_box_.add(_);
+		button_box_.add_inf_space();
+		box_.add_space(kMargin);
+		box_.add(_box_, UI::Box::Resizing::kFullSize);
+		box_.add_space(kMargin);
+
+		ok_.sigclicked.connect(boost::bind(::ok, boost::ref(*this)));
+		cancel_.sigclicked.connect(
+		   boost::bind(::cancel, boost::ref(*this)));
+	}
+
+	void ok() {
+		write_option();
+		end_modal(UI::Panel::Returncodes::kOk);
+	}
+
+	void cancel() {
+		write_option();
+		end_modal(UI::Panel::Returncodes::kBack);
+	}
+
+	void write_option() {
+		if (reminder_choice_.get_state()) {
+			g_options.pull_section("global").set_bool(
+			   "editor_player_menu_warn_too_many_players", false);
+		}
+	}
+
+private:
+	UI::Box box_;
+	UI::MultilineTextarea warning_label_;
+	UI::Checkbox reminder_choice_;
+	UI::Box button_box_;
+	UI::Button ok_;
+	UI::Button cancel_;
+};
 
 inline EditorInteractive& EditorPlayerMenu::eia() {
 	return dynamic_cast(*get_parent());
 }
 
 EditorPlayerMenu::EditorPlayerMenu(EditorInteractive& parent, UI::UniqueWindow