From 02b61ee41a7dca0a29a32ceb136284b071d08f60 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 30 Mar 2014 11:05:22 +0300 Subject: Fix possible crash --- src/gui/viewport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/viewport.cpp b/src/gui/viewport.cpp index df97a5673..e013171d3 100644 --- a/src/gui/viewport.cpp +++ b/src/gui/viewport.cpp @@ -883,9 +883,9 @@ void Viewport::mouseMoved(MouseEvent &event A_UNUSED) const int y = mMouseY + mPixelViewY; ActorSprite::Type type = ActorSprite::UNKNOWN; + mHoverBeing = actorManager->findBeingByPixel(x, y, true); if (mHoverBeing) type = mHoverBeing->getType(); - mHoverBeing = actorManager->findBeingByPixel(x, y, true); if (mHoverBeing && (type == Being::PLAYER || type == Being::NPC -- cgit v1.2.3-70-g09d2 From a0021f305d242ebc98a3507fd15011b1b51232d0 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 30 Mar 2014 12:20:30 +0300 Subject: Improve null pointer check in avatarlistbox. --- src/gui/widgets/avatarlistbox.cpp | 49 +++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/src/gui/widgets/avatarlistbox.cpp b/src/gui/widgets/avatarlistbox.cpp index 9411c2249..ecb92f876 100644 --- a/src/gui/widgets/avatarlistbox.cpp +++ b/src/gui/widgets/avatarlistbox.cpp @@ -99,13 +99,16 @@ void AvatarListBox::draw(Graphics *graphics) return; } + const Widget *const parent = mParent; + if (!parent) + return; + AvatarListModel *const model = static_cast( mListModel); updateAlpha(); Font *const font = getFont(); const int fontHeight = getFont()->getHeight(); - const Widget *const parent = mParent; const std::string name = player_node->getName(); // Draw the list elements @@ -155,7 +158,7 @@ void AvatarListBox::draw(Graphics *graphics) a->getHp(), a->getMaxHp()); } const bool isPoison = a->getPoison(); - if (a->getMaxHp() && (isPoison || parent)) + if (a->getMaxHp()) { const int themeColor = (isPoison ? Theme::PROG_HP_POISON : Theme::PROG_HP); @@ -182,28 +185,25 @@ void AvatarListBox::draw(Graphics *graphics) a->getDamageHp()); } - if (parent) - { - const int themeColor = (a->getPoison() - ? Theme::PROG_HP_POISON : Theme::PROG_HP); - Color color = Theme::getProgressColor(themeColor, 1); - color.a = 80; - graphics->setColor(color); - graphics->fillRectangle(Rect(mPadding, y + mPadding, - parent->getWidth() * a->getDamageHp() / 1024 - - 2 * mPadding, fontHeight)); + const int themeColor = (a->getPoison() + ? Theme::PROG_HP_POISON : Theme::PROG_HP); + Color color = Theme::getProgressColor(themeColor, 1); + color.a = 80; + graphics->setColor(color); + graphics->fillRectangle(Rect(mPadding, y + mPadding, + parent->getWidth() * a->getDamageHp() / 1024 + - 2 * mPadding, fontHeight)); - if (a->getLevel() > 1) - { - graphics->setColor(mForegroundColor); - int minHp = 40 + ((a->getLevel() - 1) * 5); - if (minHp < 0) - minHp = 40; - - graphics->drawLine(parent->getWidth()*minHp / 1024 - + mPadding, y + mPadding, - parent->getWidth() * minHp / 1024, y + fontHeight); - } + if (a->getLevel() > 1) + { + graphics->setColor(mForegroundColor); + int minHp = 40 + ((a->getLevel() - 1) * 5); + if (minHp < 0) + minHp = 40; + + graphics->drawLine(parent->getWidth()*minHp / 1024 + + mPadding, y + mPadding, + parent->getWidth() * minHp / 1024, y + fontHeight); } } else @@ -307,8 +307,7 @@ void AvatarListBox::draw(Graphics *graphics) if (useCaching) graphics->drawTileCollection(&vertexes); - if (parent) - setWidth(parent->getWidth() - 10); + setWidth(parent->getWidth() - 10); BLOCK_END("AvatarListBox::draw") } -- cgit v1.2.3-70-g09d2 From 8e182c09072b75d05c1dff89bd3337f08782a562 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 31 Mar 2014 01:45:57 +0300 Subject: Use all supported encoding while accesing http. --- src/gui/windows/whoisonline.cpp | 1 + src/net/download.cpp | 8 ++++++++ src/net/download.h | 2 ++ 3 files changed, 11 insertions(+) diff --git a/src/gui/windows/whoisonline.cpp b/src/gui/windows/whoisonline.cpp index a1683ffc8..b7616eb72 100644 --- a/src/gui/windows/whoisonline.cpp +++ b/src/gui/windows/whoisonline.cpp @@ -519,6 +519,7 @@ int WhoIsOnline::downloadThread(void *ptr) curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1); curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 7); curl_easy_setopt(curl, CURLOPT_TIMEOUT, 30); + Net::Download::addHeaders(curl); Net::Download::addProxy(curl); Net::Download::secureCurl(curl); diff --git a/src/net/download.cpp b/src/net/download.cpp index 6d127d0a4..cf5a1d0b3 100644 --- a/src/net/download.cpp +++ b/src/net/download.cpp @@ -326,6 +326,7 @@ int Download::downloadThread(void *ptr) curl_easy_setopt(d->mCurl, CURLOPT_NOSIGNAL, 1); curl_easy_setopt(d->mCurl, CURLOPT_CONNECTTIMEOUT, 30); curl_easy_setopt(d->mCurl, CURLOPT_TIMEOUT, 1800); + addHeaders(d->mCurl); addProxy(d->mCurl); secureCurl(d->mCurl); } @@ -536,6 +537,13 @@ void Download::secureCurl(CURL *const curl) #endif } +void Download::addHeaders(CURL *const curl) +{ +#if CURLVERSION_ATLEAST(7, 21, 7) + curl_easy_setopt(curl, CURLOPT_ACCEPT_ENCODING, ""); +#endif +} + void Download::prepareForm(curl_httppost **form, const std::string &fileName) { curl_httppost *lastPtr = nullptr; diff --git a/src/net/download.h b/src/net/download.h index 7dae8913f..3628a8f3a 100644 --- a/src/net/download.h +++ b/src/net/download.h @@ -104,6 +104,8 @@ class Download final static void secureCurl(CURL *const curl); + static void addHeaders(CURL *const curl); + static unsigned long adlerBuffer(char *const buffer, int size); static std::string getUploadResponse() -- cgit v1.2.3-70-g09d2 From 35278ed7f80ed8a02785573d510c36b38998debe Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 2 Apr 2014 12:17:20 +0300 Subject: Using minimal step in setting slider values. --- src/gui/widgets/slider.cpp | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/gui/widgets/slider.cpp b/src/gui/widgets/slider.cpp index e440631ad..66265a919 100644 --- a/src/gui/widgets/slider.cpp +++ b/src/gui/widgets/slider.cpp @@ -368,7 +368,6 @@ void Slider::mousePressed(MouseEvent &event) setValue(markerPositionToValue(x - mMarkerLength / 2)); else setValue(markerPositionToValue(height - y - mMarkerLength / 2)); - distributeActionEvent(); } } @@ -450,18 +449,13 @@ void Slider::setValue(const double value) { mRedraw = true; if (value > mScaleEnd) - { mValue = mScaleEnd; - return; - } - - if (value < mScaleStart) - { + else if (value < mScaleStart) mValue = mScaleStart; - return; - } - - mValue = value; + else + mValue = value; + mValue = static_cast((mValue - mScaleStart) / mStepLength) + * mStepLength + mScaleStart; } double Slider::markerPositionToValue(const int v) const -- cgit v1.2.3-70-g09d2 From 39a3fd884d6d585825d9f80a578c6f466a856ec3 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 2 Apr 2014 13:20:23 +0300 Subject: Set correct step in sliders. --- src/gui/widgets/setupitem.cpp | 30 +++++++++++++++++++-------- src/gui/widgets/setupitem.h | 38 +++++++++++++++++++++-------------- src/gui/widgets/slider.cpp | 10 +++++---- src/gui/widgets/slider.h | 8 +++++--- src/gui/widgets/tabs/setup_audio.cpp | 8 +++++--- src/gui/widgets/tabs/setup_colors.cpp | 10 ++++----- src/gui/widgets/tabs/setup_video.cpp | 4 ++-- src/gui/widgets/tabs/setup_visual.cpp | 8 ++++---- src/gui/windows/buydialog.cpp | 2 +- src/gui/windows/charcreatedialog.cpp | 5 ++--- src/gui/windows/itemamountwindow.cpp | 4 ++-- src/gui/windows/selldialog.cpp | 2 +- 12 files changed, 78 insertions(+), 51 deletions(-) diff --git a/src/gui/widgets/setupitem.cpp b/src/gui/widgets/setupitem.cpp index 4c32b0572..87bc2baa5 100644 --- a/src/gui/widgets/setupitem.cpp +++ b/src/gui/widgets/setupitem.cpp @@ -713,8 +713,11 @@ SetupItemSlider::SetupItemSlider(const std::string &restrict text, const std::string &restrict keyName, SetupTabScroll *restrict const parent, const std::string &restrict eventName, - const double min, const double max, - const int width, const bool onTheFly, + const double min, + const double max, + const double step, + const int width, + const bool onTheFly, const bool mainConfig) : SetupItem(text, description, keyName, parent, eventName, mainConfig), mHorizont(nullptr), @@ -722,6 +725,7 @@ SetupItemSlider::SetupItemSlider(const std::string &restrict text, mSlider(nullptr), mMin(min), mMax(max), + mStep(step), mWidth(width), mOnTheFly(onTheFly) { @@ -734,7 +738,9 @@ SetupItemSlider::SetupItemSlider(const std::string &restrict text, const std::string &restrict keyName, SetupTabScroll *restrict const parent, const std::string &restrict eventName, - const double min, const double max, + const double min, + const double max, + const double step, const std::string &restrict def, const int width, const bool onTheFly, @@ -745,6 +751,7 @@ SetupItemSlider::SetupItemSlider(const std::string &restrict text, mSlider(nullptr), mMin(min), mMax(max), + mStep(step), mWidth(width), mOnTheFly(onTheFly) { @@ -766,7 +773,7 @@ void SetupItemSlider::createControls() mHorizont = new HorizontContainer(this, 32, 2); mLabel = new Label(this, mText); - mSlider = new Slider(this, mMin, mMax); + mSlider = new Slider(this, mMin, mMax, mStep); mSlider->setActionEventId(mEventName); mSlider->addActionListener(mParent); mSlider->setValue(atof(mValue.c_str())); @@ -823,7 +830,9 @@ SetupItemSlider2::SetupItemSlider2(const std::string &restrict text, const std::string &restrict keyName, SetupTabScroll *restrict const parent, const std::string &restrict eventName, - const int min, const int max, + const int min, + const int max, + const int step, SetupItemNames *restrict const values, const bool onTheFly, const bool mainConfig, @@ -836,6 +845,7 @@ SetupItemSlider2::SetupItemSlider2(const std::string &restrict text, mValues(values), mMin(min), mMax(max), + mStep(step), mInvertValue(0), mInvert(false), mOnTheFly(onTheFly), @@ -850,10 +860,13 @@ SetupItemSlider2::SetupItemSlider2(const std::string &restrict text, const std::string &restrict keyName, SetupTabScroll *restrict const parent, const std::string &restrict eventName, - const int min, const int max, + const int min, + const int max, + const int step, SetupItemNames *restrict const values, const std::string &restrict def, - const bool onTheFly, const bool mainConfig, + const bool onTheFly, + const bool mainConfig, const bool doNotAlign) : SetupItem(text, description, keyName, parent, eventName, def, mainConfig), mHorizont(nullptr), @@ -863,6 +876,7 @@ SetupItemSlider2::SetupItemSlider2(const std::string &restrict text, mValues(values), mMin(min), mMax(max), + mStep(step), mInvertValue(0), mInvert(false), mOnTheFly(onTheFly), @@ -890,7 +904,7 @@ void SetupItemSlider2::createControls() mLabel = new Label(this, mText); mLabel2 = new Label(this, ""); mLabel2->setWidth(width); - mSlider = new Slider(this, mMin, mMax); + mSlider = new Slider(this, mMin, mMax, mStep); mSlider->setActionEventId(mEventName); mSlider->addActionListener(mParent); mSlider->setValue(atof(mValue.c_str())); diff --git a/src/gui/widgets/setupitem.h b/src/gui/widgets/setupitem.h index 7dee860be..03681ad90 100644 --- a/src/gui/widgets/setupitem.h +++ b/src/gui/widgets/setupitem.h @@ -350,19 +350,25 @@ class SetupItemSlider final : public SetupItem const std::string &restrict keyName, SetupTabScroll *restrict const parent, const std::string &restrict eventName, - const double min, const double max, - const int width = 150, const bool onTheFly = false, - const bool mainConfig = true); + const double min, + const double max, + const double step, + const int width, + const bool onTheFly, + const bool mainConfig); SetupItemSlider(const std::string &restrict text, const std::string &restrict description, const std::string &restrict keyName, SetupTabScroll *restrict const parent, const std::string &restrict eventName, - const double min, const double max, - const std::string &restrict def, const int width = 150, - const bool onTheFly = false, - const bool mainConfig = true); + const double min, + const double max, + const double step, + const std::string &restrict def, + const int width, + const bool onTheFly, + const bool mainConfig); A_DELETE_COPY(SetupItemSlider) @@ -386,6 +392,7 @@ class SetupItemSlider final : public SetupItem Slider *mSlider; double mMin; double mMax; + double mStep; int mWidth; bool mOnTheFly; }; @@ -402,23 +409,23 @@ class SetupItemSlider2 final : public SetupItem const std::string &restrict keyName, SetupTabScroll *restrict const parent, const std::string &restrict eventName, - const int min, const int max, + const int min, const int max, const int step, SetupItemNames *restrict const values, - const bool onTheFly = false, - const bool mainConfig = true, - const bool doNotAlign = false); + const bool onTheFly, + const bool mainConfig, + const bool doNotAlign); SetupItemSlider2(const std::string &restrict text, const std::string &restrict description, const std::string &restrict keyName, SetupTabScroll *restrict const parent, const std::string &restrict eventName, - const int min, const int max, + const int min, const int max, const int step, SetupItemNames *restrict const values, const std::string &restrict def, - const bool onTheFly = false, - const bool mainConfig = true, - const bool doNotAlign = false); + const bool onTheFly, + const bool mainConfig, + const bool doNotAlign); A_DELETE_COPY(SetupItemSlider2) @@ -448,6 +455,7 @@ class SetupItemSlider2 final : public SetupItem SetupItemNames *mValues; int mMin; int mMax; + int mStep; int mInvertValue; bool mInvert; bool mOnTheFly; diff --git a/src/gui/widgets/slider.cpp b/src/gui/widgets/slider.cpp index 66265a919..6119fc624 100644 --- a/src/gui/widgets/slider.cpp +++ b/src/gui/widgets/slider.cpp @@ -91,12 +91,13 @@ static std::string const data[2] = }; Slider::Slider(Widget2 *const widget, - const double scaleEnd) : + const double scaleEnd, + const double stepLength) : Widget(widget), MouseListener(), KeyListener(), mValue(0), - mStepLength(scaleEnd / 10), + mStepLength(stepLength), mScaleStart(0), mScaleEnd(scaleEnd), mOrientation(HORIZONTAL), @@ -110,12 +111,13 @@ Slider::Slider(Widget2 *const widget, Slider::Slider(Widget2 *const widget, const double scaleStart, - const double scaleEnd) : + const double scaleEnd, + const double stepLength) : Widget(widget), MouseListener(), KeyListener(), mValue(scaleStart), - mStepLength((scaleEnd - scaleStart) / 10), + mStepLength(stepLength), mScaleStart(scaleStart), mScaleEnd(scaleEnd), mOrientation(HORIZONTAL), diff --git a/src/gui/widgets/slider.h b/src/gui/widgets/slider.h index 164048020..fe59119f5 100644 --- a/src/gui/widgets/slider.h +++ b/src/gui/widgets/slider.h @@ -98,15 +98,17 @@ class Slider final : public Widget, /** * Constructor with scale start equal to 0. */ - explicit Slider(Widget2 *const widget, - const double scaleEnd = 1.0); + Slider(Widget2 *const widget, + const double scaleEnd, + const double stepLength); /** * Constructor. */ Slider(Widget2 *const widget, const double scaleStart, - const double scaleEnd); + const double scaleEnd, + const double stepLength); A_DELETE_COPY(Slider) diff --git a/src/gui/widgets/tabs/setup_audio.cpp b/src/gui/widgets/tabs/setup_audio.cpp index 89a9594c1..707a4f2b9 100644 --- a/src/gui/widgets/tabs/setup_audio.cpp +++ b/src/gui/widgets/tabs/setup_audio.cpp @@ -73,11 +73,13 @@ Setup_Audio::Setup_Audio(const Widget2 *const widget) : // TRANSLATORS: settings option new SetupItemSlider(_("Sfx volume"), "", "sfxVolume", - this, "sfxVolumeEvent", 0, soundManager.getMaxVolume(), 150, true); + this, "sfxVolumeEvent", 0, soundManager.getMaxVolume(), 1, + 150, true, true); // TRANSLATORS: settings option new SetupItemSlider(_("Music volume"), "", "musicVolume", - this, "musicVolumeEvent", 0, soundManager.getMaxVolume(), 150, true); + this, "musicVolumeEvent", 0, soundManager.getMaxVolume(), 1, + 150, true, true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable music fade out"), "", @@ -97,7 +99,7 @@ Setup_Audio::Setup_Audio(const Widget2 *const widget) : mChannelsList->push_back(_("surround+center+lfe")); // TRANSLATORS: settings option new SetupItemSlider2(_("Audio channels"), "", "audioChannels", this, - "audioChannels", 1, 4, mChannelsList); + "audioChannels", 1, 4, 1, mChannelsList, false, true, false); // TRANSLATORS: settings group diff --git a/src/gui/widgets/tabs/setup_colors.cpp b/src/gui/widgets/tabs/setup_colors.cpp index 00537ad05..53260ff01 100644 --- a/src/gui/widgets/tabs/setup_colors.cpp +++ b/src/gui/widgets/tabs/setup_colors.cpp @@ -61,23 +61,23 @@ Setup_Colors::Setup_Colors(const Widget2 *const widget) : mSelected(-1), // TRANSLATORS: colors tab. label. mGradTypeLabel(new Label(this, _("Type:"))), - mGradTypeSlider(new Slider(this, 0, 3)), + mGradTypeSlider(new Slider(this, 0.0, 3.0, 1.0)), mGradTypeText(new Label(this)), // TRANSLATORS: colors tab. label. mGradDelayLabel(new Label(this, _("Delay:"))), - mGradDelaySlider(new Slider(this, 20, 100)), + mGradDelaySlider(new Slider(this, 20.0, 100.0, 1.0)), mGradDelayText(new TextField(this)), // TRANSLATORS: colors tab. label. mRedLabel(new Label(this, _("Red:"))), - mRedSlider(new Slider(this, 0, 255)), + mRedSlider(new Slider(this, 0.0, 255.0, 1.0)), mRedText(new TextField(this)), // TRANSLATORS: colors tab. label. mGreenLabel(new Label(this, _("Green:"))), - mGreenSlider(new Slider(this, 0, 255)), + mGreenSlider(new Slider(this, 0.0, 255.0, 1.0)), mGreenText(new TextField(this)), // TRANSLATORS: colors tab. label. mBlueLabel(new Label(this, _("Blue:"))), - mBlueSlider(new Slider(this, 0, 255)), + mBlueSlider(new Slider(this, 0.0, 255.0, 1.0)), mBlueText(new TextField(this)) { mColorBox->postInit(); diff --git a/src/gui/widgets/tabs/setup_video.cpp b/src/gui/widgets/tabs/setup_video.cpp index dfe14fa2c..7d6ac9fc3 100644 --- a/src/gui/widgets/tabs/setup_video.cpp +++ b/src/gui/widgets/tabs/setup_video.cpp @@ -192,9 +192,9 @@ Setup_Video::Setup_Video(const Widget2 *const widget) : mOpenGLDropDown(new DropDown(widget, mOpenGLListModel)), // TRANSLATORS: video settings checkbox mFpsCheckBox(new CheckBox(this, _("FPS limit:"))), - mFpsSlider(new Slider(this, 2, 160)), + mFpsSlider(new Slider(this, 2.0, 160.0, 1.0)), mFpsLabel(new Label(this)), - mAltFpsSlider(new Slider(this, 2, 160)), + mAltFpsSlider(new Slider(this, 2.0, 160.0, 1.0)), // TRANSLATORS: video settings label mAltFpsLabel(new Label(this, _("Alt FPS limit: "))), #if !defined(ANDROID) && !defined(__APPLE__) diff --git a/src/gui/widgets/tabs/setup_visual.cpp b/src/gui/widgets/tabs/setup_visual.cpp index eb6591f9f..fa4e2f4ef 100644 --- a/src/gui/widgets/tabs/setup_visual.cpp +++ b/src/gui/widgets/tabs/setup_visual.cpp @@ -139,7 +139,7 @@ Setup_Visual::Setup_Visual(const Widget2 *const widget) : // TRANSLATORS: settings option new SetupItemSlider(_("Gui opacity"), "", "guialpha", - this, "guialphaEvent", 0.1, 1.0, 150, true); + this, "guialphaEvent", 0.1, 1.0, 0.1, 150, true, true); mSpeachList->fillFromArray(&speachList[0], speachListSize); // TRANSLATORS: settings option @@ -164,8 +164,8 @@ Setup_Visual::Setup_Visual(const Widget2 *const widget) : // TRANSLATORS: particle details mParticleList->push_back(_("max")); (new SetupItemSlider2(_("Particle detail"), "", "particleEmitterSkip", - this, "particleEmitterSkipEvent", 0, 3, - mParticleList, true))->setInvertValue(3); + this, "particleEmitterSkipEvent", 0, 3, 1, + mParticleList, true, true, false))->setInvertValue(3); mParticleTypeList->fillFromArray(&particleTypeList[0], particleTypeListSize); @@ -183,7 +183,7 @@ Setup_Visual::Setup_Visual(const Widget2 *const widget) : // TRANSLATORS: settings option new SetupItemSlider(_("Gamma"), "", "gamma", - this, "gammeEvent", 1, 20, 350, true); + this, "gammeEvent", 1, 20, 1, 350, true, true); // TRANSLATORS: settings group diff --git a/src/gui/windows/buydialog.cpp b/src/gui/windows/buydialog.cpp index 8bece77ef..e86bf344e 100644 --- a/src/gui/windows/buydialog.cpp +++ b/src/gui/windows/buydialog.cpp @@ -224,7 +224,7 @@ void BuyDialog::init() getOptionBool("showbackground"), "buy_background.xml"); mScrollArea->setHorizontalScrollPolicy(ScrollArea::SHOW_NEVER); - mSlider = new Slider(this, 1.0); + mSlider = new Slider(this, 1.0, 1.0); mQuantityLabel = new Label(this, strprintf( "%d / %d", mAmountItems, mMaxItems)); mQuantityLabel->setAlignment(Graphics::CENTER); diff --git a/src/gui/windows/charcreatedialog.cpp b/src/gui/windows/charcreatedialog.cpp index 42bbb4b88..f0a9781f2 100644 --- a/src/gui/windows/charcreatedialog.cpp +++ b/src/gui/windows/charcreatedialog.cpp @@ -514,9 +514,8 @@ void CharCreateDialog::setAttributes(const StringVect &labels, mAttributeLabel[i]->adjustSize(); add(mAttributeLabel[i]); - mAttributeSlider[i] = new Slider(this, min, max); - mAttributeSlider[i]->setDimension(Rect(140, y + i * 24, - 150, 12)); + mAttributeSlider[i] = new Slider(this, min, max, 1.0); + mAttributeSlider[i]->setDimension(Rect(140, y + i * 24, 150, 12)); mAttributeSlider[i]->setActionEventId("statslider"); mAttributeSlider[i]->addActionListener(this); add(mAttributeSlider[i]); diff --git a/src/gui/windows/itemamountwindow.cpp b/src/gui/windows/itemamountwindow.cpp index 472057060..9c2e039f9 100644 --- a/src/gui/windows/itemamountwindow.cpp +++ b/src/gui/windows/itemamountwindow.cpp @@ -100,7 +100,7 @@ ItemAmountWindow::ItemAmountWindow(const Usage usage, Window *const parent, mItem(item), mItemIcon(new Icon(this, item ? item->getImage() : nullptr)), mItemPopup(new ItemPopup), - mItemAmountSlide(new Slider(this, 1.0, maxRange)), + mItemAmountSlide(new Slider(this, 1.0, maxRange, 1.0)), mItemPriceSlide(nullptr), mItemDropDown(nullptr), mItemsModal(nullptr), @@ -136,7 +136,7 @@ ItemAmountWindow::ItemAmountWindow(const Usage usage, Window *const parent, mItemPriceTextField->setWidth(35); mItemPriceTextField->addKeyListener(this); - mItemPriceSlide = new Slider(this, 1.0, 10000000); + mItemPriceSlide = new Slider(this, 1.0, 10000000, 1.0); mItemPriceSlide->setHeight(10); mItemPriceSlide->setActionEventId("slidePrice"); mItemPriceSlide->addActionListener(this); diff --git a/src/gui/windows/selldialog.cpp b/src/gui/windows/selldialog.cpp index 604caa72e..1b9f1ec85 100644 --- a/src/gui/windows/selldialog.cpp +++ b/src/gui/windows/selldialog.cpp @@ -100,7 +100,7 @@ void SellDialog::init() getOptionBool("showbackground"), "sell_background.xml"); mScrollArea->setHorizontalScrollPolicy(ScrollArea::SHOW_NEVER); - mSlider = new Slider(this, 1.0); + mSlider = new Slider(this, 1.0, 1.0); mQuantityLabel = new Label(this, strprintf( "%d / %d", mAmountItems, mMaxItems)); -- cgit v1.2.3-70-g09d2 From ef0f7af63a5e1bd73fb34c601f996e7aadf848c0 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 2 Apr 2014 16:17:04 +0300 Subject: Improve visible check in widgets draw code. --- src/gui/widgets/basiccontainer.cpp | 2 +- src/gui/widgets/widget.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gui/widgets/basiccontainer.cpp b/src/gui/widgets/basiccontainer.cpp index 00386a725..4803373f2 100644 --- a/src/gui/widgets/basiccontainer.cpp +++ b/src/gui/widgets/basiccontainer.cpp @@ -298,7 +298,7 @@ void BasicContainer::drawChildren(Graphics* graphics) FOR_EACH (WidgetListConstIterator, iter, mWidgets) { Widget *const widget = *iter; - if (widget->isVisible()) + if (widget->isVisibleLocal()) { // If the widget has a frame, // draw it before drawing the widget diff --git a/src/gui/widgets/widget.h b/src/gui/widgets/widget.h index de5a79502..236c7b6ee 100644 --- a/src/gui/widgets/widget.h +++ b/src/gui/widgets/widget.h @@ -399,6 +399,9 @@ class Widget : public Widget2 bool isVisible() const A_WARN_UNUSED { return mVisible && (!mParent || mParent->isVisible()); } + bool isVisibleLocal() const A_WARN_UNUSED + { return mVisible; } + /** * Sets the base color of the widget. * -- cgit v1.2.3-70-g09d2 From 3279c64d25124dbe759f7ba4fffe5554c3dd9e1e Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 2 Apr 2014 17:05:22 +0300 Subject: Improve isVisible usage. --- src/being/being.cpp | 2 +- src/gui/popups/popupmenu.cpp | 6 +++--- src/gui/widgets/checkbox.cpp | 2 +- src/gui/widgets/radiobutton.cpp | 2 +- src/gui/widgets/tabbedarea.cpp | 2 +- src/gui/windowmenu.cpp | 6 +++--- src/gui/windows/chatwindow.cpp | 22 +++++++++------------- src/gui/windows/ministatuswindow.cpp | 6 +++--- 8 files changed, 22 insertions(+), 26 deletions(-) diff --git a/src/being/being.cpp b/src/being/being.cpp index be4d8b903..9f99a2ab8 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -1668,7 +1668,7 @@ void Being::drawSpeech(const int offsetX, const int offsetY) // Draw speech above this being if (mSpeechTime == 0) { - if (mSpeechBubble->isVisible()) + if (mSpeechBubble->isVisibleLocal()) mSpeechBubble->setVisible(false); } else if (mSpeechTime > 0 && (speech == NAME_IN_BUBBLE || diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp index 330df1a6c..504ad6426 100644 --- a/src/gui/popups/popupmenu.cpp +++ b/src/gui/popups/popupmenu.cpp @@ -2164,7 +2164,7 @@ void PopupMenu::showPopup(const int x, const int y, Button *const button) if (!btn || btn->getActionEventId() == "SET") continue; - if (btn->isVisible()) + if (btn->isVisibleLocal()) { mBrowserBox->addRow(strprintf("@@hide button_%s|%s %s (%s)@@", // TRANSLATORS: popup menu item @@ -2209,7 +2209,7 @@ void PopupMenu::showPopup(const int x, const int y, const ProgressBar *const b) if (!bar) continue; - if (bar->isVisible()) + if (bar->isVisibleLocal()) { cnt ++; onlyBar = bar; @@ -2225,7 +2225,7 @@ void PopupMenu::showPopup(const int x, const int y, const ProgressBar *const b) if (!bar || bar == onlyBar) continue; - if (bar->isVisible()) + if (bar->isVisibleLocal()) { mBrowserBox->addRow(strprintf("@@hide bar_%s|%s %s@@", // TRANSLATORS: popup menu item diff --git a/src/gui/widgets/checkbox.cpp b/src/gui/widgets/checkbox.cpp index 06dcecab0..765ff13ec 100644 --- a/src/gui/widgets/checkbox.cpp +++ b/src/gui/widgets/checkbox.cpp @@ -189,7 +189,7 @@ void CheckBox::drawBox(Graphics *const graphics) const ImageRect &rect = mSkin->getBorder(); int index = 0; - if (mEnabled && isVisible()) + if (mEnabled && mVisible) { if (mSelected) { diff --git a/src/gui/widgets/radiobutton.cpp b/src/gui/widgets/radiobutton.cpp index 643517f77..27be9434b 100644 --- a/src/gui/widgets/radiobutton.cpp +++ b/src/gui/widgets/radiobutton.cpp @@ -176,7 +176,7 @@ void RadioButton::drawBox(Graphics* graphics) const ImageRect &rect = mSkin->getBorder(); int index = 0; - if (mEnabled && isVisible()) + if (mEnabled && mVisible) { if (mSelected) { diff --git a/src/gui/widgets/tabbedarea.cpp b/src/gui/widgets/tabbedarea.cpp index cf55fa10b..cd439a95a 100644 --- a/src/gui/widgets/tabbedarea.cpp +++ b/src/gui/widgets/tabbedarea.cpp @@ -570,7 +570,7 @@ void TabbedArea::adjustTabPositions() maxTabHeight = tab->getHeight(); } - int x = (mEnableScrollButtons && mArrowButton[0]->isVisible()) + int x = (mEnableScrollButtons && mArrowButton[0]->isVisibleLocal()) ? mArrowButton[0]->getWidth() : 0; for (size_t i = mTabScrollIndex; i < sz; ++i) { diff --git a/src/gui/windowmenu.cpp b/src/gui/windowmenu.cpp index 910bba705..c3b52ed59 100644 --- a/src/gui/windowmenu.cpp +++ b/src/gui/windowmenu.cpp @@ -185,7 +185,7 @@ WindowMenu::~WindowMenu() Button *const btn = dynamic_cast(*it); if (!btn) continue; - if (!btn->isVisible()) + if (!btn->isVisibleLocal()) delete btn; } delete_all(mButtonTexts); @@ -328,7 +328,7 @@ void WindowMenu::updateButtons() Button *const btn = dynamic_cast