]> granicus.if.org Git - handbrake/commitdiff
LinGui: Add activity window font size preference
authorJohn Stebbins <jstebbins.hb@gmail.com>
Tue, 17 Apr 2018 17:11:29 +0000 (10:11 -0700)
committerJohn Stebbins <jstebbins.hb@gmail.com>
Tue, 17 Apr 2018 17:12:36 +0000 (10:12 -0700)
And make the default font size 8

Fixes https://github.com/HandBrake/HandBrake/issues/1285

gtk/src/callbacks.c
gtk/src/ghb.m4
gtk/src/internal_defaults.json
gtk/src/main.c

index 1ba0ac8ad3646bdd8f5d4c9976e9afe3239ea462..2830285d86dbef42a4874882c6bc47f2f704a2df 100644 (file)
@@ -5010,6 +5010,54 @@ advanced_video_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
     ghb_show_hide_advanced_video(ud);
 }
 
+G_MODULE_EXPORT void
+activity_font_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
+{
+
+    ghb_widget_to_setting(ud->prefs, widget);
+    const gchar *name = ghb_get_setting_key(widget);
+    ghb_pref_set(ud->prefs, name);
+
+    int size = ghb_dict_get_int(ud->prefs, "ActivityFontSize");
+
+#if GTK_CHECK_VERSION(3, 16, 0)
+    const gchar *css_template =
+        "                                   \n\
+        #activity_view                      \n\
+        {                                   \n\
+            font-family: monospace;         \n\
+            font-size: %dpt;                \n\
+            font-weight: lighter;           \n\
+        }                                   \n\
+        ";
+    char           * css      = g_strdup_printf(css_template, size);
+    GError         * error    = NULL;
+    GtkCssProvider * provider = gtk_css_provider_new();
+
+    gtk_css_provider_load_from_data(provider, css, -1, &error);
+    if (error == NULL)
+    {
+        GdkScreen *ss = gdk_screen_get_default();
+        gtk_style_context_add_provider_for_screen(ss,
+                                    GTK_STYLE_PROVIDER(provider),
+                                    GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+    }
+    g_object_unref(provider);
+    g_free(css);
+#else
+    const gchar          * font_template = "monospace %d";
+    char                 * font          = g_strdup_printf(font_template, size);
+    PangoFontDescription * font_desc;
+    GtkTextView          * textview;
+
+    font_desc = pango_font_description_from_string(font);
+    textview = GTK_TEXT_VIEW(GHB_WIDGET(ud->builder, "activity_view"));
+    gtk_widget_override_font(GTK_WIDGET(textview), font_desc);
+    pango_font_description_free(font_desc);
+    g_free(font);
+#endif
+}
+
 G_MODULE_EXPORT void
 pref_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
 {
index 586e732a6183d4638e6152ddf88954719b58c727..3af5ba0395d264120fb4d47fb95699cb3303e757 100644 (file)
@@ -533,6 +533,12 @@ conjunction with the "Forced" option.</property>
     <property name="step_increment">500</property>
     <property name="page_increment">1000</property>
   </object>
+  <object class="GtkAdjustment" id="ActivityFontSizeAdjustment">
+    <property name="upper">32</property>
+    <property name="lower">6</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
   <object class="GtkAboutDialog" id="hb_about">
     <property name="transient_for">hb_window</property>
     <property name="can_focus">False</property>
@@ -8134,6 +8140,53 @@ This file may be reloaded at a later time to edit your jobs and re-encode.</prop
                             <property name="height">1</property>
                           </packing>
                         </child>
+                        <child>
+                          <object class="GtkBox" id="ActivityFontSizeBox">
+                            <property name="orientation">horizontal</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">4</property>
+                            <property name="margin-start">0</property>
+                            <child>
+                              <object class="GtkSpinButton" id="ActivityFontSize">
+                                <property name="width-chars">3</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="tooltip_text" translatable="yes">Pause encoding if free disk space drops below limit</property>
+                                <property name="primary_icon_activatable">False</property>
+                                <property name="secondary_icon_activatable">False</property>
+                                <property name="valign">GTK_ALIGN_CENTER</property>
+                                <property name="adjustment">ActivityFontSizeAdjustment</property>
+                                <signal name="value-changed" handler="activity_font_changed_cb" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="ActivityFontSizeLabel">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="halign">start</property>
+                                <property name="label" translatable="yes">Activity Window Font Size</property>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="top_attach">6</property>
+                            <property name="left_attach">0</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
                         <child>
                           <object class="GtkCheckButton" id="HideAdvancedVideoSettings">
                             <property name="label" translatable="yes">Hide Advanced Video Options Tab</property>
@@ -8148,7 +8201,7 @@ on the Video tab instead.</property>
                             <signal name="toggled" handler="advanced_video_changed_cb" swapped="no"/>
                           </object>
                           <packing>
-                            <property name="top_attach">6</property>
+                            <property name="top_attach">7</property>
                             <property name="left_attach">0</property>
                             <property name="width">1</property>
                             <property name="height">1</property>
@@ -8167,7 +8220,7 @@ Check this if you want the queue to clean itself up by deleting completed jobs.<
                             <signal name="toggled" handler="pref_changed_cb" swapped="no"/>
                           </object>
                           <packing>
-                            <property name="top_attach">7</property>
+                            <property name="top_attach">8</property>
                             <property name="left_attach">0</property>
                             <property name="width">1</property>
                             <property name="height">1</property>
@@ -8188,7 +8241,7 @@ Uncheck this if you want to allow changing each title's settings independently.<
                             <signal name="toggled" handler="pref_changed_cb" swapped="no"/>
                           </object>
                           <packing>
-                            <property name="top_attach">8</property>
+                            <property name="top_attach">9</property>
                             <property name="left_attach">0</property>
                             <property name="width">1</property>
                             <property name="height">1</property>
index 4057fd290a93011d199548c6237c742aba2b0da8..7f7528100729e9f40fcb7950aa12e52c35d61367 100644 (file)
@@ -70,6 +70,7 @@
         "x264FastDecode": false
     },
     "Preferences": {
+        "ActivityFontSize": 8,
         "DiskFreeCheck": true,
         "DiskFreeLimit": 10000,
         "RemoveFinishedJobs": false,
index 3ee755ac2c433f41f3aa85f7988bba6ead33832d..5341fcea3a05238730e780989655f0f2af89120a 100644 (file)
@@ -815,7 +815,7 @@ stackswitcher button.text-button    \n\
 #activity_view                      \n\
 {                                   \n\
     font-family: monospace;         \n\
-    font-size: 7pt;                 \n\
+    font-size: 8pt;                 \n\
     font-weight: lighter;           \n\
 }                                   \n\
 "
@@ -967,15 +967,15 @@ ghb_idle_ui_init(signal_user_data_t *ud)
 extern G_MODULE_EXPORT void
 ghb_activate_cb(GApplication * app, signal_user_data_t * ud)
 {
-    GError             * error = NULL;
-    GtkCssProvider     * css = gtk_css_provider_new();
+    GError             * error    = NULL;
+    GtkCssProvider     * provider = gtk_css_provider_new();
 
-    error = NULL;
-    gtk_css_provider_load_from_data(css, MyCSS, -1, &error);
+    gtk_css_provider_load_from_data(provider, MyCSS, -1, &error);
     if (error == NULL)
     {
         GdkScreen *ss = gdk_screen_get_default();
-        gtk_style_context_add_provider_for_screen(ss, GTK_STYLE_PROVIDER(css),
+        gtk_style_context_add_provider_for_screen(ss,
+                                    GTK_STYLE_PROVIDER(provider),
                                     GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
     }
     else
@@ -983,6 +983,7 @@ ghb_activate_cb(GApplication * app, signal_user_data_t * ud)
         g_warning("%s: %s", G_STRFUNC, error->message);
         g_clear_error(&error);
     }
+    g_object_unref(provider);
 
 #if !defined(_WIN32)
     notify_init("HandBrake");