[pan2] - a few gui fixes - downgrade gnome-keyring version (please report any errors)
- From: Heinrich MÃller <henmull src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pan2] - a few gui fixes - downgrade gnome-keyring version (please report any errors)
- Date: Fri, 27 Jan 2012 20:16:18 +0000 (UTC)
commit 2421b6902b9c7c3de16e6fbd9470aba1390eca4c
Author: Heinrich MÃller <henmull src gnome org>
Date: Fri Jan 27 21:15:30 2012 +0100
- a few gui fixes
- downgrade gnome-keyring version (please report any errors)
ChangeLog | 9 +++-
configure.in | 2 +-
pan/gui/body-pane.cc | 105 ++++++++++++++++++++++++++++---------------
pan/gui/body-pane.h | 21 ++-------
pan/gui/pan.cc | 16 +------
pan/gui/prefs-ui.cc | 82 +++++++++++++++++++++++++++-------
pan/gui/profiles-dialog.cc | 3 +-
7 files changed, 149 insertions(+), 89 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index aaa52a3..5dd2f47 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,13 +1,16 @@
1.0 "Asieoniezi"
-0.136 "TBD"
+0.136 "Far too busy being delicious..."
* Support for uploading attachments (with NZB creation) to Usenet. (Heinrich MÃller)
* Selectable Content-Transfer-Encoding (Heinrich MÃller)
* Selectable GtkSpell default language (Heinrich MÃller)
* Support for encrypting and signing articles with a public/private PGP key. (Heinrich MÃller)
-* Connections can now be encrypted with SSL 3.0. (Heinrich MÃller)
+* Connections can now be encrypted with TLS 1.0. (Heinrich MÃller)
* Various bugfixes/enhancements from bugzilla
-* Auto-Cache/-Download/-Delete based on Scores (Heinrich MÃller)
+* Auto-Cache/-Download/-Delete/-Mark read based on Scores (Heinrich MÃller)
+* DBUS support for automatic batch addition of new files to the Download Queue (Heinrich MÃller)
+* Status Icon support (Heinrich MÃller)
+* Gnome Keyring support for safely storing server passwords (Heinrich MÃller)
* Updated translations and help: Spanish (Daniel Mustieles, NicolÃs Satragno), Slovenian
(Andrej ÅnidarÅiÄ, Matej UrbanÄiÄ), German (Christian Kirbach, Mario
BlÃttermann), Czech (Marek ÄernockÃ), Esperanto (Kristjan SCHMIDT), Danish
diff --git a/configure.in b/configure.in
index 13999ae..4544f4f 100644
--- a/configure.in
+++ b/configure.in
@@ -56,7 +56,7 @@ GTKSPELL_REQUIRED=2.0.7
ENCHANT_REQUIRED=1.6.0
GNUTLS_REQUIRED=2.12.10
LIBNOTIFY_REQUIRED=0.4.1
-LIBGKR_REQUIRED=3.2.2
+LIBGKR_REQUIRED=3.2.0
AC_SUBST(GLIB_REQUIRED)
AC_SUBST(GMIME_REQUIRED)
AC_SUBST(GTK_REQUIRED)
diff --git a/pan/gui/body-pane.cc b/pan/gui/body-pane.cc
index 5ecfc2a..db94689 100644
--- a/pan/gui/body-pane.cc
+++ b/pan/gui/body-pane.cc
@@ -1239,14 +1239,11 @@ namespace
#ifdef HAVE_GMIME_CRYPTO
gboolean
-BodyPane:: on_tooltip_query(GtkWidget *widget,
- gint x,
- gint y,
- gboolean keyboard_tip,
- GtkTooltip *tooltip,
- gpointer data)
+BodyPane :: sig_status_clicked_cb(GtkWidget *widget,
+ GdkEvent *event,
+ gpointer user_data)
{
- BodyPane* pane = static_cast<BodyPane*>(data);
+ BodyPane* pane = static_cast<BodyPane*>(user_data);
GPGDecErr& err = pane->_gpgerr;
GPGSignersInfo& info = err.signers;
@@ -1267,8 +1264,27 @@ BodyPane:: on_tooltip_query(GtkWidget *widget,
ed.get_date_string(info.signers[0].created)
);
- gtk_tooltip_set_icon_from_stock (tooltip, GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG);
- gtk_tooltip_set_markup (tooltip, buf);
+ // FIXME : GLib-GObject-WARNING **: invalid cast from `GtkVBox' to `GtkWindow'
+ GtkWidget* dialog = gtk_dialog_new_with_buttons(_("PGP Signature Information"), GTK_WINDOW(pane->root()),
+ GtkDialogFlags(GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT),
+ GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
+
+ gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
+ gtk_image_new_from_stock(GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG),
+ FALSE, FALSE,
+ 2);
+
+ GtkWidget* label = gtk_label_new(NULL);
+ gtk_label_set_markup(GTK_LABEL(label), buf);
+
+ gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
+ label,
+ FALSE, FALSE,
+ 2);
+
+ g_signal_connect(dialog, "response", G_CALLBACK(gtk_widget_destroy), NULL);
+
+ gtk_widget_show_all(dialog);
return true;
}
@@ -1279,17 +1295,21 @@ void
BodyPane :: update_sig_valid(int i)
{
- gtk_image_clear(GTK_IMAGE(_sig_icon));
-
switch (i)
{
- case 0:
- gtk_image_set_from_pixbuf (GTK_IMAGE(_sig_icon), icons[ICON_SIG_FAIL].pixbuf);
- break;
+ case 0:
+ gtk_button_set_label (GTK_BUTTON(_sig_status), _("no Signature found."));
+ gtk_widget_show_all(_sig_status_hbox);
+ break;
- case 1:
- gtk_image_set_from_pixbuf (GTK_IMAGE(_sig_icon), icons[ICON_SIG_OK].pixbuf);
- break;
+ case 1:
+ gtk_button_set_label (GTK_BUTTON(_sig_status), _("Signature verified."));
+ gtk_widget_show_all(_sig_status_hbox);
+ break;
+
+ case -1:
+ gtk_widget_hide(_sig_status_hbox);
+ break;
}
}
@@ -1590,7 +1610,7 @@ BodyPane :: new_attachment (const char* filename)
GtkWidget * image = gtk_image_new_from_stock(GTK_STOCK_FILE, GTK_ICON_SIZE_MENU);
gtk_label_set_selectable (GTK_LABEL(attachment), true);
- gtk_label_set_ellipsize (GTK_LABEL(attachment), PANGO_ELLIPSIZE_MIDDLE);
+// gtk_label_set_ellipsize (GTK_LABEL(attachment), PANGO_ELLIPSIZE_MIDDLE);
GtkWidget *event_box = gtk_event_box_new ();
gtk_container_add (GTK_CONTAINER (event_box), image);
@@ -1632,16 +1652,17 @@ BodyPane :: add_attachment_to_toolbar (const char* fn)
if (!fn) return;
GtkWidget* w = new_attachment(fn);
+ gtk_widget_set_size_request(w, -1, 32);
+
++_attachments;
#if !GTK_CHECK_VERSION(3,0,0)
- guint cols(4), rows(0);
- rows = _cur_row;
+ const guint cols(4);
if (_attachments % 4 == 0 && _attachments != 0)
{
- gtk_table_resize (GTK_TABLE(_att_toolbar), rows+1, cols);
++_cur_row;
+ gtk_table_resize (GTK_TABLE(_att_toolbar), _cur_row, cols);
_cur_col = 0;
}
@@ -1670,16 +1691,13 @@ BodyPane :: create_attachments_toolbar (GtkWidget* frame)
_cur_col = 0;
_cur_row = 0;
+ GtkWidget * w;
#if !GTK_CHECK_VERSION(3,0,0)
- GtkWidget * w = _att_toolbar = gtk_table_new(4,1,TRUE);
+ w = _att_toolbar = gtk_table_new(1,4,TRUE);
gtk_table_set_col_spacings (GTK_TABLE(w), PAD);
gtk_table_set_row_spacings (GTK_TABLE(w), PAD);
- TablePrivate p;
- p.ncols = 0;
- p.nrows = 0;
- g_object_set_data (G_OBJECT(w), "priv", (gpointer)&p);
#else
- GtkWidget * w = _att_toolbar = gtk_grid_new();
+ w = _att_toolbar = gtk_grid_new();
gtk_grid_insert_row (GTK_GRID(w), 0);
gtk_grid_set_column_spacing (GTK_GRID(w), 3);
gtk_grid_set_row_spacing (GTK_GRID (w), 4);
@@ -1711,15 +1729,17 @@ BodyPane :: BodyPane (Data& data, ArticleCache& cache, Prefs& prefs, GroupPrefs
_current_attachment(0)
{
+ GtkWidget * w, * l, * hbox;
+
for (guint i=0; i<NUM_ICONS; ++i)
icons[i].pixbuf = gdk_pixbuf_new_from_inline (-1, icons[i].pixbuf_txt, FALSE, 0);
// signature pgp valid/invalid icon
- _sig_icon = gtk_image_new();
+// _sig_icon = gtk_image_new();
// menu for popup menu for attachments
_menu = gtk_menu_new ();
- GtkWidget* l = gtk_menu_item_new_with_label(_("Save attachment as ...."));
+ l = gtk_menu_item_new_with_label(_("Save attachment as ...."));
g_signal_connect (l, "activate", G_CALLBACK(menu_clicked_as_cb), this);
gtk_menu_shell_append (GTK_MENU_SHELL(_menu), l);
l = gtk_menu_item_new_with_label(_("Save all attachments"));
@@ -1739,7 +1759,7 @@ BodyPane :: BodyPane (Data& data, ArticleCache& cache, Prefs& prefs, GroupPrefs
// tell the expander that it _wants_ to be very small, then it will still take
// extra space given to it by its parent without asking for enough size to
// fit the entire label.
- GtkWidget * w = _expander = gtk_expander_new (NULL);
+ w = _expander = gtk_expander_new (NULL);
gtk_widget_set_size_request (w, 50, -1);
g_signal_connect (w, "activate", G_CALLBACK(expander_activated_cb), this);
gtk_box_pack_start (GTK_BOX(vbox), w, false, false, 0);
@@ -1753,7 +1773,7 @@ BodyPane :: BodyPane (Data& data, ArticleCache& cache, Prefs& prefs, GroupPrefs
gtk_widget_show (_terse);
g_signal_connect (_terse, "button-press-event", G_CALLBACK(verbose_clicked_cb), this);
- GtkWidget * hbox = _verbose = gtk_hbox_new (false, 0);
+ hbox = _verbose = gtk_hbox_new (false, 0);
g_object_ref_sink (G_OBJECT(_verbose));
w = _headers = gtk_label_new ("Headers");
gtk_label_set_selectable (GTK_LABEL(_headers), TRUE);
@@ -1761,11 +1781,19 @@ BodyPane :: BodyPane (Data& data, ArticleCache& cache, Prefs& prefs, GroupPrefs
gtk_label_set_ellipsize (GTK_LABEL(w), PANGO_ELLIPSIZE_MIDDLE);
gtk_label_set_use_markup (GTK_LABEL(w), true);
gtk_box_pack_start (GTK_BOX(hbox), w, true, true, PAD_SMALL);
+
#ifdef HAVE_GMIME_CRYPTO
- gtk_widget_set_size_request (_sig_icon, 32, 32);
- gtk_box_pack_start (GTK_BOX(hbox), _sig_icon, true, true, PAD_SMALL);
- gtk_widget_set_has_tooltip (_sig_icon, true);
- g_signal_connect(_sig_icon,"query-tooltip",G_CALLBACK(on_tooltip_query), this);
+ //line for signature status
+ l = gtk_label_new(_("PGP Signature : "));
+ w = _sig_status = gtk_button_new_with_label (_("no signature found."));
+ hbox = _sig_status_hbox = gtk_hbox_new (false, 0);
+
+ gtk_box_pack_start (GTK_BOX(hbox), l, false, false, PAD_SMALL);
+ gtk_box_pack_start (GTK_BOX(hbox), w, false, false, PAD_SMALL);
+ gtk_box_pack_start (GTK_BOX(vbox), hbox, false, false, PAD_SMALL);
+
+ g_signal_connect(w,"button-press-event",G_CALLBACK(sig_status_clicked_cb), this);
+
#endif
w = _xface = gtk_image_new();
gtk_widget_set_size_request (w, 48, 48);
@@ -1794,7 +1822,7 @@ BodyPane :: BodyPane (Data& data, ArticleCache& cache, Prefs& prefs, GroupPrefs
// add a toolbar for attachments
GtkWidget * frame = _att_frame = gtk_frame_new (_("Attachments"));
- gtk_widget_set_size_request (frame, -1, 40);
+// gtk_widget_set_size_request (frame, -1, 40);
gtk_box_pack_start (GTK_BOX(vbox), create_attachments_toolbar(frame), false, false, 0);
// set up the buffer tags
@@ -1818,6 +1846,9 @@ BodyPane :: BodyPane (Data& data, ArticleCache& cache, Prefs& prefs, GroupPrefs
g_signal_connect (_root, "show", G_CALLBACK(show_cb), this);
gtk_widget_show_all (_root);
+
+ // hide hbox for pgp at first
+ update_sig_valid(-1);
}
BodyPane :: ~BodyPane ()
diff --git a/pan/gui/body-pane.h b/pan/gui/body-pane.h
index 911fea0..0c6387a 100644
--- a/pan/gui/body-pane.h
+++ b/pan/gui/body-pane.h
@@ -39,15 +39,6 @@ namespace pan
*/
class BodyPane: private Prefs::Listener
{
- //#if !GTK_CHECK_VERSION(2,22,0)
- //define private struct for gtktable for older gtk versions
- struct TablePrivate
- {
- guint16 ncols;
- guint16 nrows;
- };
-
- //#endif
private:
Prefs& _prefs;
@@ -56,16 +47,14 @@ namespace pan
HeaderPane* _header_pane;
Data& _data;
ArticleCache& _cache;
- GtkWidget* _sig_icon;
+ GtkWidget* _sig_status;
+ GtkWidget* _sig_status_hbox;
void update_sig_valid(int i);
- static gboolean on_tooltip_query(GtkWidget *widget,
- gint x,
- gint y,
- gboolean keyboard_tip,
- GtkTooltip *tooltip,
- gpointer data);
+ static gboolean sig_status_clicked_cb(GtkWidget *widget,
+ GdkEvent *event,
+ gpointer user_data);
public:
BodyPane (Data&, ArticleCache&, Prefs&, GroupPrefs&, Queue&, HeaderPane*);
diff --git a/pan/gui/pan.cc b/pan/gui/pan.cc
index 4eb10f9..48c9674 100644
--- a/pan/gui/pan.cc
+++ b/pan/gui/pan.cc
@@ -119,7 +119,7 @@ namespace
#ifndef G_OS_WIN32
void sighandler (int signum)
{
- std::cerr << "shutting down pan." << std::endl;
+ std::cerr << "Shutting down Pan." << std::endl;
signal (signum, SIG_DFL);
mainloop_quit ();
}
@@ -756,8 +756,6 @@ _("General Options\n"
NULL
);
- std::cerr<<"bus acquired\n";
-
}
static void
@@ -771,8 +769,6 @@ _("General Options\n"
pan->name_valid = true;
pan->lost_name = false;
-
- std::cerr<<"name acquired "<<pan->name_valid<<"\n";
}
static void
@@ -786,8 +782,6 @@ _("General Options\n"
pan->name_valid = false;
pan->lost_name = true;
pan->dbus_id= -1;
-
- std::cerr<<"name lost\n";
}
@@ -804,8 +798,6 @@ _("General Options\n"
pan,NULL);
dbus_connection = g_bus_get_sync (G_BUS_TYPE_SESSION , NULL, NULL);
-
- std::cerr<<"dbus id "<<pan->dbus_id<<" "<<dbus_connection<<"\n";
}
static void
@@ -934,16 +926,10 @@ main (int argc, char *argv[])
GError* error(NULL);
GVariant* var;
- if (!dbus_connection) std::cerr<<"connection null\n";
-
if (!dbus_connection) goto _fail;
- std::cerr<<"dbg "<<pan.dbus_id<<" "<<pan.lost_name<<" "<<pan.name_valid<<"\n";
-
// if (pan.dbus_id == -1 || pan.lost_name)
{
-
- std::cerr<<"dbus id -1\n";
g_dbus_connection_call_sync (dbus_connection,
PAN_DBUS_SERVICE_NAME,
PAN_DBUS_SERVICE_PATH,
diff --git a/pan/gui/prefs-ui.cc b/pan/gui/prefs-ui.cc
index 489c3ad..8c41d1b 100644
--- a/pan/gui/prefs-ui.cc
+++ b/pan/gui/prefs-ui.cc
@@ -403,14 +403,17 @@ namespace pan
GtkWidget* new_label_with_icon(const char* mnemonic, const char* label, const guint8* line, Prefs& prefs)
{
- const bool show_text = !prefs.get_flag("show-only-icons-in-preftabs", "false");
+ std::string what = prefs.get_string("elements-show-tabs", "text");
+ const bool text = "text" == what;
+ const bool icons = "icons" == what;
+ const bool both = "both" == what;
GtkWidget* hbox = gtk_hbox_new(false, 2);
GdkPixbuf * pixbuf = gdk_pixbuf_new_from_inline (-1, line, false, 0);
GtkWidget * image = gtk_image_new_from_pixbuf (pixbuf);
g_object_unref (pixbuf);
- if (line) gtk_box_pack_start (GTK_BOX(hbox), image, true, true, 0);
- if (show_text) gtk_box_pack_start (GTK_BOX(hbox), gtk_label_new_with_mnemonic(mnemonic), true, true, 0);
+ if (line && (icons || both)) gtk_box_pack_start (GTK_BOX(hbox), image, true, true, 0);
+ if (text || both) gtk_box_pack_start (GTK_BOX(hbox), gtk_label_new_with_mnemonic(mnemonic), true, true, 0);
gtk_widget_set_tooltip_text (hbox, label);
gtk_widget_show_all(hbox);
return hbox;
@@ -462,7 +465,10 @@ namespace pan
GtkTreeModel * model = gtk_combo_box_get_model (c);
const int n_rows (gtk_tree_model_iter_n_children (model, NULL));
const bool do_show (gtk_combo_box_get_active(c) == (n_rows-1));
- if (do_show && !w_parent) // add it
+
+ std::cerr<<"dbg "<<do_show<<" "<<w_parent<<" "<<n_rows<<"\n";
+
+ if (do_show && !w_parent && c_parent) // add it
{
gtk_box_pack_start (GTK_BOX(c_parent), w, true, true, 0);
gtk_widget_show (w);
@@ -473,6 +479,10 @@ namespace pan
g_object_ref (G_OBJECT(w));
gtk_container_remove (GTK_CONTAINER(w_parent), w);
}
+ else if (!do_show && !w_parent && !c_parent)
+ {
+ gtk_widget_show_all (GTK_WIDGET(c));
+ }
}
void set_prefs_string_from_combo_box_entry (GtkComboBoxText * c, gpointer user_data)
@@ -504,7 +514,9 @@ namespace pan
{
Prefs * prefs (static_cast<Prefs*>(user_data));
const char * key = (const char*) g_object_get_data (G_OBJECT(c), PREFS_KEY);
+
prefs->_rules_changed = strcmp(key,"rules-");
+
const int column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT(c), "column"));
const int row (gtk_combo_box_get_active (c));
GtkTreeModel * m = gtk_combo_box_get_model (c);
@@ -517,6 +529,44 @@ namespace pan
}
}
+ /* TODO ! static array for now */
+ GtkWidget* new_tabs_combo_box (Prefs& prefs,
+ const char * mode_key)
+ {
+
+ const char* strings[3][2] =
+ {
+ {N_("Show only icons"), "icons"},
+ {N_("Show only text"), "text"},
+ {N_("Show icons and text"), "both"},
+ };
+
+ const std::string mode (prefs.get_string (mode_key, "text"));
+ GtkListStore * store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
+
+ int sel_index (0);
+ for (size_t i=0; i<G_N_ELEMENTS(strings); ++i) {
+ GtkTreeIter iter;
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter, 0, strings[i][0], 1, strings[i][1], -1);
+ if (mode == strings[i][1])
+ sel_index = i;
+ }
+
+ GtkWidget * c = gtk_combo_box_new_with_model (GTK_TREE_MODEL(store));
+ GtkCellRenderer * renderer (gtk_cell_renderer_text_new ());
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (c), renderer, true);
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (c), renderer, "text", 0, NULL);
+ gtk_combo_box_set_active (GTK_COMBO_BOX(c), sel_index);
+ g_object_set_data_full (G_OBJECT(c), PREFS_KEY, g_strdup(mode_key), g_free);
+ g_object_set_data (G_OBJECT(c), "column", GINT_TO_POINTER(1));
+ g_signal_connect (c, "changed", G_CALLBACK(set_prefs_string_from_combobox), &prefs);
+
+ gtk_widget_show_all(c);
+
+ return c;
+ }
+
GtkWidget* url_handler_new (Prefs& prefs,
const char * mode_key,
const char * mode_fallback,
@@ -652,7 +702,7 @@ void
PrefsDialog :: update_default_charset_label(const StringView& value)
{
char buf[256];
- g_snprintf(buf, sizeof(buf),_(" Select default <u>global</u> charset. Current setting : <b>%s</b> ."),
+ g_snprintf(buf, sizeof(buf),_("Select default <u>global</u> charset. Current setting : <b>%s</b> ."),
value.str);
gtk_label_set_markup(GTK_LABEL(charset_label), buf);
gtk_widget_show_all(charset_label);
@@ -912,18 +962,18 @@ PrefsDialog :: PrefsDialog (Prefs& prefs, GtkWindow* parent):
w = new_check_button (_("Clear article cache on shutdown"), "clear-article-cache-on-shutdown", false, prefs);
HIG :: workarea_add_wide_control (t, &row, w);
w = new_spin_button ("cache-size-megs", 10, 1024*16, prefs);
- l = gtk_label_new(_("Size of article cache (in MiB)"));
+ l = gtk_label_new(_("Size of article cache (in MiB) :"));
gtk_misc_set_alignment (GTK_MISC(l), 0.0, 0.5);
gtk_label_set_mnemonic_widget(GTK_LABEL(l), w);
- HIG::workarea_add_row (t, &row, w, l);
+ HIG::workarea_add_row (t, &row, l, w);
w = new_entry ("cache-file-extension", "msg", prefs);
- l = gtk_label_new(_("File extension for Cached Articles"));
+ l = gtk_label_new(_("File extension for Cached Articles: "));
gtk_misc_set_alignment (GTK_MISC(l), 0.0, 0.5);
- HIG :: workarea_add_row (t, &row, w, l);
+ HIG :: workarea_add_row (t, &row, l, w);
HIG::workarea_add_section_divider (t, &row);
HIG :: workarea_add_section_title (t, &row, _("Tabs"));
- w = new_check_button (_("Show only icons in Preferences tabs"), "show-only-icons-in-preftabs", false, prefs);
+ w = new_tabs_combo_box(prefs, "elements-show-tabs");
HIG :: workarea_add_wide_control (t, &row, w);
HIG :: workarea_finish (t, &row);
@@ -957,17 +1007,17 @@ PrefsDialog :: PrefsDialog (Prefs& prefs, GtkWindow* parent):
HIG :: workarea_add_section_spacer (t, row, 2);
HIG :: workarea_add_section_title (t, &row, _("Autosave Article Draft"));
w = new_spin_button ("draft-autosave-timeout-min", 0, 60, prefs);
- l = gtk_label_new(_("Minutes to autosave the current Article Draft."));
+ l = gtk_label_new(_("Minutes to autosave the current Article Draft: "));
gtk_misc_set_alignment (GTK_MISC(l), 0.0, 0.5);
gtk_label_set_mnemonic_widget(GTK_LABEL(l), w);
- HIG::workarea_add_row (t, &row, w, l);
+ HIG::workarea_add_row (t, &row, l, w);
HIG::workarea_add_section_divider (t, &row);
HIG :: workarea_add_section_title (t, &row, _("Autosave Articles"));
w = new_spin_button ("newsrc-autosave-timeout-min", 0, 60, prefs);
- l = gtk_label_new(_("Minutes to autosave newsrc files"));
+ l = gtk_label_new(_("Minutes to autosave newsrc files: "));
gtk_misc_set_alignment (GTK_MISC(l), 0.0, 0.5);
gtk_label_set_mnemonic_widget(GTK_LABEL(l), w);
- HIG::workarea_add_row (t, &row, w, l);
+ HIG::workarea_add_row (t, &row, l, w);
HIG :: workarea_finish (t, &row);
gtk_notebook_append_page (GTK_NOTEBOOK(notebook), t, new_label_with_icon(_("_Miscellaneous"), _("Miscellaneous"), icon_prefs_extras, prefs));
@@ -1140,9 +1190,9 @@ PrefsDialog :: PrefsDialog (Prefs& prefs, GtkWindow* parent):
HIG :: workarea_add_section_spacer (t, row, 4);
// 16 MiB blocks max, 512 kb min
w = new_spin_button ("upload-option-bpf", 512*1024, 1024*1024*16, prefs);
- l = gtk_label_new(_("Default bytes per file (for encoder)"));
+ l = gtk_label_new(_("Default bytes per file (for encoder): "));
gtk_misc_set_alignment (GTK_MISC(l), 0.0, 0.5);
- HIG::workarea_add_row (t, &row, w, l);
+ HIG::workarea_add_row (t, &row, l, w);
HIG :: workarea_finish (t, &row);
gtk_notebook_append_page (GTK_NOTEBOOK(notebook), t, new_label_with_icon(_("_Upload"), _("Upload"), icon_prefs_upload, prefs));
diff --git a/pan/gui/profiles-dialog.cc b/pan/gui/profiles-dialog.cc
index ec5c348..2fda5a9 100644
--- a/pan/gui/profiles-dialog.cc
+++ b/pan/gui/profiles-dialog.cc
@@ -262,7 +262,8 @@ ProfileDialog :: ProfileDialog (const Data & data,
std::string s;
foreach_const (Profile::headers_t, profile.headers, it)
s += it->first + ": " + it->second + "\n";
- gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW(w)), s.c_str(), s.size());
+ if (!s.empty())
+ gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW(w)), s.c_str(), s.size());
GtkWidget * eventbox = gtk_event_box_new ();
gtk_widget_set_tooltip_text (eventbox, _("Extra headers to be included in your posts, such as\nReply-To: \"Your Name\""
"<yourname somewhere com>\nOrganization: Your Organization\n"));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]