commit - 5470555b5a6f5f52231b028509f6149ed9dd6378
commit + 6216b7e249699bea8074e11fefdb9884a9762ba8
blob - 935e6dfcb83b5786d245bd4e8d35026b69d7f4cc
blob + 2498eb5601a81c84e0e17d5dbb77f48068fa31c6
--- src/compose.c
+++ src/compose.c
g_free(from_name);
g_free(from_address);
- /* To */
compose_add_headerfield_from_headerlist(compose, header, "To", ", ");
- /* Cc */
compose_add_headerfield_from_headerlist(compose, header, "Cc", ", ");
- /* Subject */
str = gtk_editable_get_chars(GTK_EDITABLE(compose->subject_entry), 0, -1);
if (*str != '\0' && !IS_IN_CUSTOM_HEADER("Subject")) {
}
g_free(str);
- /* Message-ID */
if (compose->msgid != NULL && strlen(compose->msgid) > 0) {
g_string_append_printf(header, "Message-ID: <%s>\n",
compose->msgid);
}
if (compose->remove_references == FALSE) {
- /* In-Reply-To */
if (compose->inreplyto && compose->to_list)
g_string_append_printf(header, "In-Reply-To: <%s>\n", compose->inreplyto);
-
- /* References */
if (compose->references)
g_string_append_printf(header, "References: %s\n", compose->references);
}
- /* Followup-To */
compose_add_headerfield_from_headerlist(compose, header, "Followup-To", ",");
-
- /* Reply-To */
compose_add_headerfield_from_headerlist(compose, header, "Reply-To", ", ");
- /* Organization */
- if (compose->account->organization &&
- strlen(compose->account->organization) &&
- !IS_IN_CUSTOM_HEADER("Organization")) {
- compose_convert_header(compose, buf, sizeof(buf),
- compose->account->organization,
- strlen("Organization: "), FALSE);
- g_string_append_printf(header, "Organization: %s\n", buf);
- }
-
/* Program version and system info */
if (compose->account->gen_xmailer &&
g_slist_length(compose->to_list) && !IS_IN_CUSTOM_HEADER("X-Mailer")) {
blob - 7764c94b04c1f5ed5dcce7a3310b1cc554a97a70
blob + 37d1786a69dfb9b611b0c3e404562540ccd96a44
--- src/gtk/combobox.c
+++ src/gtk/combobox.c
(const gchar*) cur->data);
}
-gboolean combobox_set_value_from_arrow_key(GtkComboBox *combobox,
- guint keyval)
-/* used from key_press events upon gtk_combo_box_entry with one text column
- (gtk_combo_box_text_new() and with GtkComboBoxEntry's for instance),
- make sure that up and down arrow keys behave the same as old with old
- gtk_combo widgets:
- when pressing Up:
- if the current text in entry widget is not found in combo list,
- get last value from combo list
- if the current text in entry widget exists in combo list,
- get prev value from combo list
- when pressing Down:
- if the current text in entry widget is not found in combo list,
- get first value from combo list
- if the current text in entry widget exists in combo list,
- get next value from combo list
-*/
-{
- gboolean valid = FALSE;
-
- cm_return_val_if_fail(combobox != NULL, FALSE);
-
- /* reproduce the behaviour of old gtk_combo_box */
- GtkTreeModel *model = gtk_combo_box_get_model(combobox);
- GtkTreeIter iter;
-
- if (gtk_combo_box_get_active_iter(combobox, &iter)) {
- /* if current text is in list, get prev or next one */
-
- if (keyval == GDK_KEY_Up) {
- gchar *text = NULL;
- gtk_tree_model_get(model, &iter, 0, &text, -1);
- valid = gtkut_tree_model_text_iter_prev(model, &iter, text);
- g_free(text);
- } else
- if (keyval == GDK_KEY_Down)
- valid = gtk_tree_model_iter_next(model, &iter);
-
- if (valid)
- gtk_combo_box_set_active_iter(combobox, &iter);
-
- } else {
- /* current text is not in list, get first or next one */
-
- if (keyval == GDK_KEY_Up)
- valid = gtkut_tree_model_get_iter_last(model, &iter);
- else
- if (keyval == GDK_KEY_Down)
- valid = gtk_tree_model_get_iter_first(model, &iter);
-
- if (valid)
- gtk_combo_box_set_active_iter(combobox, &iter);
- }
-
- /* return TRUE if value could be set */
- return valid;
-}
-
static void store_set_sensitive(GtkTreeModel *model, GtkTreeIter *iter,
const gboolean sensitive)
{
blob - 39b57da17758370f0d50748cd6fb68a97715a14e
blob + 64d5b72eff18953cfcae0fa2675b806256fac211
--- src/gtk/combobox.h
+++ src/gtk/combobox.h
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ *
*/
#ifndef __COMBOBOX_H__
void combobox_set_popdown_strings(GtkComboBoxText *combobox,
GList *list);
-gboolean combobox_set_value_from_arrow_key(GtkComboBox *combobox,
- guint keyval);
void combobox_set_sensitive (GtkComboBox *combobox,
const guint index,
const gboolean sensitive);
blob - 47cf181ea76416503d8c7c175f7ce55b59dedb34
blob + 9458d540e861137e33c3ee5d8c58e1261bd60ffa
--- src/gtk/gtkutils.c
+++ src/gtk/gtkutils.c
gtk_widget_destroy(window);
}
-GtkWidget *gtkut_account_menu_new(GList *ac_list,
- GCallback callback,
- gpointer data)
-{
- GList *cur_ac;
- GtkWidget *optmenu;
- GtkListStore *menu;
- GtkTreeIter iter;
- PrefsAccount *account;
- gchar *name;
-
- cm_return_val_if_fail(ac_list != NULL, NULL);
-
- optmenu = gtkut_sc_combobox_create(NULL, FALSE);
- menu = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(optmenu)));
-
- for (cur_ac = ac_list; cur_ac != NULL; cur_ac = cur_ac->next) {
- account = (PrefsAccount *) cur_ac->data;
- if (account->name)
- name = g_strdup_printf("%s: %s <%s>",
- account->account_name,
- account->name,
- account->address);
- else
- name = g_strdup_printf("%s: %s",
- account->account_name,
- account->address);
- COMBOBOX_ADD_ESCAPED(menu, name, account->account_id);
- g_free(name);
- }
- gtk_combo_box_set_active(GTK_COMBO_BOX(optmenu), 0);
-
- if( callback != NULL )
- g_signal_connect(G_OBJECT(optmenu), "changed", callback, data);
-
- return optmenu;
-}
-
/*!
*\brief Tries to find a focused child using a lame strategy
*/
return TRUE;
}
-GtkWidget *face_get_from_header(const gchar *o_face)
-{
- gchar face[2048];
- gchar *face_png;
- gsize pngsize;
- GdkPixbuf *pixbuf;
- GError *error = NULL;
- GdkPixbufLoader *loader = gdk_pixbuf_loader_new ();
- GtkWidget *image;
-
- if (o_face == NULL || strlen(o_face) == 0)
- return NULL;
-
- strncpy2(face, o_face, sizeof(face));
-
- unfold_line(face); /* strip all whitespace and linebreaks */
- remove_space(face);
-
- face_png = g_base64_decode(face, &pngsize);
- debug_print("---------------------- loaded face png\n");
-
- if (!gdk_pixbuf_loader_write (loader, face_png, pngsize, &error) ||
- !gdk_pixbuf_loader_close (loader, &error)) {
- g_warning("loading face failed");
- g_object_unref(loader);
- g_free(face_png);
- return NULL;
- }
- g_free(face_png);
-
- pixbuf = g_object_ref(gdk_pixbuf_loader_get_pixbuf(loader));
-
- g_object_unref(loader);
-
- if ((gdk_pixbuf_get_width(pixbuf) != 48) || (gdk_pixbuf_get_height(pixbuf) != 48)) {
- g_object_unref(pixbuf);
- g_warning("wrong_size");
- return NULL;
- }
-
- image = gtk_image_new_from_pixbuf(pixbuf);
- g_object_unref(pixbuf);
- return image;
-}
-
static gboolean _combobox_separator_func(GtkTreeModel *model,
GtkTreeIter *iter, gpointer data)
{
blob - 66a70f2a745d207117a2ea576a9d4fae310d0d22
blob + d510a5432e155767b77e27ebdb980d8357c3a9e4
--- src/gtk/gtkutils.h
+++ src/gtk/gtkutils.h
void gtkut_widget_set_app_icon (GtkWidget *widget);
void gtkut_widget_set_composer_icon (GtkWidget *widget);
-GtkWidget *gtkut_account_menu_new (GList *ac_list,
- GCallback callback,
- gpointer data);
-
PangoFontDescription *default_font(void);
void gtkut_widget_set_small_font_size(GtkWidget *widget);
GtkWidget *gtkut_get_focused_child (GtkContainer *parent);
GtkTextIter *start_iter,
GtkTextIter *end_iter);
-GtkWidget *face_get_from_header(const gchar *o_face);
-
GtkWidget *gtkut_sc_combobox_create(GtkWidget *eventbox, gboolean focus_on_click);
gboolean gtkut_tree_model_text_iter_prev(GtkTreeModel *model,
blob - 67e322cb0e51c37b47816a90e2281d560c019eac
blob + cc6abf18334f9a5bbed1b88e9f75f6e7b90a12ef
--- src/message_search.c
+++ src/message_search.c
if (event && (event->keyval == GDK_KEY_Return || event->keyval == GDK_KEY_KP_Enter)) {
message_search_execute(FALSE);
}
-
- if (event && (event->keyval == GDK_KEY_Down || event->keyval == GDK_KEY_Up)) {
- if (search_window.body_entry_has_focus) {
- combobox_set_value_from_arrow_key(
- GTK_COMBO_BOX(search_window.body_entry),
- event->keyval);
- return TRUE;
- }
- }
-
return FALSE;
}
blob - 2c449acb282f331a646f5544b34041fd89e85d49
blob + c3f1faba918bd0ad7c2ad5e81f6b98e768ff3eb7
--- src/prefs_account.c
+++ src/prefs_account.c
GtkWidget *name_entry;
GtkWidget *addr_entry;
- GtkWidget *org_entry;
GtkWidget *serv_frame;
GtkWidget *serv_table;
{"address", NULL, &tmp_ac_prefs.address, P_STRING,
&basic_page.addr_entry, prefs_set_data_from_entry, prefs_set_entry},
- {"organization", NULL, &tmp_ac_prefs.organization, P_STRING,
- &basic_page.org_entry, prefs_set_data_from_entry, prefs_set_entry},
-
{"protocol", NULL, &tmp_ac_prefs.protocol, P_ENUM,
(GtkWidget **)&basic_page.protocol_optmenu,
prefs_account_protocol_set_data_from_optmenu,
GtkWidget *table1;
GtkWidget *name_entry;
GtkWidget *addr_entry;
- GtkWidget *org_entry;
GtkWidget *serv_frame;
GtkWidget *vbox2;
gtk_label_set_xalign(GTK_LABEL (label), 1.0);
gtk_grid_attach(GTK_GRID(table1), label, 0, 1, 1, 1);
- label = gtk_label_new (_("Organization"));
- gtk_widget_show (label);
- gtk_label_set_xalign(GTK_LABEL (label), 1.0);
- gtk_grid_attach(GTK_GRID(table1), label, 0, 2, 1, 1);
-
name_entry = gtk_entry_new ();
gtk_widget_show (name_entry);
gtk_grid_attach(GTK_GRID(table1), name_entry, 1, 0, 1, 1);
gtk_widget_set_hexpand(addr_entry, TRUE);
gtk_widget_set_halign(addr_entry, GTK_ALIGN_FILL);
- org_entry = gtk_entry_new ();
- gtk_widget_show (org_entry);
- gtk_grid_attach(GTK_GRID(table1), org_entry, 1, 2, 1, 1);
- gtk_widget_set_hexpand(org_entry, TRUE);
- gtk_widget_set_halign(org_entry, GTK_ALIGN_FILL);
-
vbox2 = gtkut_get_options_frame(vbox1, &serv_frame, _("Server information"));
hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8);
page->name_entry = name_entry;
page->addr_entry = addr_entry;
- page->org_entry = org_entry;
page->serv_frame = serv_frame;
page->serv_table = serv_table;
blob - c80726d9346cffbc22be9100f822a69cc2d7d6f7
blob + e80527ed7024734e1db8706f3ece21865ce28b63
--- src/prefs_account.h
+++ src/prefs_account.h
/* Personal info */
gchar *name;
gchar *address;
- gchar *organization;
/* Server info */
RecvProtocol protocol;