OSDN Git Service

LinGui: add individual activity log longevity preference option
authorjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Fri, 26 Jun 2009 17:55:39 +0000 (17:55 +0000)
committerjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Fri, 26 Jun 2009 17:55:39 +0000 (17:55 +0000)
- options are week, month, year, immortal. default is immortal.

git-svn-id: svn://localhost/HandBrake/trunk@2630 b64f7644-9d1e-0410-96f1-a4d463321fa5

gtk/src/callbacks.c
gtk/src/ghb.ui
gtk/src/hb-backend.c
gtk/src/internal_defaults.xml

index cc6ab76..0b3e0cc 100644 (file)
@@ -1792,7 +1792,7 @@ suspend_cb(countdown_t *cd)
        cd->timeout--;
        if (cd->timeout == 0)
        {
-               gtk_widget_destroy (cd->dlg);
+               gtk_widget_destroy (GTK_WIDGET(cd->dlg));
                ghb_suspend_gpm();
                return FALSE;
        }
@@ -1919,13 +1919,19 @@ static void
 prune_logs(signal_user_data_t *ud)
 {
        gchar *dest_dir;
+       gint days;
 
        // Only prune logs stored in the default config dir location
+       days = ghb_settings_combo_int(ud->settings, "LogLongevity");
+       if (days > 365)
+               return;
+
        dest_dir = ghb_get_user_config_dir("EncodeLogs");
        if (g_file_test(dest_dir, G_FILE_TEST_IS_DIR))
        {
                const gchar *file;
-               int week = 7*24*60*60;
+               gint duration = days * 24 * 60 * 60;
+               
                GDir *gdir = g_dir_open(dest_dir, 0, NULL);
                time_t now;
 
@@ -1938,7 +1944,7 @@ prune_logs(signal_user_data_t *ud)
 
                        path = g_strdup_printf("%s/%s", dest_dir, file);
                        g_stat(path, &stbuf);
-                       if (now - stbuf.st_mtime > week)
+                       if (now - stbuf.st_mtime > duration)
                        {
                                g_unlink(path);
                        }
index ee3bfdd..03aca9b 100644 (file)
@@ -3970,6 +3970,42 @@ no-dct-decimate=0:cabac=1</property>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
+                                <child>
+                                  <object class="GtkAlignment" id="alignment63">
+                                    <property name="visible">True</property>
+                                    <property name="left_padding">21</property>
+                                    <child>
+                                      <object class="GtkHBox" id="hbox83">
+                                        <property name="visible">True</property>
+                                        <property name="spacing">4</property>
+                                        <child>
+                                          <object class="GtkComboBox" id="LogLongevity">
+                                            <property name="visible">True</property>
+                                            <signal name="changed" handler="pref_changed_cb"/>
+                                          </object>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="position">0</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkLabel" id="labela1">
+                                            <property name="visible">True</property>
+                                            <property name="xalign">0</property>
+                                            <property name="label" translatable="yes">Activity Log Longevity</property>
+                                          </object>
+                                          <packing>
+                                            <property name="position">1</property>
+                                          </packing>
+                                        </child>
+                                      </object>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
                               </object>
                             </child>
                           </object>
index a015eb7..50978f0 100644 (file)
@@ -120,6 +120,19 @@ combo_opts_t logging_opts =
        d_logging_opts
 };
 
+static options_map_t d_log_longevity_opts[] =
+{
+       {"Week",     "week",     7, "7"},
+       {"Month",    "month",    30, "30"},
+       {"Year",     "year",     365, "365"},
+       {"Immortal", "immortal", 366, "366"},
+};
+combo_opts_t log_longevity_opts =
+{
+       sizeof(d_log_longevity_opts)/sizeof(options_map_t),
+       d_log_longevity_opts
+};
+
 static options_map_t d_appcast_update_opts[] =
 {
        {"Never", "never", 0, "never"},
@@ -348,6 +361,7 @@ combo_name_map_t combo_name_map[] =
        {"PicturePAR", &par_opts},
        {"PictureModulus", &alignment_opts},
        {"LoggingLevel", &logging_opts},
+       {"LogLongevity", &log_longevity_opts},
        {"check_updates", &appcast_update_opts},
        {"VideoQualityGranularity", &vqual_granularity_opts},
        {"FileFormat", &container_opts},
@@ -2250,6 +2264,7 @@ ghb_update_ui_combo_box(
                generic_opts_set(ud->builder, "PicturePAR", &par_opts);
                generic_opts_set(ud->builder, "PictureModulus", &alignment_opts);
                generic_opts_set(ud->builder, "LoggingLevel", &logging_opts);
+               generic_opts_set(ud->builder, "LogLongevity", &log_longevity_opts);
                generic_opts_set(ud->builder, "check_updates", &appcast_update_opts);
                generic_opts_set(ud->builder, "FileFormat", &container_opts);
                generic_opts_set(ud->builder, "PictureDeinterlace", &deint_opts);
index fd8ac41..fac8c31 100644 (file)
                <integer>15</integer>
                <key>LoggingLevel</key>
                <string>1</string>
+               <key>LogLongevity</key>
+               <string>immortal</string>
                <key>nocheckvquality</key>
                <false />
                <key>use_dvdnav</key>