mirror of
https://github.com/profanity-im/profanity.git
synced 2024-11-03 19:37:16 -05:00
Made version check a user preference
This commit is contained in:
parent
ff335f80a9
commit
2ca8f5b62e
@ -76,6 +76,7 @@ static gboolean _cmd_set_showsplash(const char * const inp, struct cmd_help_t he
|
||||
static gboolean _cmd_set_chlog(const char * const inp, struct cmd_help_t help);
|
||||
static gboolean _cmd_set_history(const char * const inp, struct cmd_help_t help);
|
||||
static gboolean _cmd_set_remind(const char * const inp, struct cmd_help_t help);
|
||||
static gboolean _cmd_vercheck(const char * const inp, struct cmd_help_t help);
|
||||
static gboolean _cmd_away(const char * const inp, struct cmd_help_t help);
|
||||
static gboolean _cmd_online(const char * const inp, struct cmd_help_t help);
|
||||
static gboolean _cmd_dnd(const char * const inp, struct cmd_help_t help);
|
||||
@ -271,6 +272,16 @@ static struct cmd_t setting_commands[] =
|
||||
"Config file section : [ui]",
|
||||
"Config file value : showsplash=true|false",
|
||||
NULL } } },
|
||||
|
||||
{ "/vercheck",
|
||||
_cmd_vercheck,
|
||||
{ "/vercheck [on|off]", "Check for a new release.",
|
||||
{ "/vercheck [on|off]",
|
||||
"------------------",
|
||||
"Without a parameter will check for a new release.",
|
||||
"Switching on or off will enable/disable a version check when Profanity starts,",
|
||||
"and each time the /about command is run.",
|
||||
NULL } } },
|
||||
|
||||
{ "/chlog",
|
||||
_cmd_set_chlog,
|
||||
@ -812,6 +823,18 @@ _cmd_set_typing(const char * const inp, struct cmd_help_t help)
|
||||
"Incoming typing notifications", prefs_set_typing);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
_cmd_vercheck(const char * const inp, struct cmd_help_t help)
|
||||
{
|
||||
if (strcmp(inp, "/vercheck") == 0) {
|
||||
cons_check_version(TRUE);
|
||||
return TRUE;
|
||||
} else {
|
||||
return _cmd_set_boolean_preference(inp, help, "/vercheck",
|
||||
"Version checking", prefs_set_vercheck);
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
_cmd_set_flash(const char * const inp, struct cmd_help_t help)
|
||||
{
|
||||
|
@ -261,6 +261,19 @@ prefs_set_typing(gboolean value)
|
||||
_save_prefs();
|
||||
}
|
||||
|
||||
gboolean
|
||||
prefs_get_vercheck(void)
|
||||
{
|
||||
return g_key_file_get_boolean(prefs, "ui", "vercheck", NULL);
|
||||
}
|
||||
|
||||
void
|
||||
prefs_set_vercheck(gboolean value)
|
||||
{
|
||||
g_key_file_set_boolean(prefs, "ui", "vercheck", value);
|
||||
_save_prefs();
|
||||
}
|
||||
|
||||
gboolean
|
||||
prefs_get_flash(void)
|
||||
{
|
||||
|
@ -58,6 +58,8 @@ gboolean prefs_get_showsplash(void);
|
||||
void prefs_set_showsplash(gboolean value);
|
||||
gint prefs_get_remind(void);
|
||||
void prefs_set_remind(gint value);
|
||||
gboolean prefs_get_vercheck(void);
|
||||
void prefs_set_vercheck(gboolean value);
|
||||
|
||||
void prefs_add_login(const char *jid);
|
||||
|
||||
|
1
src/ui.h
1
src/ui.h
@ -115,6 +115,7 @@ void cons_show(const char * const cmd, ...);
|
||||
void cons_bad_show(const char * const cmd);
|
||||
void cons_highlight_show(const char * const cmd);
|
||||
void cons_show_contacts(GSList * list);
|
||||
void cons_check_version(gboolean not_available_msg);
|
||||
|
||||
// status bar actions
|
||||
void status_bar_refresh(void);
|
||||
|
@ -543,6 +543,11 @@ cons_prefs(void)
|
||||
else
|
||||
cons_show("Chat history : OFF");
|
||||
|
||||
if (prefs_get_vercheck())
|
||||
cons_show("Version checking : ON");
|
||||
else
|
||||
cons_show("Version checking : OFF");
|
||||
|
||||
gint remind_period = prefs_get_remind();
|
||||
if (remind_period == 0) {
|
||||
cons_show("Message reminder period : OFF");
|
||||
@ -846,23 +851,8 @@ cons_about(void)
|
||||
_win_show_time(_cons_win);
|
||||
wprintw(_cons_win, "\n");
|
||||
|
||||
// check for new version if this is a release build
|
||||
if (strcmp(PACKAGE_STATUS, "release") == 0) {
|
||||
char *latest_release = release_get_latest();
|
||||
|
||||
if (latest_release != NULL) {
|
||||
gboolean relase_valid = g_regex_match_simple("^\\d+\\.\\d+\\.\\d+$", latest_release, 0, 0);
|
||||
|
||||
if (relase_valid) {
|
||||
if (_new_release(latest_release)) {
|
||||
_win_show_time(_cons_win);
|
||||
wprintw(_cons_win, "RELEASE: %s", latest_release);
|
||||
free(latest_release);
|
||||
_win_show_time(_cons_win);
|
||||
wprintw(_cons_win, "\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (prefs_get_vercheck()) {
|
||||
cons_check_version(FALSE);
|
||||
}
|
||||
|
||||
prefresh(_cons_win, 0, 0, 1, 0, rows-3, cols-1);
|
||||
@ -870,6 +860,37 @@ cons_about(void)
|
||||
dirty = TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
cons_check_version(gboolean not_available_msg)
|
||||
{
|
||||
char *latest_release = release_get_latest();
|
||||
|
||||
if (latest_release != NULL) {
|
||||
gboolean relase_valid = g_regex_match_simple("^\\d+\\.\\d+\\.\\d+$", latest_release, 0, 0);
|
||||
|
||||
if (relase_valid) {
|
||||
if (_new_release(latest_release)) {
|
||||
_win_show_time(_cons_win);
|
||||
wattron(_cons_win, COLOUR_ONLINE);
|
||||
wprintw(_cons_win, "A new version of Profanity is available: %s", latest_release);
|
||||
wattroff(_cons_win, COLOUR_ONLINE);
|
||||
_win_show_time(_cons_win);
|
||||
wattron(_cons_win, COLOUR_ONLINE);
|
||||
wprintw(_cons_win, "Check http://www.boothj5.com/profanity.shtml for details.\n");
|
||||
wattroff(_cons_win, COLOUR_ONLINE);
|
||||
free(latest_release);
|
||||
_win_show_time(_cons_win);
|
||||
wprintw(_cons_win, "\n");
|
||||
} else {
|
||||
if (not_available_msg) {
|
||||
cons_show("No new version available.");
|
||||
cons_show("");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
_new_release(char *found_version)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user