mirror of
https://github.com/weechat/weechat.git
synced 2026-07-03 16:23:14 +02:00
Added DCC control keys (Accept, Cancel, Remove, Close DCC view)
This commit is contained in:
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.0.8-pre2\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2004-09-13 21:42+0200\n"
|
||||
"POT-Creation-Date: 2004-09-16 21:57+0200\n"
|
||||
"PO-Revision-Date: 2004-08-08 20:47+0200\n"
|
||||
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@@ -1581,36 +1581,36 @@ msgstr "Echou
|
||||
msgid "Aborted"
|
||||
msgstr "Interrompu"
|
||||
|
||||
#: src/irc/irc-dcc.c:219
|
||||
#: src/irc/irc-dcc.c:235
|
||||
#, c-format
|
||||
msgid "%s not enough memory for new DCC\n"
|
||||
msgstr "%s pas assez de mémoire pour un nouveau DCC\n"
|
||||
|
||||
#: src/irc/irc-dcc.c:247
|
||||
#: src/irc/irc-dcc.c:263
|
||||
msgid "Incoming DCC file from "
|
||||
msgstr "Réception fichier DCC de "
|
||||
|
||||
#: src/irc/irc-dcc.c:272
|
||||
#: src/irc/irc-dcc.c:288
|
||||
msgid " bytes\n"
|
||||
msgstr "octets\n"
|
||||
|
||||
#: src/irc/irc-dcc.c:325
|
||||
#: src/irc/irc-dcc.c:341
|
||||
msgid "DCC: file "
|
||||
msgstr "DCC: fichier "
|
||||
|
||||
#: src/irc/irc-dcc.c:330
|
||||
#: src/irc/irc-dcc.c:346
|
||||
msgid " (local filename: "
|
||||
msgstr " (nom local: "
|
||||
|
||||
#: src/irc/irc-dcc.c:335
|
||||
#: src/irc/irc-dcc.c:351
|
||||
msgid ") from "
|
||||
msgstr ") de "
|
||||
|
||||
#: src/irc/irc-dcc.c:340
|
||||
#: src/irc/irc-dcc.c:356
|
||||
msgid ": ok!\n"
|
||||
msgstr ": ok!\n"
|
||||
|
||||
#: src/irc/irc-dcc.c:366
|
||||
#: src/irc/irc-dcc.c:382
|
||||
#, c-format
|
||||
msgid "aborting active DCC: \"%s\" from %s\n"
|
||||
msgstr "abandon du DCC actif: \"%s\" de %s\n"
|
||||
@@ -1710,6 +1710,25 @@ msgstr "[Act: "
|
||||
msgid "-MORE-"
|
||||
msgstr "-PLUS-"
|
||||
|
||||
#: src/gui/curses/gui-display.c:1216
|
||||
msgid " [A] Accept"
|
||||
msgstr " [A] Accepter"
|
||||
|
||||
#: src/gui/curses/gui-display.c:1217 src/gui/curses/gui-display.c:1223
|
||||
#: src/gui/curses/gui-display.c:1230
|
||||
msgid " [C] Cancel"
|
||||
msgstr " [C] Annuler"
|
||||
|
||||
#: src/gui/curses/gui-display.c:1218 src/gui/curses/gui-display.c:1224
|
||||
#: src/gui/curses/gui-display.c:1231 src/gui/curses/gui-display.c:1238
|
||||
#: src/gui/curses/gui-display.c:1243
|
||||
msgid " [Q] Close DCC view"
|
||||
msgstr " [Q] Fermer la vue DCC"
|
||||
|
||||
#: src/gui/curses/gui-display.c:1237
|
||||
msgid " [R] Remove"
|
||||
msgstr " [R] Retirer"
|
||||
|
||||
#: src/gui/gtk/gui-display.c:657
|
||||
msgid "server"
|
||||
msgstr "serveur"
|
||||
|
||||
+28
-9
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2004-09-13 21:42+0200\n"
|
||||
"POT-Creation-Date: 2004-09-16 21:57+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -1480,36 +1480,36 @@ msgstr ""
|
||||
msgid "Aborted"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:219
|
||||
#: src/irc/irc-dcc.c:235
|
||||
#, c-format
|
||||
msgid "%s not enough memory for new DCC\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:247
|
||||
#: src/irc/irc-dcc.c:263
|
||||
msgid "Incoming DCC file from "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:272
|
||||
#: src/irc/irc-dcc.c:288
|
||||
msgid " bytes\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:325
|
||||
#: src/irc/irc-dcc.c:341
|
||||
msgid "DCC: file "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:330
|
||||
#: src/irc/irc-dcc.c:346
|
||||
msgid " (local filename: "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:335
|
||||
#: src/irc/irc-dcc.c:351
|
||||
msgid ") from "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:340
|
||||
#: src/irc/irc-dcc.c:356
|
||||
msgid ": ok!\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:366
|
||||
#: src/irc/irc-dcc.c:382
|
||||
#, c-format
|
||||
msgid "aborting active DCC: \"%s\" from %s\n"
|
||||
msgstr ""
|
||||
@@ -1603,6 +1603,25 @@ msgstr ""
|
||||
msgid "-MORE-"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-display.c:1216
|
||||
msgid " [A] Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-display.c:1217 src/gui/curses/gui-display.c:1223
|
||||
#: src/gui/curses/gui-display.c:1230
|
||||
msgid " [C] Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-display.c:1218 src/gui/curses/gui-display.c:1224
|
||||
#: src/gui/curses/gui-display.c:1231 src/gui/curses/gui-display.c:1238
|
||||
#: src/gui/curses/gui-display.c:1243
|
||||
msgid " [Q] Close DCC view"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-display.c:1237
|
||||
msgid " [R] Remove"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/gtk/gui-display.c:657
|
||||
msgid "server"
|
||||
msgstr ""
|
||||
|
||||
@@ -1134,6 +1134,7 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
|
||||
char format[32];
|
||||
char *ptr_nickname;
|
||||
int input_width;
|
||||
t_dcc *dcc_selected;
|
||||
|
||||
if (!gui_ok)
|
||||
return;
|
||||
@@ -1202,8 +1203,44 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
|
||||
{
|
||||
if (buffer->dcc)
|
||||
{
|
||||
snprintf (format, 32, "%%-%ds", input_width);
|
||||
mvwprintw (ptr_win->win_input, 0, 0, format, "");
|
||||
dcc_selected = (ptr_win->dcc_selected) ? (t_dcc *) ptr_win->dcc_selected : dcc_list;
|
||||
if (dcc_selected)
|
||||
{
|
||||
switch (dcc_selected->status)
|
||||
{
|
||||
case DCC_WAITING:
|
||||
if ((dcc_selected->type == DCC_CHAT_RECV)
|
||||
|| (dcc_selected->type == DCC_FILE_RECV))
|
||||
{
|
||||
mvwprintw (ptr_win->win_input, 0, 0,
|
||||
_(" [A] Accept"));
|
||||
wprintw (ptr_win->win_input, _(" [C] Cancel"));
|
||||
wprintw (ptr_win->win_input, _(" [Q] Close DCC view"));
|
||||
}
|
||||
else
|
||||
{
|
||||
mvwprintw (ptr_win->win_input, 0, 0,
|
||||
_(" [C] Cancel"));
|
||||
wprintw (ptr_win->win_input, _(" [Q] Close DCC view"));
|
||||
}
|
||||
break;
|
||||
case DCC_CONNECTING:
|
||||
case DCC_ACTIVE:
|
||||
mvwprintw (ptr_win->win_input, 0, 0,
|
||||
_(" [C] Cancel"));
|
||||
wprintw (ptr_win->win_input, _(" [Q] Close DCC view"));
|
||||
break;
|
||||
case DCC_DONE:
|
||||
case DCC_FAILED:
|
||||
case DCC_ABORTED:
|
||||
mvwprintw (ptr_win->win_input, 0, 0,
|
||||
_(" [R] Remove"));
|
||||
wprintw (ptr_win->win_input, _(" [Q] Close DCC view"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
mvwprintw (ptr_win->win_input, 0, 0, _(" [Q] Close DCC view"));
|
||||
wclrtoeol (ptr_win->win_input);
|
||||
if (ptr_win == gui_current_window)
|
||||
move (ptr_win->win_y + ptr_win->win_height - 1,
|
||||
|
||||
@@ -52,6 +52,7 @@ gui_read_keyb ()
|
||||
int key, i;
|
||||
t_gui_buffer *ptr_buffer;
|
||||
char new_char[2];
|
||||
t_dcc *dcc_selected;
|
||||
|
||||
key = getch ();
|
||||
if (key != ERR)
|
||||
@@ -104,6 +105,7 @@ gui_read_keyb ()
|
||||
gui_current_window->dcc_selected =
|
||||
((t_dcc *)(gui_current_window->dcc_selected))->prev_dcc;
|
||||
gui_draw_buffer_chat (gui_current_window->buffer, 1);
|
||||
gui_draw_buffer_input (gui_current_window->buffer, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -160,6 +162,7 @@ gui_read_keyb ()
|
||||
gui_current_window->dcc_selected =
|
||||
dcc_list->next_dcc;
|
||||
gui_draw_buffer_chat (gui_current_window->buffer, 1);
|
||||
gui_draw_buffer_input (gui_current_window->buffer, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -500,7 +503,61 @@ gui_read_keyb ()
|
||||
break;
|
||||
/* other key => add to input buffer */
|
||||
default:
|
||||
if (!gui_current_window->buffer->dcc)
|
||||
if (gui_current_window->buffer->dcc)
|
||||
{
|
||||
dcc_selected = (gui_current_window->dcc_selected) ?
|
||||
(t_dcc *) gui_current_window->dcc_selected : dcc_list;
|
||||
switch (key)
|
||||
{
|
||||
/* accept DCC */
|
||||
case 'a':
|
||||
case 'A':
|
||||
if (dcc_selected
|
||||
&& (((dcc_selected->type == DCC_CHAT_RECV)
|
||||
|| (dcc_selected->type == DCC_FILE_RECV))
|
||||
&& (dcc_selected->status == DCC_WAITING)))
|
||||
{
|
||||
dcc_accept (dcc_selected);
|
||||
}
|
||||
break;
|
||||
/* cancel DCC */
|
||||
case 'c':
|
||||
case 'C':
|
||||
if (dcc_selected
|
||||
&& ((dcc_selected->status == DCC_WAITING)
|
||||
|| (dcc_selected->status == DCC_CONNECTING)
|
||||
|| (dcc_selected->status == DCC_ACTIVE)))
|
||||
{
|
||||
dcc_close (dcc_selected, DCC_ABORTED);
|
||||
gui_redraw_buffer (gui_current_window->buffer);
|
||||
}
|
||||
break;
|
||||
/* close DCC window */
|
||||
case 'q':
|
||||
case 'Q':
|
||||
gui_buffer_free (gui_current_window->buffer, 1);
|
||||
break;
|
||||
/* remove from DCC list */
|
||||
case 'r':
|
||||
case 'R':
|
||||
if (dcc_selected
|
||||
&& (((dcc_selected->type == DCC_CHAT_RECV)
|
||||
|| (dcc_selected->type == DCC_FILE_RECV))
|
||||
&& ((dcc_selected->status == DCC_DONE)
|
||||
|| (dcc_selected->status == DCC_FAILED)
|
||||
|| (dcc_selected->status == DCC_ABORTED))))
|
||||
{
|
||||
if (dcc_selected->next_dcc)
|
||||
gui_current_window->dcc_selected = dcc_selected->next_dcc;
|
||||
else
|
||||
gui_current_window->dcc_selected = NULL;
|
||||
dcc_free (dcc_selected);
|
||||
gui_redraw_buffer (gui_current_window->buffer);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*gui_printf (gui_current_window->buffer,
|
||||
"[Debug] key pressed = %d, hex = %02X, octal = %o\n", key, key, key);*/
|
||||
|
||||
+19
-3
@@ -55,7 +55,7 @@ dcc_redraw (int highlight)
|
||||
gui_draw_buffer_chat (gui_get_dcc_buffer (), 0);
|
||||
if (highlight)
|
||||
{
|
||||
hotlist_add (1, gui_get_dcc_buffer ());
|
||||
hotlist_add (highlight, gui_get_dcc_buffer ());
|
||||
gui_draw_buffer_status (gui_current_window->buffer, 0);
|
||||
}
|
||||
}
|
||||
@@ -92,16 +92,32 @@ dcc_send ()
|
||||
}
|
||||
|
||||
/*
|
||||
* dcc_free: free DCC struct
|
||||
* dcc_free: free DCC struct and remove it from list
|
||||
*/
|
||||
|
||||
void
|
||||
dcc_free (t_dcc *ptr_dcc)
|
||||
{
|
||||
t_dcc *new_dcc_list;
|
||||
|
||||
if (ptr_dcc->prev_dcc)
|
||||
{
|
||||
(ptr_dcc->prev_dcc)->next_dcc = ptr_dcc->next_dcc;
|
||||
new_dcc_list = dcc_list;
|
||||
}
|
||||
else
|
||||
new_dcc_list = ptr_dcc->next_dcc;
|
||||
|
||||
if (ptr_dcc->next_dcc)
|
||||
(ptr_dcc->next_dcc)->prev_dcc = ptr_dcc->prev_dcc;
|
||||
|
||||
if (ptr_dcc->nick)
|
||||
free (ptr_dcc->nick);
|
||||
if (ptr_dcc->filename)
|
||||
free (ptr_dcc->filename);
|
||||
|
||||
free (ptr_dcc);
|
||||
dcc_list = new_dcc_list;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -276,7 +292,7 @@ dcc_add (t_irc_server *server, int type, unsigned long addr, int port, char *nic
|
||||
|| ( (type == DCC_FILE_RECV) && (cfg_dcc_auto_accept_files) ) )
|
||||
dcc_accept (new_dcc);
|
||||
else
|
||||
hotlist_add (2, gui_get_dcc_buffer ());
|
||||
dcc_redraw (2);
|
||||
gui_draw_buffer_status (gui_current_window->buffer, 0);
|
||||
|
||||
return new_dcc;
|
||||
|
||||
@@ -248,6 +248,9 @@ extern int nick_get_max_length (t_irc_channel *);
|
||||
/* DCC functions (irc-dcc.c) */
|
||||
|
||||
extern void dcc_send ();
|
||||
extern void dcc_free (t_dcc *);
|
||||
extern void dcc_close (t_dcc *, int);
|
||||
extern void dcc_accept (t_dcc *);
|
||||
extern t_dcc *dcc_add (t_irc_server *, int, unsigned long, int, char *, char *,
|
||||
unsigned int);
|
||||
extern void dcc_handle ();
|
||||
|
||||
+28
-9
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.0.8-pre2\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2004-09-13 21:42+0200\n"
|
||||
"POT-Creation-Date: 2004-09-16 21:57+0200\n"
|
||||
"PO-Revision-Date: 2004-08-08 20:47+0200\n"
|
||||
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@@ -1581,36 +1581,36 @@ msgstr "Echou
|
||||
msgid "Aborted"
|
||||
msgstr "Interrompu"
|
||||
|
||||
#: src/irc/irc-dcc.c:219
|
||||
#: src/irc/irc-dcc.c:235
|
||||
#, c-format
|
||||
msgid "%s not enough memory for new DCC\n"
|
||||
msgstr "%s pas assez de mémoire pour un nouveau DCC\n"
|
||||
|
||||
#: src/irc/irc-dcc.c:247
|
||||
#: src/irc/irc-dcc.c:263
|
||||
msgid "Incoming DCC file from "
|
||||
msgstr "Réception fichier DCC de "
|
||||
|
||||
#: src/irc/irc-dcc.c:272
|
||||
#: src/irc/irc-dcc.c:288
|
||||
msgid " bytes\n"
|
||||
msgstr "octets\n"
|
||||
|
||||
#: src/irc/irc-dcc.c:325
|
||||
#: src/irc/irc-dcc.c:341
|
||||
msgid "DCC: file "
|
||||
msgstr "DCC: fichier "
|
||||
|
||||
#: src/irc/irc-dcc.c:330
|
||||
#: src/irc/irc-dcc.c:346
|
||||
msgid " (local filename: "
|
||||
msgstr " (nom local: "
|
||||
|
||||
#: src/irc/irc-dcc.c:335
|
||||
#: src/irc/irc-dcc.c:351
|
||||
msgid ") from "
|
||||
msgstr ") de "
|
||||
|
||||
#: src/irc/irc-dcc.c:340
|
||||
#: src/irc/irc-dcc.c:356
|
||||
msgid ": ok!\n"
|
||||
msgstr ": ok!\n"
|
||||
|
||||
#: src/irc/irc-dcc.c:366
|
||||
#: src/irc/irc-dcc.c:382
|
||||
#, c-format
|
||||
msgid "aborting active DCC: \"%s\" from %s\n"
|
||||
msgstr "abandon du DCC actif: \"%s\" de %s\n"
|
||||
@@ -1710,6 +1710,25 @@ msgstr "[Act: "
|
||||
msgid "-MORE-"
|
||||
msgstr "-PLUS-"
|
||||
|
||||
#: src/gui/curses/gui-display.c:1216
|
||||
msgid " [A] Accept"
|
||||
msgstr " [A] Accepter"
|
||||
|
||||
#: src/gui/curses/gui-display.c:1217 src/gui/curses/gui-display.c:1223
|
||||
#: src/gui/curses/gui-display.c:1230
|
||||
msgid " [C] Cancel"
|
||||
msgstr " [C] Annuler"
|
||||
|
||||
#: src/gui/curses/gui-display.c:1218 src/gui/curses/gui-display.c:1224
|
||||
#: src/gui/curses/gui-display.c:1231 src/gui/curses/gui-display.c:1238
|
||||
#: src/gui/curses/gui-display.c:1243
|
||||
msgid " [Q] Close DCC view"
|
||||
msgstr " [Q] Fermer la vue DCC"
|
||||
|
||||
#: src/gui/curses/gui-display.c:1237
|
||||
msgid " [R] Remove"
|
||||
msgstr " [R] Retirer"
|
||||
|
||||
#: src/gui/gtk/gui-display.c:657
|
||||
msgid "server"
|
||||
msgstr "serveur"
|
||||
|
||||
+28
-9
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2004-09-13 21:42+0200\n"
|
||||
"POT-Creation-Date: 2004-09-16 21:57+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -1480,36 +1480,36 @@ msgstr ""
|
||||
msgid "Aborted"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:219
|
||||
#: src/irc/irc-dcc.c:235
|
||||
#, c-format
|
||||
msgid "%s not enough memory for new DCC\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:247
|
||||
#: src/irc/irc-dcc.c:263
|
||||
msgid "Incoming DCC file from "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:272
|
||||
#: src/irc/irc-dcc.c:288
|
||||
msgid " bytes\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:325
|
||||
#: src/irc/irc-dcc.c:341
|
||||
msgid "DCC: file "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:330
|
||||
#: src/irc/irc-dcc.c:346
|
||||
msgid " (local filename: "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:335
|
||||
#: src/irc/irc-dcc.c:351
|
||||
msgid ") from "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:340
|
||||
#: src/irc/irc-dcc.c:356
|
||||
msgid ": ok!\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-dcc.c:366
|
||||
#: src/irc/irc-dcc.c:382
|
||||
#, c-format
|
||||
msgid "aborting active DCC: \"%s\" from %s\n"
|
||||
msgstr ""
|
||||
@@ -1603,6 +1603,25 @@ msgstr ""
|
||||
msgid "-MORE-"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-display.c:1216
|
||||
msgid " [A] Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-display.c:1217 src/gui/curses/gui-display.c:1223
|
||||
#: src/gui/curses/gui-display.c:1230
|
||||
msgid " [C] Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-display.c:1218 src/gui/curses/gui-display.c:1224
|
||||
#: src/gui/curses/gui-display.c:1231 src/gui/curses/gui-display.c:1238
|
||||
#: src/gui/curses/gui-display.c:1243
|
||||
msgid " [Q] Close DCC view"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-display.c:1237
|
||||
msgid " [R] Remove"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/gtk/gui-display.c:657
|
||||
msgid "server"
|
||||
msgstr ""
|
||||
|
||||
@@ -1134,6 +1134,7 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
|
||||
char format[32];
|
||||
char *ptr_nickname;
|
||||
int input_width;
|
||||
t_dcc *dcc_selected;
|
||||
|
||||
if (!gui_ok)
|
||||
return;
|
||||
@@ -1202,8 +1203,44 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
|
||||
{
|
||||
if (buffer->dcc)
|
||||
{
|
||||
snprintf (format, 32, "%%-%ds", input_width);
|
||||
mvwprintw (ptr_win->win_input, 0, 0, format, "");
|
||||
dcc_selected = (ptr_win->dcc_selected) ? (t_dcc *) ptr_win->dcc_selected : dcc_list;
|
||||
if (dcc_selected)
|
||||
{
|
||||
switch (dcc_selected->status)
|
||||
{
|
||||
case DCC_WAITING:
|
||||
if ((dcc_selected->type == DCC_CHAT_RECV)
|
||||
|| (dcc_selected->type == DCC_FILE_RECV))
|
||||
{
|
||||
mvwprintw (ptr_win->win_input, 0, 0,
|
||||
_(" [A] Accept"));
|
||||
wprintw (ptr_win->win_input, _(" [C] Cancel"));
|
||||
wprintw (ptr_win->win_input, _(" [Q] Close DCC view"));
|
||||
}
|
||||
else
|
||||
{
|
||||
mvwprintw (ptr_win->win_input, 0, 0,
|
||||
_(" [C] Cancel"));
|
||||
wprintw (ptr_win->win_input, _(" [Q] Close DCC view"));
|
||||
}
|
||||
break;
|
||||
case DCC_CONNECTING:
|
||||
case DCC_ACTIVE:
|
||||
mvwprintw (ptr_win->win_input, 0, 0,
|
||||
_(" [C] Cancel"));
|
||||
wprintw (ptr_win->win_input, _(" [Q] Close DCC view"));
|
||||
break;
|
||||
case DCC_DONE:
|
||||
case DCC_FAILED:
|
||||
case DCC_ABORTED:
|
||||
mvwprintw (ptr_win->win_input, 0, 0,
|
||||
_(" [R] Remove"));
|
||||
wprintw (ptr_win->win_input, _(" [Q] Close DCC view"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
mvwprintw (ptr_win->win_input, 0, 0, _(" [Q] Close DCC view"));
|
||||
wclrtoeol (ptr_win->win_input);
|
||||
if (ptr_win == gui_current_window)
|
||||
move (ptr_win->win_y + ptr_win->win_height - 1,
|
||||
|
||||
@@ -52,6 +52,7 @@ gui_read_keyb ()
|
||||
int key, i;
|
||||
t_gui_buffer *ptr_buffer;
|
||||
char new_char[2];
|
||||
t_dcc *dcc_selected;
|
||||
|
||||
key = getch ();
|
||||
if (key != ERR)
|
||||
@@ -104,6 +105,7 @@ gui_read_keyb ()
|
||||
gui_current_window->dcc_selected =
|
||||
((t_dcc *)(gui_current_window->dcc_selected))->prev_dcc;
|
||||
gui_draw_buffer_chat (gui_current_window->buffer, 1);
|
||||
gui_draw_buffer_input (gui_current_window->buffer, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -160,6 +162,7 @@ gui_read_keyb ()
|
||||
gui_current_window->dcc_selected =
|
||||
dcc_list->next_dcc;
|
||||
gui_draw_buffer_chat (gui_current_window->buffer, 1);
|
||||
gui_draw_buffer_input (gui_current_window->buffer, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -500,7 +503,61 @@ gui_read_keyb ()
|
||||
break;
|
||||
/* other key => add to input buffer */
|
||||
default:
|
||||
if (!gui_current_window->buffer->dcc)
|
||||
if (gui_current_window->buffer->dcc)
|
||||
{
|
||||
dcc_selected = (gui_current_window->dcc_selected) ?
|
||||
(t_dcc *) gui_current_window->dcc_selected : dcc_list;
|
||||
switch (key)
|
||||
{
|
||||
/* accept DCC */
|
||||
case 'a':
|
||||
case 'A':
|
||||
if (dcc_selected
|
||||
&& (((dcc_selected->type == DCC_CHAT_RECV)
|
||||
|| (dcc_selected->type == DCC_FILE_RECV))
|
||||
&& (dcc_selected->status == DCC_WAITING)))
|
||||
{
|
||||
dcc_accept (dcc_selected);
|
||||
}
|
||||
break;
|
||||
/* cancel DCC */
|
||||
case 'c':
|
||||
case 'C':
|
||||
if (dcc_selected
|
||||
&& ((dcc_selected->status == DCC_WAITING)
|
||||
|| (dcc_selected->status == DCC_CONNECTING)
|
||||
|| (dcc_selected->status == DCC_ACTIVE)))
|
||||
{
|
||||
dcc_close (dcc_selected, DCC_ABORTED);
|
||||
gui_redraw_buffer (gui_current_window->buffer);
|
||||
}
|
||||
break;
|
||||
/* close DCC window */
|
||||
case 'q':
|
||||
case 'Q':
|
||||
gui_buffer_free (gui_current_window->buffer, 1);
|
||||
break;
|
||||
/* remove from DCC list */
|
||||
case 'r':
|
||||
case 'R':
|
||||
if (dcc_selected
|
||||
&& (((dcc_selected->type == DCC_CHAT_RECV)
|
||||
|| (dcc_selected->type == DCC_FILE_RECV))
|
||||
&& ((dcc_selected->status == DCC_DONE)
|
||||
|| (dcc_selected->status == DCC_FAILED)
|
||||
|| (dcc_selected->status == DCC_ABORTED))))
|
||||
{
|
||||
if (dcc_selected->next_dcc)
|
||||
gui_current_window->dcc_selected = dcc_selected->next_dcc;
|
||||
else
|
||||
gui_current_window->dcc_selected = NULL;
|
||||
dcc_free (dcc_selected);
|
||||
gui_redraw_buffer (gui_current_window->buffer);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*gui_printf (gui_current_window->buffer,
|
||||
"[Debug] key pressed = %d, hex = %02X, octal = %o\n", key, key, key);*/
|
||||
|
||||
@@ -55,7 +55,7 @@ dcc_redraw (int highlight)
|
||||
gui_draw_buffer_chat (gui_get_dcc_buffer (), 0);
|
||||
if (highlight)
|
||||
{
|
||||
hotlist_add (1, gui_get_dcc_buffer ());
|
||||
hotlist_add (highlight, gui_get_dcc_buffer ());
|
||||
gui_draw_buffer_status (gui_current_window->buffer, 0);
|
||||
}
|
||||
}
|
||||
@@ -92,16 +92,32 @@ dcc_send ()
|
||||
}
|
||||
|
||||
/*
|
||||
* dcc_free: free DCC struct
|
||||
* dcc_free: free DCC struct and remove it from list
|
||||
*/
|
||||
|
||||
void
|
||||
dcc_free (t_dcc *ptr_dcc)
|
||||
{
|
||||
t_dcc *new_dcc_list;
|
||||
|
||||
if (ptr_dcc->prev_dcc)
|
||||
{
|
||||
(ptr_dcc->prev_dcc)->next_dcc = ptr_dcc->next_dcc;
|
||||
new_dcc_list = dcc_list;
|
||||
}
|
||||
else
|
||||
new_dcc_list = ptr_dcc->next_dcc;
|
||||
|
||||
if (ptr_dcc->next_dcc)
|
||||
(ptr_dcc->next_dcc)->prev_dcc = ptr_dcc->prev_dcc;
|
||||
|
||||
if (ptr_dcc->nick)
|
||||
free (ptr_dcc->nick);
|
||||
if (ptr_dcc->filename)
|
||||
free (ptr_dcc->filename);
|
||||
|
||||
free (ptr_dcc);
|
||||
dcc_list = new_dcc_list;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -276,7 +292,7 @@ dcc_add (t_irc_server *server, int type, unsigned long addr, int port, char *nic
|
||||
|| ( (type == DCC_FILE_RECV) && (cfg_dcc_auto_accept_files) ) )
|
||||
dcc_accept (new_dcc);
|
||||
else
|
||||
hotlist_add (2, gui_get_dcc_buffer ());
|
||||
dcc_redraw (2);
|
||||
gui_draw_buffer_status (gui_current_window->buffer, 0);
|
||||
|
||||
return new_dcc;
|
||||
|
||||
@@ -248,6 +248,9 @@ extern int nick_get_max_length (t_irc_channel *);
|
||||
/* DCC functions (irc-dcc.c) */
|
||||
|
||||
extern void dcc_send ();
|
||||
extern void dcc_free (t_dcc *);
|
||||
extern void dcc_close (t_dcc *, int);
|
||||
extern void dcc_accept (t_dcc *);
|
||||
extern t_dcc *dcc_add (t_irc_server *, int, unsigned long, int, char *, char *,
|
||||
unsigned int);
|
||||
extern void dcc_handle ();
|
||||
|
||||
Reference in New Issue
Block a user