tweak save

This commit is contained in:
mwalker33 2020-04-13 16:17:57 +10:00
commit 3b4f851d2d
4 changed files with 27 additions and 7 deletions

View file

@ -49,6 +49,7 @@ int preferences_load (void) {
// Set all defaults
session.client_debug_level = OFF;
session.window_changed = false;
session.window_plot_xpos = 10;
session.window_plot_ypos = 30;
session.window_plot_hsize = 400;
@ -61,6 +62,7 @@ int preferences_load (void) {
session.show_hints = false;
session.supports_colors = false;
// loadFileJson wants these, so pass in place holder values, though not used
// in settings load;
uint8_t dummyData = 0x00;
@ -78,6 +80,7 @@ int preferences_load (void) {
// Save all settings from memory (struct) to file
int preferences_save (void) {
// Note sure if backup has value ?
char backupFilename[FILENAME_MAX+sizeof(preferencesFilename)+10] = {0};
PrintAndLogEx(INFO,"Saving preferences ...");
@ -353,6 +356,7 @@ static int setCmdEmoji (const char *Cmd) {
showEmojiState (prefShowOLD);
session.emoji_mode = newValue;
showEmojiState (prefShowNEW);
preferences_save ();
} else {
PrintAndLogEx(INFO,"nothing changed");
showEmojiState (prefShowNone);
@ -399,6 +403,7 @@ static int setCmdColor (const char *Cmd)
showColorState (prefShowOLD);
session.supports_colors = newValue;
showColorState (prefShowNEW);
preferences_save ();
} else {
PrintAndLogEx(INFO,"nothing changed");
showColorState (prefShowNone);
@ -450,6 +455,7 @@ static int setCmdDebug (const char *Cmd)
session.client_debug_level = newValue;
g_debugMode = newValue;
showClientDebugState (prefShowNEW);
preferences_save ();
} else {
PrintAndLogEx(INFO,"nothing changed");
showClientDebugState (prefShowNone);
@ -496,6 +502,7 @@ static int setCmdHint (const char *Cmd)
showHintsState (prefShowOLD);
session.show_hints = newValue;
showHintsState (prefShowNEW);
preferences_save ();
} else {
PrintAndLogEx(INFO,"nothing changed");
showHintsState (prefShowNone);
@ -546,8 +553,8 @@ static int CmdPrefShow (const char *Cmd) {
showEmojiState (prefShowNone);
showColorState (prefShowNone);
showPlotPosState ();
showOverlayPosState ();
// showPlotPosState ();
// showOverlayPosState ();
showClientDebugState(prefShowNone);
showHintsState (prefShowNone);
@ -555,18 +562,18 @@ static int CmdPrefShow (const char *Cmd) {
return PM3_SUCCESS;
}
/*
static int CmdPrefSave (const char *Cmd) {
preferences_save();
return PM3_SUCCESS;
}
*/
static command_t CommandTable[] = {
{"help", CmdHelp, AlwaysAvailable, "This help"},
{"set", CmdPrefSet, AlwaysAvailable, "Set a preference"},
{"show", CmdPrefShow, AlwaysAvailable, "Show preferences"},
{"save", CmdPrefSave, AlwaysAvailable, "Save preferences now"},
// {"save", CmdPrefSave, AlwaysAvailable, "Save preferences now"},
{NULL, NULL, NULL, NULL}
};

View file

@ -28,6 +28,8 @@
#include <QtGui>
#include "ui.h"
extern "C" int preferences_save (void);
extern "C" {
#include "util_darwin.h"
}
@ -145,11 +147,14 @@ SliderWidget::SliderWidget() {
void SliderWidget::resizeEvent (QResizeEvent *event) {
session.window_overlay_hsize = event->size().height();
session.window_overlay_wsize = event->size().width();
session.window_changed = true;
}
void SliderWidget::moveEvent (QMoveEvent *event) {
session.window_overlay_xpos = event->pos().x();
session.window_overlay_ypos = event->pos().y();
session.window_changed = true;
}
//--------------------
@ -246,6 +251,10 @@ ProxWidget::ProxWidget(QWidget *parent, ProxGuiQT *master) : QWidget(parent) {
controlWidget->setWindowTitle(ct);
controlWidget->show();
// now that is up, reset pos/size change flags
session.window_changed = false;
}
// not 100% sure what i need in this block
@ -268,6 +277,7 @@ ProxWidget::~ProxWidget(void) {
plot = NULL;
}
}
void ProxWidget::closeEvent(QCloseEvent *event) {
event->ignore();
this->hide();
@ -284,11 +294,12 @@ void ProxWidget::showEvent(QShowEvent *event) {
void ProxWidget::moveEvent(QMoveEvent *event) {
session.window_plot_xpos = event->pos().x();
session.window_plot_ypos = event->pos().y();
session.window_changed = true;
}
void ProxWidget::resizeEvent(QResizeEvent *event) {
session.window_plot_hsize = event->size().height();
session.window_plot_wsize = event->size().width();
session.window_changed = true;
}
//----------- Plotting

View file

@ -949,7 +949,8 @@ int main(int argc, char *argv[]) {
}
#ifdef USE_PREFERENCE_FILE
preferences_save ();
if (session.window_changed) // Plot/Overlay moved or resized
preferences_save ();
#endif
exit(EXIT_SUCCESS);
}

View file

@ -30,6 +30,7 @@ typedef struct {
bool pm3_present;
bool help_dump_mode;
bool show_hints;
bool window_changed; // track if plot/overlay pos/size changed to save on exit
int window_plot_xpos;
int window_plot_ypos;
int window_plot_hsize;