From ceddf084c0eacb2eb030550449f4fbdfa8e3f642 Mon Sep 17 00:00:00 2001 From: Debugger Date: Thu, 15 Aug 2013 02:32:38 +1000 Subject: [PATCH] adding a 'factory reset' button to the menu to reset all settings (cherry picked from commit f999683) --- qcsrc/menu/classes.c | 1 + qcsrc/menu/xonotic/dialog_settings_misc.c | 5 ++++ .../menu/xonotic/dialog_settings_misc_reset.c | 28 +++++++++++++++++++ qcsrc/menu/xonotic/mainwindow.c | 5 ++++ 4 files changed, 39 insertions(+) create mode 100644 qcsrc/menu/xonotic/dialog_settings_misc_reset.c diff --git a/qcsrc/menu/classes.c b/qcsrc/menu/classes.c index 46d0c0269..600632249 100644 --- a/qcsrc/menu/classes.c +++ b/qcsrc/menu/classes.c @@ -114,3 +114,4 @@ #include "xonotic/dialog_hudpanel_buffs.c" #include "xonotic/slider_picmip.c" #include "xonotic/slider_particles.c" +#include "xonotic/dialog_settings_misc_reset.c" diff --git a/qcsrc/menu/xonotic/dialog_settings_misc.c b/qcsrc/menu/xonotic/dialog_settings_misc.c index c14a47c9c..489b00967 100644 --- a/qcsrc/menu/xonotic/dialog_settings_misc.c +++ b/qcsrc/menu/xonotic/dialog_settings_misc.c @@ -151,5 +151,10 @@ void XonoticMiscSettingsTab_fill(entity me) e.onClick = DialogOpenButton_Click; e.onClickEntity = main.cvarsDialog; me.TR(me); + me.TDempty(me, 0.5); + me.TD(me, 1, 2, e = makeXonoticButton(_("Factory reset"), '0 0 0')); + e.onClick = DialogOpenButton_Click; + e.onClickEntity = main.resetDialog; + me.TR(me); } #endif diff --git a/qcsrc/menu/xonotic/dialog_settings_misc_reset.c b/qcsrc/menu/xonotic/dialog_settings_misc_reset.c new file mode 100644 index 000000000..8f6da0a55 --- /dev/null +++ b/qcsrc/menu/xonotic/dialog_settings_misc_reset.c @@ -0,0 +1,28 @@ +#ifdef INTERFACE +CLASS(XonoticResetDialog) EXTENDS(XonoticDialog) + METHOD(XonoticResetDialog, fill, void(entity)) + ATTRIB(XonoticResetDialog, title, string, _("Factory reset")) + ATTRIB(XonoticResetDialog, color, vector, SKINCOLOR_DIALOG_QUIT) + ATTRIB(XonoticResetDialog, intendedWidth, float, 0.5) + ATTRIB(XonoticResetDialog, rows, float, 4) + ATTRIB(XonoticResetDialog, columns, float, 2) + ATTRIB(XonoticResetDialog, name, string, "Factory reset") +ENDCLASS(XonoticResetDialog) +#endif + +#ifdef IMPLEMENTATION +void XonoticResetDialog_fill(entity me) +{ + entity e; + me.TR(me); + me.TD(me, 1, 2, makeXonoticTextLabel(0.5, _("Are you sure you want to reset all settings?"))); + me.TR(me); + me.TD(me, 1, 2, makeXonoticTextLabel(0.5, _("This will create a backup config in your data directory"))); + me.TR(me); + me.TR(me); + me.TD(me, 1, 1, e = makeXonoticCommandButton(_("Yes"), '1 0 0', "saveconfig backup.cfg\n;\n exec defaultXonotic.cfg\n", 0)); + me.TD(me, 1, 1, e = makeXonoticButton(_("No"), '0 1 0')); + e.onClick = Dialog_Close; + e.onClickEntity = me; +} +#endif diff --git a/qcsrc/menu/xonotic/mainwindow.c b/qcsrc/menu/xonotic/mainwindow.c index 5c58025fc..e0dd17e0e 100644 --- a/qcsrc/menu/xonotic/mainwindow.c +++ b/qcsrc/menu/xonotic/mainwindow.c @@ -20,6 +20,7 @@ CLASS(MainWindow) EXTENDS(ModalController) ATTRIB(MainWindow, mainNexposee, entity, NULL) ATTRIB(MainWindow, fadedAlpha, float, SKINALPHA_BEHIND) ATTRIB(MainWindow, dialogToShow, entity, NULL) + ATTRIB(MainWindow, resetDialog, entity, NULL) ENDCLASS(MainWindow) #endif @@ -139,6 +140,10 @@ void MainWindow_configureMainWindow(entity me) me.cvarsDialog = i = spawnXonoticCvarsDialog(); i.configureDialog(i); me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z); + + me.resetDialog = i = spawnXonoticResetDialog(); + i.configureDialog(i); + me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z); me.languageWarningDialog = i = spawnXonoticLanguageWarningDialog(); i.configureDialog(i); -- 2.39.2