[springlobby] 02/05: Imported Upstream version 0.245+dfsg

Markus Koschany apo at moszumanska.debian.org
Tue Apr 19 08:34:12 UTC 2016


This is an automated email from the git hooks/post-receive script.

apo pushed a commit to branch master
in repository springlobby.

commit 55ea8e0d8cdf146561626318899180f980cae9a3
Author: Markus Koschany <apo at debian.org>
Date:   Tue Apr 19 09:14:50 2016 +0200

    Imported Upstream version 0.245+dfsg
---
 ChangeLog                                         |  7 ++++
 VERSION                                           |  2 +-
 springlobby_config.h                              |  2 +-
 src/CMakeLists.txt                                |  2 -
 src/downloader/lib/.travis.yml                    | 10 ++---
 src/downloader/lib/CMakeLists.txt                 | 18 +++++++--
 src/downloader/lib/src/CMakeLists.txt             |  4 +-
 src/gui/hosting/battlemaptab.cpp                  |  2 +-
 src/gui/hosting/battlemaptab.h                    | 18 ++++-----
 src/gui/hosting/battleroomtab.cpp                 |  4 +-
 src/gui/hosting/battleroomtab.h                   | 47 +++++++++++++----------
 src/gui/hosting/ibattlemaptab.cpp                 | 17 --------
 src/gui/hosting/ibattlemaptab.h                   | 30 ---------------
 src/gui/hosting/ibattleroomtab.cpp                | 17 --------
 src/gui/hosting/ibattleroomtab.h                  | 47 -----------------------
 src/gui/hosting/mainjoinbattletab.cpp             | 12 +++---
 src/gui/hosting/mainjoinbattletab.h               | 12 +++---
 src/gui/hosting/votepanel.cpp                     |  3 +-
 src/gui/mainwindow.cpp                            | 11 +++++-
 src/gui/mainwindow.h                              |  2 +-
 src/gui/ui.cpp                                    |  8 ++--
 src/lsl/.travis.yml                               | 14 ++-----
 src/lsl/CMakeLists.txt                            | 19 +++++++--
 src/lsl/cmake/FindJsoncpp.cmake                   | 26 +++++++++++++
 src/lsl/src/lslextract/CMakeLists.txt             |  5 +--
 src/lsl/src/lslextract/server/request_handler.cpp |  2 +-
 src/lsl/src/lslunitsync/CMakeLists.txt            |  4 +-
 src/lsl/src/lslunitsync/c_api.cpp                 |  4 +-
 src/lsl/src/lslunitsync/image.cpp                 | 38 +++++++++++++-----
 src/lsl/src/lslunitsync/sharedlib.cpp             |  4 +-
 src/lsl/test/CMakeLists.txt                       |  2 +-
 src/lsl/test/basic.cpp                            |  2 +
 src/serverevents.cpp                              |  4 ++
 src/useractions.cpp                               |  2 +-
 34 files changed, 184 insertions(+), 217 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index e89801f..5ebc102 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 ChangeLog of Springlobby
 
+## 0.245
+ - fix crash on battle close
+ - fix springsettings always greyed out
+ - fix vote panel shown only once
+ - fix notification on user login
+ - fix osx compile
+
 ## 0.244
  - fix memleaks
  - improve metadata caching (i.e. map images are stored in small + large size, json is used for metadata)
diff --git a/VERSION b/VERSION
index ca68bec..184d488 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.244
+0.245
diff --git a/springlobby_config.h b/springlobby_config.h
index 939275f..4f9bfb6 100644
--- a/springlobby_config.h
+++ b/springlobby_config.h
@@ -6,6 +6,6 @@
 #undef VERSION
 
 /* the git tag / commit we build from */
