Refactoring window types, removing recipient and from references - wip
This commit is contained in:
@@ -1612,12 +1612,6 @@ cmd_reset_autocomplete()
|
||||
autocomplete_reset(notify_typing_ac);
|
||||
autocomplete_reset(sub_ac);
|
||||
|
||||
if (ui_current_win_type() == WIN_MUC) {
|
||||
char *recipient = ui_current_recipient();
|
||||
muc_autocomplete_reset(recipient);
|
||||
muc_jid_autocomplete_reset(recipient);
|
||||
}
|
||||
|
||||
autocomplete_reset(who_room_ac);
|
||||
autocomplete_reset(who_roster_ac);
|
||||
autocomplete_reset(prefs_ac);
|
||||
@@ -1664,19 +1658,24 @@ cmd_reset_autocomplete()
|
||||
autocomplete_reset(time_ac);
|
||||
autocomplete_reset(resource_ac);
|
||||
|
||||
if (ui_current_win_type() == WIN_MUC_CONFIG) {
|
||||
ProfWin *window = wins_get_current();
|
||||
ProfMucConfWin *confwin = (ProfMucConfWin*)window;
|
||||
if (window && confwin->form) {
|
||||
form_reset_autocompleters(confwin->form);
|
||||
if (ui_current_win_type() == WIN_CHAT) {
|
||||
ProfChatWin *chatwin = wins_get_current_chat();
|
||||
PContact contact = roster_get_contact(chatwin->barejid);
|
||||
if (contact) {
|
||||
p_contact_resource_ac_reset(contact);
|
||||
}
|
||||
}
|
||||
|
||||
if (ui_current_win_type() == WIN_CHAT) {
|
||||
char *recipient = ui_current_recipient();
|
||||
PContact contact = roster_get_contact(recipient);
|
||||
if (contact) {
|
||||
p_contact_resource_ac_reset(contact);
|
||||
if (ui_current_win_type() == WIN_MUC) {
|
||||
ProfMucWin *mucwin = wins_get_current_muc();
|
||||
muc_autocomplete_reset(mucwin->roomjid);
|
||||
muc_jid_autocomplete_reset(mucwin->roomjid);
|
||||
}
|
||||
|
||||
if (ui_current_win_type() == WIN_MUC_CONFIG) {
|
||||
ProfMucConfWin *confwin = wins_get_current_muc_conf();
|
||||
if (confwin->form) {
|
||||
form_reset_autocompleters(confwin->form);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1754,7 +1753,6 @@ cmd_execute_default(const char * inp)
|
||||
{
|
||||
win_type_t win_type = ui_current_win_type();
|
||||
jabber_conn_status_t status = jabber_get_connection_status();
|
||||
char *recipient = ui_current_recipient();
|
||||
|
||||
// handle escaped commands - treat as normal message
|
||||
if (g_str_has_prefix(inp, "//")) {
|
||||
@@ -1773,6 +1771,7 @@ cmd_execute_default(const char * inp)
|
||||
if (status != JABBER_CONNECTED) {
|
||||
ui_current_print_line("You are not currently connected.");
|
||||
} else {
|
||||
ProfWin
|
||||
message_send_groupchat(inp, recipient);
|
||||
}
|
||||
break;
|
||||
@@ -1887,8 +1886,8 @@ _cmd_complete_parameters(char *input, int *size)
|
||||
|
||||
// autocomplete nickname in chat rooms
|
||||
if (ui_current_win_type() == WIN_MUC) {
|
||||
char *recipient = ui_current_recipient();
|
||||
Autocomplete nick_ac = muc_roster_ac(recipient);
|
||||
ProfMucWin *mucwin = wins_get_current_muc();
|
||||
Autocomplete nick_ac = muc_roster_ac(mucwin->roomjid);
|
||||
if (nick_ac != NULL) {
|
||||
gchar *nick_choices[] = { "/msg", "/info", "/caps", "/status", "/software" } ;
|
||||
|
||||
@@ -2435,8 +2434,8 @@ _resource_autocomplete(char *input, int *size)
|
||||
|
||||
ProfWin *current = wins_get_current();
|
||||
if (current && current->type == WIN_CHAT) {
|
||||
char *recipient = ui_current_recipient();
|
||||
PContact contact = roster_get_contact(recipient);
|
||||
ProfChatWin *chatwin = wins_get_current_chat();
|
||||
PContact contact = roster_get_contact(chatwin->barejid);
|
||||
if (contact) {
|
||||
Autocomplete ac = p_contact_resource_ac(contact);
|
||||
found = autocomplete_param_with_ac(input, size, "/resource set", ac, FALSE);
|
||||
@@ -2575,62 +2574,71 @@ static char *
|
||||
_kick_autocomplete(char *input, int *size)
|
||||
{
|
||||
char *result = NULL;
|
||||
char *recipient = ui_current_recipient();
|
||||
Autocomplete nick_ac = muc_roster_ac(recipient);
|
||||
|
||||
if (nick_ac != NULL) {
|
||||
result = autocomplete_param_with_ac(input, size, "/kick", nick_ac, TRUE);
|
||||
if (result != NULL) {
|
||||
return result;
|
||||
if (ui_current_win_type() == WIN_MUC) {
|
||||
ProfMucWin *mucwin = wins_get_current_muc();
|
||||
Autocomplete nick_ac = muc_roster_ac(mucwin->roomjid);
|
||||
|
||||
if (nick_ac != NULL) {
|
||||
result = autocomplete_param_with_ac(input, size, "/kick", nick_ac, TRUE);
|
||||
if (result != NULL) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
return result;
|
||||
}
|
||||
|
||||
static char *
|
||||
_ban_autocomplete(char *input, int *size)
|
||||
{
|
||||
char *result = NULL;
|
||||
char *recipient = ui_current_recipient();
|
||||
Autocomplete jid_ac = muc_roster_jid_ac(recipient);
|
||||
|
||||
if (jid_ac != NULL) {
|
||||
result = autocomplete_param_with_ac(input, size, "/ban", jid_ac, TRUE);
|
||||
if (result != NULL) {
|
||||
return result;
|
||||
if (ui_current_win_type() == WIN_MUC) {
|
||||
ProfMucWin *mucwin = wins_get_current_muc();
|
||||
Autocomplete jid_ac = muc_roster_jid_ac(mucwin->roomjid);
|
||||
|
||||
if (jid_ac != NULL) {
|
||||
result = autocomplete_param_with_ac(input, size, "/ban", jid_ac, TRUE);
|
||||
if (result != NULL) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
return result;
|
||||
}
|
||||
|
||||
static char *
|
||||
_affiliation_autocomplete(char *input, int *size)
|
||||
{
|
||||
char *result = NULL;
|
||||
char *recipient = ui_current_recipient();
|
||||
gboolean parse_result;
|
||||
Autocomplete jid_ac = muc_roster_jid_ac(recipient);
|
||||
|
||||
input[*size] = '\0';
|
||||
gchar **args = parse_args(input, 3, 3, &parse_result);
|
||||
if (ui_current_win_type() == WIN_MUC) {
|
||||
ProfMucWin *mucwin = wins_get_current_muc();
|
||||
gboolean parse_result;
|
||||
Autocomplete jid_ac = muc_roster_jid_ac(mucwin->roomjid);
|
||||
|
||||
if ((strncmp(input, "/affiliation", 12) == 0) && (parse_result == TRUE)) {
|
||||
GString *beginning = g_string_new("/affiliation ");
|
||||
g_string_append(beginning, args[0]);
|
||||
g_string_append(beginning, " ");
|
||||
g_string_append(beginning, args[1]);
|
||||
input[*size] = '\0';
|
||||
gchar **args = parse_args(input, 3, 3, &parse_result);
|
||||
|
||||
result = autocomplete_param_with_ac(input, size, beginning->str, jid_ac, TRUE);
|
||||
g_string_free(beginning, TRUE);
|
||||
if (result != NULL) {
|
||||
g_strfreev(args);
|
||||
return result;
|
||||
if ((strncmp(input, "/affiliation", 12) == 0) && (parse_result == TRUE)) {
|
||||
GString *beginning = g_string_new("/affiliation ");
|
||||
g_string_append(beginning, args[0]);
|
||||
g_string_append(beginning, " ");
|
||||
g_string_append(beginning, args[1]);
|
||||
|
||||
result = autocomplete_param_with_ac(input, size, beginning->str, jid_ac, TRUE);
|
||||
g_string_free(beginning, TRUE);
|
||||
if (result != NULL) {
|
||||
g_strfreev(args);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
g_strfreev(args);
|
||||
g_strfreev(args);
|
||||
}
|
||||
|
||||
result = autocomplete_param_with_ac(input, size, "/affiliation set", affiliation_ac, TRUE);
|
||||
if (result != NULL) {
|
||||
@@ -2647,35 +2655,38 @@ _affiliation_autocomplete(char *input, int *size)
|
||||
return result;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
return result;
|
||||
}
|
||||
|
||||
static char *
|
||||
_role_autocomplete(char *input, int *size)
|
||||
{
|
||||
char *result = NULL;
|
||||
char *recipient = ui_current_recipient();
|
||||
gboolean parse_result;
|
||||
Autocomplete nick_ac = muc_roster_ac(recipient);
|
||||
|
||||
input[*size] = '\0';
|
||||
gchar **args = parse_args(input, 3, 3, &parse_result);
|
||||
if (ui_current_win_type() == WIN_MUC) {
|
||||
ProfMucWin *mucwin = wins_get_current_muc();
|
||||
gboolean parse_result;
|
||||
Autocomplete nick_ac = muc_roster_ac(mucwin->roomjid);
|
||||
|
||||
if ((strncmp(input, "/role", 5) == 0) && (parse_result == TRUE)) {
|
||||
GString *beginning = g_string_new("/role ");
|
||||
g_string_append(beginning, args[0]);
|
||||
g_string_append(beginning, " ");
|
||||
g_string_append(beginning, args[1]);
|
||||
input[*size] = '\0';
|
||||
gchar **args = parse_args(input, 3, 3, &parse_result);
|
||||
|
||||
result = autocomplete_param_with_ac(input, size, beginning->str, nick_ac, TRUE);
|
||||
g_string_free(beginning, TRUE);
|
||||
if (result != NULL) {
|
||||
g_strfreev(args);
|
||||
return result;
|
||||
if ((strncmp(input, "/role", 5) == 0) && (parse_result == TRUE)) {
|
||||
GString *beginning = g_string_new("/role ");
|
||||
g_string_append(beginning, args[0]);
|
||||
g_string_append(beginning, " ");
|
||||
g_string_append(beginning, args[1]);
|
||||
|
||||
result = autocomplete_param_with_ac(input, size, beginning->str, nick_ac, TRUE);
|
||||
g_string_free(beginning, TRUE);
|
||||
if (result != NULL) {
|
||||
g_strfreev(args);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
g_strfreev(args);
|
||||
g_strfreev(args);
|
||||
}
|
||||
|
||||
result = autocomplete_param_with_ac(input, size, "/role set", role_ac, TRUE);
|
||||
if (result != NULL) {
|
||||
@@ -2692,7 +2703,7 @@ _role_autocomplete(char *input, int *size)
|
||||
return result;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
return result;
|
||||
}
|
||||
|
||||
static char *
|
||||
|
||||
Reference in New Issue
Block a user