From 47f0e16e34cf22701b7c0670297bb7288a55310d Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 15 Aug 2011 01:57:55 +0300 Subject: Add option to hide ip addresses on screenshots. --- src/defaults.cpp | 1 + src/game.cpp | 14 +++++++++++- src/graphics.cpp | 3 ++- src/graphics.h | 7 ++++++ src/gui/setup_players.cpp | 3 +++ src/gui/widgets/avatarlistbox.cpp | 46 ++++++++++++++++++++++++++++----------- 6 files changed, 59 insertions(+), 15 deletions(-) diff --git a/src/defaults.cpp b/src/defaults.cpp index 3824aafc9..e614a489b 100644 --- a/src/defaults.cpp +++ b/src/defaults.cpp @@ -214,6 +214,7 @@ DefaultsData* getConfigDefaults() AddDEF(configData, "disableAdvBeingCaching", false); AddDEF(configData, "disableBeingCaching", false); AddDEF(configData, "enableReorderSprites", true); + AddDEF(configData, "showip", false); return configData; } diff --git a/src/game.cpp b/src/game.cpp index 4e7345340..8457cf079 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -431,8 +431,20 @@ Game::~Game() static bool saveScreenshot() { static unsigned int screenshotCount = 0; + SDL_Surface *screenshot = 0; + + if (!config.getBoolValue("showip")) + { + graphics->setSecure(true); + gui->draw(); + screenshot = graphics->getScreenshot(); + graphics->setSecure(false); + } + else + { + screenshot = graphics->getScreenshot(); + } - SDL_Surface *screenshot = graphics->getScreenshot(); if (!screenshot) return false; diff --git a/src/graphics.cpp b/src/graphics.cpp index a86ac7fd0..c5dc38b72 100644 --- a/src/graphics.cpp +++ b/src/graphics.cpp @@ -48,7 +48,8 @@ Graphics::Graphics(): mHWAccel(false), mBlitMode(BLIT_NORMAL), mRedraw(false), - mDoubleBuffer(false) + mDoubleBuffer(false), + mSecure(false) { mRect.x = 0; mRect.y = 0; diff --git a/src/graphics.h b/src/graphics.h index 237d16dc2..a2e25b5a8 100644 --- a/src/graphics.h +++ b/src/graphics.h @@ -269,6 +269,12 @@ class Graphics : public gcn::SDLGraphics bool getRedraw() { return mRedraw; } + void setSecure(bool n) + { mSecure = n; } + + bool getSecure() + { return mSecure; } + int mWidth; int mHeight; @@ -283,6 +289,7 @@ class Graphics : public gcn::SDLGraphics bool mRedraw; bool mDoubleBuffer; SDL_Rect mRect; + bool mSecure; }; extern Graphics *graphics; diff --git a/src/gui/setup_players.cpp b/src/gui/setup_players.cpp index d2664adbd..acc6b3d3c 100644 --- a/src/gui/setup_players.cpp +++ b/src/gui/setup_players.cpp @@ -75,6 +75,9 @@ Setup_Players::Setup_Players() new SetupItemCheckBox(_("Show statuses"), "", "showPlayersStatus", this, "showPlayersStatusEvent"); + new SetupItemCheckBox(_("Show ip addresses on screenshots"), "", + "showip", this, "showipEvent"); + setDimension(gcn::Rectangle(0, 0, 550, 350)); } diff --git a/src/gui/widgets/avatarlistbox.cpp b/src/gui/widgets/avatarlistbox.cpp index 5ac6721a5..0d35ad188 100644 --- a/src/gui/widgets/avatarlistbox.cpp +++ b/src/gui/widgets/avatarlistbox.cpp @@ -242,25 +242,45 @@ void AvatarListBox::draw(gcn::Graphics *gcnGraphics) } } - if (mShowGender) + if (graphics->getSecure()) { - switch (a->getGender()) + if (mShowGender) { - case GENDER_FEMALE: - text += strprintf(" \u2640 %s", - a->getAdditionString().c_str()); - break; - case GENDER_MALE: - text += strprintf(" \u2642 %s", - a->getAdditionString().c_str()); - break; - default: - break; + switch (a->getGender()) + { + case GENDER_FEMALE: + text += strprintf(" \u2640 "); + break; + case GENDER_MALE: + text += strprintf(" \u2642 "); + break; + default: + break; + } } } else { - text += a->getAdditionString(); + if (mShowGender) + { + switch (a->getGender()) + { + case GENDER_FEMALE: + text += strprintf(" \u2640 %s", + a->getAdditionString().c_str()); + break; + case GENDER_MALE: + text += strprintf(" \u2642 %s", + a->getAdditionString().c_str()); + break; + default: + break; + } + } + else + { + text += a->getAdditionString(); + } } graphics->setColor(Theme::getThemeColor(Theme::TEXT)); -- cgit v1.2.3-60-g2f50