-#define VERSION "0.244"
+#define VERSION "0.245"
 
 #endif	/* SPRINGLOBBY_HEADERGUARD_CONFIG_H */
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 32b7d57..a754643 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -226,10 +226,8 @@ set(springlobbySrc
 	gui/hosting/addbotdialog.cpp
 	gui/hosting/autobalancedialog.cpp
 	gui/hosting/battlemaptab.cpp
-	gui/hosting/ibattlemaptab.cpp
 	gui/hosting/battleoptionstab.cpp
 	gui/hosting/battleroomtab.cpp
-	gui/hosting/ibattleroomtab.cpp
 	gui/hosting/hostbattledialog.cpp
 	gui/hosting/mainjoinbattletab.cpp
 	gui/hosting/mainsingleplayertab.cpp
diff --git a/src/downloader/lib/.travis.yml b/src/downloader/lib/.travis.yml
index 87a5188..c4ca705 100644
--- a/src/downloader/lib/.travis.yml
+++ b/src/downloader/lib/.travis.yml
@@ -3,15 +3,11 @@ compiler:
   - clang
   - gcc
 
-before_install:
-  - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
-  - sudo add-apt-repository -y ppa:george-edison55/precise-backports #cmake
-  - sudo apt-get update -q
+sudo: required
+dist: trusty
 
 install:
-  - sudo apt-get install gcc-4.7 g++-4.7 cmake cmake-data
-  - sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 90
-  - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 90
+  - sudo apt-get install -y gcc-4.7 g++-4.7 cmake libcurl4-openssl-dev libjsoncpp-dev
 
 before_script:
   - cmake . -DPRD_DEVELOP_FILES:BOOL=ON
diff --git a/src/downloader/lib/CMakeLists.txt b/src/downloader/lib/CMakeLists.txt
index 739adcd..0f3fa5a 100644
--- a/src/downloader/lib/CMakeLists.txt
+++ b/src/downloader/lib/CMakeLists.txt
@@ -30,7 +30,13 @@ OPTION(PRD_DEVELOP_FILES "install development files (header, libspringdownloader
 OPTION(PRD_DO_INSTALL "install files" ON)
 OPTION(PRD_ARCHIVE_SUPPORT "enable archive support" ON)
 OPTION(PRD_CLEAR_COMPILER_FLAGS "clear all compiler flags" OFF)
-OPTION(PRD_JSONCPP_INTERNAL "use bundled JsonCpp" ON)
+
+find_package(Jsoncpp)
+if (${Jsoncpp_FOUND})
+	OPTION(PRD_JSONCPP_INTERNAL "use bundled JsonCpp" FALSE)
+else()
+	OPTION(PRD_JSONCPP_INTERNAL "use bundled JsonCpp" TRUE)
+endif()
 
 if(PRD_CLEAR_COMPILER_FLAGS)
 	SET(CMAKE_CXX_FLAGS "")
@@ -108,12 +114,16 @@ else()
 endif()
 
 if (PRD_JSONCPP_INTERNAL)
-	# use bundled JsonCpp
-	set(Jsoncpp_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/lib/jsoncpp/include)
+        # use bundled JsonCpp
+        set(PRD_JSONCPP_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/lib/jsoncpp/include)
+        set(PRD_JSONCPP_LIBRARIES "")
 else()
-	find_package(Jsoncpp REQUIRED)
+        find_package(Jsoncpp REQUIRED)
+	set(PRD_JSONCPP_INCLUDE_DIR ${Jsoncpp_INCLUDE_DIR})
+	set(PRD_JSONCPP_LIBRARIES ${Jsoncpp_LIBRARY})
 endif()
 
+
 # MINIZIP_FOUND is used in lib & FileSystem
 FIND_PACKAGE(MiniZip)
 if(NOT MINIZIP_FOUND)
diff --git a/src/downloader/lib/src/CMakeLists.txt b/src/downloader/lib/src/CMakeLists.txt
index 00ed98a..912bfaf 100644
--- a/src/downloader/lib/src/CMakeLists.txt
+++ b/src/downloader/lib/src/CMakeLists.txt
@@ -41,7 +41,7 @@ add_library(Downloader STATIC
 
 target_include_directories(Downloader
 		PRIVATE ${pr-downloader_SOURCE_DIR}/src
-		PRIVATE ${Jsoncpp_INCLUDE_DIR}
+		PRIVATE ${PRD_JSONCPP_INCLUDE_DIR}
 		PRIVATE ${MINIZIP_INCLUDE_DIR}
 		PRIVATE ${CURL_INCLUDE_DIR}
 		PRIVATE ${ZLIB_INCLUDE_DIR}
@@ -61,7 +61,7 @@ target_link_libraries(Downloader
 	${CURL_LIBRARIES}
 	${OPENSSL_LIBRARIES}
 	${WIN32LIBS}
-	${Jsoncpp_LIBRARY}
+	${PRD_JSONCPP_LIBRARIES}
 	${ZLIB_LIBRARIES}
 	pr-md5
 	pr-sha1
diff --git a/src/gui/hosting/battlemaptab.cpp b/src/gui/hosting/battlemaptab.cpp
index 99885bf..8bf8d21 100644
--- a/src/gui/hosting/battlemaptab.cpp
+++ b/src/gui/hosting/battlemaptab.cpp
@@ -48,7 +48,7 @@ END_EVENT_TABLE()
 
 
 BattleMapTab::BattleMapTab(wxWindow* parent, IBattle* battle)
-    : IBattleMapTab(parent, -1)
+    : wxPanel(parent, -1)
     , m_battle(battle)
 {
 	GetAui().manager->AddPane(this, wxLEFT, _T( "battlemaptab" ));
diff --git a/src/gui/hosting/battlemaptab.h b/src/gui/hosting/battlemaptab.h
index 9a8b2fd..4f002ef 100644
--- a/src/gui/hosting/battlemaptab.h
+++ b/src/gui/hosting/battlemaptab.h
@@ -5,8 +5,6 @@
 
 #include <wx/scrolwin.h>
 
-#include "ibattlemaptab.h"
-
 class Ui;
 class IBattle;
 class User;
@@ -27,20 +25,20 @@ class wxMouseEvent;
 
 /** \brief select map, draw startboxes (in sp define startpos)
  * \todo DOCMEMORE */
-class BattleMapTab : public IBattleMapTab
+class BattleMapTab : public wxPanel
 {
 public:
 	BattleMapTab(wxWindow* parent, IBattle* battle);
-	virtual ~BattleMapTab();
+	~BattleMapTab();
 
-	virtual void UpdateUser(User& user) override;
+	void UpdateUser(User& user);
 
-	virtual void Update() override;
-	virtual void Update(const wxString& Tag) override;
-	virtual void ReloadMaplist() override;
+	void Update();
+	void Update(const wxString& Tag);
+	void ReloadMaplist();
 
-	virtual void SetMap(int index) override;
-	virtual void SetBattle(IBattle* battle) override;
+	void SetMap(int index);
+	void SetBattle(IBattle* battle);
 
 private:
 	IBattle* GetBattle()
diff --git a/src/gui/hosting/battleroomtab.cpp b/src/gui/hosting/battleroomtab.cpp
index 238a096..53e3482 100644
--- a/src/gui/hosting/battleroomtab.cpp
+++ b/src/gui/hosting/battleroomtab.cpp
@@ -121,8 +121,9 @@ static wxArrayString CreateIntList(int count)
 	return res;
 }
 
+
 BattleRoomTab::BattleRoomTab(wxWindow* parent, IBattle* battle)
-    : IBattleRoomTab(parent, -1)
+    : wxPanel(parent, -1)
     , m_battle(battle)
     , m_BattleActionSink(this, &UiEvents::GetUiEventSender(UiEvents::OnBattleActionEvent))
 {
@@ -370,6 +371,7 @@ BattleRoomTab::BattleRoomTab(wxWindow* parent, IBattle* battle)
 	GlobalEventManager::Instance()->Subscribe(this, GlobalEventManager::OnDownloadFailed, wxObjectEventFunction(&BattleRoomTab::OnDownloadFailed));
 }
 
+
 BattleRoomTab::~BattleRoomTab()
 {
 	if (m_splitter != nullptr) {
diff --git a/src/gui/hosting/battleroomtab.h b/src/gui/hosting/battleroomtab.h
index 8f8ae48..7d1e04d 100644
--- a/src/gui/hosting/battleroomtab.h
+++ b/src/gui/hosting/battleroomtab.h
@@ -3,14 +3,14 @@
 #ifndef SPRINGLOBBY_HEADERGUARD_BATTLEROOMTAB_H
 #define SPRINGLOBBY_HEADERGUARD_BATTLEROOMTAB_H
 
-#include "ibattleroomtab.h"
-
 #include <lslunitsync/optionswrapper.h>
 #include "utils/uievents.h"
 #include <map>
 
-namespace GUI {
-namespace Controls {
+namespace GUI
+{
+namespace Controls
+{
 class BitmapComboBox;
 }
 }
@@ -37,34 +37,38 @@ typedef std::map<wxString, long> OptionListMap;
 
 /** \brief container for BattleroomListCtrl, battle specific ChatPanel. Also displaying battle info summary
  * \todo DOCMEMORE */
-class BattleRoomTab : public IBattleRoomTab
+class BattleRoomTab : public wxPanel
 {
 public:
 	BattleRoomTab(wxWindow* parent, IBattle* battle);
-	virtual ~BattleRoomTab();
+	~BattleRoomTab();
+
+	void UpdateUser(User& user, bool userJustAdded = false);
+
+	IBattle* GetBattle();
+	ChatPanel& GetChatPanel();
+
+	void UpdateBattleInfo();
+	void UpdateBattleInfo(const wxString& Tag);
+
 
-	virtual void UpdateUser(User& user, bool userJustAdded = false) override;
+	void OnBattleActionEvent(UiEvents::UiEventData data);
 
-	virtual IBattle* GetBattle() override;
-	virtual ChatPanel& GetChatPanel() override;
+	void OnUserJoined(User& user);
+	void OnUserLeft(User& user);
 
-	virtual void UpdateBattleInfo() override;
-	virtual void UpdateBattleInfo(const wxString& Tag) override;
+	void ReloadMaplist();
+	void SetMap(int index);
 
-	virtual void OnBattleActionEvent(UiEvents::UiEventData data) override;
+	void UpdateHighlights();
 
-	virtual void OnUserJoined(User& user) override;
-	virtual void OnUserLeft(User& user) override;
+	void UpdatePresetList();
 
-	virtual void ReloadMaplist() override;
-	virtual void SetMap(int index) override;
+	void SortPlayerList();
 
-	virtual void UpdateHighlights() override;
-	virtual void UpdatePresetList() override;
-	virtual void SortPlayerList() override;
-	virtual void SetBattle(IBattle* battle) override;
+	void SetBattle(IBattle* battle);
 
-	virtual void PrintAllySetup() override;
+	void PrintAllySetup();
 
 private:
 	void RegenerateOptionsList();
@@ -127,6 +131,7 @@ private:
 	VotePanel* m_votePanel;
 
 	IBattle* m_battle;
+	//		UnitSyncMap m_map; //not needed
 
 	long m_mod_opts_index;
 	long m_map_opts_index;
diff --git a/src/gui/hosting/ibattlemaptab.cpp b/src/gui/hosting/ibattlemaptab.cpp
deleted file mode 100644
index fe63d19..0000000
--- a/src/gui/hosting/ibattlemaptab.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-/* This file is part of the Springlobby (GPL v2 or later), see COPYING */
-
-#include "ibattlemaptab.h"
-
-#include "battlemaptab.h"
-
-IBattleMapTab::IBattleMapTab(wxWindow* parent, int id) :
-		wxPanel(parent, id) {
-}
-
-IBattleMapTab::~IBattleMapTab() {
-}
-
-IBattleMapTab* IBattleMapTab::CreateInstance(wxWindow* parent,
-		IBattle* battle) {
-	return new BattleMapTab(parent, battle);
-}
diff --git a/src/gui/hosting/ibattlemaptab.h b/src/gui/hosting/ibattlemaptab.h
deleted file mode 100644
index eb97c19..0000000
--- a/src/gui/hosting/ibattlemaptab.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* This file is part of the Springlobby (GPL v2 or later), see COPYING */
-
-#ifndef SRC_GUI_HOSTING_IBATTLEMAPTAB_H_
-#define SRC_GUI_HOSTING_IBATTLEMAPTAB_H_
-
-#include <wx/panel.h>
-
-class IBattle;
-class User;
-
-class IBattleMapTab : public wxPanel
-{
-protected:
-	IBattleMapTab(wxWindow* parent, int id);
-	virtual ~IBattleMapTab();
-
-public:
-	static IBattleMapTab* CreateInstance(wxWindow* parent, IBattle* battle);
-
-	virtual void UpdateUser(User& user) = 0;
-
-	virtual void Update() = 0;
-	virtual void Update(const wxString& Tag) = 0;
-	virtual void ReloadMaplist() = 0;
-
-	virtual void SetMap(int index) = 0;
-	virtual void SetBattle(IBattle* battle) = 0;
-};
-
-#endif /* SRC_GUI_HOSTING_IBATTLEMAPTAB_H_ */
diff --git a/src/gui/hosting/ibattleroomtab.cpp b/src/gui/hosting/ibattleroomtab.cpp
deleted file mode 100644
index 66fc4b3..0000000
--- a/src/gui/hosting/ibattleroomtab.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-/* This file is part of the Springlobby (GPL v2 or later), see COPYING */
-
-#include "ibattleroomtab.h"
-
-#include "battleroomtab.h"
-
-IBattleRoomTab::IBattleRoomTab(wxWindow* parent, int id)
-	: wxPanel(parent, id) {
-}
-
-IBattleRoomTab::~IBattleRoomTab() {
-}
-
-IBattleRoomTab* IBattleRoomTab::CreateInstance(wxWindow* parent,
-		IBattle* battle) {
-	return new BattleRoomTab(parent, battle);
-}
diff --git a/src/gui/hosting/ibattleroomtab.h b/src/gui/hosting/ibattleroomtab.h
deleted file mode 100644
index 67a6a10..0000000
--- a/src/gui/hosting/ibattleroomtab.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* This file is part of the Springlobby (GPL v2 or later), see COPYING */
-
-#ifndef SRC_GUI_HOSTING_IBATTLEROOMTAB_H_
-#define SRC_GUI_HOSTING_IBATTLEROOMTAB_H_
-
-#include <wx/panel.h>
-
-#include "utils/uievents.h"
-
-class IBattle;
-class User;
-class ChatPanel;
-
-class IBattleRoomTab : public wxPanel
-{
-protected:
-	IBattleRoomTab(wxWindow* parent, int id);
-	virtual ~IBattleRoomTab();
-
-public:
-	static IBattleRoomTab* CreateInstance(wxWindow* parent, IBattle* battle);
-
-	virtual void UpdateUser(User& user, bool userJustAdded = false) = 0;
-
-	virtual IBattle* GetBattle() = 0;
-	virtual ChatPanel& GetChatPanel() = 0;
-
-	virtual void UpdateBattleInfo() = 0;
-	virtual void UpdateBattleInfo(const wxString& Tag) = 0;
-
-	virtual void OnBattleActionEvent(UiEvents::UiEventData data) = 0;
-
-	virtual void OnUserJoined(User& user) = 0;
-	virtual void OnUserLeft(User& user) = 0;
-
-	virtual void ReloadMaplist() = 0;
-	virtual void SetMap(int index) = 0;
-
-	virtual void UpdateHighlights() = 0;
-	virtual void UpdatePresetList() = 0;
-	virtual void SortPlayerList() = 0;
-	virtual void SetBattle(IBattle* battle) = 0;
-
-	virtual void PrintAllySetup() = 0;
-};
-
-#endif /* SRC_GUI_HOSTING_IBATTLEROOMTAB_H_ */
diff --git a/src/gui/hosting/mainjoinbattletab.cpp b/src/gui/hosting/mainjoinbattletab.cpp
index 71eb23e..61580af 100644
--- a/src/gui/hosting/mainjoinbattletab.cpp
+++ b/src/gui/hosting/mainjoinbattletab.cpp
@@ -14,8 +14,8 @@
 
 #include "settings.h"
 #include "mainjoinbattletab.h"
-#include "ibattleroomtab.h"
-#include "ibattlemaptab.h"
+#include "battleroomtab.h"
+#include "battlemaptab.h"
 #include "battleoptionstab.h"
 #include "utils/conversion.h"
 #include "battleroommmoptionstab.h"
@@ -51,10 +51,10 @@ MainJoinBattleTab::MainJoinBattleTab(wxWindow* parent)
 	m_imagelist->Add(wxIcon(battle_map_xpm));
 	m_imagelist->Add(wxIcon(battle_settings_xpm));
 
-	m_battle_tab = IBattleRoomTab::CreateInstance(m_tabs, 0);
+	m_battle_tab = new BattleRoomTab(m_tabs, 0);
 	m_tabs->InsertPage(0, m_battle_tab, _("Battleroom"), true, wxIcon(battle_xpm));
 
-	m_map_tab = IBattleMapTab::CreateInstance(m_tabs, 0);
+	m_map_tab = new BattleMapTab(m_tabs, 0);
 	m_tabs->InsertPage(1, m_map_tab, _("Map"), false, wxIcon(battle_map_xpm));
 
 	m_mm_opts_tab = new BattleroomMMOptionsTab(0, m_tabs);
@@ -152,14 +152,14 @@ void MainJoinBattleTab::ReloadPresetList()
 }
 
 
-IBattleRoomTab& MainJoinBattleTab::GetBattleRoomTab()
+BattleRoomTab& MainJoinBattleTab::GetBattleRoomTab()
 {
 	ASSERT_EXCEPTION(m_battle_tab, _T( "m_battle_tab == 0" ));
 	return *m_battle_tab;
 }
 
 
-IBattleMapTab& MainJoinBattleTab::GetBattleMapTab()
+BattleMapTab& MainJoinBattleTab::GetBattleMapTab()
 {
 	ASSERT_EXCEPTION(m_map_tab, _T( "m_map_tab == 0" ));
 	return *m_map_tab;
diff --git a/src/gui/hosting/mainjoinbattletab.h b/src/gui/hosting/mainjoinbattletab.h
index ef4cb23..153e7d1 100644
--- a/src/gui/hosting/mainjoinbattletab.h
+++ b/src/gui/hosting/mainjoinbattletab.h
@@ -8,8 +8,8 @@
 
 class IBattle;
 class User;
-class IBattleRoomTab;
-class IBattleMapTab;
+class BattleRoomTab;
+class BattleMapTab;
 class BattleOptionsTab;
 class wxBoxSizer;
 class wxImageList;
@@ -37,7 +37,7 @@ public:
 	ChatPanel* GetActiveChatPanel();
 
 	void BattleUserUpdated(User& user);
-	IBattleRoomTab& GetBattleRoomTab();
+	BattleRoomTab& GetBattleRoomTab();
 
 	void ReloadPresetList();
 
@@ -46,7 +46,7 @@ public:
 	bool UseBattlePerspective();
 
 private:
-	IBattleMapTab& GetBattleMapTab();
+	BattleMapTab& GetBattleMapTab();
 	BattleOptionsTab& GetOptionsTab();
 	BattleroomMMOptionsTab& GetMMOptionsTab();
 	wxBoxSizer* m_main_sizer;
@@ -55,8 +55,8 @@ private:
 
 	SLNotebook* m_tabs;
 
-	IBattleRoomTab* m_battle_tab;
-	IBattleMapTab* m_map_tab;
+	BattleRoomTab* m_battle_tab;
+	BattleMapTab* m_map_tab;
 	BattleOptionsTab* m_opts_tab;
 	BattleroomMMOptionsTab* m_mm_opts_tab;
 
diff --git a/src/gui/hosting/votepanel.cpp b/src/gui/hosting/votepanel.cpp
index 3192d78..eab6e97 100644
--- a/src/gui/hosting/votepanel.cpp
+++ b/src/gui/hosting/votepanel.cpp
@@ -195,5 +195,6 @@ void VotePanel::onVoteBegins(const wxString& msg)
 
 void VotePanel::onVoteStopped()
 {
-	ResetState();
+	voteTextLabel->SetLabel(wxEmptyString);
+	showButtons(false);
 }
diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
index c82caad..2c04327 100644
--- a/src/gui/mainwindow.cpp
+++ b/src/gui/mainwindow.cpp
@@ -112,6 +112,7 @@ EVT_SET_FOCUS(MainWindow::OnSetFocus)
 EVT_KILL_FOCUS(MainWindow::OnKillFocus)
 EVT_AUINOTEBOOK_PAGE_CHANGED(MAIN_TABS, MainWindow::OnTabsChanged)
 EVT_CLOSE(MainWindow::OnClose)
+EVT_END_SESSION(MainWindow::OnClose)
 EVT_COMMAND(mySHOW_ERROR_MESSAGE, wxEVT_SHOW, MainWindow::OnShowErrorMessage)
 END_EVENT_TABLE()
 
@@ -161,7 +162,7 @@ MainWindow::MainWindow()
 	m_menuEdit->Append(MENU_RESET_LAYOUT, _("&Reset layout"));
 	m_menuEdit->Append(m_settings_menu);
 
-	m_menuEdit->Enable(MENU_SETTINGSPP, LSL::usync().IsLoaded()); //unitsync isn't loaded yet, disable menu entry
+	m_menuEdit->Enable(MENU_SETTINGSPP, false); //unitsync isn't loaded yet, disable menu entry
 
 	m_menuTools = new wxMenu;
 	m_menuTools->Append(MENU_JOIN, _("&Join channel..."));
@@ -243,6 +244,7 @@ MainWindow::MainWindow()
 	//	Logger::ShowDebugWindow(cfg().ReadBool(_T("/debug")));
 
 	GlobalEventManager::Instance()->Subscribe(this, GlobalEventManager::GamePromotedEvent, wxObjectEventFunction(&MainWindow::OnGamePromoted));
+	GlobalEventManager::Instance()->Subscribe(this, GlobalEventManager::OnUnitsyncReloaded, wxObjectEventFunction(&MainWindow::OnUnitSyncReloaded));
 }
 
 wxBitmap MainWindow::GetTabIcon(const unsigned char* data, size_t size) const
@@ -564,7 +566,7 @@ void MainWindow::OnMenuVersion(wxCommandEvent& /*unused*/)
 void MainWindow::OnUnitSyncReload(wxCommandEvent& /*unused*/)
 {
 	bool res = LSL::usync().ReloadUnitSyncLib();
-	m_menuEdit->Enable(MENU_SETTINGSPP, LSL::usync().IsLoaded());
+	m_menuEdit->Enable(MENU_SETTINGSPP, false);
 	if (res) {
 		GlobalEventManager::Instance()->Send(GlobalEventManager::OnUnitsyncReloaded);
 		return;
@@ -572,6 +574,11 @@ void MainWindow::OnUnitSyncReload(wxCommandEvent& /*unused*/)
 	wxLogWarning("Couldn't reload unitsync");
 }
 
+void MainWindow::OnUnitSyncReloaded(wxCommandEvent& /*unused*/)
+{
+	m_menuEdit->Enable(MENU_SETTINGSPP, true);
+}
+
 void MainWindow::MainWindow::OnShowWriteableDir(wxCommandEvent& /*unused*/)
 {
 	BrowseFolder(TowxString(SlPaths::GetDataDir()));
diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h
index aeb4314..456e867 100644
--- a/src/gui/mainwindow.h
+++ b/src/gui/mainwindow.h
@@ -84,7 +84,6 @@ public:
 	void OnShowChannelChooser(wxCommandEvent& event);
 	void OnShowWriteableDir(wxCommandEvent& event);
 	void forceSettingsFrameClose();
-	void OnUnitSyncReloaded();
 	void OnChannelList(const wxString& channel, const int& numusers, const wxString& topic);
 	void OnChannelListStart();
 	void OnClose(wxCloseEvent&);
@@ -115,6 +114,7 @@ public:
 
 private:
 	void OnGamePromoted(wxCommandEvent&);
+	void OnUnitSyncReloaded(wxCommandEvent& /*unused*/);
 
 private:
 	wxMenuItem* m_settings_menu;
diff --git a/src/gui/ui.cpp b/src/gui/ui.cpp
index 3bcbeed..de2383e 100644
--- a/src/gui/ui.cpp
+++ b/src/gui/ui.cpp
@@ -39,7 +39,7 @@
 #include "gui/uiutils.h"
 #include "gui/chatpanel.h"
 #include "gui/battlelist/battlelisttab.h"
-#include "gui/hosting/ibattleroomtab.h"
+#include "gui/hosting/battleroomtab.h"
 #include "gui/hosting/mainjoinbattletab.h"
 #include "gui/hosting/mainsingleplayertab.h"
 #include "gui/mainchattab.h"
@@ -510,8 +510,10 @@ void Ui::OnBattleClosed(IBattle& battle)
 	mw().GetBattleListTab().RemoveBattle(battle);
 	try {
 		if (mw().GetJoinTab().GetBattleRoomTab().GetBattle() == &battle) {
-			if (!battle.IsFounderMe())
-				customMessageBoxModal(SL_MAIN_ICON, _("The current battle was closed by the host."), _("Battle closed"));
+			if (!battle.IsFounderMe()) {
+				const wxString msg = _("The current battle was closed by the host.");
+				UiEvents::GetNotificationEventSender().SendEvent(UiEvents::NotficationData(UiEvents::ServerConnection, msg));
+			}
 			mw().GetJoinTab().LeaveCurrentBattle();
 		}
 	} catch (...) {
diff --git a/src/lsl/.travis.yml b/src/lsl/.travis.yml
index 227f776..2e0d670 100644
--- a/src/lsl/.travis.yml
+++ b/src/lsl/.travis.yml
@@ -3,19 +3,11 @@ compiler:
   - clang
   - gcc
 
-before_install:
-  - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test # gcc
-  - sudo add-apt-repository -y ppa:george-edison55/precise-backports #cmake
-  - sudo add-apt-repository --yes ppa:boost-latest/ppa
-  - sudo apt-get update -q
+sudo: required
+dist: trusty
 
 install:
-  - sudo apt-get install gcc-4.7 g++-4.7 cmake cmake-data
-  - sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 90;
-  - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 90;
-
-before_script:
-  - sudo apt-get install libboost-thread1.55-dev libboost-system1.55-dev libboost-filesystem1.55-dev spring
+  - sudo apt-get install -y libboost-thread1.55-dev libboost-system1.55-dev libboost-filesystem1.55-dev spring libjsoncpp-dev
   - cmake -DBUILD_TESTS=ON .
 script:
   - make && make check
diff --git a/src/lsl/CMakeLists.txt b/src/lsl/CMakeLists.txt
index 365cdf7..b5b2116 100644
--- a/src/lsl/CMakeLists.txt
+++ b/src/lsl/CMakeLists.txt
@@ -45,6 +45,8 @@ if(NOT DEFINED LIBSPRINGLOBBY_REV)
 endif(NOT DEFINED LIBSPRINGLOBBY_REV)
 
 
+LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
 if(springlobby_SOURCE_DIR)
 	message(STATUS "springlobby build, disabling cpack config")
 else()
@@ -117,7 +119,7 @@ INCLUDE(cmake/compat_flags.cmake)
 # add_dependencies( lsl-server version )
 
 OPTION(LSLSERVER
-	"Compile and install lsl-server" ON)
+	"Compile and install lsl-server (broken)" OFF)
 
 if(LSLSERVER)
 	IF (WIN32)
@@ -127,17 +129,26 @@ if(LSLSERVER)
 	ENDIF (WIN32)
 endif()
 
-OPTION(LSL_JSONCPP_INTERNAL "use bundled JsonCpp" ON)
+find_package(Jsoncpp)
+if (${Jsoncpp_FOUND})
+        OPTION(LSL_JSONCPP_INTERNAL "use bundled JsonCpp" FALSE)
+else()
+        OPTION(LSL_JSONCPP_INTERNAL "use bundled JsonCpp" TRUE)
+endif()
+
 if (LSL_JSONCPP_INTERNAL)
         # use bundled JsonCpp
-        set(Jsoncpp_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/jsoncpp/include)
-	set(libjsonsrc
+	set(LSL_JSONCPP_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/jsoncpp/include)
+	set(LSL_libjsonsrc
 		${CMAKE_CURRENT_SOURCE_DIR}/lib/jsoncpp/src/lib_json/json_value.cpp
 		${CMAKE_CURRENT_SOURCE_DIR}/lib/jsoncpp/src/lib_json/json_reader.cpp
 		${CMAKE_CURRENT_SOURCE_DIR}/lib/jsoncpp/src/lib_json/json_writer.cpp
 	)
 else()
         find_package(Jsoncpp REQUIRED)
+	set(LSL_libjsonsrc "")
+	set(LSL_JSONCPP_INCLUDE_DIR ${Jsoncpp_INCLUDE_DIR})
+	set(LSL_JSONCPP_LIBRARIES ${Jsoncpp_LIBRARY})
 endif()
 
 add_subdirectory( src )
diff --git a/src/lsl/cmake/FindJsoncpp.cmake b/src/lsl/cmake/FindJsoncpp.cmake
new file mode 100644
index 0000000..2478751
--- /dev/null
+++ b/src/lsl/cmake/FindJsoncpp.cmake
@@ -0,0 +1,26 @@
+# - Try to find Jsoncpp
+# Once done, this will define
+# stolen from
+# http://stackoverflow.com/questions/18005880/how-to-writing-a-cmake-module-for-jsoncpp
+#
+#  Jsoncpp_FOUND - system has Jsoncpp
+#  Jsoncpp_INCLUDE_DIR - the Jsoncpp include directory
+#  Jsoncpp_LIBRARY - link to use Jsoncpp
+
+# Use pkg-config to get hints about paths
+INCLUDE(FindPkgConfig)
+if(PKG_CONFIG_FOUND)
+	pkg_check_modules(Jsoncpp_PKGCONF jsoncpp)
+endif()
+# Include dir
+find_path(Jsoncpp_INCLUDE_DIR
+  NAMES json/features.h
+  PATH_SUFFIXES jsoncpp
+  PATHS ${Jsoncpp_PKGCONF_INCLUDE_DIRS} # /usr/include/jsoncpp/json
+)
+
+# Finally the library itself
+find_library(Jsoncpp_LIBRARY
+  NAMES jsoncpp
+  PATHS ${Jsoncpp_PKGCONF_LIBRARY_DIRS}
+)
diff --git a/src/lsl/src/lslextract/CMakeLists.txt b/src/lsl/src/lslextract/CMakeLists.txt
index 8c02ab5..faf71f0 100644
--- a/src/lsl/src/lslextract/CMakeLists.txt
+++ b/src/lsl/src/lslextract/CMakeLists.txt
@@ -1,4 +1,3 @@
-message(STATUS ${libUnitsyncSrc})
 
 add_executable(lslextract
 	lslextract.cpp
@@ -21,11 +20,11 @@ TARGET_LINK_LIBRARIES(lslextract
 	${PNG_LIBRARY}
 	${X11_LIBRARIES}
 	${CMAKE_DL_LIBS}
-	${LIB_JSON_CPP}
+	${LSL_JSONCPP_LIBRARIES}
 )
 
 target_include_directories(lslextract
 	PRIVATE ${libSpringLobby_SOURCE_DIR}/src
-	PRIVATE ${Jsoncpp_INCLUDE_DIR}
+	PRIVATE ${LSL_JSONCPP_INCLUDE_DIR}
 )
 
diff --git a/src/lsl/src/lslextract/server/request_handler.cpp b/src/lsl/src/lslextract/server/request_handler.cpp
index c1f3c6d..614fd28 100644
--- a/src/lsl/src/lslextract/server/request_handler.cpp
+++ b/src/lsl/src/lslextract/server/request_handler.cpp
@@ -70,7 +70,7 @@ static bool serve_file(reply& rep, const std::string& path, const std::string& m
 	// Open the file to send back.
 	std::ifstream is(path.c_str(), std::ios::in | std::ios::binary);
 	if (!is) {
-		LslError("Couldn't open file %s", path.c_str());
+		//LslError("Couldn't open file %s", path.c_str());
 		rep = reply::stock_reply(reply::not_found);
 		return false;
 	}
diff --git a/src/lsl/src/lslunitsync/CMakeLists.txt b/src/lsl/src/lslunitsync/CMakeLists.txt
index 05cdf57..9d97da3 100644
--- a/src/lsl/src/lslunitsync/CMakeLists.txt
+++ b/src/lsl/src/lslunitsync/CMakeLists.txt
@@ -24,7 +24,7 @@ set_source_files_properties(  ${libUnitsyncHeader} PROPERTIES HEADER_FILE_ONLY 1
 #cimage deps
 FIND_PACKAGE(PNG REQUIRED)
 FIND_PACKAGE(X11 REQUIRED)
-ADD_LIBRARY(lsl-unitsync STATIC ${libUnitsyncHeader} ${libUnitsyncSrc} ${libjsonsrc})
+ADD_LIBRARY(lsl-unitsync STATIC ${libUnitsyncHeader} ${libUnitsyncSrc} ${LSL_libjsonsrc})
 if(ADD_WXCONVERT)
 	target_compile_definitions(lsl-unitsync PRIVATE -DHAVE_WX)
 endif()
@@ -36,5 +36,5 @@ TARGET_LINK_LIBRARIES(lsl-unitsync lsl-utils ${Boost_LIBRARIES} ${PNG_LIBRARY} $
 target_include_directories(lsl-unitsync
 		PRIVATE ${libSpringLobby_SOURCE_DIR}/src
 		PRIVATE ${libSpringLobby_SOURCE_DIR}/lib
-		PRIVATE ${Jsoncpp_INCLUDE_DIR}
+		PRIVATE ${LSL_JSONCPP_INCLUDE_DIR}
 	)
diff --git a/src/lsl/src/lslunitsync/c_api.cpp b/src/lsl/src/lslunitsync/c_api.cpp
index 5352d83..3c5efe4 100644
--- a/src/lsl/src/lslunitsync/c_api.cpp
+++ b/src/lsl/src/lslunitsync/c_api.cpp
@@ -140,8 +140,8 @@ void UnitsyncLib::_Init()
 	if (IsLoaded() && m_init != NULL) {
 		m_current_mod.clear();
 		m_init(true, 1);
-		auto errors = GetUnitsyncErrors();
-		for (const std::string error : errors) {
+		const std::vector<std::string> errors = GetUnitsyncErrors();
+		for (const std::string& error : errors) {
 			LslError("%s", error.c_str());
 		}
 	}
diff --git a/src/lsl/src/lslunitsync/image.cpp b/src/lsl/src/lslunitsync/image.cpp
index 321b4b3..7a4940a 100644
--- a/src/lsl/src/lslunitsync/image.cpp
+++ b/src/lsl/src/lslunitsync/image.cpp
@@ -18,28 +18,42 @@
 #include <cimg/CImg.h>
 #include <lslutils/misc.h>
 #include <lslutils/logging.h>
+#include <lslutils/conversion.h>
 #include <stdio.h> //fmemopen
 
 
 #if defined(WIN32)
-//! we need our own fmemopen implementation since its posix only
-FILE* fmemopen(void* data, size_t size, const char* mode)
+
+std::FILE* fmemopen(void* data, size_t size, const char* mode)
 {
 	wchar_t buf[MAX_PATH];
-	if (GetTempPathW(MAX_PATH, buf) == 0) {
+	const size_t len = GetTempPathW(MAX_PATH, buf);
+	if (len <= 0) {
 		return nullptr;
 	}
 
-	std::wstring tempFile(buf);
-	tempFile += L"tempFile" + std::to_wstring((unsigned long)data);
-	FILE* f = _wfopen(tempFile.c_str(), L"wb");
-	if (NULL == f)
+	std::wstring tempFile(buf, len);
+	tempFile += L"tempFile-fmemopen";
+
+	FILE* f = _wfopen(tempFile.c_str(), L"wb+");
+	if (f == nullptr)
 		return nullptr;
 	fwrite(data, size, 1, f);
-	fclose(f);
+	rewind(f);
+	return f;
+}
 
-	std::string modeString(mode);
-	return _wfopen(tempFile.c_str(), std::wstring(modeString.begin(), modeString.end()).c_str());
+#elif defined(__APPLE__)
+//! we need our own fmemopen implementation since its posix only
+std::FILE* fmemopen(void* data, size_t size, const char* /*mode*/)
+{
+	FILE* f = std::tmpfile();
+	if (f == nullptr) {
+		return nullptr;
+	}
+	fwrite(data, size, 1, f);
+	rewind(f);
+	return f;
 }
 #endif // !defined(HAVE_FMEMOPEN)
 
@@ -53,6 +67,10 @@ void load_mem(LSL::Util::uninitialized_array<char>& data, size_t size, const std
 	const char* filename = fn.c_str();
 
 	std::FILE* file = fmemopen((void*)data, size, "rb");
+	if (file == nullptr) {
+		LslError("fmemopen(): couldn't create tmpfile for %s!", fn.c_str());
+		return;
+	}
 
 	const char* const ext = cimg::split_filename(filename);
 	cimg::exception_mode() = 0;
diff --git a/src/lsl/src/lslunitsync/sharedlib.cpp b/src/lsl/src/lslunitsync/sharedlib.cpp
index aa8962d..f195d4d 100644
--- a/src/lsl/src/lslunitsync/sharedlib.cpp
+++ b/src/lsl/src/lslunitsync/sharedlib.cpp
@@ -38,14 +38,14 @@ void* _LoadLibrary(const std::string& libpath)
 	res = LoadLibrary(wlibpath.c_str());
 	if (res == nullptr) {
 		const std::string errmsg = Util::geterrormsg().c_str();
-		LslError("Couldn't load the unitsync library: %s", errmsg.c_str());
+		LslError("Couldn't load the library %s: %s", libpath.c_str(), errmsg.c_str());
 		return res;
 	}
 #else
 	res = dlopen(libpath.c_str(), RTLD_NOW | RTLD_LOCAL);
 	if (res == nullptr) {
 		const char* errmsg = dlerror();
-		LslError("Couldn't load the unitsync library '%s': %s", libpath.c_str(), errmsg);
+		LslError("Couldn't load the library %s: %s", libpath.c_str(), errmsg);
 		return nullptr;
 	}
 #endif
diff --git a/src/lsl/test/CMakeLists.txt b/src/lsl/test/CMakeLists.txt
index 877b23d..b34eeae 100644
--- a/src/lsl/test/CMakeLists.txt
+++ b/src/lsl/test/CMakeLists.txt
@@ -12,7 +12,7 @@ ADD_EXECUTABLE(libSpringLobby_test WIN32 MACOSX_BUNDLE ${basic_testSrc} )
 add_test(NAME libSpringLobbyTest COMMAND libSpringLobby_test)
 
 
-TARGET_LINK_LIBRARIES(libSpringLobby_test dl lsl-server lsl-unitsync dl)
+TARGET_LINK_LIBRARIES(libSpringLobby_test dl lsl-unitsync dl)
 target_include_directories(libSpringLobby_test
 		PRIVATE ${libSpringLobby_SOURCE_DIR}/src
 	)
diff --git a/src/lsl/test/basic.cpp b/src/lsl/test/basic.cpp
index 3fba672..34ae6b1 100644
--- a/src/lsl/test/basic.cpp
+++ b/src/lsl/test/basic.cpp
@@ -39,6 +39,7 @@ int main(int argc, char** argv)
 	//    TESTLIST(UserList)
 	//    TESTLIST(Battle::BattleList)
 	//    TESTLIST(ChannelList)
+/*
 	LSL::Server* tas = new LSL::Server();
 
 	tas->Connect("lobby.springrts.com", "lobby.springrts.com", 8200);
@@ -48,6 +49,7 @@ int main(int argc, char** argv)
 		tas->Login("dummy", "password");
 	//    sleep(5);
 	tas->JoinChannel("springlobby", "");
+*/
 	dummySync();
 
 	//	std::string sequence("/root/path/jijij.png");
diff --git a/src/serverevents.cpp b/src/serverevents.cpp
index e936e91..68e07e8 100644
--- a/src/serverevents.cpp
+++ b/src/serverevents.cpp
@@ -142,6 +142,10 @@ void ServerEvents::OnNewUser(const std::string& nick, const std::string& country
 		return;
 	}
 	ui().OnUserOnline(user);
+
+	if (useractions().DoActionOnUser(UserActions::ActNotifLogin, TowxString(nick))) {
+		actNotifBox(SL_MAIN_ICON, TowxString(nick) + _(" just connected"));
+	}
 }
 
 
diff --git a/src/useractions.cpp b/src/useractions.cpp
index 3ea16fc..3a74ab4 100644
--- a/src/useractions.cpp
+++ b/src/useractions.cpp
@@ -16,7 +16,7 @@
 #include "gui/mainwindow.h"
 #include "gui/mainchattab.h"
 #include "gui/hosting/mainjoinbattletab.h"
-#include "gui/hosting/ibattleroomtab.h"
+#include "gui/hosting/battleroomtab.h"
 #include "gui/battlelist/battlelisttab.h"
 #include "gui/ui.h"
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/springlobby.git



More information about the Pkg-games-commits mailing list