mirror of
https://github.com/profanity-im/profanity.git
synced 2025-01-03 14:57:42 -05:00
Allow "account" setting in [connection] to autconnect the account
closes #251
This commit is contained in:
parent
2fa8da493e
commit
2b0108e6cc
@ -94,6 +94,7 @@ static int _strtoi(char *str, int *saveptr, int min, int max);
|
||||
static gboolean _cmd_about(gchar **args, struct cmd_help_t help);
|
||||
static gboolean _cmd_account(gchar **args, struct cmd_help_t help);
|
||||
static gboolean _cmd_autoaway(gchar **args, struct cmd_help_t help);
|
||||
static gboolean _cmd_autoconnect(gchar **args, struct cmd_help_t help);
|
||||
static gboolean _cmd_autoping(gchar **args, struct cmd_help_t help);
|
||||
static gboolean _cmd_away(gchar **args, struct cmd_help_t help);
|
||||
static gboolean _cmd_beep(gchar **args, struct cmd_help_t help);
|
||||
@ -579,6 +580,16 @@ static struct cmd_t command_defs[] =
|
||||
"Switch on or off the ascii logo on start up and when the /about command is called.",
|
||||
NULL } } },
|
||||
|
||||
{ "/autoconnect",
|
||||
_cmd_autoconnect, parse_args, 0, 1, cons_autoconnect_setting,
|
||||
{ "/autoconnect [account]", "Set account to autoconnect with.",
|
||||
{ "/autoconnect [account]",
|
||||
"----------------------",
|
||||
"Set the account to autoconnect with.",
|
||||
"Will be overridden by any command line options specified.",
|
||||
"Passing no account will clear the setting.",
|
||||
NULL } } },
|
||||
|
||||
{ "/vercheck",
|
||||
_cmd_vercheck, parse_args, 0, 1, NULL,
|
||||
{ "/vercheck [on|off]", "Check for a new release.",
|
||||
@ -1302,6 +1313,13 @@ _cmd_complete_parameters(char *input, int *size)
|
||||
return;
|
||||
}
|
||||
|
||||
result = autocomplete_param_with_func(input, size, "/autoconnect", accounts_find_enabled);
|
||||
if (result != NULL) {
|
||||
inp_replace_input(input, result, size);
|
||||
g_free(result);
|
||||
return;
|
||||
}
|
||||
|
||||
gchar *cmds[] = { "/help", "/prefs", "/log", "/disco", "/close", "/wins" };
|
||||
Autocomplete completers[] = { help_ac, prefs_ac, log_ac, disco_ac, close_ac, wins_ac };
|
||||
|
||||
@ -1809,7 +1827,7 @@ _cmd_help(gchar **args, struct cmd_help_t help)
|
||||
_cmd_show_filtered_help("Service discovery commands", filter, ARRAY_SIZE(filter));
|
||||
|
||||
} else if (strcmp(args[0], "settings") == 0) {
|
||||
gchar *filter[] = { "/account", "/autoaway", "/autoping", "/beep",
|
||||
gchar *filter[] = { "/account", "/autoaway", "/autoping", "/autoconnect", "/beep",
|
||||
"/chlog", "/flash", "/gone", "/grlog", "/history", "/intype",
|
||||
"/log", "/mouse", "/notify", "/outtype", "/prefs", "/priority",
|
||||
"/reconnect", "/roster", "/splash", "/states", "/statuses", "/theme",
|
||||
@ -3447,6 +3465,19 @@ _cmd_splash(gchar **args, struct cmd_help_t help)
|
||||
"Splash screen", PREF_SPLASH);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
_cmd_autoconnect(gchar **args, struct cmd_help_t help)
|
||||
{
|
||||
if (args[0] == NULL) {
|
||||
prefs_set_string(PREF_CONNECT_ACCOUNT, NULL);
|
||||
cons_show("Autoconnect account disabled.");
|
||||
} else {
|
||||
prefs_set_string(PREF_CONNECT_ACCOUNT, args[0]);
|
||||
cons_show("Autoconnect account set to: %s.", args[0]);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
_cmd_chlog(gchar **args, struct cmd_help_t help)
|
||||
{
|
||||
|
@ -309,6 +309,8 @@ _get_group(preference_t pref)
|
||||
case PREF_AUTOAWAY_MODE:
|
||||
case PREF_AUTOAWAY_MESSAGE:
|
||||
return "presence";
|
||||
case PREF_CONNECT_ACCOUNT:
|
||||
return "connection";
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
@ -361,6 +363,8 @@ _get_key(preference_t pref)
|
||||
return "autoaway.mode";
|
||||
case PREF_AUTOAWAY_MESSAGE:
|
||||
return "autoaway.message";
|
||||
case PREF_CONNECT_ACCOUNT:
|
||||
return "account";
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
|
@ -56,7 +56,8 @@ typedef enum {
|
||||
PREF_GRLOG,
|
||||
PREF_AUTOAWAY_CHECK,
|
||||
PREF_AUTOAWAY_MODE,
|
||||
PREF_AUTOAWAY_MESSAGE
|
||||
PREF_AUTOAWAY_MESSAGE,
|
||||
PREF_CONNECT_ACCOUNT
|
||||
} preference_t;
|
||||
|
||||
void prefs_load(void);
|
||||
|
@ -76,6 +76,10 @@ prof_run(const int disable_tls, char *log_level, char *account_name)
|
||||
char *cmd = "/connect";
|
||||
snprintf(inp, sizeof(inp), "%s %s", cmd, account_name);
|
||||
_process_input(inp);
|
||||
} else if (prefs_get_string(PREF_CONNECT_ACCOUNT) != NULL) {
|
||||
char *cmd = "/connect";
|
||||
snprintf(inp, sizeof(inp), "%s %s", cmd, prefs_get_string(PREF_CONNECT_ACCOUNT));
|
||||
_process_input(inp);
|
||||
}
|
||||
|
||||
while(cmd_result == TRUE) {
|
||||
|
@ -942,6 +942,15 @@ cons_splash_setting(void)
|
||||
cons_show("Splash screen (/splash) : OFF");
|
||||
}
|
||||
|
||||
void
|
||||
cons_autoconnect_setting(void)
|
||||
{
|
||||
if (prefs_get_string(PREF_CONNECT_ACCOUNT) != NULL)
|
||||
cons_show("Autoconnect (/autoconnect) : %s", prefs_get_string(PREF_CONNECT_ACCOUNT));
|
||||
else
|
||||
cons_show("Autoconnect (/autoconnect) : OFF");
|
||||
}
|
||||
|
||||
void
|
||||
cons_vercheck_setting(void)
|
||||
{
|
||||
@ -1218,6 +1227,7 @@ cons_show_connection_prefs(void)
|
||||
cons_show("");
|
||||
cons_reconnect_setting();
|
||||
cons_autoping_setting();
|
||||
cons_autoconnect_setting();
|
||||
|
||||
wins_refresh_console();
|
||||
cons_alert();
|
||||
|
@ -216,6 +216,7 @@ void cons_autoaway_setting(void);
|
||||
void cons_reconnect_setting(void);
|
||||
void cons_autoping_setting(void);
|
||||
void cons_priority_setting(void);
|
||||
void cons_autoconnect_setting(void);
|
||||
|
||||
// status bar actions
|
||||
void status_bar_refresh(void);
|
||||
|
Loading…
Reference in New Issue
Block a user