mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
Added /roster size and /occupants size settings
This commit is contained in:
parent
3a778cc974
commit
1479a5e134
@ -169,9 +169,9 @@ static struct cmd_t command_defs[] =
|
|||||||
|
|
||||||
{ "/roster",
|
{ "/roster",
|
||||||
cmd_roster, parse_args_with_freetext, 0, 3, NULL,
|
cmd_roster, parse_args_with_freetext, 0, 3, NULL,
|
||||||
{ "/roster [show|hide|by|add|remove|nick|clearnick] [offline|resource] [group|presence|none] [jid] [nickname]", "Manage your roster.",
|
{ "/roster [show|hide|by|size|add|remove|nick|clearnick] [offline|resource] [percent] [group|presence|none] [jid] [nickname]", "Manage your roster.",
|
||||||
{ "/roster [show|hide|by|add|remove|nick|clearnick] [offline|resource] [group|presence|none] [jid] [nickname]",
|
{ "/roster [show|hide|by|size|add|remove|nick|clearnick] [offline|resource] [percent] [group|presence|none] [jid] [nickname]",
|
||||||
"----------------------------------------------------------------------------------------------------------",
|
"-------------------------------------------------------------------------------------------------------------------------",
|
||||||
"View, add to, and remove from your roster.",
|
"View, add to, and remove from your roster.",
|
||||||
"Passing no arguments lists all contacts in your roster.",
|
"Passing no arguments lists all contacts in your roster.",
|
||||||
"show - Show the roster panel in the console window.",
|
"show - Show the roster panel in the console window.",
|
||||||
@ -183,6 +183,7 @@ static struct cmd_t command_defs[] =
|
|||||||
"by group - Group contacts in the roster panel by roster group.",
|
"by group - Group contacts in the roster panel by roster group.",
|
||||||
"by presence - Group contacts in the roster panel by presence.",
|
"by presence - Group contacts in the roster panel by presence.",
|
||||||
"by none - No grouping in the roster panel.",
|
"by none - No grouping in the roster panel.",
|
||||||
|
"size - Percentage of the screen taken up by the roster (1-99).",
|
||||||
"add - Add a new item, jid is required, nickname is optional.",
|
"add - Add a new item, jid is required, nickname is optional.",
|
||||||
"remove - Removes a contact, jid is required.",
|
"remove - Removes a contact, jid is required.",
|
||||||
"nick - Changes a contacts nickname, both jid and nickname are required,",
|
"nick - Changes a contacts nickname, both jid and nickname are required,",
|
||||||
@ -383,12 +384,13 @@ static struct cmd_t command_defs[] =
|
|||||||
|
|
||||||
{ "/occupants",
|
{ "/occupants",
|
||||||
cmd_occupants, parse_args, 1, 2, &cons_occupants_setting,
|
cmd_occupants, parse_args, 1, 2, &cons_occupants_setting,
|
||||||
{ "/occupants show|hide|default [show|hide]", "Show or hide room occupants.",
|
{ "/occupants show|hide|default|size [show|hide] [percent]", "Show or hide room occupants.",
|
||||||
{ "/occupants show|hide|default [show|hide]",
|
{ "/occupants show|hide|default|size [show|hide] [percent]",
|
||||||
"----------------------------------------",
|
"-------------------------------------------------------",
|
||||||
"show - Show the occupants panel in chat rooms.",
|
"show - Show the occupants panel in chat rooms.",
|
||||||
"hide - Hide the occupants panel in chat rooms.",
|
"hide - Hide the occupants panel in chat rooms.",
|
||||||
"default - Whether occupants are shown by default in new rooms, 'show' or 'hide'",
|
"default - Whether occupants are shown by default in new rooms, 'show' or 'hide'",
|
||||||
|
"size - Percentage of the screen taken by the occupants list in rooms (1-99).",
|
||||||
NULL } } },
|
NULL } } },
|
||||||
|
|
||||||
{ "/form",
|
{ "/form",
|
||||||
@ -1244,6 +1246,7 @@ cmd_init(void)
|
|||||||
autocomplete_add(roster_ac, "show");
|
autocomplete_add(roster_ac, "show");
|
||||||
autocomplete_add(roster_ac, "hide");
|
autocomplete_add(roster_ac, "hide");
|
||||||
autocomplete_add(roster_ac, "by");
|
autocomplete_add(roster_ac, "by");
|
||||||
|
autocomplete_add(roster_ac, "size");
|
||||||
|
|
||||||
roster_option_ac = autocomplete_new();
|
roster_option_ac = autocomplete_new();
|
||||||
autocomplete_add(roster_option_ac, "offline");
|
autocomplete_add(roster_option_ac, "offline");
|
||||||
@ -1388,6 +1391,7 @@ cmd_init(void)
|
|||||||
autocomplete_add(occupants_ac, "show");
|
autocomplete_add(occupants_ac, "show");
|
||||||
autocomplete_add(occupants_ac, "hide");
|
autocomplete_add(occupants_ac, "hide");
|
||||||
autocomplete_add(occupants_ac, "default");
|
autocomplete_add(occupants_ac, "default");
|
||||||
|
autocomplete_add(occupants_ac, "size");
|
||||||
|
|
||||||
occupants_default_ac = autocomplete_new();
|
occupants_default_ac = autocomplete_new();
|
||||||
autocomplete_add(occupants_default_ac, "show");
|
autocomplete_add(occupants_default_ac, "show");
|
||||||
|
@ -1330,6 +1330,23 @@ cmd_roster(gchar **args, struct cmd_help_t help)
|
|||||||
cons_show_roster(list);
|
cons_show_roster(list);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
// set roster size
|
||||||
|
} else if (g_strcmp0(args[0], "size") == 0) {
|
||||||
|
int intval = 0;
|
||||||
|
if (!args[1]) {
|
||||||
|
cons_show("Usage: %s", help.usage);
|
||||||
|
return TRUE;
|
||||||
|
} else if (_strtoi(args[1], &intval, 1, 99) == 0) {
|
||||||
|
prefs_set_roster_size(intval);
|
||||||
|
cons_show("Roster screen size set to: %d%%", intval);
|
||||||
|
if (prefs_get_boolean(PREF_ROSTER)) {
|
||||||
|
wins_resize_all();
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
} else {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
// show/hide roster
|
// show/hide roster
|
||||||
} else if (g_strcmp0(args[0], "show") == 0) {
|
} else if (g_strcmp0(args[0], "show") == 0) {
|
||||||
if (args[1] == NULL) {
|
if (args[1] == NULL) {
|
||||||
@ -2491,6 +2508,19 @@ cmd_occupants(gchar **args, struct cmd_help_t help)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (g_strcmp0(args[0], "size") == 0) {
|
||||||
|
int intval = 0;
|
||||||
|
if (!args[1]) {
|
||||||
|
cons_show("Usage: %s", help.usage);
|
||||||
|
return TRUE;
|
||||||
|
} else if (_strtoi(args[1], &intval, 1, 99) == 0) {
|
||||||
|
prefs_set_occupants_size(intval);
|
||||||
|
cons_show("Occupants screen size set to: %d%%", intval);
|
||||||
|
wins_resize_all();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (g_strcmp0(args[0], "default") == 0) {
|
if (g_strcmp0(args[0], "default") == 0) {
|
||||||
if (g_strcmp0(args[1], "show") == 0) {
|
if (g_strcmp0(args[1], "show") == 0) {
|
||||||
cons_show("Occupant list enabled.");
|
cons_show("Occupant list enabled.");
|
||||||
|
@ -316,6 +316,44 @@ prefs_set_autoaway_time(gint value)
|
|||||||
_save_prefs();
|
_save_prefs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
prefs_set_occupants_size(gint value)
|
||||||
|
{
|
||||||
|
g_key_file_set_integer(prefs, PREF_GROUP_UI, "occupants.size", value);
|
||||||
|
_save_prefs();
|
||||||
|
}
|
||||||
|
|
||||||
|
gint
|
||||||
|
prefs_get_occupants_size(void)
|
||||||
|
{
|
||||||
|
gint result = g_key_file_get_integer(prefs, PREF_GROUP_UI, "occupants.size", NULL);
|
||||||
|
|
||||||
|
if (result > 99 || result < 1) {
|
||||||
|
return 20;
|
||||||
|
} else {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
prefs_set_roster_size(gint value)
|
||||||
|
{
|
||||||
|
g_key_file_set_integer(prefs, PREF_GROUP_UI, "roster.size", value);
|
||||||
|
_save_prefs();
|
||||||
|
}
|
||||||
|
|
||||||
|
gint
|
||||||
|
prefs_get_roster_size(void)
|
||||||
|
{
|
||||||
|
gint result = g_key_file_get_integer(prefs, PREF_GROUP_UI, "roster.size", NULL);
|
||||||
|
|
||||||
|
if (result > 99 || result < 1) {
|
||||||
|
return 20;
|
||||||
|
} else {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
prefs_add_alias(const char * const name, const char * const value)
|
prefs_add_alias(const char * const name, const char * const value)
|
||||||
{
|
{
|
||||||
|
@ -58,7 +58,9 @@ typedef enum {
|
|||||||
PREF_HISTORY,
|
PREF_HISTORY,
|
||||||
PREF_MOUSE,
|
PREF_MOUSE,
|
||||||
PREF_OCCUPANTS,
|
PREF_OCCUPANTS,
|
||||||
|
PREF_OCCUPANTS_SIZE,
|
||||||
PREF_ROSTER,
|
PREF_ROSTER,
|
||||||
|
PREF_ROSTER_SIZE,
|
||||||
PREF_ROSTER_OFFLINE,
|
PREF_ROSTER_OFFLINE,
|
||||||
PREF_ROSTER_RESOURCE,
|
PREF_ROSTER_RESOURCE,
|
||||||
PREF_ROSTER_BY,
|
PREF_ROSTER_BY,
|
||||||
@ -121,6 +123,11 @@ gint prefs_get_reconnect(void);
|
|||||||
void prefs_set_autoping(gint value);
|
void prefs_set_autoping(gint value);
|
||||||
gint prefs_get_autoping(void);
|
gint prefs_get_autoping(void);
|
||||||
|
|
||||||
|
void prefs_set_occupants_size(gint value);
|
||||||
|
gint prefs_get_occupants_size(void);
|
||||||
|
void prefs_set_roster_size(gint value);
|
||||||
|
gint prefs_get_roster_size(void);
|
||||||
|
|
||||||
gint prefs_get_autoaway_time(void);
|
gint prefs_get_autoaway_time(void);
|
||||||
void prefs_set_autoaway_time(gint value);
|
void prefs_set_autoaway_time(gint value);
|
||||||
|
|
||||||
|
@ -883,6 +883,9 @@ _cons_occupants_setting(void)
|
|||||||
cons_show("Occupants (/occupants) : show");
|
cons_show("Occupants (/occupants) : show");
|
||||||
else
|
else
|
||||||
cons_show("Occupants (/occupants) : hide");
|
cons_show("Occupants (/occupants) : hide");
|
||||||
|
|
||||||
|
int size = prefs_get_occupants_size();
|
||||||
|
cons_show("Occupants size (/occupants) : %d", size);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -958,6 +961,9 @@ _cons_roster_setting(void)
|
|||||||
cons_show("Roster resource (/roster) : show");
|
cons_show("Roster resource (/roster) : show");
|
||||||
else
|
else
|
||||||
cons_show("Roster resource (/roster) : hide");
|
cons_show("Roster resource (/roster) : hide");
|
||||||
|
|
||||||
|
int size = prefs_get_roster_size();
|
||||||
|
cons_show("Roster size (/roster) : %d", size);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -53,9 +53,6 @@
|
|||||||
|
|
||||||
#define CEILING(X) (X-(int)(X) > 0 ? (int)(X+1) : (int)(X))
|
#define CEILING(X) (X-(int)(X) > 0 ? (int)(X+1) : (int)(X))
|
||||||
|
|
||||||
static int roster_win_percent = 20;
|
|
||||||
static int occupants_win_percent = 20;
|
|
||||||
|
|
||||||
static void _win_print(ProfWin *window, const char show_char, const char * const date_fmt,
|
static void _win_print(ProfWin *window, const char show_char, const char * const date_fmt,
|
||||||
int flags, int attrs, const char * const from, const char * const message);
|
int flags, int attrs, const char * const from, const char * const message);
|
||||||
static void _win_print_wrapped(WINDOW *win, const char * const message);
|
static void _win_print_wrapped(WINDOW *win, const char * const message);
|
||||||
@ -63,6 +60,7 @@ static void _win_print_wrapped(WINDOW *win, const char * const message);
|
|||||||
int
|
int
|
||||||
win_roster_cols(void)
|
win_roster_cols(void)
|
||||||
{
|
{
|
||||||
|
int roster_win_percent = prefs_get_roster_size();
|
||||||
int cols = getmaxx(stdscr);
|
int cols = getmaxx(stdscr);
|
||||||
return CEILING( (((double)cols) / 100) * roster_win_percent);
|
return CEILING( (((double)cols) / 100) * roster_win_percent);
|
||||||
}
|
}
|
||||||
@ -70,6 +68,7 @@ win_roster_cols(void)
|
|||||||
int
|
int
|
||||||
win_occpuants_cols(void)
|
win_occpuants_cols(void)
|
||||||
{
|
{
|
||||||
|
int occupants_win_percent = prefs_get_occupants_size();
|
||||||
int cols = getmaxx(stdscr);
|
int cols = getmaxx(stdscr);
|
||||||
return CEILING( (((double)cols) / 100) * occupants_win_percent);
|
return CEILING( (((double)cols) / 100) * occupants_win_percent);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user