summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-08-14 12:32:29 +0300
committerAndrei Karas <akaras@inbox.ru>2014-08-14 12:32:29 +0300
commit3658d5a5564db6f0854ec9378c485aef8acc8992 (patch)
treee63e1bbd4f1fb5b0c4b5d0450c90b94a6584d24d /src/gui
parent33fa397fd5b560afde5a876a99acc2b2546d1d44 (diff)
downloadmanaplus-3658d5a5564db6f0854ec9378c485aef8acc8992.tar.gz
manaplus-3658d5a5564db6f0854ec9378c485aef8acc8992.tar.bz2
manaplus-3658d5a5564db6f0854ec9378c485aef8acc8992.tar.xz
manaplus-3658d5a5564db6f0854ec9378c485aef8acc8992.zip
Add setupbutton object.
Add upload log button in settings.
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/widgets/setupbuttonitem.cpp96
-rw-r--r--src/gui/widgets/setupbuttonitem.h79
-rw-r--r--src/gui/widgets/tabs/setup_other.cpp7
3 files changed, 182 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>.
+ */
+
+#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 <http://www.gnu.org/licenses/>.
+ */
+
+#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"
@@ -370,6 +373,10 @@ Setup_Other::Setup_Other(const Widget2 *const widget) :
"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");