From 3658d5a5564db6f0854ec9378c485aef8acc8992 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 14 Aug 2014 12:32:29 +0300 Subject: Add setupbutton object. Add upload log button in settings. --- src/gui/widgets/setupbuttonitem.cpp | 96 ++++++++++++++++++++++++++++++++++++ src/gui/widgets/setupbuttonitem.h | 79 +++++++++++++++++++++++++++++ src/gui/widgets/tabs/setup_other.cpp | 7 +++ 3 files changed, 182 insertions(+) create mode 100644 src/gui/widgets/setupbuttonitem.cpp create mode 100644 src/gui/widgets/setupbuttonitem.h (limited to 'src/gui') diff --git a/src/gui/widgets/setupbuttonitem.cpp b/src/gui/widgets/setupbuttonitem.cpp new file mode 100644 index 000000000..ad2c6548b --- /dev/null +++ b/src/gui/widgets/setupbuttonitem.cpp @@ -0,0 +1,96 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2014 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "gui/widgets/setupbuttonitem.h" + +#include "gui/widgets/button.h" +#include "gui/widgets/horizontcontainer.h" +#include "gui/widgets/vertcontainer.h" + +#include "gui/widgets/tabs/setuptabscroll.h" + +#include "utils/mathutils.h" + +#include "debug.h" + +SetupButtonItem::SetupButtonItem(const std::string &restrict text, + const std::string &restrict actionEventId, + SetupTabScroll *restrict const parent, + const std::string &restrict eventName, + ActionListener *const listener) : + SetupItem(text, "", "", parent, eventName, false), + mHorizont(nullptr), + mButton(nullptr) +{ + mValueType = VSTR; + mWidget = new Button(this, text, actionEventId, listener); + createControls(); +} + +SetupButtonItem::~SetupButtonItem() +{ + mHorizont = nullptr; + mWidget = nullptr; + mButton = nullptr; +} + +void SetupButtonItem::save() +{ +} + +void SetupButtonItem::cancel(const std::string &eventName A_UNUSED) +{ +} + +void SetupButtonItem::externalUpdated(const std::string &eventName A_UNUSED) +{ +} + +void SetupButtonItem::rereadValue() +{ +} + +void SetupButtonItem::createControls() +{ + mHorizont = new HorizontContainer(this, 32, 2); + + // TRANSLATORS: setup item button + mHorizont->add(mWidget); + + mParent->getContainer()->add2(mHorizont, true, 4); + mParent->addControl(this); +// mWidget->addActionListener(this); +} + +void SetupButtonItem::fromWidget() +{ +} + +void SetupButtonItem::toWidget() +{ +} + +void SetupButtonItem::action(const ActionEvent &event A_UNUSED) +{ +} + +void SetupButtonItem::apply(const std::string &eventName A_UNUSED) +{ +} diff --git a/src/gui/widgets/setupbuttonitem.h b/src/gui/widgets/setupbuttonitem.h new file mode 100644 index 000000000..9e9a7837b --- /dev/null +++ b/src/gui/widgets/setupbuttonitem.h @@ -0,0 +1,79 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2014 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef GUI_WIDGETS_SETUPBUTTONITEM_H +#define GUI_WIDGETS_SETUPBUTTONITEM_H + +#include "gui/widgets/setupitem.h" + +#include "listeners/actionlistener.h" + +class Button; +class CheckBox; +class Configuration; +class DropDown; +class EditDialog; +class HorizontContainer; +class IntTextField; +class Label; +class ListModel; +class SetupTabScroll; +class Slider; +class SliderList; +class TextField; + +class SetupButtonItem final : public SetupItem +{ + public: + SetupButtonItem(const std::string &restrict text, + const std::string &restrict actionEventId, + SetupTabScroll *restrict const parent, + const std::string &restrict eventName, + ActionListener *const listener); + + A_DELETE_COPY(SetupButtonItem) + + ~SetupButtonItem(); + + void createControls(); + + void fromWidget() override final; + + void toWidget() override final; + + void action(const ActionEvent &event) override final; + + void apply(const std::string &eventName) override final; + + void cancel(const std::string &eventName A_UNUSED) override final; + + void externalUpdated(const std::string &eventName A_UNUSED) + override final; + + void rereadValue() override final; + + void save() override final; + + protected: + HorizontContainer *mHorizont; + Button *mButton; +}; + +#endif // GUI_WIDGETS_SETUPBUTTONITEM_H diff --git a/src/gui/widgets/tabs/setup_other.cpp b/src/gui/widgets/tabs/setup_other.cpp index 2142d13f9..a3a939489 100644 --- a/src/gui/widgets/tabs/setup_other.cpp +++ b/src/gui/widgets/tabs/setup_other.cpp @@ -26,9 +26,12 @@ #include "gui/widgets/containerplacer.h" #include "gui/widgets/layouthelper.h" +#include "gui/widgets/setupbuttonitem.h" #include "gui/widgets/setupitem.h" #include "gui/widgets/scrollarea.h" +#include "listeners/uploadlistener.h" + #include "configuration.h" #include "resources/map/mapconsts.h" @@ -369,6 +372,10 @@ Setup_Other::Setup_Other(const Widget2 *const widget) : new SetupItemCheckBox(_("Enable input log"), "", "logInput", this, "logInputEvent"); + // TRANSLATORS: settings option + new SetupButtonItem(_("Upload log file"), "upload", + this, "uploadLog", &uploadListener); + // TRANSLATORS: settings option new SetupItemCheckBox(_("Low traffic mode"), "", "lowTraffic", this, "lowTrafficEvent"); -- cgit v1.2.3-70-g09d2