summaryrefslogtreecommitdiff
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
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.
-rw-r--r--src/CMakeLists.txt4
-rw-r--r--src/Makefile.am4
-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
-rw-r--r--src/listeners/uploadlistener.cpp35
-rw-r--r--src/listeners/uploadlistener.h38
7 files changed, 263 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index d98668b7d..a0d19c0c7 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -231,6 +231,8 @@ SET(SRCS
gui/widgets/scrollarea.cpp
gui/widgets/scrollarea.h
gui/widgets/serverslistbox.h
+ gui/widgets/setupbuttonitem.cpp
+ gui/widgets/setupbuttonitem.h
gui/widgets/setupitem.cpp
gui/widgets/setupitem.h
gui/widgets/tabs/setuptab.cpp
@@ -1032,6 +1034,8 @@ SET(SRCS
listeners/tablemodellistener.h
listeners/updatestatuslistener.cpp
listeners/updatestatuslistener.h
+ listeners/uploadlistener.cpp
+ listeners/uploadlistener.h
utils/sdlpixel.h
gui/widgets/widget.h
listeners/weightlistener.h
diff --git a/src/Makefile.am b/src/Makefile.am
index 88480779b..5af667174 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -214,6 +214,8 @@ manaplus_SOURCES += events/actionevent.h \
listeners/tablemodellistener.h \
listeners/updatestatuslistener.cpp \
listeners/updatestatuslistener.h \
+ listeners/uploadlistener.cpp \
+ listeners/uploadlistener.h \
utils/sdlpixel.h \
gui/widgets/widget.h \
listeners/weightlistener.h \
@@ -360,6 +362,8 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \
gui/widgets/scrollarea.cpp \
gui/widgets/scrollarea.h \
gui/widgets/serverslistbox.h \
+ gui/widgets/setupbuttonitem.cpp \
+ gui/widgets/setupbuttonitem.h \
gui/widgets/setupitem.cpp \
gui/widgets/setupitem.h \
gui/widgets/tabs/setuptab.cpp \
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");
diff --git a/src/listeners/uploadlistener.cpp b/src/listeners/uploadlistener.cpp
new file mode 100644
index 000000000..cf4f325dd
--- /dev/null
+++ b/src/listeners/uploadlistener.cpp
@@ -0,0 +1,35 @@
+/*
+ * 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 "listeners/uploadlistener.h"
+
+#include "commandhandler.h"
+#include "commands.h"
+#include "logger.h"
+
+#include "debug.h"
+
+UploadListener uploadListener;
+
+void UploadListener::action(const ActionEvent &event A_UNUSED)
+{
+ if (commandHandler)
+ commandHandler->invokeCommand(COMMAND_UPLOADLOG, "");
+}
diff --git a/src/listeners/uploadlistener.h b/src/listeners/uploadlistener.h
new file mode 100644
index 000000000..9189599ca
--- /dev/null
+++ b/src/listeners/uploadlistener.h
@@ -0,0 +1,38 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2004-2009 The Mana World Development Team
+ * Copyright (C) 2009-2010 The Mana Developers
+ * 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 LISTENERS_UPLOADLISTENER_H
+#define LISTENERS_UPLOADLISTENER_H
+
+#include "listeners/actionlistener.h"
+
+#include "localconsts.h"
+
+class UploadListener final : public ActionListener
+{
+ public:
+ void action(const ActionEvent &event A_UNUSED) override final;
+};
+
+extern UploadListener uploadListener;
+
+#endif // LISTENERS_UPLOADLISTENER_H