[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